diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..1ead498 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "public"] + path = public + url = git@github.com:contentful/the-example-app-assets.git + branch = master diff --git a/assets/stylesheets/base/fonts.css b/assets/stylesheets/base/fonts.css deleted file mode 100755 index 83de58f..0000000 --- a/assets/stylesheets/base/fonts.css +++ /dev/null @@ -1,48 +0,0 @@ -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-regular-webfont.woff2') format('woff2'), - url('/fonts/roboto-regular-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} - - -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-italic-webfont.woff2') format('woff2'), - url('/fonts/roboto-italic-webfont.woff') format('woff'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-bold-webfont.woff2') format('woff2'), - url('/fonts/roboto-bold-webfont.woff') format('woff'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-bolditalic-webfont.woff2') format('woff2'), - url('/fonts/roboto-bolditalic-webfont.woff') format('woff'); - font-weight: bold; - font-style: italic; -} - -@font-face { - font-family: 'robotomedium'; - src: url('/fonts/roboto-medium-webfont.woff2') format('woff2'), - url('/fonts/roboto-medium-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'robotomedium'; - src: url('/fonts/roboto-mediumitalic-webfont.woff2') format('woff2'), - url('/fonts/roboto-mediumitalic-webfont.woff') format('woff'); - font-weight: normal; - font-style: italic; -} diff --git a/assets/stylesheets/base/formhack.css b/assets/stylesheets/base/formhack.css deleted file mode 100644 index 37b9b77..0000000 --- a/assets/stylesheets/base/formhack.css +++ /dev/null @@ -1,266 +0,0 @@ -/* Based on FormHack v1.2.0 (formhack.io) */ -/* But with some custom modifications */ - -/* Config ----------------------------- */ -:root { - - /* Font */ - --fh-font-family: 'Raleway', sans-serif; - --fh-font-size: 16px; - --fh-font-color: var(--color-input-text); - - /* Borders */ - --fh-border-radius: 5px; - --fh-border-width: 1px; - --fh-border-style: solid; - --fh-border-color: var(--color-input-border); - - /* Inputs, Textareas, Select, Option */ - --fh-input-height: 40px; - --fh-input-width: 100%; - --fh-input-max-width: 100%; - --fh-input-bg-color: var(--color-input-bg); - --fh-focus-bg-color: var(--fh-input-bg-color); - --fh-focus-border-color: var(--color-palette-blue); - --fh-focus-font-color: var(--fh-font-color); - - /* Select Vendor Styling */ - --fh-select-vendor-styling: none; /* comment this out to maintain vendor styling */ - - - /* Buttons & Input Submits */ - --fh-button-height: 40px; - --fh-button-width: 100%; - --fh-button-min-width: 200px; - --fh-button-font-color: var(--cta-color); - --fh-button-bg-color: var(--cta-bg); - --fh-button-hover-bg-color: var(--cta-bg-hover); - --fh-button-hover-font-color: var(--fh-button-font-color); - - /* Layout */ - --fh-layout-display: block; - --fh-layout-margin: calc(var(--spacing) * 1) 0; /* change to "10px auto" to center */ - --fh-layout-text-align: left; -} - - - -/* Global Reset Styles ------------------ */ - -input, -textarea, -select, -option, -optgroup, -button, -legend, -fieldset, -.cta { - box-sizing: border-box; - outline: none; - - font-family: var(--fh-font-family); - font-size: var(--fh-font-size); - color: var(--fh-font-color); - vertical-align: top; - - display: var(--fh-layout-display); - margin: var(--fh-layout-margin); - text-align: var(--fh-layout-text-align); -} - - -datalist { - font-family: var(--fh-font-family); - font-size: var(--fh-font-size); -} - -label { - display: var(--fh-layout-display); - margin: var(--fh-layout-margin) 0 0; - text-align: var(--fh-layout-text-align); - font-weight: bold; - font-size: 0.875em; - - & + input { - margin-top: calc(var(--spacing) * 0.25) - } -} - - - -/* Input & Textarea ------------------ */ - -/* Fields with standard width */ -input[type="text"], -input[type="email"], -input[type="password"], -input[type="search"], -input[type="color"], -input[type="date"], -input[type="datetime-local"], -input[type="month"], -input[type="number"], -input[type="tel"], -input[type="time"], -input[type="url"], -input[type="week"], -input[list], -input[type="file"], -/* select, */ -textarea { - width: var(--fh-input-width); - max-width: var(--fh-input-max-width); - padding: calc( var(--fh-input-height) / 5 ); - background-color: var(--fh-input-bg-color); - - border-radius: var(--fh-border-radius); - border-width: var(--fh-border-width); - border-style: var(--fh-border-style); - border-color: var(--fh-border-color); -} - -/* Fields with standard height */ -input[type="text"], -input[type="email"], -input[type="password"], -input[type="search"], -input[type="color"], -input[type="date"], -input[type="datetime-local"], -input[type="month"], -input[type="number"], -input[type="tel"], -input[type="time"], -input[type="url"], -input[type="week"], -input[list] { - height: var(--fh-input-height); - line-height: var(--fh-input-height); - -webkit-appearance: none; -} - -/* Other */ - -textarea { - -webkit-appearance: none; - overflow: auto; -} - -input[type="range"] { - height: var(--fh-input-height); - width: var(--fh-input-width); - max-width: var(--fh-input-max-width); -} - -input[type="file"] { - min-height: var(--fh-input-height); -} - -input[type="search"] { - height: var(--fh-input-height); - -webkit-appearance: none; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -input[type="checkbox"], -input[type="radio"] { - display: inline-block; - vertical-align: middle; -} -/* For checkbox and radio to be centered, need to wrap the input and label in a span - -/* .checkbox-container { -/* display: block; -/* text-align: center; -/* } - - -/* Fieldset ------------------ */ - -fieldset { - padding: 0; - border: 0; -} - -legend { - padding: 0; - font-weight: inherit; -} - -/* Buttons, Input Type Submit/Reset ------------------ */ - -button, -input[type="button"], -input[type="submit"], -input[type="reset"], -input[type="image"], -.cta { - display: inline-block; - height: var(--fh-button-height); - min-width: var(--fh-button-min-width); - background-color: var(--fh-button-bg-color); - padding: 0 2em; - cursor: pointer; - - line-height: var(--fh-button-height); - color: var(--fh-button-font-color); - font-weight: normal; - - -webkit-appearance: none; - -moz-appearance: none; - - border: none; - border-radius: var(--cta-radius); - text-align: center; -} - -input[type="image"] { - text-align: center; - padding: calc( var(--fh-input-height) / 5 ); -} - -/* States ------------------ */ - -input[disabled], -textarea[disabled], -select[disabled], -option[disabled], -button[disabled] { - cursor: not-allowed; -} - -input:focus, -textarea:focus, -select:focus, -option:focus { - border-color: var(--color-palette-blue); - color: var(--fh-font-color); -} - -button:focus, -.cta:focus { - background-color: var(--fh-button-hover-bg-color); - color: var(--fh-button-hover-font-color); -} - -input[type="checkbox"]:focus, -input[type="radio"]:focus { - outline: var(--fh-focus-border-color) solid 2px; -} - -button:hover, -input[type="button"]:hover, -input[type="submit"]:hover, -input[type="reset"]:hover, -button:focus, -input[type="button"]:focus, -input[type="submit"]:focus, -input[type="reset"]:focus, -.cta:hover, -.cta:focus { - background-color: var(--fh-button-hover-bg-color); - color: var(--fh-button-hover-font-color); -} diff --git a/assets/stylesheets/base/forms.css b/assets/stylesheets/base/forms.css deleted file mode 100644 index c1a2029..0000000 --- a/assets/stylesheets/base/forms.css +++ /dev/null @@ -1,65 +0,0 @@ -@block form-item { - & + .form-item { - margin-top: var(--spacing); - } - - & input { - margin: 0 0 calc(var(--spacing) * 0.25); - } - - @element help-text { - font-size: 0.875em; - color: var(--color-text-grey); - } - - @element error-message { - font-size: 0.875em; - color: var(--color-text-error); - - &:before { - content: ''; - display: inline-block; - background: url('/images/icon-error.svg') no-repeat left center; - background-size: contain; - width: 12px; - height: 12px; - padding-right: 0.3em; - } - } -} - -@block status-block { - display: flex; - margin: var(--spacing) 0; - padding: calc(var(--spacing) * 0.5); - border-radius: var(--border-radius); - - font-size: 0.875em; - - @modifier success { - background: var(--color-status-block-bg-success); - } - - @modifier error { - background: var(--color-status-block-bg-error); - } - - @element icon { - flex: 0 0 auto; - width: 24px; - height: 24px; - margin-right: calc(var(--spacing) * 0.25); - } - - @element content { - flex: 1 1 auto; - } - - @element title { - font-weight: bold; - } - - @element message { - color: var(--color-status-block-message); - } -} diff --git a/assets/stylesheets/base/index.css b/assets/stylesheets/base/index.css deleted file mode 100644 index 9776ea5..0000000 --- a/assets/stylesheets/base/index.css +++ /dev/null @@ -1,4 +0,0 @@ -@import './fonts'; -@import './typography'; -@import './formhack'; -@import './forms'; diff --git a/assets/stylesheets/base/typography.css b/assets/stylesheets/base/typography.css deleted file mode 100644 index 53f5ea5..0000000 --- a/assets/stylesheets/base/typography.css +++ /dev/null @@ -1,36 +0,0 @@ -h1, h2, h3, h4, h5, h6 { - font-family: var(--font-medium); - font-weight: normal; - line-height: 1.31; - color: var(--color-text-headlines); - - &:first-child { - margin-top: 0; - } -} - -a { - color: inherit; - text-decoration: none; -} - -p, label, .form-item { - & a { - color: var(--color-link-content); - text-decoration: underline; - - &:hover { - color: var(--color-link-content-hover); - text-decoration: underline; - } - } -} - -p { - &:first-child { - margin-top: 0; - } - &:last-child { - margin-bottom: 0; - } -} diff --git a/assets/stylesheets/course/card.css b/assets/stylesheets/course/card.css deleted file mode 100644 index 731ed7f..0000000 --- a/assets/stylesheets/course/card.css +++ /dev/null @@ -1,82 +0,0 @@ -@block course-card { - display: flex; - flex-direction: column; - padding: var(--spacing); - - border-radius: var(--border-radius); - box-shadow: var(--card-box-shadow); - - @element categories { - flex: 0 0 var(--line-height); - margin-bottom: calc(var(--spacing) * 0.5); - height: var(--line-height); - } - - @element category { - display: inline-block; - color: var(--color-text-grey); - font-size: 0.75em; - font-family: var(--font-medium); - - &:after { - content: ' • '; - display: inline-block; - padding: 0 0.5em; - } - - &:last-child:after { - display: none; - } - } - - @element category-link { - display: inline-block; - letter-spacing: 2px; - } - - @element title { - flex: 0 1 15vh; - max-height: 120px; - margin: 0; - overflow: hidden; - - padding-bottom: calc(var(--spacing) * 0.5); - margin-bottom: calc(var(--spacing) * 0.5); - border-bottom: 1px solid var(--color-bg-separator); - - font-family: var(--font-medium); - font-weight: normal; - font-size: 1.625em; - line-height: 1.38; - } - - @element description { - flex: 0 1 15vh; - max-height: 120px; - overflow: hidden; - margin: 0 0 calc(var(--spacing)); - - line-height: 1.63; - color: var(--color-course-card-description); - } - - @element link-wrapper { - flex: 0 0 auto; - } - - @element link { - display: inline-block; - padding-bottom: 0.3em; - border-bottom: 1px solid var(--color-link-content); - text-transform: uppercase; - color: var(--color-link-content); - font-size: 0.75em; - line-height: 2.17; - letter-spacing: 2px; - - &:hover { - color: var(--color-link-content-hover); - border-bottom-color: var(--color-link-content-hover); - } - } -} diff --git a/assets/stylesheets/course/index.css b/assets/stylesheets/course/index.css deleted file mode 100644 index 1a512b2..0000000 --- a/assets/stylesheets/course/index.css +++ /dev/null @@ -1,61 +0,0 @@ -@import './card'; - -@block course { - @element title { - margin-bottom: calc(var(--spacing)); - } - - @element overview { - font-family: var(--font-medium); - - @media (--breakpoint-desktop) { - float: right; - border-radius: var(--border-radius); - box-shadow: var(--card-box-shadow); - width: 228px; - margin: 0 0 var(--spacing) var(--spacing); - } - } - - @element overview-title { - border-bottom: 1px solid var(--color-sidebar-seperator); - padding: calc(var(--spacing) / 2) 0; - margin: 0; - line-height: 1.31; - font-weight: normal; - text-transform: uppercase; - text-align: center; - } - - @element overview-item { - display: flex; - align-items: center; - padding: calc(var(--spacing) / 2); - border-bottom: 1px solid var(--color-sidebar-seperator); - - line-height: 1.54; - font-size: 0.8em; - } - - @element overview-icon { - flex: 0 0 auto; - width: 24px; - height: 24px; - padding-right: calc(var(--spacing) / 2); - } - - @element overview-value { - flex: 1 0 auto; - } - - @element overview-cta-wrapper { - padding: calc(var(--spacing) / 2) 0; - text-align: center; - } - @element overview-cta { - margin: 0; - } - @element cta { - margin-bottom: 0; - } -} diff --git a/assets/stylesheets/global/breadcrumb.css b/assets/stylesheets/global/breadcrumb.css deleted file mode 100644 index b24ab05..0000000 --- a/assets/stylesheets/global/breadcrumb.css +++ /dev/null @@ -1,42 +0,0 @@ -@block breadcrumb { - margin-bottom: calc(var(--spacing) * 0.25); - - font-size: 0.875em; - - & ul { - display: flex; - list-style: none; - flex-wrap: wrap; - margin: 0; - padding: 0; - - & li { - margin: 0; - - &:after{ - content: ''; - display: inline-block; - background: url('/images/icon-breadcrumb.svg'); - background-size: contain; - background-position: center center; - background-repeat: no-repeat; - width: 4px; - height: 8px; - padding: 0 calc(var(--spacing) * 0.25); - } - - &:last-child:after{ - display: none; - } - - & a { - display: inline-block; - text-transform: capitalize; - - &:hover { - color: var(--color-link-content-hover); - } - } - } - } -} diff --git a/assets/stylesheets/global/fonts.css b/assets/stylesheets/global/fonts.css deleted file mode 100755 index 83de58f..0000000 --- a/assets/stylesheets/global/fonts.css +++ /dev/null @@ -1,48 +0,0 @@ -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-regular-webfont.woff2') format('woff2'), - url('/fonts/roboto-regular-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} - - -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-italic-webfont.woff2') format('woff2'), - url('/fonts/roboto-italic-webfont.woff') format('woff'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-bold-webfont.woff2') format('woff2'), - url('/fonts/roboto-bold-webfont.woff') format('woff'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-bolditalic-webfont.woff2') format('woff2'), - url('/fonts/roboto-bolditalic-webfont.woff') format('woff'); - font-weight: bold; - font-style: italic; -} - -@font-face { - font-family: 'robotomedium'; - src: url('/fonts/roboto-medium-webfont.woff2') format('woff2'), - url('/fonts/roboto-medium-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'robotomedium'; - src: url('/fonts/roboto-mediumitalic-webfont.woff2') format('woff2'), - url('/fonts/roboto-mediumitalic-webfont.woff') format('woff'); - font-weight: normal; - font-style: italic; -} diff --git a/assets/stylesheets/global/footer.css b/assets/stylesheets/global/footer.css deleted file mode 100644 index 7ecc2f2..0000000 --- a/assets/stylesheets/global/footer.css +++ /dev/null @@ -1,90 +0,0 @@ -@block footer { - padding: var(--spacing) 0; - - & p { - margin: 0; - } - - @element upper { - display: flex; - flex-wrap: wrap; - min-height: 80px; - - border-bottom: 1px solid var(--color-bg-separator); - - & > * { - display: flex; - align-items: center; - } - } - - @element navigation { - flex: 1 1 auto; - } - - @element apps { - flex: 1 0 auto; - justify-content: center; - - @media (--breakpoint-desktop) { - justify-content: flex-end; - } - - & a { - display: inline-block; - width: 138px; - - & + a { - margin-left: calc(var(--spacing) * 0.25); - } - - & img { - width: 100%; - height: auto; - } - } - } - - @element lower { - display: flex; - min-height: 80px; - } - - @element disclaimer { - flex: 1 1 auto; - display: flex; - align-items: center; - } - - @element disclaimer-logo { - flex: 0 0 auto; - width: 24px; - height: 27px; - margin-right: calc(var(--spacing) * 0.5); - } - - @element disclaimer-text { - flex: 1 1 auto; - - color: var(--color-text-footer); - font-size: 0.75em; - line-height: 1.5; - } - - @element social { - flex: 0 0 auto; - display: flex; - align-items: center; - padding: 0 0 0 var(--spacing); - - & a + a { - margin-left: calc(var(--spacing) * 0.5); - } - - & img { - width: 24px; - height: auto; - } - } -} - diff --git a/assets/stylesheets/global/header.css b/assets/stylesheets/global/header.css deleted file mode 100644 index a6d542f..0000000 --- a/assets/stylesheets/global/header.css +++ /dev/null @@ -1,221 +0,0 @@ -@block header { - margin-bottom: calc(var(--spacing) * 0.75); - - @media (--breakpoint-desktop) { - flex-wrap: nowrap; - } - - @element upper-wrapper { - background: var(--color-palette-blue-dark); - padding: calc(var(--spacing) * 0.25) 0; - color: var(--color-header-upper-text-secondary); - } - - @element upper { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - - font-size: 0.8em; - } - - @element upper-first { - flex: 1 1 auto; - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - - @media (--breakpoint-desktop) { - flex: 0 1 auto; - flex-direction: row; - margin-bottom: 0; - } - } - - @element upper-second { - flex: 1 1 auto; - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - - @media (--breakpoint-desktop) { - flex: 0 1 auto; - flex-direction: row; - } - } - - @element upper-link { - display: inline-flex; - align-items: center; - } - - @element upper-copy { - display: inline-flex; - margin: 0 0 calc(var(--spacing) / 4); - - @media (--breakpoint-desktop) { - margin: 0 calc(var(--spacing) / 2) 0 0; - } - } - - @element upper-icon { - display: inline-block; - width: 20px; - height: 20px; - margin-right: calc(var(--spacing) / 4); - } - - @element lower-wrapper { - } - - @element lower { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - padding: calc(var(--spacing) * 0.5) 0 calc(var(--spacing) * 0.25); - border-bottom: 1px solid var(--color-bg-separator); - } - - @element title { - display: flex; - align-items: center; - font-family: var(--font-regular); - letter-spacing: 3px; - text-transform: uppercase; - color: var(--color-header-upper-text-primary); - - & img { - display: inline-block; - width: 24px; - height: auto; - margin-right: calc(var(--spacing) / 4); - } - - @media (--breakpoint-desktop) { - margin: 0 calc(var(--spacing) / 2) 0 0; - } - } - - @element logo { - display: flex; - flex: 0 0 100%; - justify-content: center; - - @media (--breakpoint-desktop) { - flex: 0 0 200px; - justify-content: start; - } - - & img { - width: 100%; - height: auto; - max-width: 169px; - } - } - - @element controls { - display: flex; - flex: 1 1 auto; - flex-direction: column; - justify-content: space-around; - color: var(--color-header-upper-text-primary); - - @media (--breakpoint-desktop) { - flex: 0 0 auto; - flex-direction: row; - } - } - - @element controls_group { - flex: 0 0 auto; - position: relative; - - display: flex; - margin: 0 0 calc(var(--spacing) * 0.5); - padding: calc(var(--spacing) * 0.0625) calc(var(--spacing) / 2); - - border: none; - background: var(--color-palette-blue-medium); - border-radius: var(--border-radius); - color: inherit; - - &:last-child { - margin: 0; - } - - @media (--breakpoint-desktop) { - margin: 0 calc(var(--spacing) * 0.75) 0 0; - } - } - - @element controls_label { - position: relative; - z-index: 1; - cursor: pointer; - } - - @element controls_dropdown { - position: absolute; - z-index: 2; - box-sizing: border-box; - - width: 260px; - max-width: 90vw; - margin: calc(var(--spacing) / 2 - 4px) 0 0; - - opacity: 0; - background: #fff; - border-radius: 2px; - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.1); - - transition: 0.3s opacity ease; - pointer-events: none; - - @modifier active { - opacity: 1; - pointer-events: all; - - &:before { - content: ''; - position: absolute; - left: 50%; - top: -5px; - width: 10px; - height: 10px; - - background-color: inherit; - transform: translateX(-50%) rotate(45deg); - } - } - } - - @element controls_help_text { - padding: calc(var(--spacing) / 2); - color: var(--color-text-grey); - } - - @element controls_button { - box-sizing: border-box; - height: auto; - width: 100%; - margin: 0; - - border-radius: 0; - background: var(--header-dropdown-bg); - - color: var(--header-dropdown-btn-color); - font-size: 1em; - - &:hover { - background: var(--header-dropdown-bg-hover); - color: var(--header-dropdown-btn-color); - } - - @modifier active { - background: var(--header-dropdown-bg-active); - } - } -} diff --git a/assets/stylesheets/global/index.css b/assets/stylesheets/global/index.css deleted file mode 100644 index 54ba0a4..0000000 --- a/assets/stylesheets/global/index.css +++ /dev/null @@ -1,34 +0,0 @@ -@import './header'; -@import './footer'; - -@import './table-of-contents'; -@import './sidebar-menu'; -@import './main-navigation'; -@import './breadcrumb'; - -body { - background-color: var(--color-bg-default); - color: var(--color-text-default); - font-family: var(--font-regular); - font-size: 1rem; - line-height: var(--line-height); -} - -@block main { - display: flex; - flex-direction: column; - min-height: 100vh; - - @element header { - flex: 0 0 auto; - } - @element content { - flex: 1 0 auto; - display: flex; - align-items: stretch; - flex-direction: column; - } - @element footer { - flex: 0 0 auto; - } -} diff --git a/assets/stylesheets/global/main-navigation.css b/assets/stylesheets/global/main-navigation.css deleted file mode 100644 index 652319d..0000000 --- a/assets/stylesheets/global/main-navigation.css +++ /dev/null @@ -1,40 +0,0 @@ -@block main-navigation { - & ul { - display: flex; - list-style: none; - flex-wrap: wrap; - justify-content: center; - margin: 0; - padding: 0; - - @media (--breakpoint-desktop) { - justify-content: flex-end; - } - - & li { - margin: 0; - - & + li { - margin-left: calc(var(--spacing) / 4); - } - - & a { - display: block; - text-transform: uppercase; - font-weight: bold; - padding: 0.7em 1em; - color: var(--color-text-grey); - border-radius: var(--border-radius); - - &.active, - &:hover { - background: var(--color-bg-grey); - } - - &.active { - color: var(--color-text-default); - } - } - } - } -} diff --git a/assets/stylesheets/global/sidebar-menu.css b/assets/stylesheets/global/sidebar-menu.css deleted file mode 100644 index cbfa4be..0000000 --- a/assets/stylesheets/global/sidebar-menu.css +++ /dev/null @@ -1,28 +0,0 @@ -@block sidebar-menu { - @element list { - list-style: none; - margin: 0; - padding: 0; - } - - @element item { - margin: 0 0 calc(var(--spacing) * 0.5); - padding: 0; - font-size: 0.9em; - line-height: 1.8; - } - - @element link { - display: block; - color: var(--color-text-grey); - - &:hover, - &.active { - color: var(--color-text-default); - } - - &.active { - font-family: var(--font-medium); - } - } -} diff --git a/assets/stylesheets/global/table-of-contents.css b/assets/stylesheets/global/table-of-contents.css deleted file mode 100644 index ab8037d..0000000 --- a/assets/stylesheets/global/table-of-contents.css +++ /dev/null @@ -1,69 +0,0 @@ -:root { - --toc-gap-left: calc(var(--spacing)); - --toc-gap-total: calc(var(--toc-gap-left) + var(--spacing) * 0.5); -} -@block table-of-contents { - @element list { - list-style: none; - margin: 0; - padding: 0; - padding-left: var(--toc-gap-left); - } - - @element item { - margin: 0 0 calc(var(--spacing) * 0.25); - padding: 0; - font-size: 0.9em; - line-height: 1.8; - } - - @element link { - display: block; - color: var(--color-text-grey); - - &:hover, - &.active { - color: var(--color-text-default); - } - - &.active { - position: relative; - font-family: var(--font-medium); - - &:before, - &:after { - position: absolute; - top: 0; - } - &:before { - content: ''; - left: calc(var(--toc-gap-total) * -1 + 4px); - bottom: 0; - width: 3px; - background: var(--color-course-active); - } - } - - &.visited { - position:relative; - - &:before, - &:after { - position: absolute; - top: 0; - } - &:after { - content: ''; - display: block; - width: 16px; - height: 16px; - top: 50%; - left: calc(var(--toc-gap-total) / 2 * -1 - 8px); - transform: translateY(-50%); - - background: url('/images/icon-viewed.svg') no-repeat center center; - background-size: contain; - } - } - } -} diff --git a/assets/stylesheets/hljs-github.css b/assets/stylesheets/hljs-github.css deleted file mode 100644 index 791932b..0000000 --- a/assets/stylesheets/hljs-github.css +++ /dev/null @@ -1,99 +0,0 @@ -/* - -github.com style (c) Vasily Polovnyov - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #333; - background: #f8f8f8; -} - -.hljs-comment, -.hljs-quote { - color: #998; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-subst { - color: #333; - font-weight: bold; -} - -.hljs-number, -.hljs-literal, -.hljs-variable, -.hljs-template-variable, -.hljs-tag .hljs-attr { - color: #008080; -} - -.hljs-string, -.hljs-doctag { - color: #d14; -} - -.hljs-title, -.hljs-section, -.hljs-selector-id { - color: #900; - font-weight: bold; -} - -.hljs-subst { - font-weight: normal; -} - -.hljs-type, -.hljs-class .hljs-title { - color: #458; - font-weight: bold; -} - -.hljs-tag, -.hljs-name, -.hljs-attribute { - color: #000080; - font-weight: normal; -} - -.hljs-regexp, -.hljs-link { - color: #009926; -} - -.hljs-symbol, -.hljs-bullet { - color: #990073; -} - -.hljs-built_in, -.hljs-builtin-name { - color: #0086b3; -} - -.hljs-meta { - color: #999; - font-weight: bold; -} - -.hljs-deletion { - background: #fdd; -} - -.hljs-addition { - background: #dfd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/assets/stylesheets/landing-page/index.css b/assets/stylesheets/landing-page/index.css deleted file mode 100644 index 79e17ef..0000000 --- a/assets/stylesheets/landing-page/index.css +++ /dev/null @@ -1,5 +0,0 @@ -@import './modules'; - -@block modules-container { - flex: 1 1 auto; -} diff --git a/assets/stylesheets/landing-page/modules/copy.css b/assets/stylesheets/landing-page/modules/copy.css deleted file mode 100644 index 317aaf4..0000000 --- a/assets/stylesheets/landing-page/modules/copy.css +++ /dev/null @@ -1,71 +0,0 @@ -@block module-copy { - @modifier emphasized { - display: flex; - justify-content: space-between; - flex-wrap: wrap; - padding: calc(var(--spacing) * 0.75) 0; - background-color: var(--module-copy-emphasized-bg); - border-radius: var(--border-radius); - color: var(--module-copy-emphasized-color); - - & a { - color: inherit; - &:hover { - color: #fff; - } - } - - @media (--breakpoint-desktop) { - flex-wrap: nowrap; - } - } - - @element first { - @modifier emphasized { - flex: 1 1 auto; - width: 50vw; - padding: 0 var(--spacing); - - @media (--breakpoint-desktop) { - padding-left: var(--spacing); - } - } - } - - @element second { - @modifier emphasized { - flex: 1 1 auto; - display: flex; - align-items: center; - justify-content: center; - - @media (--breakpoint-desktop) { - flex: 1 1 auto; - padding: 0 var(--spacing); - width: 20vw; - } - } - } - - - @element headline { - @modifier emphasized { - color: var(--module-copy-emphasized-headlines-color); - font-size: 1.25em; - } - } - - @element copy { - @modifier emphasized { - font-size: 0.875em; - } - } - - @element cta { - @modifier emphasized { - background-color: var(--module-copy-emphasized-cta-bg); - color: var(--module-copy-emphasized-cta-color); - margin-bottom: 0; - } - } -} diff --git a/assets/stylesheets/landing-page/modules/hero-image.css b/assets/stylesheets/landing-page/modules/hero-image.css deleted file mode 100644 index be7b613..0000000 --- a/assets/stylesheets/landing-page/modules/hero-image.css +++ /dev/null @@ -1,37 +0,0 @@ -@block module-hero-image { - @element wrapper { - position: relative; - overflow: hidden; - max-height: 60vh; - border-radius: var(--border-radius); - } - - @element image{ - display: block; - width: 100%; - height: auto; - } - - @element headline-wrapper { - position: absolute; - left: 0; - right: 0; - top: 50%; - transform: translateY(-50%); - } - - @element headline { - color: #fff; - text-align: center; - font-size: 4.5vw; - line-height: 1; - text-shadow: 0px 3px 0px #b2a98f, - 0px 14px 10px rgba(0,0,0,0.15), - 0px 24px 2px rgba(0,0,0,0.1), - 0px 34px 30px rgba(0,0,0,0.1); - - @media (--breakpoint-desktop) { - font-size: 4em; - } - } -} diff --git a/assets/stylesheets/landing-page/modules/highlighted-course.css b/assets/stylesheets/landing-page/modules/highlighted-course.css deleted file mode 100644 index cb4f744..0000000 --- a/assets/stylesheets/landing-page/modules/highlighted-course.css +++ /dev/null @@ -1,98 +0,0 @@ -@block module-higlighted-course { - @element wrapper { - position: relative; - overflow: hidden; - height: 50vh; - min-height: 250px; - max-height: 500px; - border-radius: var(--border-radius); - background-size: cover; - background-repeat: no-repeat; - background-position: center center; - } - - @element overlay { - z-index: 1; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - opacity: 0.8; - border-radius: 4px; - background-color: #3c3d41; - } - - @element content { - z-index: 2; - position: absolute; - left: 0; - right: 0; - top: 50%; - transform: translateY(-50%); - - display: flex; - flex-direction: column; - - padding: var(--spacing) calc(var(--spacing) * 2); - - color: var(--color-text-dark-bg-grey); - } - - @element categories { - flex: 0 0 var(--line-height); - } - - @element category { - display: inline-block; - margin-right: var(--spacing); - - font-size: 0.75em; - letter-spacing: 2px; - } - - @element title { - flex: 1 1 auto; - margin: 0 0 calc(var(--spacing) * 0.25); - - color: var(--color-text-dark-bg); - font-size: 4vw; - line-height: 1.3; - white-space: nowrap; - - @media (--breakpoint-desktop) { - font-size: 3.25em; - } - } - - @element description-wrapper { - flex: 1 1 auto; - max-width: 400px; - line-height: 1.3; - - @media (--breakpoint-desktop) { - font-size: 1.25em; - } - - & p { - margin: 0; - } - } - - @element link-wrapper { - flex: 0 0 auto; - margin-top: var(--spacing); - } - - @element link { - display: inline-block; - - border-bottom: 1px solid var(--color-text-dark-bg); - - text-transform: uppercase; - color: var(--color-text-dark-bg); - font-size: 0.75em; - line-height: 2.17; - letter-spacing: 2px; - } -} diff --git a/assets/stylesheets/landing-page/modules/index.css b/assets/stylesheets/landing-page/modules/index.css deleted file mode 100644 index ca56016..0000000 --- a/assets/stylesheets/landing-page/modules/index.css +++ /dev/null @@ -1,18 +0,0 @@ -@import './copy'; -@import './hero-image'; -@import './highlighted-course'; - -@block module { - max-width: var(--content-max-width); - margin: 0 auto; - padding: 0 2vw; - - & img { - width: 100%; - height: auto; - } - - & + .module { - margin-top: var(--spacing); - } -} diff --git a/assets/stylesheets/layout/grid-list.css b/assets/stylesheets/layout/grid-list.css deleted file mode 100644 index 50e0188..0000000 --- a/assets/stylesheets/layout/grid-list.css +++ /dev/null @@ -1,21 +0,0 @@ -@block grid-list { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - - @media (--breakpoint-desktop) { - flex: 0 0 calc(50% - var(--spacing)); - margin: 0 calc(var(--spacing) / 2 * -1); - } - - @element item { - flex: 0 0 100%; - margin-bottom: var(--spacing); - - @media (--breakpoint-desktop) { - box-sizing: border-box; - flex: 0 0 calc(50% - var(--spacing)); - margin: 0 calc(var(--spacing) / 2) var(--spacing); - } - } -} diff --git a/assets/stylesheets/layout/index.css b/assets/stylesheets/layout/index.css deleted file mode 100644 index ee49555..0000000 --- a/assets/stylesheets/layout/index.css +++ /dev/null @@ -1,4 +0,0 @@ -@import 'layout-centered'; -@import 'layout-no-sidebar'; -@import 'layout-sidebar'; -@import 'grid-list'; diff --git a/assets/stylesheets/layout/layout-centered.css b/assets/stylesheets/layout/layout-centered.css deleted file mode 100644 index a124a7a..0000000 --- a/assets/stylesheets/layout/layout-centered.css +++ /dev/null @@ -1,11 +0,0 @@ -@block layout-centered { - max-width: var(--content-max-width); - margin: 0 auto; - padding: 0 2vw; -} - -@block layout-centered-small { - max-width: calc(var(--content-max-width) - 360px); - margin: 0 auto; - padding: 0 2vw; -} diff --git a/assets/stylesheets/layout/layout-no-sidebar.css b/assets/stylesheets/layout/layout-no-sidebar.css deleted file mode 100644 index 5b9448f..0000000 --- a/assets/stylesheets/layout/layout-no-sidebar.css +++ /dev/null @@ -1,11 +0,0 @@ -@block layout-no-sidebar { - padding: 0 calc(var(--spacing) / 2); - max-width: var(--content-max-width); - margin: 0 auto; - width: 100%; - box-sizing: border-box; - - @media (--breakpoint-desktop) { - padding-left: calc(var(--layout-sidebar-sidebar-width) + var(--spacing)); - } -} diff --git a/assets/stylesheets/layout/layout-sidebar.css b/assets/stylesheets/layout/layout-sidebar.css deleted file mode 100644 index d992f1b..0000000 --- a/assets/stylesheets/layout/layout-sidebar.css +++ /dev/null @@ -1,53 +0,0 @@ -@block layout-sidebar { - padding: 0 calc(var(--spacing) / 2); - max-width: var(--content-max-width); - margin: 0 auto; - - @media (--breakpoint-desktop) { - display: flex; - align-items: flex-start; - } - - @element sidebar { - @media (--breakpoint-desktop) { - flex: 0 0 auto; - width: var(--layout-sidebar-sidebar-width); - border-radius: var(--border-radius); - box-shadow: var(--card-box-shadow); - } - } - - @element sidebar-header { - padding: calc(var(--spacing) / 2) var(--spacing); - border-bottom: 1px solid var(--color-sidebar-seperator); - } - - @element sidebar-title { - font-family: var(--font-medium); - font-size: 1.25em; - font-weight: normal; - margin: 0; - } - - @element sidebar-content { - background: var(--color-sidebar-bg); - padding: calc(var(--spacing) * 0.5); - } - - @element content { - display: flex; - flex-direction: column; - - @media (--breakpoint-desktop) { - flex: 0 1 var(--layout-sidebar-content-width); - width: 100%; - box-sizing: border-box; - margin-left: var(--spacing); - } - - & > * { - max-width: var(--layout-sidebar-content-width); - width: 100%; - } - } -} diff --git a/assets/stylesheets/lesson/index.css b/assets/stylesheets/lesson/index.css deleted file mode 100644 index 0b997da..0000000 --- a/assets/stylesheets/lesson/index.css +++ /dev/null @@ -1,72 +0,0 @@ -@block lesson-module { - margin-top: var(--spacing); - - & img { - width: 100%; - height: auto; - } -} - -@block lesson { - @element title { - margin-bottom: var(--spacing); - } - - @element cta { - margin-bottom: 0; - } -} - -@block lesson-module-code { - @element header {} - @element code-area { - background: var(--code-bg); - } - - @element trigger { - display: inline-block; - - height: 30px; - padding: 0 1em; - margin-right: 1em; - - background: var(--code-trigger-bg); - - border-top: 3px solid transparent; - - line-height: 30px; - font-family: var(--font-medium); - font-size: 0.875em; - color: var(--code-trigger-color); - - cursor: pointer; - user-select: none; - - &:last-child { - margin-right: 0; - } - - &:hover { - color: var(--color-link-content-hover); - } - - @modifier active { - background: var(--code-trigger-bg-active); - color: var(--code-trigger-color-active) !important; - cursor: default; - border-color: var(--code-trigger-border-active); - } - } - - @element code { - display: none; - - @modifier active { - display: block; - } - - & pre { - margin: 0; - } - } -} diff --git a/assets/stylesheets/style.css b/assets/stylesheets/style.css deleted file mode 100644 index da185da..0000000 --- a/assets/stylesheets/style.css +++ /dev/null @@ -1,15 +0,0 @@ -@import 'normalize.css'; - -@import './variables'; - -@import './base'; - -@import './layout'; - -@import './global'; - -@import './hljs-github'; - -@import './course'; -@import './landing-page'; -@import './lesson'; diff --git a/assets/stylesheets/variables.css b/assets/stylesheets/variables.css deleted file mode 100644 index 9e251bb..0000000 --- a/assets/stylesheets/variables.css +++ /dev/null @@ -1,78 +0,0 @@ -@custom-media --breakpoint-desktop (min-width: 700px); - -:root { - --content-max-width: 980px; - --spacing: 32px; - --border-radius: 4px; - - --line-height: 1.5em; - - --font-regular: 'roboto', Helvetica, sans-serif; - --font-medium: 'robotomedium', Helvetica, sans-serif; - - --color-palette-blue: #5c9fef; - --color-palette-blue-medium: #3c80cf; - --color-palette-blue-dark: #3072be; - --color-palette-red: #cd3f39; - - --color-text-default: #536171; - --color-text-headlines: #2a3039; - --color-text-grey: #8091a5; - --color-text-dark-bg: #fff; - --color-text-dark-bg-grey: #a9b9c0; - --color-text-error: var(--color-palette-red); - - --color-link-content: var(--color-palette-blue); - --color-link-content-hover: var(--color-palette-blue-medium); - - --color-bg-default: #fff; - --color-bg-grey: #f7f9fa; - --color-bg-separator: #e5ebed; - - --color-text-footer: #a9b9c0; - - --color-sidebar-bg: #f7f9fa; - --color-sidebar-seperator: #eeeeee; - - --color-course-active: #536171; - --color-course-card-description: #536171; - - --color-status-block-bg-success: #f4fffb; - --color-status-block-bg-error: #fbe3e2; - --color-status-block-message: #536171; - - --color-input-text: #536171; - --color-input-bg: #fff; - --color-input-border: #d3dce0; - - --color-header-upper-text-primary: #fff; - --color-header-upper-text-secondary: #abc6e5; - - --layout-sidebar-sidebar-width: 228px; - --layout-sidebar-content-width: 732px; - - --card-box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.1); - - --cta-color: #fff; - --cta-bg: var(--color-palette-blue); - --cta-bg-hover: var(--color-palette-blue-medium); - --cta-radius: 3px; - - --header-dropdown-btn-color: #263545; - --header-dropdown-bg: #fff; - --header-dropdown-bg-active: #d3dce0; - --header-dropdown-bg-hover: #e5ebed; - - --module-copy-emphasized-bg: #8091a5; - --module-copy-emphasized-color: #c3cfd5; - --module-copy-emphasized-headlines-color: #fff; - --module-copy-emphasized-cta-bg: #536171; - --module-copy-emphasized-cta-color: #fff; - - --code-bg: var(--color-bg-grey); - --code-trigger-bg: #fff; - --code-trigger-bg-active: var(--code-bg); - --code-trigger-color: var(--color-text-grey); - --code-trigger-color-active: var(--color-text-default); - --code-trigger-border-active: #c3cfd5; -} diff --git a/package.json b/package.json index 6ba4838..738611b 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,7 @@ "start:watch": "nodemon ./bin/www --ignore public/", "start": "node ./bin/www", "lint": "eslint ./app.js routes", - "format": "eslint --fix . bin --ignore public node_modules", - "styles": "postcss -c ./postcss.config.js ./assets/stylesheets/style.css -d ./public/stylesheets", - "styles:watch": "npm run styles -- -w" + "format": "eslint --fix . bin --ignore public node_modules" }, "engines": { "node": ">=8.4.0" @@ -23,7 +21,6 @@ "jstransformer-markdown-it": "^2.0.0", "marked": "^0.3.6", "morgan": "~1.7.0", - "normalize.css": "^7.0.0", "pug": "~2.0.0-beta6", "serve-favicon": "~2.3.0" }, @@ -33,14 +30,6 @@ "eslint-plugin-promise": "^3.4.2", "eslint-plugin-standard": "^2.0.1", "nodemon": "^1.12.1", - "postcss": "^6.0.12", - "postcss-atrule-bem": "^3.0.1", - "postcss-browser-reporter": "^0.5.0", - "postcss-cli": "^4.1.1", - "postcss-cssnext": "^3.0.2", - "postcss-import": "^11.0.0", - "postcss-reporter": "^5.0.0", - "postcss-url": "^7.1.2", "pug-lint": "^2.5.0" } } diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index 84bd277..0000000 --- a/postcss.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - plugins: { - 'postcss-import': {}, - 'postcss-url': {}, - 'postcss-atrule-bem': {}, - 'postcss-cssnext': {}, - 'postcss-browser-reporter': {}, - 'postcss-reporter': {} - } -} diff --git a/public b/public new file mode 160000 index 0000000..986d0fe --- /dev/null +++ b/public @@ -0,0 +1 @@ +Subproject commit 986d0fe9845449d624468d8386ce94555a5c811c diff --git a/public/fonts/roboto-bold-webfont.woff b/public/fonts/roboto-bold-webfont.woff deleted file mode 100755 index 98c3a53..0000000 Binary files a/public/fonts/roboto-bold-webfont.woff and /dev/null differ diff --git a/public/fonts/roboto-bold-webfont.woff2 b/public/fonts/roboto-bold-webfont.woff2 deleted file mode 100755 index d153f0a..0000000 Binary files a/public/fonts/roboto-bold-webfont.woff2 and /dev/null differ diff --git a/public/fonts/roboto-bolditalic-webfont.woff b/public/fonts/roboto-bolditalic-webfont.woff deleted file mode 100755 index 4038c3e..0000000 Binary files a/public/fonts/roboto-bolditalic-webfont.woff and /dev/null differ diff --git a/public/fonts/roboto-bolditalic-webfont.woff2 b/public/fonts/roboto-bolditalic-webfont.woff2 deleted file mode 100755 index c3af623..0000000 Binary files a/public/fonts/roboto-bolditalic-webfont.woff2 and /dev/null differ diff --git a/public/fonts/roboto-italic-webfont.woff b/public/fonts/roboto-italic-webfont.woff deleted file mode 100755 index 75b7ba3..0000000 Binary files a/public/fonts/roboto-italic-webfont.woff and /dev/null differ diff --git a/public/fonts/roboto-italic-webfont.woff2 b/public/fonts/roboto-italic-webfont.woff2 deleted file mode 100755 index 194f2ca..0000000 Binary files a/public/fonts/roboto-italic-webfont.woff2 and /dev/null differ diff --git a/public/fonts/roboto-medium-webfont.woff b/public/fonts/roboto-medium-webfont.woff deleted file mode 100755 index 8334a7d..0000000 Binary files a/public/fonts/roboto-medium-webfont.woff and /dev/null differ diff --git a/public/fonts/roboto-medium-webfont.woff2 b/public/fonts/roboto-medium-webfont.woff2 deleted file mode 100755 index 3ecd5b7..0000000 Binary files a/public/fonts/roboto-medium-webfont.woff2 and /dev/null differ diff --git a/public/fonts/roboto-mediumitalic-webfont.woff b/public/fonts/roboto-mediumitalic-webfont.woff deleted file mode 100755 index c57e23c..0000000 Binary files a/public/fonts/roboto-mediumitalic-webfont.woff and /dev/null differ diff --git a/public/fonts/roboto-mediumitalic-webfont.woff2 b/public/fonts/roboto-mediumitalic-webfont.woff2 deleted file mode 100755 index bb8f8e3..0000000 Binary files a/public/fonts/roboto-mediumitalic-webfont.woff2 and /dev/null differ diff --git a/public/fonts/roboto-regular-webfont.woff b/public/fonts/roboto-regular-webfont.woff deleted file mode 100755 index 92495c1..0000000 Binary files a/public/fonts/roboto-regular-webfont.woff and /dev/null differ diff --git a/public/fonts/roboto-regular-webfont.woff2 b/public/fonts/roboto-regular-webfont.woff2 deleted file mode 100755 index e8a42ba..0000000 Binary files a/public/fonts/roboto-regular-webfont.woff2 and /dev/null differ diff --git a/public/images/badge-app-store.svg b/public/images/badge-app-store.svg deleted file mode 100644 index 9f35016..0000000 --- a/public/images/badge-app-store.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/public/images/badge-google-play.svg b/public/images/badge-google-play.svg deleted file mode 100644 index c10a543..0000000 --- a/public/images/badge-google-play.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/contentful-logo.svg b/public/images/contentful-logo.svg deleted file mode 100644 index 0c9203f..0000000 --- a/public/images/contentful-logo.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/images/icon-breadcrumb.svg b/public/images/icon-breadcrumb.svg deleted file mode 100644 index eceb221..0000000 --- a/public/images/icon-breadcrumb.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/images/icon-duration.svg b/public/images/icon-duration.svg deleted file mode 100644 index fa1cf23..0000000 --- a/public/images/icon-duration.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/public/images/icon-error.svg b/public/images/icon-error.svg deleted file mode 100644 index 5cd9f5b..0000000 --- a/public/images/icon-error.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/images/icon-facebook.svg b/public/images/icon-facebook.svg deleted file mode 100644 index 7ca4776..0000000 --- a/public/images/icon-facebook.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/images/icon-github.svg b/public/images/icon-github.svg deleted file mode 100644 index 8b1c000..0000000 --- a/public/images/icon-github.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/images/icon-info.svg b/public/images/icon-info.svg deleted file mode 100644 index bd6c3dc..0000000 --- a/public/images/icon-info.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/images/icon-skill-level.svg b/public/images/icon-skill-level.svg deleted file mode 100644 index a12fbe0..0000000 --- a/public/images/icon-skill-level.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/images/icon-success.svg b/public/images/icon-success.svg deleted file mode 100644 index 5c5a410..0000000 --- a/public/images/icon-success.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/public/images/icon-twitter.svg b/public/images/icon-twitter.svg deleted file mode 100644 index bc826a4..0000000 --- a/public/images/icon-twitter.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/images/icon-viewed.svg b/public/images/icon-viewed.svg deleted file mode 100644 index f698f88..0000000 --- a/public/images/icon-viewed.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/images/logo.svg b/public/images/logo.svg deleted file mode 100644 index b37440f..0000000 --- a/public/images/logo.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - example app - - - The - - - - diff --git a/public/scripts/highlight.pack.js b/public/scripts/highlight.pack.js deleted file mode 100644 index 3dce4fa..0000000 --- a/public/scripts/highlight.pack.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! highlight.js v9.12.0 | BSD3 License | git.io/hljslicense */ -!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/&/g,"&").replace(//g,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return w(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||w(i))return i}function o(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset"}function u(e){s+=""}function c(e){("start"===e.event?o:u)(e.node)}for(var l=0,s="",f=[];e.length||r.length;){var g=i();if(s+=n(a.substring(l,g[0].offset)),l=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===l);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return s+n(a.substr(l))}function l(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map(function(n){return o(e,{v:null},n)})),e.cached_variants||e.eW&&[o(e)]||[e]}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var o={},u=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");o[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?u("keyword",a.k):x(a.k).forEach(function(e){u(e,a.k[e])}),a.k=o}a.lR=t(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]),a.c=Array.prototype.concat.apply([],a.c.map(function(e){return l("self"===e?a:e)})),a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var c=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=c.length?t(c.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function l(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function p(e,n,t,r){var a=r?"":I.classPrefix,i='',i+n+o}function h(){var e,t,r,a;if(!E.k)return n(k);for(a="",t=0,E.lR.lastIndex=0,r=E.lR.exec(k);r;)a+=n(k.substring(t,r.index)),e=l(E,r),e?(B+=e[1],a+=p(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(k);return a+n(k.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!y[E.sL])return n(k);var t=e?f(E.sL,k,!0,x[E.sL]):g(k,E.sL.length?E.sL:void 0);return E.r>0&&(B+=t.r),e&&(x[E.sL]=t.top),p(t.language,t.value,!1,!0)}function b(){L+=null!=E.sL?d():h(),k=""}function v(e){L+=e.cN?p(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(k+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?k+=n:(t.eB&&(k+=n),b(),t.rB||t.eB||(k=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?k+=n:(a.rE||a.eE||(k+=n),b(),a.eE&&(k=n));do E.cN&&(L+=C),E.skip||(B+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"")+'"');return k+=n,n.length||1}var N=w(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var R,E=i||N,x={},L="";for(R=E;R!==N;R=R.parent)R.cN&&(L=p(R.cN,"",!0)+L);var k="",B=0;try{for(var M,j,O=0;;){if(E.t.lastIndex=O,M=E.t.exec(t),!M)break;j=m(t.substring(O,M.index),M[0]),O=M.index+j}for(m(t.substr(O)),R=E;R.parent;R=R.parent)R.cN&&(L+=C);return{r:B,value:L,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function g(e,t){t=t||I.languages||x(y);var r={r:0,value:n(e)},a=r;return t.filter(w).forEach(function(n){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function p(e){return I.tabReplace||I.useBR?e.replace(M,function(e,n){return I.useBR&&"\n"===e?"
":I.tabReplace?n.replace(/\t/g,I.tabReplace):""}):e}function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function d(e){var n,t,r,o,l,s=i(e);a(s)||(I.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):n=e,l=n.textContent,r=s?f(s,l,!0):g(l),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),l)),r.value=p(r.value),e.innerHTML=r.value,e.className=h(e.className,s,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function b(e){I=o(I,e)}function v(){if(!v.called){v.called=!0;var e=document.querySelectorAll("pre code");E.forEach.call(e,d)}}function m(){addEventListener("DOMContentLoaded",v,!1),addEventListener("load",v,!1)}function N(n,t){var r=y[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function R(){return x(y)}function w(e){return e=(e||"").toLowerCase(),y[e]||y[L[e]]}var E=[],x=Object.keys,y={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="
",I={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=f,e.highlightAuto=g,e.fixMarkup=p,e.highlightBlock=d,e.configure=b,e.initHighlighting=v,e.initHighlightingOnLoad=m,e.registerLanguage=N,e.listLanguages=R,e.getLanguage=w,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("swift",function(e){var i={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},t={cN:"type",b:"\\b[A-Z][\\wÀ-ʸ']*",r:0},n=e.C("/\\*","\\*/",{c:["self"]}),r={cN:"subst",b:/\\\(/,e:"\\)",k:i,c:[]},a={cN:"number",b:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",r:0},o=e.inherit(e.QSM,{c:[r,e.BE]});return r.c=[a],{k:i,c:[o,e.CLCM,n,t,a,{cN:"function",bK:"func",e:"{",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{b://},{cN:"params",b:/\(/,e:/\)/,endsParent:!0,k:i,c:["self",a,o,e.CBCM,{b:":"}],i:/["']/}],i:/\[|%/},{cN:"class",bK:"struct protocol class extension enum",k:i,e:"\\{",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{cN:"meta",b:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{bK:"import",e:/$/,c:[e.CLCM,n]}]}});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:c,r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}});hljs.registerLanguage("python",function(e){var r={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},b={cN:"meta",b:/^(>>>|\.\.\.) /},c={cN:"subst",b:/\{/,e:/\}/,k:r,i:/#/},a={cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[b],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[b],r:10},{b:/(fr|rf|f)'''/,e:/'''/,c:[b,c]},{b:/(fr|rf|f)"""/,e:/"""/,c:[b,c]},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},{b:/(fr|rf|f)'/,e:/'/,c:[c]},{b:/(fr|rf|f)"/,e:/"/,c:[c]},e.ASM,e.QSM]},s={cN:"number",r:0,v:[{b:e.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:e.CNR+"[lLjJ]?"}]},i={cN:"params",b:/\(/,e:/\)/,c:["self",b,s,a]};return c.c=[a,s,b],{aliases:["py","gyp"],k:r,i:/(<\/|->|\?)|=>/,c:[b,s,a,e.HCM,{v:[{cN:"function",bK:"def"},{cN:"class",bK:"class"}],e:/:/,i:/[${=;\n,]/,c:[e.UTM,i,{b:/->/,eW:!0,k:"None"}]},{cN:"meta",b:/^[\t ]*@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("objectivec",function(e){var t={cN:"built_in",b:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},_={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},i=/[a-zA-Z@][a-zA-Z0-9_]*/,n="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],k:_,l:i,i:""}]}]},{cN:"class",b:"("+n.split(" ").join("|")+")\\b",e:"({|$)",eE:!0,k:n,l:i,c:[e.UTM]},{b:"\\."+e.UIR,r:0}]}});hljs.registerLanguage("javascript",function(e){var r="[A-Za-z$_][0-9A-Za-z$_]*",t={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:t,c:[]},c={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,c,a,e.RM];var s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:t,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,c,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:r+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:r,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+r+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:r},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,c:s}]}]},{b://,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:r}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor",e:/\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage("xml",function(s){var e="[A-Za-z0-9\\._:-]+",t={eW:!0,i:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"|$)",e:">",k:{name:"style"},c:[t],starts:{e:"",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"|$)",e:">",k:{name:"script"},c:[t],starts:{e:"",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}});hljs.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"section",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"quote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"^```w*s*$",e:"^```s*$"},{b:"`.+?`"},{b:"^( {4}| )",e:"$",r:0}]},{b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"string",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"symbol",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:/^\[[^\n]+\]:/,rB:!0,c:[{cN:"symbol",b:/\[/,e:/\]/,eB:!0,eE:!0},{cN:"link",b:/:\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage("cs",function(e){var i={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long nameof object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let on orderby partial remove select set value var where yield",literal:"null false true"},t={cN:"string",b:'@"',e:'"',c:[{b:'""'}]},r=e.inherit(t,{i:/\n/}),a={cN:"subst",b:"{",e:"}",k:i},c=e.inherit(a,{i:/\n/}),n={cN:"string",b:/\$"/,e:'"',i:/\n/,c:[{b:"{{"},{b:"}}"},e.BE,c]},s={cN:"string",b:/\$@"/,e:'"',c:[{b:"{{"},{b:"}}"},{b:'""'},a]},o=e.inherit(s,{i:/\n/,c:[{b:"{{"},{b:"}}"},{b:'""'},c]});a.c=[s,n,t,e.ASM,e.QSM,e.CNM,e.CBCM],c.c=[o,n,r,e.ASM,e.QSM,e.CNM,e.inherit(e.CBCM,{i:/\n/})];var l={v:[s,n,t,e.ASM,e.QSM]},b=e.IR+"(<"+e.IR+"(\\s*,\\s*"+e.IR+")*>)?(\\[\\])?";return{aliases:["csharp"],k:i,i:/::/,c:[e.C("///","$",{rB:!0,c:[{cN:"doctag",v:[{b:"///",r:0},{b:""},{b:""}]}]}),e.CLCM,e.CBCM,{cN:"meta",b:"#",e:"$",k:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},l,e.CNM,{bK:"class interface",e:/[{;=]/,i:/[^\s:]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:"namespace",e:/[{;=]/,i:/[^\s:]/,c:[e.inherit(e.TM,{b:"[a-zA-Z](\\.?\\w)*"}),e.CLCM,e.CBCM]},{cN:"meta",b:"^\\s*\\[",eB:!0,e:"\\]",eE:!0,c:[{cN:"meta-string",b:/"/,e:/"/}]},{bK:"new return throw await else",r:0},{cN:"function",b:"("+b+"\\s+)+"+e.IR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:i,c:[{b:e.IR+"\\s*\\(",rB:!0,c:[e.TM],r:0},{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,k:i,r:0,c:[l,e.CNM,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage("json",function(e){var i={literal:"true false null"},n=[e.QSM,e.CNM],r={e:",",eW:!0,eE:!0,c:n,k:i},t={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(r,{b:/:/})],i:"\\S"},c={b:"\\[",e:"\\]",c:[e.inherit(r)],i:"\\S"};return n.splice(n.length,0,t,c),{c:n,k:i,i:"\\S"}});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/\b-?[a-z\._]+\b/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,s,a,t]}});hljs.registerLanguage("shell",function(s){return{aliases:["console"],c:[{cN:"meta",b:"^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#]",starts:{e:"$",sL:"bash"}}]}});hljs.registerLanguage("java",function(e){var a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",t=a+"(<"+a+"(\\s*,\\s*"+a+")*>)?",r="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s="\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",c={cN:"number",b:s,r:0};return{aliases:["jsp"],k:r,i:/<\/|#/,c:[e.C("/\\*\\*","\\*/",{r:0,c:[{b:/\w+@/,r:0},{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:"class",bK:"class interface",e:/[{;=]/,eE:!0,k:"class interface",i:/[:"\[\]]/,c:[{bK:"extends implements"},e.UTM]},{bK:"new throw return else",r:0},{cN:"function",b:"("+t+"\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:r,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:r,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},c,{cN:"meta",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("php",function(e){var c={b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},i={cN:"meta",b:/<\?(php)?|\?>/},t={cN:"string",c:[e.BE,i],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},a={v:[e.BNM,e.CNM]};return{aliases:["php3","php4","php5","php6"],cI:!0,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[e.HCM,e.C("//","$",{c:[i]}),e.C("/\\*","\\*/",{c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.C("__halt_compiler.+?;",!1,{eW:!0,k:"__halt_compiler",l:e.UIR}),{cN:"string",b:/<<<['"]?\w+['"]?$/,e:/^\w+;?$/,c:[e.BE,{cN:"subst",v:[{b:/\$\w+/},{b:/\{\$/,e:/\}/}]}]},i,{cN:"keyword",b:/\$this\b/},c,{b:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{cN:"function",bK:"function",e:/[;{]/,eE:!0,i:"\\$|\\[|%",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",c,e.CBCM,t,a]}]},{cN:"class",bK:"class interface",e:"{",eE:!0,i:/[:\(\$"]/,c:[{bK:"extends implements"},e.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[e.UTM]},{bK:"use",e:";",c:[e.UTM]},{b:"=>"},t,a]}});hljs.registerLanguage("ruby",function(e){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},c={cN:"doctag",b:"@[A-Za-z]+"},a={b:"#<",e:">"},s=[e.C("#","$",{c:[c]}),e.C("^\\=begin","^\\=end",{c:[c],r:10}),e.C("^__END__","\\n$")],n={cN:"subst",b:"#\\{",e:"}",k:r},t={cN:"string",c:[e.BE,n],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{b:/<<(-?)\w+$/,e:/^\s*\w+$/}]},i={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},d=[t,a,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+e.IR+"::)?"+e.IR}]}].concat(s)},{cN:"function",bK:"def",e:"$|;",c:[e.inherit(e.TM,{b:b}),i].concat(s)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[t,{b:b}],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{cN:"params",b:/\|/,e:/\|/,k:r},{b:"("+e.RSR+"|unless)\\s*",k:"unless",c:[a,{cN:"regexp",c:[e.BE,n],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(s),r:0}].concat(s);n.c=d,i.c=d;var l="[>?]>",o="[\\w#]+\\(\\w+\\):\\d+:\\d+>",u="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",w=[{b:/^\s*=>/,starts:{e:"$",c:d}},{cN:"meta",b:"^("+l+"|"+o+"|"+u+")",starts:{e:"$",c:d}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:r,i:/\/\*/,c:s.concat(w).concat(d)}}); \ No newline at end of file diff --git a/public/scripts/hoverintent.min.js b/public/scripts/hoverintent.min.js deleted file mode 100755 index 4b58e5b..0000000 --- a/public/scripts/hoverintent.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.hoverintent=e()}}(function(){return function e(t,n,o){function r(u,f){if(!n[u]){if(!t[u]){var s="function"==typeof require&&require;if(!f&&s)return s(u,!0);if(i)return i(u,!0);var c=new Error("Cannot find module '"+u+"'");throw c.code="MODULE_NOT_FOUND",c}var a=n[u]={exports:{}};t[u][0].call(a.exports,function(e){var n=t[u][1][e];return r(n||e)},a,a.exports,e,t,n,o)}return n[u].exports}for(var i="function"==typeof require&&require,u=0;u { - // Header dropdowns - const controls = document.querySelectorAll('.header__controls_group') - - controls.forEach((control) => { - const ref = control.querySelector('.header__controls_label') - const dropdownRef = control.querySelector('.header__controls_dropdown') - - let popper = null - - hoverintent(control, null, () => { - if (popper) { - dropdownRef.classList.remove('header__controls_dropdown--active') - window.setTimeout(popper.destroy, 500) - } - }).options({ - sensitivity: 10, - interval: 150, - timeout: 300 - }) - - ref.addEventListener('click', (e) => { - dropdownRef.classList.add('header__controls_dropdown--active') - popper = new Popper( - e.target, - dropdownRef, - { - // popper options here - } - ) - }) - }) - // const apiRef = - // const apiDropdownRef = document.querySelector('#control-api .header__controls_dropdown') - - // const apiTooltip = - - // Init highlight.js - hljs.initHighlightingOnLoad() - - // apply textFit to module headlines - textFit(document.getElementsByClassName('module-higlighted-course__title'), {multiLine: false}) - - // Lesson code switcher logic - const modules = Array.from(document.getElementsByClassName('lesson-module-code')) - - modules.forEach((module) => { - const triggers = Array.from(module.getElementsByClassName('lesson-module-code__trigger')) - const codes = Array.from(module.getElementsByClassName('lesson-module-code__code')) - - const handleTriggerClick = (e) => { - const target = e.target.getAttribute('data-target') - - // Mark correct trigger as active - triggers.forEach((trigger) => { - trigger.classList.remove('lesson-module-code__trigger--active') - }) - e.target.classList.add('lesson-module-code__trigger--active') - - // Show correct code fields - codes.forEach((code) => { - code.classList.remove('lesson-module-code__code--active') - if (code.id === target) { - code.classList.add('lesson-module-code__code--active') - } - }) - } - - // Attach click handler to triggers - triggers.forEach((trigger) => { - trigger.onclick = handleTriggerClick - }) - }) -}) - diff --git a/public/scripts/popper.min.js b/public/scripts/popper.min.js deleted file mode 100644 index 4553f65..0000000 --- a/public/scripts/popper.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/* - Copyright (C) Federico Zivolo 2017 - Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). - */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var l=a.commonAncestorContainer;if(e!==l&&t!==l||i.contains(n))return p(l)?l:r(l);var f=s(e);return f.host?d(f.host,t):d(e,s(t).host)}function a(e){var t=1=o.clientWidth&&i>=o.clientHeight}),l=0i[e]&&!t.escapeWithReference&&(n=V(p[o],i[e]-('right'===e?p.width:p.height))),se({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=de({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=_,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var n=e.placement.split('-')[0],r=e.offsets,p=r.popper,s=r.reference,d=-1!==['left','right'].indexOf(n),a=d?'height':'width',l=d?'Top':'Left',f=l.toLowerCase(),m=d?'left':'top',c=d?'bottom':'right',g=O(i)[a];s[c]-gp[c]&&(e.offsets.popper[f]+=s[f]+g-p[c]);var u=s[f]+s[a]/2-g/2,b=t(e.instance.popper,'margin'+l).replace('px',''),y=u-h(e.offsets.popper)[f]-b;return y=X(V(p[a]-g,y),0),e.arrowElement=i,e.offsets.arrow={},e.offsets.arrow[f]=Math.round(y),e.offsets.arrow[m]='',e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=w(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=L(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[i,n];break;case fe.CLOCKWISE:p=K(i);break;case fe.COUNTERCLOCKWISE:p=K(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=L(i);var a=e.offsets.popper,l=e.offsets.reference,f=_,m='left'===i&&f(a.right)>f(l.left)||'right'===i&&f(a.left)f(l.top)||'bottom'===i&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===i&&c||'right'===i&&h||'top'===i&&g||'bottom'===i&&u,y=-1!==['top','bottom'].indexOf(i),w=!!t.flipVariations&&(y&&'start'===r&&c||y&&'end'===r&&h||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),w&&(r=j(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=de({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=N(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[o]-(s?n[p?'width':'height']:0),e.placement=L(t),e.offsets.popper=h(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right=parseInt(window.getComputedStyle(innerSpan)["font-size"],10)*2){multiLine=true}if(!multiLine){el.style["white-space"]="nowrap"}low=settings.minFontSize+1;high=settings.maxFontSize+1;while(low<=high){mid=parseInt((low+high)/2,10);innerSpan.style.fontSize=mid+"px";if(innerSpan.scrollWidth<=originalWidth&&(settings.widthOnly||innerSpan.scrollHeight<=originalHeight)){low=mid+1}else{high=mid-1}}innerSpan.style.fontSize=mid-1+"px";if(settings.alignVert){addStyleSheet();var height=innerSpan.scrollHeight;if(window.getComputedStyle(el)["position"]==="static"){el.style["position"]="relative"}if(!hasClass(innerSpan,"textFitAlignVert")){innerSpan.className=innerSpan.className+" textFitAlignVert"}innerSpan.style["height"]=height+"px";if(settings.alignVertWithFlexbox&&!hasClass(el,"textFitAlignVertFlex")){el.className=el.className+" textFitAlignVertFlex"}}}function innerHeight(el){var style=window.getComputedStyle(el,null);return el.clientHeight-parseInt(style.getPropertyValue("padding-top"),10)-parseInt(style.getPropertyValue("padding-bottom"),10)}function innerWidth(el){var style=window.getComputedStyle(el,null);return el.clientWidth-parseInt(style.getPropertyValue("padding-left"),10)-parseInt(style.getPropertyValue("padding-right"),10)}function isElement(o){return typeof HTMLElement==="object"?o instanceof HTMLElement:o&&typeof o==="object"&&o!==null&&o.nodeType===1&&typeof o.nodeName==="string"}function hasClass(element,cls){return(" "+element.className+" ").indexOf(" "+cls+" ")>-1}function addStyleSheet(){if(document.getElementById("textFitStyleSheet"))return;var style=[".textFitAlignVert{","position: absolute;","top: 0; right: 0; bottom: 0; left: 0;","margin: auto;","display: flex;","justify-content: center;","flex-direction: column;","}",".textFitAlignVertFlex{","display: flex;","}",".textFitAlignVertFlex .textFitAlignVert{","position: static;","}"].join("");var css=document.createElement("style");css.type="text/css";css.id="textFitStyleSheet";css.innerHTML=style;document.body.appendChild(css)}}); \ No newline at end of file diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css deleted file mode 100644 index 18ef54f..0000000 --- a/public/stylesheets/style.css +++ /dev/null @@ -1,2322 +0,0 @@ -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in - * IE on Windows Phone and in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers (opinionated). - */ - -body { - margin: 0; -} - -/** - * Add the correct display in IE 9-. - */ - -article, -aside, -footer, -header, -nav, -section { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - * 1. Add the correct display in IE. - */ - -figcaption, -figure, -main { /* 1 */ - display: block; -} - -/** - * Add the correct margin in IE 8. - */ - -figure { - margin: 1em 40px; -} - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - -webkit-box-sizing: content-box; - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * 1. Remove the gray background on active links in IE 10. - * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. - */ - -a { - background-color: transparent; /* 1 */ - -webkit-text-decoration-skip: objects; /* 2 */ -} - -/** - * 1. Remove the bottom border in Chrome 57- and Firefox 39-. - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; /* 2 */ -} - -/** - * Prevent the duplicate application of `bolder` by the next rule in Safari 6. - */ - -b, -strong { - font-weight: inherit; -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font style in Android 4.3-. - */ - -dfn { - font-style: italic; -} - -/** - * Add the correct background and color in IE 9-. - */ - -mark { - background-color: #ff0; - color: #000; -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - */ - -audio, -video { - display: inline-block; -} - -/** - * Add the correct display in iOS 4-7. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Remove the border on images inside links in IE 10-. - */ - -img { - border-style: none; -} - -/** - * Hide the overflow in IE. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers (opinionated). - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: sans-serif; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` - * controls in Android 4. - * 2. Correct the inability to style clickable types in iOS and Safari. - */ - -button, -html [type="button"], /* 1 */ -[type="reset"], -[type="submit"] { - -webkit-appearance: button; /* 2 */ -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - -webkit-box-sizing: border-box; - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * 1. Add the correct display in IE 9-. - * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Remove the default vertical scrollbar in IE. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10-. - * 2. Remove the padding in IE 10-. - */ - -[type="checkbox"], -[type="radio"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-cancel-button, -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in IE 9-. - * 1. Add the correct display in Edge, IE, and Firefox. - */ - -details, /* 1 */ -menu { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Scripting - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - */ - -canvas { - display: inline-block; -} - -/** - * Add the correct display in IE. - */ - -template { - display: none; -} - -/* Hidden - ========================================================================== */ - -/** - * Add the correct display in IE 10-. - */ - -[hidden] { - display: none; -} - -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-regular-webfont.woff2') format('woff2'), - url('/fonts/roboto-regular-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-italic-webfont.woff2') format('woff2'), - url('/fonts/roboto-italic-webfont.woff') format('woff'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-bold-webfont.woff2') format('woff2'), - url('/fonts/roboto-bold-webfont.woff') format('woff'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'roboto'; - src: url('/fonts/roboto-bolditalic-webfont.woff2') format('woff2'), - url('/fonts/roboto-bolditalic-webfont.woff') format('woff'); - font-weight: bold; - font-style: italic; -} - -@font-face { - font-family: 'robotomedium'; - src: url('/fonts/roboto-medium-webfont.woff2') format('woff2'), - url('/fonts/roboto-medium-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'robotomedium'; - src: url('/fonts/roboto-mediumitalic-webfont.woff2') format('woff2'), - url('/fonts/roboto-mediumitalic-webfont.woff') format('woff'); - font-weight: normal; - font-style: italic; -} - -h1, h2, h3, h4, h5, h6 { - font-family: 'robotomedium', Helvetica, sans-serif; - font-weight: normal; - line-height: 1.31; - color: #2a3039 -} - -h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child { - margin-top: 0; -} - -a { - color: inherit; - text-decoration: none; -} - -p a, label a, .form-item a { - color: #5c9fef; - text-decoration: underline; -} - -p a:hover, label a:hover, .form-item a:hover { - color: #3c80cf; - text-decoration: underline; -} - -p:first-child { - margin-top: 0; -} - -p:last-child { - margin-bottom: 0; -} - -/* Based on FormHack v1.2.0 (formhack.io) */ - -/* But with some custom modifications */ - -/* Config ----------------------------- */ - -:root { - - /* Font */ - - /* Borders */ - - /* Inputs, Textareas, Select, Option */ - - /* Select Vendor Styling */ /* comment this out to maintain vendor styling */ - - - /* Buttons & Input Submits */ - - /* Layout */ /* change to "10px auto" to center */ -} - -/* Global Reset Styles ------------------ */ - -input, -textarea, -select, -option, -optgroup, -button, -legend, -fieldset, -.cta { - -webkit-box-sizing: border-box; - box-sizing: border-box; - outline: none; - - font-family: 'Raleway', sans-serif; - font-size: 16px; - color: #536171; - vertical-align: top; - - display: block; - margin: 32px 0; - text-align: left; -} - -datalist { - font-family: 'Raleway', sans-serif; - font-size: 16px; -} - -label { - display: block; - margin: 32px 0 0 0; - text-align: left; - font-weight: bold; - font-size: 0.875em -} - -label + input { - margin-top: 8px; -} - -/* Input & Textarea ------------------ */ - -/* Fields with standard width */ - -input[type="text"], -input[type="email"], -input[type="password"], -input[type="search"], -input[type="color"], -input[type="date"], -input[type="datetime-local"], -input[type="month"], -input[type="number"], -input[type="tel"], -input[type="time"], -input[type="url"], -input[type="week"], -input[list], -input[type="file"], -/* select, */ -textarea { - width: 100%; - max-width: 100%; - padding: 8px; - background-color: #fff; - - border-radius: 5px; - border-width: 1px; - border-style: solid; - border-color: #d3dce0; -} - -/* Fields with standard height */ - -input[type="text"], -input[type="email"], -input[type="password"], -input[type="search"], -input[type="color"], -input[type="date"], -input[type="datetime-local"], -input[type="month"], -input[type="number"], -input[type="tel"], -input[type="time"], -input[type="url"], -input[type="week"], -input[list] { - height: 40px; - line-height: 40px; - -webkit-appearance: none; -} - -/* Other */ - -textarea { - -webkit-appearance: none; - overflow: auto; -} - -input[type="range"] { - height: 40px; - width: 100%; - max-width: 100%; -} - -input[type="file"] { - min-height: 40px; -} - -input[type="search"] { - height: 40px; - -webkit-appearance: none; -} - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -input[type="checkbox"], -input[type="radio"] { - display: inline-block; - vertical-align: middle; -} - -/* For checkbox and radio to be centered, need to wrap the input and label in a span - -/* .checkbox-container { -/* display: block; -/* text-align: center; -/* } - - -/* Fieldset ------------------ */ - -fieldset { - padding: 0; - border: 0; -} - -legend { - padding: 0; - font-weight: inherit; -} - -/* Buttons, Input Type Submit/Reset ------------------ */ - -button, -input[type="button"], -input[type="submit"], -input[type="reset"], -input[type="image"], -.cta { - display: inline-block; - height: 40px; - min-width: 200px; - background-color: #5c9fef; - padding: 0 2em; - cursor: pointer; - - line-height: 40px; - color: #fff; - font-weight: normal; - - -webkit-appearance: none; - -moz-appearance: none; - - border: none; - border-radius: 3px; - text-align: center; -} - -input[type="image"] { - text-align: center; - padding: 8px; -} - -/* States ------------------ */ - -input[disabled], -textarea[disabled], -select[disabled], -option[disabled], -button[disabled] { - cursor: not-allowed; -} - -input:focus, -textarea:focus, -select:focus, -option:focus { - border-color: #5c9fef; - color: #536171; -} - -button:focus, -.cta:focus { - background-color: #3c80cf; - color: #fff; -} - -input[type="checkbox"]:focus, -input[type="radio"]:focus { - outline: #5c9fef solid 2px; -} - -button:hover, -input[type="button"]:hover, -input[type="submit"]:hover, -input[type="reset"]:hover, -button:focus, -input[type="button"]:focus, -input[type="submit"]:focus, -input[type="reset"]:focus, -.cta:hover, -.cta:focus { - background-color: #3c80cf; - color: #fff; -} - -.form-item + .form-item { - margin-top: 32px; -} - -.form-item input { - margin: 0 0 8px; -} - -.form-item__help-text { - font-size: 0.875em; - color: #8091a5; -} - -.form-item__error-message { - font-size: 0.875em; - color: #cd3f39; -} - -.form-item__error-message:before { - content: ''; - display: inline-block; - background: url('/images/icon-error.svg') no-repeat left center; - background-size: contain; - width: 12px; - height: 12px; - padding-right: 0.3em; -} - -.status-block { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - margin: 32px 0; - padding: 16px; - border-radius: 4px; - - font-size: 0.875em; -} - -.status-block--success { - background: #f4fffb; -} - -.status-block--error { - background: #fbe3e2; -} - -.status-block__icon { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 24px; - height: 24px; - margin-right: 8px; -} - -.status-block__content { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; -} - -.status-block__title { - font-weight: bold; -} - -.status-block__message { - color: #536171; -} - -.layout-centered { - max-width: 980px; - margin: 0 auto; - padding: 0 2vw; -} - -.layout-centered-small { - max-width: 620px; - margin: 0 auto; - padding: 0 2vw; -} - -.layout-no-sidebar { - padding: 0 16px; - max-width: 980px; - margin: 0 auto; - width: 100%; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -@media (min-width: 700px) { - - .layout-no-sidebar { - padding-left: 260px; - } -} - -.layout-sidebar { - padding: 0 16px; - max-width: 980px; - margin: 0 auto; -} - -@media (min-width: 700px) { - - .layout-sidebar { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - } -} - -@media (min-width: 700px) { - - .layout-sidebar__sidebar { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 228px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px 1px rgba(0, 0, 0, .1); - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, .1); - } -} - -.layout-sidebar__sidebar-header { - padding: 16px 32px; - border-bottom: 1px solid #eeeeee; -} - -.layout-sidebar__sidebar-title { - font-family: 'robotomedium', Helvetica, sans-serif; - font-size: 1.25em; - font-weight: normal; - margin: 0; -} - -.layout-sidebar__sidebar-content { - background: #f7f9fa; - padding: 16px; -} - -.layout-sidebar__content { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; -} - -@media (min-width: 700px) { - - .layout-sidebar__content { - -webkit-box-flex: 0; - -ms-flex: 0 1 732px; - flex: 0 1 732px; - width: 100%; - -webkit-box-sizing: border-box; - box-sizing: border-box; - margin-left: 32px; - } -} - -.layout-sidebar__content > * { - max-width: 732px; - width: 100%; -} - -.grid-list { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; -} - -@media (min-width: 700px) { - - .grid-list { - -webkit-box-flex: 0; - -ms-flex: 0 0 calc(50% - 32px); - flex: 0 0 calc(50% - 32px); - margin: 0 -16px; - } -} - -.grid-list__item { - -webkit-box-flex: 0; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - margin-bottom: 32px; -} - -@media (min-width: 700px) { - - .grid-list__item { - -webkit-box-sizing: border-box; - box-sizing: border-box; - -webkit-box-flex: 0; - -ms-flex: 0 0 calc(50% - 32px); - flex: 0 0 calc(50% - 32px); - margin: 0 16px 32px; - } -} - -.header { - margin-bottom: 24px; -} - -@media (min-width: 700px) { - - .header { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - } -} - -.header__upper-wrapper { - background: #3072be; - padding: 8px 0; - color: #abc6e5; -} - -.header__upper { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - - font-size: 0.8em; -} - -.header__upper-first { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} - -@media (min-width: 700px) { - - .header__upper-first { - -webkit-box-flex: 0; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - margin-bottom: 0; - } -} - -.header__upper-second { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} - -@media (min-width: 700px) { - - .header__upper-second { - -webkit-box-flex: 0; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - } -} - -.header__upper-link { - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} - -.header__upper-copy { - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - margin: 0 0 8px; -} - -@media (min-width: 700px) { - - .header__upper-copy { - margin: 0 16px 0 0; - } -} - -.header__upper-icon { - display: inline-block; - width: 20px; - height: 20px; - margin-right: 8px; -} - -.header__lower-wrapper {} - -.header__lower { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - padding: 16px 0 8px; - border-bottom: 1px solid #e5ebed; -} - -.header__title { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - font-family: 'roboto', Helvetica, sans-serif; - letter-spacing: 3px; - text-transform: uppercase; - color: #fff; -} - -.header__title img { - display: inline-block; - width: 24px; - height: auto; - margin-right: 8px; -} - -@media (min-width: 700px) { - - .header__title { - margin: 0 16px 0 0; - } -} - -.header__logo { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 0; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; -} - -@media (min-width: 700px) { - - .header__logo { - -webkit-box-flex: 0; - -ms-flex: 0 0 200px; - flex: 0 0 200px; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: start; - } -} - -.header__logo img { - width: 100%; - height: auto; - max-width: 169px; -} - -.header__controls { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -ms-flex-pack: distribute; - justify-content: space-around; - color: #fff; -} - -@media (min-width: 700px) { - - .header__controls { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - } -} - -.header__controls_group { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - position: relative; - - display: -webkit-box; - - display: -ms-flexbox; - - display: flex; - margin: 0 0 16px; - padding: 2px 16px; - - border: none; - background: #3c80cf; - border-radius: 4px; - color: inherit; -} - -.header__controls_group:last-child { - margin: 0; -} - -@media (min-width: 700px) { - - .header__controls_group { - margin: 0 24px 0 0; - } -} - -.header__controls_label { - position: relative; - z-index: 1; - cursor: pointer; -} - -.header__controls_dropdown { - position: absolute; - z-index: 2; - -webkit-box-sizing: border-box; - box-sizing: border-box; - - width: 260px; - max-width: 90vw; - margin: 12px 0 0; - - opacity: 0; - background: #fff; - border-radius: 2px; - -webkit-box-shadow: 0 1px 3px 1px rgba(0, 0, 0, .1); - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, .1); - - -webkit-transition: 0.3s opacity ease; - - transition: 0.3s opacity ease; - pointer-events: none; -} - -.header__controls_dropdown--active { - opacity: 1; - pointer-events: all; -} - -.header__controls_dropdown--active:before { - content: ''; - position: absolute; - left: 50%; - top: -5px; - width: 10px; - height: 10px; - background-color: inherit; - -webkit-transform: translateX(-50%) rotate(45deg); - transform: translateX(-50%) rotate(45deg); -} - -.header__controls_help_text { - padding: 16px; - color: #8091a5; -} - -.header__controls_button { - -webkit-box-sizing: border-box; - box-sizing: border-box; - height: auto; - width: 100%; - margin: 0; - - border-radius: 0; - background: #fff; - - color: #263545; - font-size: 1em; -} - -.header__controls_button:hover { - background: #e5ebed; - color: #263545; -} - -.header__controls_button--active { - background: #d3dce0; -} - -.footer { - padding: 32px 0; -} - -.footer p { - margin: 0; -} - -.footer__upper { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - min-height: 80px; - - border-bottom: 1px solid #e5ebed; -} - -.footer__upper > * { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} - -.footer__navigation { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; -} - -.footer__apps { - -webkit-box-flex: 1; - -ms-flex: 1 0 auto; - flex: 1 0 auto; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; -} - -@media (min-width: 700px) { - - .footer__apps { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - } -} - -.footer__apps a { - display: inline-block; - width: 138px; -} - -.footer__apps a + a { - margin-left: 8px; -} - -.footer__apps a img { - width: 100%; - height: auto; -} - -.footer__lower { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - min-height: 80px; -} - -.footer__disclaimer { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} - -.footer__disclaimer-logo { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 24px; - height: 27px; - margin-right: 16px; -} - -.footer__disclaimer-text { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - - color: #a9b9c0; - font-size: 0.75em; - line-height: 1.5; -} - -.footer__social { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - padding: 0 0 0 32px; -} - -.footer__social a + a { - margin-left: 16px; -} - -.footer__social img { - width: 24px; - height: auto; -} - -.table-of-contents {} - -.table-of-contents__list { - list-style: none; - margin: 0; - padding: 0; - padding-left: 32px; -} - -.table-of-contents__item { - margin: 0 0 8px; - padding: 0; - font-size: 0.9em; - line-height: 1.8; -} - -.table-of-contents__link { - display: block; - color: #8091a5; -} - -.table-of-contents__link:hover, - .table-of-contents__link.active { - color: #536171; -} - -.table-of-contents__link.active { - position: relative; - font-family: 'robotomedium', Helvetica, sans-serif; -} - -.table-of-contents__link.active:before, - .table-of-contents__link.active:after { - position: absolute; - top: 0; -} - -.table-of-contents__link.active:before { - content: ''; - left: -44px; - bottom: 0; - width: 3px; - background: #536171; -} - -.table-of-contents__link.visited { - position:relative; -} - -.table-of-contents__link.visited:before, - .table-of-contents__link.visited:after { - position: absolute; - top: 0; -} - -.table-of-contents__link.visited:after { - content: ''; - display: block; - width: 16px; - height: 16px; - top: 50%; - left: -32px; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); - background: url('/images/icon-viewed.svg') no-repeat center center; - background-size: contain; -} - -.sidebar-menu {} - -.sidebar-menu__list { - list-style: none; - margin: 0; - padding: 0; -} - -.sidebar-menu__item { - margin: 0 0 16px; - padding: 0; - font-size: 0.9em; - line-height: 1.8; -} - -.sidebar-menu__link { - display: block; - color: #8091a5; -} - -.sidebar-menu__link:hover, - .sidebar-menu__link.active { - color: #536171; -} - -.sidebar-menu__link.active { - font-family: 'robotomedium', Helvetica, sans-serif; -} - -.main-navigation ul { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - list-style: none; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - margin: 0; - padding: 0; -} - -@media (min-width: 700px) { - - .main-navigation ul { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - } -} - -.main-navigation ul li { - margin: 0; -} - -.main-navigation ul li + li { - margin-left: 8px; -} - -.main-navigation ul li a { - display: block; - text-transform: uppercase; - font-weight: bold; - padding: 0.7em 1em; - color: #8091a5; - border-radius: 4px; -} - -.main-navigation ul li a.active, - .main-navigation ul li a:hover { - background: #f7f9fa; -} - -.main-navigation ul li a.active { - color: #536171; -} - -.breadcrumb { - margin-bottom: 8px; - - font-size: 0.875em; -} - -.breadcrumb ul { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - list-style: none; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin: 0; - padding: 0; -} - -.breadcrumb ul li { - margin: 0; -} - -.breadcrumb ul li:after { - content: ''; - display: inline-block; - background: url('/images/icon-breadcrumb.svg'); - background-size: contain; - background-position: center center; - background-repeat: no-repeat; - width: 4px; - height: 8px; - padding: 0 8px; -} - -.breadcrumb ul li:last-child:after { - display: none; -} - -.breadcrumb ul li a { - display: inline-block; - text-transform: capitalize; -} - -.breadcrumb ul li a:hover { - color: #3c80cf; -} - -body { - background-color: #fff; - color: #536171; - font-family: 'roboto', Helvetica, sans-serif; - font-size: 16px; - font-size: 1rem; - line-height: 1.5em; -} - -.main { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - min-height: 100vh; -} - -.main__header { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; -} - -.main__content { - -webkit-box-flex: 1; - -ms-flex: 1 0 auto; - flex: 1 0 auto; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; -} - -.main__footer { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; -} - -/* - -github.com style (c) Vasily Polovnyov - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #333; - background: #f8f8f8; -} - -.hljs-comment, -.hljs-quote { - color: #998; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-subst { - color: #333; - font-weight: bold; -} - -.hljs-number, -.hljs-literal, -.hljs-variable, -.hljs-template-variable, -.hljs-tag .hljs-attr { - color: #008080; -} - -.hljs-string, -.hljs-doctag { - color: #d14; -} - -.hljs-title, -.hljs-section, -.hljs-selector-id { - color: #900; - font-weight: bold; -} - -.hljs-subst { - font-weight: normal; -} - -.hljs-type, -.hljs-class .hljs-title { - color: #458; - font-weight: bold; -} - -.hljs-tag, -.hljs-name, -.hljs-attribute { - color: #000080; - font-weight: normal; -} - -.hljs-regexp, -.hljs-link { - color: #009926; -} - -.hljs-symbol, -.hljs-bullet { - color: #990073; -} - -.hljs-built_in, -.hljs-builtin-name { - color: #0086b3; -} - -.hljs-meta { - color: #999; - font-weight: bold; -} - -.hljs-deletion { - background: #fdd; -} - -.hljs-addition { - background: #dfd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.course-card { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - padding: 32px; - - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px 1px rgba(0, 0, 0, .1); - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, .1); -} - -.course-card__categories { - -webkit-box-flex: 0; - -ms-flex: 0 0 1.5em; - flex: 0 0 1.5em; - margin-bottom: 16px; - height: 1.5em; -} - -.course-card__category { - display: inline-block; - color: #8091a5; - font-size: 0.75em; - font-family: 'robotomedium', Helvetica, sans-serif; -} - -.course-card__category:after { - content: ' • '; - display: inline-block; - padding: 0 0.5em; -} - -.course-card__category:last-child:after { - display: none; -} - -.course-card__category-link { - display: inline-block; - letter-spacing: 2px; -} - -.course-card__title { - -webkit-box-flex: 0; - -ms-flex: 0 1 15vh; - flex: 0 1 15vh; - max-height: 120px; - margin: 0; - overflow: hidden; - - padding-bottom: 16px; - margin-bottom: 16px; - border-bottom: 1px solid #e5ebed; - - font-family: 'robotomedium', Helvetica, sans-serif; - font-weight: normal; - font-size: 1.625em; - line-height: 1.38; -} - -.course-card__description { - -webkit-box-flex: 0; - -ms-flex: 0 1 15vh; - flex: 0 1 15vh; - max-height: 120px; - overflow: hidden; - margin: 0 0 32px; - - line-height: 1.63; - color: #536171; -} - -.course-card__link-wrapper { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; -} - -.course-card__link { - display: inline-block; - padding-bottom: 0.3em; - border-bottom: 1px solid #5c9fef; - text-transform: uppercase; - color: #5c9fef; - font-size: 0.75em; - line-height: 2.17; - letter-spacing: 2px; -} - -.course-card__link:hover { - color: #3c80cf; - border-bottom-color: #3c80cf; -} - -.course {} - -.course__title { - margin-bottom: 32px; -} - -.course__overview { - font-family: 'robotomedium', Helvetica, sans-serif; -} - -@media (min-width: 700px) { - - .course__overview { - float: right; - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px 1px rgba(0, 0, 0, .1); - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, .1); - width: 228px; - margin: 0 0 32px 32px; - } -} - -.course__overview-title { - border-bottom: 1px solid #eeeeee; - padding: 16px 0; - margin: 0; - line-height: 1.31; - font-weight: normal; - text-transform: uppercase; - text-align: center; -} - -.course__overview-item { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - padding: 16px; - border-bottom: 1px solid #eeeeee; - - line-height: 1.54; - font-size: 0.8em; -} - -.course__overview-icon { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 24px; - height: 24px; - padding-right: 16px; -} - -.course__overview-value { - -webkit-box-flex: 1; - -ms-flex: 1 0 auto; - flex: 1 0 auto; -} - -.course__overview-cta-wrapper { - padding: 16px 0; - text-align: center; -} - -.course__overview-cta { - margin: 0; -} - -.course__cta { - margin-bottom: 0; -} - -.module-copy {} - -.module-copy--emphasized { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - padding: 24px 0; - background-color: #8091a5; - border-radius: 4px; - color: #c3cfd5; -} - -.module-copy--emphasized a { - color: inherit; -} - -.module-copy--emphasized a:hover { - color: #fff; -} - -@media (min-width: 700px) { - - .module-copy--emphasized { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - } -} - -.module-copy__first {} - -.module-copy__first--emphasized { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - width: 50vw; - padding: 0 32px; -} - -@media (min-width: 700px) { - - .module-copy__first--emphasized { - padding-left: 32px; - } -} - -.module-copy__second {} - -.module-copy__second--emphasized { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; -} - -@media (min-width: 700px) { - - .module-copy__second--emphasized { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - padding: 0 32px; - width: 20vw; - } -} - -.module-copy__headline {} - -.module-copy__headline--emphasized { - color: #fff; - font-size: 1.25em; -} - -.module-copy__copy {} - -.module-copy__copy--emphasized { - font-size: 0.875em; -} - -.module-copy__cta {} - -.module-copy__cta--emphasized { - background-color: #536171; - color: #fff; - margin-bottom: 0; -} - -.module-hero-image {} - -.module-hero-image__wrapper { - position: relative; - overflow: hidden; - max-height: 60vh; - border-radius: 4px; -} - -.module-hero-image__image { - display: block; - width: 100%; - height: auto; -} - -.module-hero-image__headline-wrapper { - position: absolute; - left: 0; - right: 0; - top: 50%; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); -} - -.module-hero-image__headline { - color: #fff; - text-align: center; - font-size: 4.5vw; - line-height: 1; - text-shadow: 0px 3px 0px #b2a98f, - 0px 14px 10px rgba(0, 0, 0, .15), - 0px 24px 2px rgba(0, 0, 0, .1), - 0px 34px 30px rgba(0, 0, 0, .1); -} - -@media (min-width: 700px) { - - .module-hero-image__headline { - font-size: 4em; - } -} - -.module-higlighted-course {} - -.module-higlighted-course__wrapper { - position: relative; - overflow: hidden; - height: 50vh; - min-height: 250px; - max-height: 500px; - border-radius: 4px; - background-size: cover; - background-repeat: no-repeat; - background-position: center center; -} - -.module-higlighted-course__overlay { - z-index: 1; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - opacity: 0.8; - border-radius: 4px; - background-color: #3c3d41; -} - -.module-higlighted-course__content { - z-index: 2; - position: absolute; - left: 0; - right: 0; - top: 50%; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); - - display: -webkit-box; - - display: -ms-flexbox; - - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - - padding: 32px 64px; - - color: #a9b9c0; -} - -.module-higlighted-course__categories { - -webkit-box-flex: 0; - -ms-flex: 0 0 1.5em; - flex: 0 0 1.5em; -} - -.module-higlighted-course__category { - display: inline-block; - margin-right: 32px; - - font-size: 0.75em; - letter-spacing: 2px; -} - -.module-higlighted-course__title { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - margin: 0 0 8px; - - color: #fff; - font-size: 4vw; - line-height: 1.3; - white-space: nowrap; -} - -@media (min-width: 700px) { - - .module-higlighted-course__title { - font-size: 3.25em; - } -} - -.module-higlighted-course__description-wrapper { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - max-width: 400px; - line-height: 1.3; -} - -@media (min-width: 700px) { - - .module-higlighted-course__description-wrapper { - font-size: 1.25em; - } -} - -.module-higlighted-course__description-wrapper p { - margin: 0; -} - -.module-higlighted-course__link-wrapper { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - margin-top: 32px; -} - -.module-higlighted-course__link { - display: inline-block; - - border-bottom: 1px solid #fff; - - text-transform: uppercase; - color: #fff; - font-size: 0.75em; - line-height: 2.17; - letter-spacing: 2px; -} - -.module { - max-width: 980px; - margin: 0 auto; - padding: 0 2vw; -} - -.module img { - width: 100%; - height: auto; -} - -.module + .module { - margin-top: 32px; -} - -.modules-container { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; -} - -.lesson-module { - margin-top: 32px; -} - -.lesson-module img { - width: 100%; - height: auto; -} - -.lesson {} - -.lesson__title { - margin-bottom: 32px; -} - -.lesson__cta { - margin-bottom: 0; -} - -.lesson-module-code {} - -.lesson-module-code__header {} - -.lesson-module-code__code-area { - background: #f7f9fa; -} - -.lesson-module-code__trigger { - display: inline-block; - - height: 30px; - padding: 0 1em; - margin-right: 1em; - - background: #fff; - - border-top: 3px solid transparent; - - line-height: 30px; - font-family: 'robotomedium', Helvetica, sans-serif; - font-size: 0.875em; - color: #8091a5; - - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.lesson-module-code__trigger:last-child { - margin-right: 0; -} - -.lesson-module-code__trigger:hover { - color: #3c80cf; -} - -.lesson-module-code__trigger--active { - background: #f7f9fa; - color: #536171 !important; - cursor: default; - border-color: #c3cfd5; -} - -.lesson-module-code__code { - display: none; -} - -.lesson-module-code__code pre { - margin: 0; -} - -.lesson-module-code__code--active { - display: block; -} diff --git a/views/course.pug b/views/course.pug index 8f8c3a1..c26168c 100644 --- a/views/course.pug +++ b/views/course.pug @@ -29,11 +29,13 @@ block content h3.course__overview-title Overview if course.fields.duration .course__overview-item - img.course__overview-icon(src='/images/icon-duration.svg') + svg.course__overview-icon + use(xlink:href='/icons/icons.svg#duration') .course__overview-value Duration: #{course.fields.duration} min if course.fields.skillLevel .course__overview-item - img.course__overview-icon(src='/images/icon-skill-level.svg') + svg.course__overview-icon + use(xlink:href='/icons/icons.svg#skill-level') .course__overview-value Skill level: #{course.fields.skillLevel} .course__overview-cta-wrapper a.course__overview-cta.cta(href=`/courses/${course.fields.slug}/lessons/${course.fields.lessons[0].fields.slug}${queryString}`) Start course diff --git a/views/layout.pug b/views/layout.pug index de2f133..2df9087 100644 --- a/views/layout.pug +++ b/views/layout.pug @@ -19,14 +19,16 @@ html .header__upper.layout-centered .header__upper-first .header__title - img(src='/images/icon-info.svg') + svg.course__overview-icon + use(xlink:href='/icons/icons.svg#info') span Example Application .header__upper-copy a(href=`/about${queryString}`) What is this? .header__upper-second .header__upper-copy a.header__upper-link(href='https://images.contentful.com/82t39nctsu20/1JOkYZnY8YG0w88ImweME2/c8aef71dfe1ea633e16e17d99379416c/Github-repo_2x__1_.png' target='_blank' rel='noopener') - img.header__upper-icon(src='/images/icon-github.svg') + svg.header__upper-icon + use(xlink:href='/icons/icons.svg#github') | View on Github .header__controls @@ -105,11 +107,9 @@ html .footer__social p a(href='https://www.facebook.com/contentful/' target='_blank' rel='noopener') - img(src='/images/icon-facebook.svg' alt='Our Facebook profile') + svg + use(xlink:href='/icons/icons.svg#facebook') a(href='https://twitter.com/contentful' target='_blank' rel='noopener') - img(src='/images/icon-twitter.svg' alt='Our Twitter profile') - script(src='/scripts/highlight.pack.js') - script(src='/scripts/textFit.min.js') - script(src='/scripts/popper.min.js') - script(src='/scripts/hoverintent.min.js') + svg + use(xlink:href='/icons/icons.svg#twitter') script(src='/scripts/index.js') diff --git a/views/settings.pug b/views/settings.pug index 29f545b..d6cc0a8 100644 --- a/views/settings.pug +++ b/views/settings.pug @@ -10,13 +10,13 @@ block content if success .status-block.status-block--success - img.status-block__icon(src='/images/icon-success.svg') + img.status-block__icon(src='/images/success.svg') .status-block__content .status-block__title Changes saved successfully! if hasErrors .status-block.status-block--error - img.status-block__icon(src='/images/icon-error.svg') + img.status-block__icon(src='/images/error.svg') .status-block__content .status-block__title Error occurred .status-block__message Some errors occurred. Please check the error messages next to the fields.