From 56b566537e48859d1bef771d0d2cda60b63b72a6 Mon Sep 17 00:00:00 2001 From: Heather Miller Date: Thu, 13 Jul 2017 14:54:01 +0200 Subject: [PATCH] Add sass sources, auto-generate and replace CSS --- .gitignore | 1 + _config.yml | 4 + _sass/base/body.scss | 18 + _sass/base/form.scss | 30 ++ _sass/base/helper.scss | 14 + _sass/base/lists.scss | 22 + _sass/base/media.scss | 12 + _sass/base/typography.scss | 62 +++ _sass/components/buttons.scss | 22 + _sass/components/calendar.scss | 33 ++ _sass/components/call-to-action.scss | 39 ++ _sass/components/card.scss | 60 +++ _sass/components/code.scss | 30 ++ _sass/components/heading-line.scss | 52 +++ _sass/components/pagination.scss | 33 ++ _sass/components/search.scss | 54 +++ _sass/components/slider.scss | 35 ++ _sass/components/tab.scss | 43 ++ _sass/components/tag.scss | 20 + _sass/components/tooltip.scss | 13 + _sass/layout/blog.scss | 110 +++++ _sass/layout/books.scss | 89 ++++ _sass/layout/courses.scss | 31 ++ _sass/layout/download.scss | 235 ++++++++++ _sass/layout/footer.scss | 76 ++++ _sass/layout/header.scss | 63 +++ _sass/layout/ides.scss | 81 ++++ _sass/layout/inner-main.scss | 168 +++++++ _sass/layout/inner-text.scss | 28 ++ _sass/layout/maintenance.scss | 89 ++++ _sass/layout/marker.scss | 64 +++ _sass/layout/navigation.scss | 94 ++++ _sass/layout/new-blog.scss | 154 +++++++ _sass/layout/nutshell.scss | 111 +++++ _sass/layout/run-scala.scss | 57 +++ _sass/layout/runs.scss | 71 +++ _sass/layout/scala-ecosystem.scss | 125 ++++++ _sass/layout/scala-main-resources.scss | 181 ++++++++ _sass/layout/scaladex.scss | 10 + _sass/layout/site-main.scss | 26 ++ _sass/layout/table-of-content.scss | 163 +++++++ _sass/layout/talk-to-us.scss | 197 +++++++++ _sass/layout/title-page.scss | 16 + _sass/layout/tools.scss | 66 +++ _sass/layout/training-events.scss | 82 ++++ _sass/layout/twitter-feed.scss | 140 ++++++ _sass/layout/type-md.scss | 210 +++++++++ _sass/layout/upcoming-events.scss | 31 ++ _sass/utils/_mixins.scss | 85 ++++ _sass/utils/_variables.scss | 94 ++++ .../bourbon/_bourbon-deprecated-upcoming.scss | 411 ++++++++++++++++++ _sass/vendors/bourbon/_bourbon.scss | 87 ++++ .../vendors/bourbon/addons/_border-color.scss | 26 ++ .../bourbon/addons/_border-radius.scss | 48 ++ .../vendors/bourbon/addons/_border-style.scss | 25 ++ .../vendors/bourbon/addons/_border-width.scss | 25 ++ _sass/vendors/bourbon/addons/_buttons.scss | 64 +++ _sass/vendors/bourbon/addons/_clearfix.scss | 25 ++ _sass/vendors/bourbon/addons/_ellipsis.scss | 30 ++ .../vendors/bourbon/addons/_font-stacks.scss | 31 ++ _sass/vendors/bourbon/addons/_hide-text.scss | 27 ++ _sass/vendors/bourbon/addons/_margin.scss | 26 ++ _sass/vendors/bourbon/addons/_padding.scss | 26 ++ _sass/vendors/bourbon/addons/_position.scss | 48 ++ _sass/vendors/bourbon/addons/_prefixer.scss | 66 +++ .../vendors/bourbon/addons/_retina-image.scss | 25 ++ _sass/vendors/bourbon/addons/_size.scss | 51 +++ .../vendors/bourbon/addons/_text-inputs.scss | 113 +++++ .../bourbon/addons/_timing-functions.scss | 34 ++ _sass/vendors/bourbon/addons/_triangle.scss | 63 +++ _sass/vendors/bourbon/addons/_word-wrap.scss | 29 ++ _sass/vendors/bourbon/css3/_animation.scss | 43 ++ _sass/vendors/bourbon/css3/_appearance.scss | 3 + .../bourbon/css3/_backface-visibility.scss | 3 + .../bourbon/css3/_background-image.scss | 42 ++ _sass/vendors/bourbon/css3/_background.scss | 55 +++ _sass/vendors/bourbon/css3/_border-image.scss | 59 +++ _sass/vendors/bourbon/css3/_calc.scss | 4 + _sass/vendors/bourbon/css3/_columns.scss | 47 ++ _sass/vendors/bourbon/css3/_filter.scss | 4 + _sass/vendors/bourbon/css3/_flex-box.scss | 287 ++++++++++++ _sass/vendors/bourbon/css3/_font-face.scss | 24 + .../bourbon/css3/_font-feature-settings.scss | 4 + .../bourbon/css3/_hidpi-media-query.scss | 10 + _sass/vendors/bourbon/css3/_hyphens.scss | 4 + .../bourbon/css3/_image-rendering.scss | 14 + _sass/vendors/bourbon/css3/_keyframes.scss | 36 ++ .../bourbon/css3/_linear-gradient.scss | 38 ++ _sass/vendors/bourbon/css3/_perspective.scss | 8 + _sass/vendors/bourbon/css3/_placeholder.scss | 8 + .../bourbon/css3/_radial-gradient.scss | 39 ++ _sass/vendors/bourbon/css3/_selection.scss | 42 ++ .../bourbon/css3/_text-decoration.scss | 19 + _sass/vendors/bourbon/css3/_transform.scss | 15 + _sass/vendors/bourbon/css3/_transition.scss | 71 +++ _sass/vendors/bourbon/css3/_user-select.scss | 3 + .../bourbon/functions/_assign-inputs.scss | 11 + .../bourbon/functions/_contains-falsy.scss | 20 + .../vendors/bourbon/functions/_contains.scss | 26 ++ .../vendors/bourbon/functions/_is-length.scss | 11 + .../vendors/bourbon/functions/_is-light.scss | 21 + .../vendors/bourbon/functions/_is-number.scss | 11 + _sass/vendors/bourbon/functions/_is-size.scss | 13 + .../bourbon/functions/_modular-scale.scss | 69 +++ .../vendors/bourbon/functions/_px-to-em.scss | 13 + .../vendors/bourbon/functions/_px-to-rem.scss | 15 + _sass/vendors/bourbon/functions/_shade.scss | 24 + .../bourbon/functions/_strip-units.scss | 17 + _sass/vendors/bourbon/functions/_tint.scss | 24 + .../functions/_transition-property-name.scss | 22 + _sass/vendors/bourbon/functions/_unpack.scss | 27 ++ .../bourbon/helpers/_convert-units.scss | 21 + .../bourbon/helpers/_directional-values.scss | 96 ++++ .../helpers/_font-source-declaration.scss | 43 ++ .../helpers/_gradient-positions-parser.scss | 13 + .../bourbon/helpers/_linear-angle-parser.scss | 25 ++ .../helpers/_linear-gradient-parser.scss | 41 ++ .../helpers/_linear-positions-parser.scss | 61 +++ .../helpers/_linear-side-corner-parser.scss | 31 ++ .../bourbon/helpers/_radial-arg-parser.scss | 69 +++ .../helpers/_radial-gradient-parser.scss | 50 +++ .../helpers/_radial-positions-parser.scss | 18 + .../bourbon/helpers/_render-gradients.scss | 26 ++ .../bourbon/helpers/_shape-size-stripper.scss | 10 + .../vendors/bourbon/helpers/_str-to-num.scss | 50 +++ .../bourbon/settings/_asset-pipeline.scss | 7 + _sass/vendors/bourbon/settings/_prefixer.scss | 9 + _sass/vendors/bourbon/settings/_px-to-em.scss | 1 + _sass/vendors/neat/_neat-helpers.scss | 11 + _sass/vendors/neat/_neat.scss | 23 + .../neat/functions/_new-breakpoint.scss | 49 +++ _sass/vendors/neat/functions/_private.scss | 114 +++++ _sass/vendors/neat/grid/_box-sizing.scss | 15 + .../vendors/neat/grid/_direction-context.scss | 33 ++ _sass/vendors/neat/grid/_display-context.scss | 28 ++ _sass/vendors/neat/grid/_fill-parent.scss | 22 + _sass/vendors/neat/grid/_media.scss | 92 ++++ _sass/vendors/neat/grid/_omega.scss | 87 ++++ _sass/vendors/neat/grid/_outer-container.scss | 34 ++ _sass/vendors/neat/grid/_pad.scss | 25 ++ _sass/vendors/neat/grid/_private.scss | 35 ++ _sass/vendors/neat/grid/_row.scss | 52 +++ _sass/vendors/neat/grid/_shift.scss | 50 +++ _sass/vendors/neat/grid/_span-columns.scss | 94 ++++ _sass/vendors/neat/grid/_to-deprecate.scss | 97 +++++ _sass/vendors/neat/grid/_visual-grid.scss | 42 ++ _sass/vendors/neat/mixins/_clearfix.scss | 25 ++ .../neat/settings/_disable-warnings.scss | 13 + _sass/vendors/neat/settings/_grid.scss | 51 +++ _sass/vendors/neat/settings/_visual-grid.scss | 27 ++ _sass/vendors/unslider/unslider.scss | 8 + _sass/vendors/unslider/unslider/dots.scss | 30 ++ _sass/vendors/unslider/unslider/reset.scss | 70 +++ _sass/vendors/unslider/variables.scss | 18 + resources/css/style.css | 1 - resources/css/style.scss | 75 ++++ 156 files changed, 7821 insertions(+), 1 deletion(-) create mode 100755 _sass/base/body.scss create mode 100755 _sass/base/form.scss create mode 100755 _sass/base/helper.scss create mode 100755 _sass/base/lists.scss create mode 100755 _sass/base/media.scss create mode 100755 _sass/base/typography.scss create mode 100755 _sass/components/buttons.scss create mode 100755 _sass/components/calendar.scss create mode 100755 _sass/components/call-to-action.scss create mode 100755 _sass/components/card.scss create mode 100755 _sass/components/code.scss create mode 100755 _sass/components/heading-line.scss create mode 100755 _sass/components/pagination.scss create mode 100755 _sass/components/search.scss create mode 100755 _sass/components/slider.scss create mode 100755 _sass/components/tab.scss create mode 100755 _sass/components/tag.scss create mode 100755 _sass/components/tooltip.scss create mode 100755 _sass/layout/blog.scss create mode 100755 _sass/layout/books.scss create mode 100755 _sass/layout/courses.scss create mode 100755 _sass/layout/download.scss create mode 100755 _sass/layout/footer.scss create mode 100755 _sass/layout/header.scss create mode 100755 _sass/layout/ides.scss create mode 100755 _sass/layout/inner-main.scss create mode 100755 _sass/layout/inner-text.scss create mode 100755 _sass/layout/maintenance.scss create mode 100755 _sass/layout/marker.scss create mode 100755 _sass/layout/navigation.scss create mode 100755 _sass/layout/new-blog.scss create mode 100755 _sass/layout/nutshell.scss create mode 100755 _sass/layout/run-scala.scss create mode 100755 _sass/layout/runs.scss create mode 100755 _sass/layout/scala-ecosystem.scss create mode 100755 _sass/layout/scala-main-resources.scss create mode 100755 _sass/layout/scaladex.scss create mode 100755 _sass/layout/site-main.scss create mode 100755 _sass/layout/table-of-content.scss create mode 100755 _sass/layout/talk-to-us.scss create mode 100755 _sass/layout/title-page.scss create mode 100755 _sass/layout/tools.scss create mode 100755 _sass/layout/training-events.scss create mode 100755 _sass/layout/twitter-feed.scss create mode 100755 _sass/layout/type-md.scss create mode 100755 _sass/layout/upcoming-events.scss create mode 100755 _sass/utils/_mixins.scss create mode 100755 _sass/utils/_variables.scss create mode 100755 _sass/vendors/bourbon/_bourbon-deprecated-upcoming.scss create mode 100755 _sass/vendors/bourbon/_bourbon.scss create mode 100755 _sass/vendors/bourbon/addons/_border-color.scss create mode 100755 _sass/vendors/bourbon/addons/_border-radius.scss create mode 100755 _sass/vendors/bourbon/addons/_border-style.scss create mode 100755 _sass/vendors/bourbon/addons/_border-width.scss create mode 100755 _sass/vendors/bourbon/addons/_buttons.scss create mode 100755 _sass/vendors/bourbon/addons/_clearfix.scss create mode 100755 _sass/vendors/bourbon/addons/_ellipsis.scss create mode 100755 _sass/vendors/bourbon/addons/_font-stacks.scss create mode 100755 _sass/vendors/bourbon/addons/_hide-text.scss create mode 100755 _sass/vendors/bourbon/addons/_margin.scss create mode 100755 _sass/vendors/bourbon/addons/_padding.scss create mode 100755 _sass/vendors/bourbon/addons/_position.scss create mode 100755 _sass/vendors/bourbon/addons/_prefixer.scss create mode 100755 _sass/vendors/bourbon/addons/_retina-image.scss create mode 100755 _sass/vendors/bourbon/addons/_size.scss create mode 100755 _sass/vendors/bourbon/addons/_text-inputs.scss create mode 100755 _sass/vendors/bourbon/addons/_timing-functions.scss create mode 100755 _sass/vendors/bourbon/addons/_triangle.scss create mode 100755 _sass/vendors/bourbon/addons/_word-wrap.scss create mode 100755 _sass/vendors/bourbon/css3/_animation.scss create mode 100755 _sass/vendors/bourbon/css3/_appearance.scss create mode 100755 _sass/vendors/bourbon/css3/_backface-visibility.scss create mode 100755 _sass/vendors/bourbon/css3/_background-image.scss create mode 100755 _sass/vendors/bourbon/css3/_background.scss create mode 100755 _sass/vendors/bourbon/css3/_border-image.scss create mode 100755 _sass/vendors/bourbon/css3/_calc.scss create mode 100755 _sass/vendors/bourbon/css3/_columns.scss create mode 100755 _sass/vendors/bourbon/css3/_filter.scss create mode 100755 _sass/vendors/bourbon/css3/_flex-box.scss create mode 100755 _sass/vendors/bourbon/css3/_font-face.scss create mode 100755 _sass/vendors/bourbon/css3/_font-feature-settings.scss create mode 100755 _sass/vendors/bourbon/css3/_hidpi-media-query.scss create mode 100755 _sass/vendors/bourbon/css3/_hyphens.scss create mode 100755 _sass/vendors/bourbon/css3/_image-rendering.scss create mode 100755 _sass/vendors/bourbon/css3/_keyframes.scss create mode 100755 _sass/vendors/bourbon/css3/_linear-gradient.scss create mode 100755 _sass/vendors/bourbon/css3/_perspective.scss create mode 100755 _sass/vendors/bourbon/css3/_placeholder.scss create mode 100755 _sass/vendors/bourbon/css3/_radial-gradient.scss create mode 100755 _sass/vendors/bourbon/css3/_selection.scss create mode 100755 _sass/vendors/bourbon/css3/_text-decoration.scss create mode 100755 _sass/vendors/bourbon/css3/_transform.scss create mode 100755 _sass/vendors/bourbon/css3/_transition.scss create mode 100755 _sass/vendors/bourbon/css3/_user-select.scss create mode 100755 _sass/vendors/bourbon/functions/_assign-inputs.scss create mode 100755 _sass/vendors/bourbon/functions/_contains-falsy.scss create mode 100755 _sass/vendors/bourbon/functions/_contains.scss create mode 100755 _sass/vendors/bourbon/functions/_is-length.scss create mode 100755 _sass/vendors/bourbon/functions/_is-light.scss create mode 100755 _sass/vendors/bourbon/functions/_is-number.scss create mode 100755 _sass/vendors/bourbon/functions/_is-size.scss create mode 100755 _sass/vendors/bourbon/functions/_modular-scale.scss create mode 100755 _sass/vendors/bourbon/functions/_px-to-em.scss create mode 100755 _sass/vendors/bourbon/functions/_px-to-rem.scss create mode 100755 _sass/vendors/bourbon/functions/_shade.scss create mode 100755 _sass/vendors/bourbon/functions/_strip-units.scss create mode 100755 _sass/vendors/bourbon/functions/_tint.scss create mode 100755 _sass/vendors/bourbon/functions/_transition-property-name.scss create mode 100755 _sass/vendors/bourbon/functions/_unpack.scss create mode 100755 _sass/vendors/bourbon/helpers/_convert-units.scss create mode 100755 _sass/vendors/bourbon/helpers/_directional-values.scss create mode 100755 _sass/vendors/bourbon/helpers/_font-source-declaration.scss create mode 100755 _sass/vendors/bourbon/helpers/_gradient-positions-parser.scss create mode 100755 _sass/vendors/bourbon/helpers/_linear-angle-parser.scss create mode 100755 _sass/vendors/bourbon/helpers/_linear-gradient-parser.scss create mode 100755 _sass/vendors/bourbon/helpers/_linear-positions-parser.scss create mode 100755 _sass/vendors/bourbon/helpers/_linear-side-corner-parser.scss create mode 100755 _sass/vendors/bourbon/helpers/_radial-arg-parser.scss create mode 100755 _sass/vendors/bourbon/helpers/_radial-gradient-parser.scss create mode 100755 _sass/vendors/bourbon/helpers/_radial-positions-parser.scss create mode 100755 _sass/vendors/bourbon/helpers/_render-gradients.scss create mode 100755 _sass/vendors/bourbon/helpers/_shape-size-stripper.scss create mode 100755 _sass/vendors/bourbon/helpers/_str-to-num.scss create mode 100755 _sass/vendors/bourbon/settings/_asset-pipeline.scss create mode 100755 _sass/vendors/bourbon/settings/_prefixer.scss create mode 100755 _sass/vendors/bourbon/settings/_px-to-em.scss create mode 100755 _sass/vendors/neat/_neat-helpers.scss create mode 100755 _sass/vendors/neat/_neat.scss create mode 100755 _sass/vendors/neat/functions/_new-breakpoint.scss create mode 100755 _sass/vendors/neat/functions/_private.scss create mode 100755 _sass/vendors/neat/grid/_box-sizing.scss create mode 100755 _sass/vendors/neat/grid/_direction-context.scss create mode 100755 _sass/vendors/neat/grid/_display-context.scss create mode 100755 _sass/vendors/neat/grid/_fill-parent.scss create mode 100755 _sass/vendors/neat/grid/_media.scss create mode 100755 _sass/vendors/neat/grid/_omega.scss create mode 100755 _sass/vendors/neat/grid/_outer-container.scss create mode 100755 _sass/vendors/neat/grid/_pad.scss create mode 100755 _sass/vendors/neat/grid/_private.scss create mode 100755 _sass/vendors/neat/grid/_row.scss create mode 100755 _sass/vendors/neat/grid/_shift.scss create mode 100755 _sass/vendors/neat/grid/_span-columns.scss create mode 100755 _sass/vendors/neat/grid/_to-deprecate.scss create mode 100755 _sass/vendors/neat/grid/_visual-grid.scss create mode 100755 _sass/vendors/neat/mixins/_clearfix.scss create mode 100755 _sass/vendors/neat/settings/_disable-warnings.scss create mode 100755 _sass/vendors/neat/settings/_grid.scss create mode 100755 _sass/vendors/neat/settings/_visual-grid.scss create mode 100755 _sass/vendors/unslider/unslider.scss create mode 100755 _sass/vendors/unslider/unslider/dots.scss create mode 100755 _sass/vendors/unslider/unslider/reset.scss create mode 100755 _sass/vendors/unslider/variables.scss delete mode 100644 resources/css/style.css create mode 100755 resources/css/style.scss diff --git a/.gitignore b/.gitignore index c8edf2325..b83fe9736 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ _site/ .bundle /.idea .ruby-version +.sass-cache/ diff --git a/_config.yml b/_config.yml index 6fb21b377..71f6d3a9d 100644 --- a/_config.yml +++ b/_config.yml @@ -18,6 +18,7 @@ exclude: - vendor - Procfile - Rakefile + future: true # Defaults @@ -62,3 +63,6 @@ gems: whitelist: - jekyll-redirect-from + +sass: + style: compressed \ No newline at end of file diff --git a/_sass/base/body.scss b/_sass/base/body.scss new file mode 100755 index 000000000..a87c02451 --- /dev/null +++ b/_sass/base/body.scss @@ -0,0 +1,18 @@ +// BODY +//------------------------------------------------ +//------------------------------------------------ +html { + box-sizing: border-box; +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +html, +body { + height: 90%; + margin: 0; +} diff --git a/_sass/base/form.scss b/_sass/base/form.scss new file mode 100755 index 000000000..5f69c1b80 --- /dev/null +++ b/_sass/base/form.scss @@ -0,0 +1,30 @@ +// FORM +//------------------------------------------------ +//------------------------------------------------ + +input, +select, +textarea { + font-family: $base-font-family; + font-size: $font-size-large; + display: block; + appearance: none; + border: none; +} + + +::-webkit-input-placeholder { + color: $base-font-color-light; +} + +:-moz-placeholder { /* Firefox 18- */ + color: $base-font-color-light; +} + +::-moz-placeholder { /* Firefox 19+ */ + color: $base-font-color-light; +} + +:-ms-input-placeholder { + color: $base-font-color-light; +} diff --git a/_sass/base/helper.scss b/_sass/base/helper.scss new file mode 100755 index 000000000..1b32d3116 --- /dev/null +++ b/_sass/base/helper.scss @@ -0,0 +1,14 @@ +// HELPER +//------------------------------------------------ +//------------------------------------------------ + +.wrap { + @include outer-container; + @include padding(0 20px); +} + +.dot { + font-size: 10px; + color: rgba($base-font-color-light, 0.6); + margin: 0 3px; +} diff --git a/_sass/base/lists.scss b/_sass/base/lists.scss new file mode 100755 index 000000000..b5520d5c9 --- /dev/null +++ b/_sass/base/lists.scss @@ -0,0 +1,22 @@ +// LISTS +//------------------------------------------------ +//------------------------------------------------ +ul, +ol { + list-style-type: none; + margin: 0; + padding: 0; +} + +dl { + margin: 0; +} + +dt { + font-weight: 600; + margin: 0; +} + +dd { + margin: 0; +} diff --git a/_sass/base/media.scss b/_sass/base/media.scss new file mode 100755 index 000000000..ef8cc8844 --- /dev/null +++ b/_sass/base/media.scss @@ -0,0 +1,12 @@ +// MEDIA +//------------------------------------------------ +//------------------------------------------------ +figure { + margin: 0; +} + +img, +picture { + margin: 0; + max-width: 100%; +} diff --git a/_sass/base/typography.scss b/_sass/base/typography.scss new file mode 100755 index 000000000..0a7abfc79 --- /dev/null +++ b/_sass/base/typography.scss @@ -0,0 +1,62 @@ +// TYPOGRAPHY +//------------------------------------------------ +//------------------------------------------------ +html { +font-size: $base-font-size; + +} + +body { + color: $base-font-color; + font-family: $base-font-family; + font-weight: $font-regular; + line-height: $base-line-height; + @include font-smoothing(on); +} +* { + transition: $base-transition; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: $heading-font-family; + line-height: $heading-line-height; + font-weight: $font-black; + margin: 0; +} + +h2 { + font-weight: $font-regular; +} + +p { + margin: 0; +} + +a { + color: $base-link-color; + text-decoration: none; + transition: $base-transition; + &:active, + &:focus, + &:hover { + color: $hover-link-color; + text-decoration: underline; + } +} + +hr { + border-bottom: $base-border-gray; + border-left: 0; + border-right: 0; + border-top: 0; + margin: 0; +} + +blockquote { + margin: 0; +} diff --git a/_sass/components/buttons.scss b/_sass/components/buttons.scss new file mode 100755 index 000000000..ebc9d98b2 --- /dev/null +++ b/_sass/components/buttons.scss @@ -0,0 +1,22 @@ +// BUTTONS +//------------------------------------------------ +//------------------------------------------------ +.button { + padding: 8px 18px; + font-size: $font-size-small; + font-weight: $font-bold; + text-transform: uppercase; + color: #fff; + background: $brand-secondary; + border-radius: $border-radius-base; + display: inline-block; + + &:active, + &:focus, + &:hover { + text-decoration: none; + color: #fff; + background: $brand-primary; + } + +} diff --git a/_sass/components/calendar.scss b/_sass/components/calendar.scss new file mode 100755 index 000000000..bd2ef3a49 --- /dev/null +++ b/_sass/components/calendar.scss @@ -0,0 +1,33 @@ +// CALENDAR +//------------------------------------------------ +//------------------------------------------------ + +.calendar { + width: 28px; + height: 32px; + background: #fff; + border-radius: $border-radius-small; + overflow: hidden; + + span { + display: block; + font-size: 10px; + font-weight: $font-bold; + text-align: center; + } + span:first-child { + background: $brand-primary; + color: #fff; + } + +} + +a { + .calendar { + span:last-child { + color: $gray-dark; + font-size: 12px; + margin-top: -1px; + } + } +} diff --git a/_sass/components/call-to-action.scss b/_sass/components/call-to-action.scss new file mode 100755 index 000000000..34c3d7ad7 --- /dev/null +++ b/_sass/components/call-to-action.scss @@ -0,0 +1,39 @@ +// CALL TO ACTION +//------------------------------------------------ +//------------------------------------------------ + +.call-to-action { + text-align: center; + margin-top: $padding-large; + + &.action-medium { + margin-top: $padding-medium; + } + + &.action-small { + margin-top: $padding-small; + } + + p { + font-size: $font-size-small; + color: $base-font-color-inverse; + + &.align-top { + margin-bottom: 12px; + } + + &.align-bottom { + margin-top: 12px; + } + + a { + text-decoration: underline; + color: $base-font-color-inverse; + &:active, + &:focus, + &:hover { + color: #fff; + } + } + } +} diff --git a/_sass/components/card.scss b/_sass/components/card.scss new file mode 100755 index 000000000..676061497 --- /dev/null +++ b/_sass/components/card.scss @@ -0,0 +1,60 @@ +// CARD +//------------------------------------------------ +//------------------------------------------------ + +.card { + padding: 18px; + border-radius: $border-radius-base; + @include display(flex); + @include flex-direction(row); + background: $gray; + transition: $base-transition; + margin-bottom: 14px; + + &:hover { + background: $gray-dark; + } + + img { + width: 28px; + height: 28px; + border-radius: $border-radius-small; + } + + .card-text { + margin-left: 14px; + + h4 { + font-family: $base-font-family; + font-size: $font-size-large; + color: #fff; + } + + ul { + li { + color: $base-font-color-inverse; + display: inline-block; + + &.online-courses-price, + &.event-location { + font-size: $font-size-xsmall; + text-transform: uppercase; + } + + &.online-courses-date, + &.date-event { + font-size: $font-size-small; + } + + &.dot { + color: rgba($base-font-color-inverse, 0.4); + } + } + } + } + &:active, + &:focus, + &:hover { + text-decoration: none; + } +} diff --git a/_sass/components/code.scss b/_sass/components/code.scss new file mode 100755 index 000000000..16be7358b --- /dev/null +++ b/_sass/components/code.scss @@ -0,0 +1,30 @@ +// CODE +//------------------------------------------------ +//------------------------------------------------ +.code-element { + margin-bottom: 20px; + + pre { + margin-top: 0; + } + + code { + padding: 20px; + } + + .bar-code { + background: #B4BBBD; + text-align: center; + padding: 2px 0; + font-size: $font-size-small; + font-weight: $font-bold; + min-height: 26px; + @include border-radius($border-radius-base $border-radius-base 0 0); + + } + + .hljs { + background: rgba($gray-darker, 0.8); + } + +} diff --git a/_sass/components/heading-line.scss b/_sass/components/heading-line.scss new file mode 100755 index 000000000..827b1cd96 --- /dev/null +++ b/_sass/components/heading-line.scss @@ -0,0 +1,52 @@ +// HEADING LINE +//------------------------------------------------ +//------------------------------------------------ + +.heading-line { + margin-bottom: $padding-large; + text-align: center; + + h2 { + color: #fff; + position: relative; + font-size: $font-size-h2; + font-weight: $font-bold; + + span { + padding: 0 30px; + position: relative; + background: $gray-dark; + z-index: 5; + } + + + + &:before { + content: ""; + display: block; + height: 1px; + position: absolute; + top: 50%; + width: 100%; + background: $base-border-color-white; + } + } + + .sub-heading { + font-size: $font-size-small; + color: $base-font-color-inverse; + font-style: italic; + } + + .lead { + font-size: $font-size-large; + color: $base-font-color-inverse; + margin-top: 10px; + @include span-columns(8); + @include shift(2); + @include bp(medium) { + @include span-columns(12); + @include shift(0); + } + } +} diff --git a/_sass/components/pagination.scss b/_sass/components/pagination.scss new file mode 100755 index 000000000..38bcccaf2 --- /dev/null +++ b/_sass/components/pagination.scss @@ -0,0 +1,33 @@ +// PAGINATION +//------------------------------------------------ +//------------------------------------------------ +.pagination { + margin-top: $padding-medium; + @include display(flex); + @include align-items(center); + @include justify-content(center); + + .pagination-item { + a { + display: block; + padding: 3px 10px; + background: $brand-tertiary; + color: #fff; + margin-right: 2px; + border-radius: $border-radius-small; + + &:active, + &:focus, + &:hover { + text-decoration: none; + background: darken($brand-tertiary, 15%); + } + + &.active { + background: #fff; + color: $base-font-color-light; + pointer-events: none; + } + } + } +} diff --git a/_sass/components/search.scss b/_sass/components/search.scss new file mode 100755 index 000000000..6bccdd20b --- /dev/null +++ b/_sass/components/search.scss @@ -0,0 +1,54 @@ +// Search +//------------------------------------------------ +//------------------------------------------------ + +.search-container { + position: relative; + + .icon-search { + position: absolute; + left: 14px; + top: 4px; + z-index: 30; + } + + input { + padding: 8px 18px 8px 40px; + appearance: none; + font-size: $base-font-size; + border-radius: $border-radius-base; + width: 100%; + box-sizing: border-box; + + &:focus { + outline: none; + background: rgba(#fff, 0.9); + @include box-shadow($box-shadow-inner); + border-radius: 0; + } + } + + .result-container { + position: absolute; + display: none; + width: 100%; + left: 0; + top: 38px; + background: #fff; + @include box-shadow($box-shadow-search); + padding: 10px; + + li { + border-bottom: $base-border-gray; + + a { + display: block; + padding: 4px 16px; + } + + &:last-child { + border-bottom: none; + } + } + } +} diff --git a/_sass/components/slider.scss b/_sass/components/slider.scss new file mode 100755 index 000000000..9717861a7 --- /dev/null +++ b/_sass/components/slider.scss @@ -0,0 +1,35 @@ +// SLIDER +//------------------------------------------------ +//------------------------------------------------ +.unslider { + ul { + li { + padding: 0 1px; + } + } + + .unslider-arrow { + display: none; + } + + .unslider-nav { + margin-top: 10px; + @include bp(large) { + margin-top: 10px; + } + + ol { + li { + width: 7px; + height: 7px; + border: none; + background: rgba(#fff, 0.3); + + &.unslider-active { + pointer-events: none; + background: #fff; + } + } + } + } +} diff --git a/_sass/components/tab.scss b/_sass/components/tab.scss new file mode 100755 index 000000000..b5a9bb89c --- /dev/null +++ b/_sass/components/tab.scss @@ -0,0 +1,43 @@ +// TAB +//------------------------------------------------ +//------------------------------------------------ + +.nav-tab { + border-bottom: $base-border-gray; + @include display(flex); + @include align-items(center); + @include justify-content(flex-start); + margin-bottom: 10px; + + .item-tab { + a { + color: $base-font-color-light; + display: block; + padding: 0 20px 10px; + margin-bottom: -1px; + + &:active, + &:focus, + &:hover { + text-decoration: none; + color: $base-font-color; + } + + &.active { + border-bottom: 2px solid $brand-primary; + color: $brand-primary; + pointer-events: none; + } + } + + } + @include bp(small) { + @include justify-content(space-between); + .item-tab { + a { + padding: 0 10px 10px; + font-size: $font-size-medium; + } + } + } +} diff --git a/_sass/components/tag.scss b/_sass/components/tag.scss new file mode 100755 index 000000000..4b242f43b --- /dev/null +++ b/_sass/components/tag.scss @@ -0,0 +1,20 @@ +// TAG +//------------------------------------------------ +//------------------------------------------------ +.tag-list { + @include display(flex); + @include align-items(center); + @include justify-content(flex-start); + flex-wrap: wrap; + padding-left: 0; + .tag-item { + font-size: 0.6875rem; + background: $gray-lighter; + padding: 2px 10px; + text-transform: uppercase; + color: $base-font-color-light; + margin-right: 8px; + margin-bottom: 8px; + list-style: none; + } +} diff --git a/_sass/components/tooltip.scss b/_sass/components/tooltip.scss new file mode 100755 index 000000000..861cf5edd --- /dev/null +++ b/_sass/components/tooltip.scss @@ -0,0 +1,13 @@ +// MAINTENANCE +//------------------------------------------------ +//------------------------------------------------ + +.tooltip { + display:none; + position:absolute; + background-color: rgba(#002B36, 0.95); + border-radius: $border-radius-base; + padding: 5px 12px; + color: #fff; + font-size: $font-size-small; +} diff --git a/_sass/layout/blog.scss b/_sass/layout/blog.scss new file mode 100755 index 000000000..6b3428e95 --- /dev/null +++ b/_sass/layout/blog.scss @@ -0,0 +1,110 @@ +// BLOG +//------------------------------------------------ +//------------------------------------------------ + +.title-page { + .content-title-blog { + h1 { + @include span-columns(9); + @include bp(medium) { + @include span-columns(12); + } + } + + .search-container { + @include span-columns(3); + margin-top: 50px; + @include bp(medium) { + @include span-columns(12); + margin-top: 20px; + margin-bottom: 20px; + } + } + } +} + +.blog-list { + .blog-item { + display: block; + border-bottom: $base-border-gray; + padding-bottom: 18px; + + h2 { + margin-bottom: 6px; + font-size: 1.5rem; + } + + .blog-date { + text-transform: uppercase; + margin-bottom: 4px; + font-size: 0.875rem; + } + + .blog-author { + margin-bottom: 12px; + } + + a { + &:active, + &:focus, + &:hover { + text-decoration: none; + } + } + } +} + +.blog-list-nav { + margin-top: 18px; + + .blog-list-nav-item { + border-bottom: $base-border-gray; + padding-bottom: 10px; + margin-top: 14px; + + &:last-child { + border-bottom: none; + padding-bottom: 0; + } + + h4 { + font-family: $base-font-family; + } + + p { + margin-bottom: 10px; + font-size: $font-size-medium; + } + + a { + color: $headings-font-color; + + &:active, + &:focus, + &:hover { + text-decoration: none; + color: $brand-primary; + } + } + } +} + +.blog-detail-head { + border-bottom: $base-border-gray; + @include display(flex); + @include align-items(flex-start); + @include justify-content(space-between); + flex-wrap: wrap; + padding-bottom: 18px; + + div { + p:first-child { + text-transform: uppercase; + margin-bottom: 8px; + font-size: 0.875rem; + } + p { + margin-bottom: 0; + } + } +} diff --git a/_sass/layout/books.scss b/_sass/layout/books.scss new file mode 100755 index 000000000..b10774769 --- /dev/null +++ b/_sass/layout/books.scss @@ -0,0 +1,89 @@ +// BOOKS +//------------------------------------------------ +//------------------------------------------------ + +.books { + h2 { + margin-bottom: 30px; + } +} + +.books-list { + @include clearfix; + + .book-item { + @include span-columns(4); + @include omega(3n); + margin-bottom: $padding-xlarge; + @include bp(medium) { + @include span-columns(12); + } + + .book-item-header { + .content-img-boook { + border-bottom: $base-border-gray; + height: 120px; + overflow: hidden; + + img { + height: 145px; + width: auto; + display: block; + margin-top: 10px; + transition: $base-transition; + border: { + left: $base-border-gray; + top: $base-border-gray; + right: $base-border-gray; + } + } + } + + h3 { + margin-bottom: 10px; + transition: $base-transition; + } + + a { + &:active, + &:focus, + &:hover { + text-decoration: none; + color: $brand-primary; + + img { + margin-top: 0; + } + + h3 { + color: $brand-primary; + } + } + } + } + + .book-item-main { + .author, + .published { + color: $base-font-color-light; + } + + .published { + font-style: italic; + } + + .description { + margin-top: 10px; + } + + ul { + padding-left: 18px; + + li { + list-style: disc; + margin-bottom: 3px; + } + } + } + } +} diff --git a/_sass/layout/courses.scss b/_sass/layout/courses.scss new file mode 100755 index 000000000..9533e336c --- /dev/null +++ b/_sass/layout/courses.scss @@ -0,0 +1,31 @@ +// COURSES +//------------------------------------------------ +//------------------------------------------------ + +.courses { + background: $gray-li; + + .heading-line { + h2 { + + span { + background: $gray-li; + } + } + } + + .online-courses, + .upcoming-training { + @include span-columns(6); + + @include bp(large) { + @include span-columns(12); + } + } + + .online-courses { + @include bp(large) { + margin-bottom: 40px; + } + } +} diff --git a/_sass/layout/download.scss b/_sass/layout/download.scss new file mode 100755 index 000000000..2f9ddfaba --- /dev/null +++ b/_sass/layout/download.scss @@ -0,0 +1,235 @@ +// DOWNLOAD +//------------------------------------------------ +//------------------------------------------------ + +.download { + @include clearfix; + position: relative; + + .content-ribbon { + position: absolute; + right: 30px; + top: -10px; + z-index: 50; + + .ribbon-version { + background: $brand-primary; + text-align: center; + padding: 8px 36px; + + span { + color: #fff; + font-size: 2.25rem; + } + } + + ul { + @include display(flex); + @include align-items(center); + @include justify-content(space-between); + margin-top: 8px; + + li { + display: inline-block; + font-size: $font-size-small; + + &:nth-child(2) { + font-size: 0.625rem; + } + } + } + } + + .main-download { + margin-top: 70px; + @include span-columns(8); + @include shift(2); + @include bp(large) { + @include span-columns(12); + @include shift(0); + } + + h2 { + margin-top: 0; + font-size: 1.75rem; + } + + .install-steps { + @include clearfix; + margin-top: 48px; + border-bottom: $base-border-gray; + padding-bottom: 60px; + + .step { + &:first-child { + margin-bottom: 100px; + @include bp(small) { + margin-bottom: 50px; + } + position: relative; + + img { + width: 12px; + height: 100px; + position: absolute; + left: 25px; + top: 50px; + } + } + @include clearfix; + + .number-step { + width: 64px; + height: 64px; + float: left; + background: $brand-primary; + border-radius: 100%; + color: #fff; + font-size: 1.75rem; + @include display(flex); + @include align-items(center); + @include justify-content(center); + } + + .text-step { + margin-left: 90px; + + h3 { + margin-bottom: 10px; + font-size: 1.25rem; + } + + p { + span { + font-style: italic; + color: $base-font-color-light; + } + } + } + } + + .download-options { + @include clearfix; + margin-top: 38px; + + .download-intellij, + .download-sbt { + position: relative; + @include span-columns(4 of 8); + @include bp(large) { + @include span-columns(8 of 8); + margin-bottom: 34px; + } + + .btn-download { + background: $brand-primary; + display: block; + text-align: center; + color: #fff; + text-transform: uppercase; + padding: 16px 0; + border-radius: 100px; + font-weight: $font-bold; + margin-bottom: 34px; + + &:active, + &:focus, + &:hover { + text-decoration: none; + background: darken($brand-primary, 10%); + } + + .fa { + margin-right: 10px; + font-size: 1.25rem; + } + } + + ul { + position: relative; + z-index: 50; + li { + &:first-child { + border-top: $base-border-gray; + } + border-bottom: $base-border-gray; + + a { + padding: 10px 16px; + display: block; + color: $base-font-color; + + &:active, + &:focus, + &:hover { + background: $gray-lighter; + text-decoration: none; + } + + .fa { + margin-right: 8px; + } + } + } + } + } + } + } + } + + .description { + position: absolute; + left: -130px; + top: 60px; + z-index: 40; + color: $brand-primary; + width: 280px; + font-family: 'Kalam', cursive; + + img { + width: 92px; + height: 165px; + margin-bottom: 24px; + } + @include bp(xlarge) { + display: none; + } + } + + .download-intellij { + padding-right: 10px; + position: relative; + .or { + font-size: 1.15rem; + position: absolute; + right: -22px; + top: 10px; + z-index: 100; + + @include bp(large) { + display: none; + } + } + } + + .download-sbt { + padding-left: 10px; + } + + .download-sbt { + .description { + top: 60px; + left: auto; + right: -120px; + text-align: right; + } + } + + .bottom-lead { + margin-top: 165px; + @include bp(large) { + margin-top: 20px; + } + + } +} diff --git a/_sass/layout/footer.scss b/_sass/layout/footer.scss new file mode 100755 index 000000000..9b3d58fbf --- /dev/null +++ b/_sass/layout/footer.scss @@ -0,0 +1,76 @@ +// FOOTER +//------------------------------------------------ +//------------------------------------------------ + +#site-footer { + padding: $padding-xlarge 0; + background: $gray-darker; + color: rgba(#fff, 0.5); + + ul { + @include span-columns(2); + @include bp(large) { + @include span-columns(4); + @include omega(3n); + margin-bottom: 20px; + } + + @include bp(small) { + @include span-columns(12); + } + + li { + margin-bottom: 3px; + h3 { + color: #fff; + margin-bottom: 10px; + text-transform: uppercase; + font-family: $base-font-family; + font-weight: $font-bold; + font-size: $font-size-large; + } + + a { + color: rgba(#fff, 0.5); + font-size: $font-size-medium; + + &:active, + &:focus, + &:hover { + color: #fff; + text-decoration: none; + } + } + } + } + + .site-footer-top { + @include clearfix; + margin-bottom: 40px; + } + + .site-footer-bottom { + @include display(flex); + @include flex-direction(row); + @include align-items(center); + @include justify-content(space-between); + + img { + width: 104px; + height: auto; + } + + @include bp(small) { + @include justify-content(flex-start); + flex-wrap: wrap; + img { + margin-top: 18px; + } + } + + img { + opacity: 0.4; + margin-right: 65px; + } + } +} diff --git a/_sass/layout/header.scss b/_sass/layout/header.scss new file mode 100755 index 000000000..2862cae72 --- /dev/null +++ b/_sass/layout/header.scss @@ -0,0 +1,63 @@ +// HEADER +//------------------------------------------------ +//------------------------------------------------ +//------------------------------------------------ + +#site-header { + background: $gray-darker; + + .new-on-the-blog { + background: rgba($gray-darker, 0.8); + text-align: center; + padding: 8px 0; + color: #fff; + transition: $base-transition; + position: relative; + + @include bp(medium) { + padding: 10px 40px; + } + + span { + position: absolute; + right: 20px; + top: 3px; + z-index: 1; + cursor: pointer; + font-size: 1.275rem; + opacity: 0.6; + transition: $base-transition; + &:hover { + opacity: 1; + } + } + a { + color: #fff; + text-decoration: underline; + &:active, + &:focus, + &:hover { + text-decoration: none; + } + } + } + &.header-home { + background: none; + .header-background { + background: rgba($gray-darker, 0.45); + position: relative; + padding-bottom: 150px; + + &:before { + content: ""; + position: absolute; + background: url("../img/frontpage/background-header-home.jpg") no-repeat center center; + @include image-size(); + left: 0; + width: 100%; + height: 100%; + z-index: -1; + } + } + } +} diff --git a/_sass/layout/ides.scss b/_sass/layout/ides.scss new file mode 100755 index 000000000..fe0c99fde --- /dev/null +++ b/_sass/layout/ides.scss @@ -0,0 +1,81 @@ +// IDES +//------------------------------------------------ +//------------------------------------------------ + +.ides { + background: $gray-dark; + + ul { + @include display(flex); + @include align-items(top); + @include justify-content(space-around); + + li { + text-align: center; + position: relative; + + &:nth-child(2n) { + width: 1px; + height: 94px; + background: $base-border-color-white; + } + + a { + display: inline-block; + .bullet { + position: absolute; + top: -12px; + right: -14px; + background: $gray; + border-radius: 100%; + width: 24px; + height: 24px; + z-index: 10; + transition: $base-transition; + text-align: center; + + img { + width: 16px; + height: 16px; + margin-top: 4px; + } + } + + &.sublime { + .bullet { + top: -10px; + right: 0; + } + } + + color: rgba(#fff, 0.5); + font-family: $heading-font-family; + img { + height: 56px; + width: auto; + margin-bottom: 6px; + opacity: 0.4; + transition: $base-transition; + } + + span { + display: block; + font-size: $font-size-small; + } + + + &:hover { + img { + opacity: 1; + } + .bullet { + background: $brand-secondary; + } + + color: #fff; + text-decoration: none; + } + } + } + } +} diff --git a/_sass/layout/inner-main.scss b/_sass/layout/inner-main.scss new file mode 100755 index 000000000..984fac4e5 --- /dev/null +++ b/_sass/layout/inner-main.scss @@ -0,0 +1,168 @@ +// INNER MAIN +//------------------------------------------------ +//------------------------------------------------ + +#inner-main { + background: $gray-lighter; + padding-bottom: $padding-xlarge; + + section:nth-child(2) { + margin-top: -80px; + } + + .inner-box { + padding: $padding-medium; + background: #fff; + @include border-radius($border-radius-base); + @include box-shadow($box-shadow-inner); + } + + .content { + .wrap { + @include display(flex); + flex-wrap: wrap; + } + .content-primary, + .content-primary-blog { + @include span-columns(9); + @include bp(large) { + @include fill-parent; + order: 2; + margin-right: 0; + } + } + + .content-nav, + .content-nav-blog { + @include span-columns(3); + @include bp(large) { + @include fill-parent; + order: 1; + margin-bottom: 30px; + } + } + + .content-nav-blog { + @include bp(large) { + display: none; + } + } + + .content-primary { + .documentation, + .tools { + .doc-item, + .tool-item { + margin-bottom: 0; + transition: $base-transition; + @include span-columns(6); + @include omega(2n); + @include bp(large) { + @include fill-parent; + } + + a { + &:active, + &:focus, + &:hover { + h4 { + color: $brand-primary; + } + } + } + + &:nth-child(2n) { + clear: none; + } + + &:active, + &:focus, + &:hover { + text-decoration: none; + background: none; + + } + } + } + } + + .content-nav { + + .inner-box { + .inner-toc { + & > ul { + & > li { + margin-top: 10px; + line-height: 1.2; + & > a { + color: $gray-dark; + + &:active, + &:focus, + &:hover { + color: $hover-link-color; + } + } + + & > ul { + margin: 5px 0; + padding-left: 14px; + color: rgba($base-font-color-light, 0.7); + border-left: $base-border-gray; + + li { + font-size: $font-size-medium; + margin-bottom: -2px; + + ul { + li { + font-size: $font-size-small; + + &:before { + color: rgba($base-font-color-light, 0.5); + padding-left: 0; + margin-right: 6px; + content: "\2192"; + } + + a { + font-style: italic; + } + } + } + } + } + } + } + } + + hr { + border: none; + height: 1px; + width: 60px; + background: $base-border-color-gray; + margin: 18px 0; + } + + .help-us { + line-height: 1.1; + + a { + font-size: $font-size-xsmall; + background: rgba($brand-tertiary, 0.15); + + &:active, + &:focus, + &:hover { + text-decoration: none; + } + + br { + height: 5px; + } + } + } + } + } + } +} diff --git a/_sass/layout/inner-text.scss b/_sass/layout/inner-text.scss new file mode 100755 index 000000000..ef9274e8b --- /dev/null +++ b/_sass/layout/inner-text.scss @@ -0,0 +1,28 @@ +// INNER TEXT +//------------------------------------------------ +//------------------------------------------------ +.inner-text { + position: relative; + h1 { + font-family: $base-font-family; + font-size: 2.813rem; + font-weight: $font-black; + color: #fff; + margin: $padding-medium 0 ($padding-medium / 2) 0; + } + + p { + font-size: 1.25rem; + color: #fff; + margin-bottom: $padding-medium; + } + @include span-columns(8); + @include bp(large) { + @include span-columns(12); + + h1 { + font-size: 2.213rem; + margin: 0 0 ($padding-medium / 2) 0; + } + } +} diff --git a/_sass/layout/maintenance.scss b/_sass/layout/maintenance.scss new file mode 100755 index 000000000..12d961d9e --- /dev/null +++ b/_sass/layout/maintenance.scss @@ -0,0 +1,89 @@ +// MAINTENANCE +//------------------------------------------------ +//------------------------------------------------ + +.maintenance { + background: $gray-dark; + + .heading-line { + h2 { + span { + background: $gray-dark; + } + } + } + + h3 { + color: #fff; + text-align: center; + font-size: 0.9375rem; + } + + .maintained { + @include display(flex); + @include align-items(center); + @include justify-content(center); + flex-wrap: wrap; + margin-bottom: 40px; + + li { + &:first-child { + margin-right: 32px; + } + + a { + img { + height: 43px; + width: auto; + opacity: 0.3; + transition: $base-transition; + } + + &:hover { + img { + opacity: 1; + } + } + } + } + @include bp(small) { + li:first-child { + margin-right: 0; + } + } + } + + .supported { + padding-top: 30px; + @include display(flex); + @include flex-direction(row); + @include align-items(center); + @include justify-content(space-between); + flex-wrap: wrap; + + a { + + img { + height: 42px; + width: auto; + display: block; + opacity: 0.3; + transition: $base-transition; + + @include bp(large) { + margin: 5px; + } + + @include bp(medium) { + margin: 10px; + } + + } + &:hover { + img { + opacity: 1; + } + } + } + } +} diff --git a/_sass/layout/marker.scss b/_sass/layout/marker.scss new file mode 100755 index 000000000..769d78ef5 --- /dev/null +++ b/_sass/layout/marker.scss @@ -0,0 +1,64 @@ +// MARKER +//------------------------------------------------ +//------------------------------------------------ + +.marker { + position: absolute; + width: 16px; + height: 8px; + background: #A4302E; + left: 0px; + top: 0px; + border-radius: 100%; + cursor: pointer; + + @include bp(xxlarge) { + display: none; + } + + &:hover { + .info-marker, + .arrow { + visibility: visible; + opacity: 1; + transition: $base-transition; + } + } + + &:before { + content: ""; + position: absolute; + background: rgba(#A4302E, 0.3); + left: -8px; + top: -4px; + width: 32px; + height: 16px; + border-radius: 100%; + z-index: 1; + } + + .info-marker { + width: 472px; + position: absolute; + left: -13px; + top: 30px; + font-size: $font-size-small; + color: #fff; + font-family: $heading-font-family; + background: rgba($gray-dark, 0.8); + padding: 20px; + visibility: hidden; + opacity: 0; + + + .arrow { + position: absolute; + left: 0; + top: -16px; + width: 23px; + height: 13px; + z-index: 1; + } + } + +} diff --git a/_sass/layout/navigation.scss b/_sass/layout/navigation.scss new file mode 100755 index 000000000..90960f33c --- /dev/null +++ b/_sass/layout/navigation.scss @@ -0,0 +1,94 @@ +// NAVIGATION +//------------------------------------------------ +//------------------------------------------------ + +.navigation { + padding: $padding-medium 0; + @include display(flex); + @include flex-direction(row); + @include align-items(center); + @include justify-content(space-between); + .navigation-bdand { + img { + width: 104px; + height: 43px; + } + } + .navigation-panel-button { + display: none; + font-size: 1.333rem; + color: #fff; + cursor: pointer; + @include bp(large) { + order: 3; + display: block; + } + } + + .navigation-menu { + .navigation-menu-item { + display: inline-block; + + &:last-child { + margin-right: 0; + } + + a { + padding: 5px 15px; + text-transform: uppercase; + color: #fff; + border-radius: 300px; + font-weight: $font-bold; + + &:active, + &:focus, + &:hover, + &.active { + background: $brand-primary; + text-decoration: none; + } + } + } + } +} +@include bp(large) { + .navigation { + .navigation-menu { + padding: 20px; + $sliding-panel-width: 270px; + @include position(fixed, 0 0 0 auto); + @include size($sliding-panel-width 100%); + @include transform(translateX(+ $sliding-panel-width)); + @include transition(all 0.25s linear); + background: #fff; + -webkit-overflow-scrolling: touch; + overflow-y: auto; + z-index: 100; + background: rgba($gray-darker, 0.99); + + &.is-visible { + @include transform(translateX(0)); + } + + .navigation-menu-item { + margin-right: 16px; + padding: 10px 0; + display: block; + } + } + } +} + +.navigation-fade-screen { + @include position(fixed, 0 0 0 0); + @include transition; + background: #000; + opacity: 0; + visibility: hidden; + z-index: 90; + + &.is-visible { + opacity: 0.6; + visibility: visible; + } +} diff --git a/_sass/layout/new-blog.scss b/_sass/layout/new-blog.scss new file mode 100755 index 000000000..2305e669d --- /dev/null +++ b/_sass/layout/new-blog.scss @@ -0,0 +1,154 @@ +// NEW BLOG +//------------------------------------------------ +//------------------------------------------------ + +.new-blog { + background: $gray-lighter; + + .heading-line { + h2 { + color: $gray-dark; + + span { + background: $gray-lighter; + } + + &:before { + background: $base-border-color-gray; + } + } + } + + .new, + .recently { + @include span-columns(6); + @include bp(large) { + @include span-columns(12); + } + + h3 { + font-family: $base-font-family; + text-transform: uppercase; + border-bottom: $base-border-gray; + font-size: $font-size-large; + } + + .content-card { + background: #fff; + padding: 22px; + display: block; + border-radius: $border-radius-base; + + } + } + + .new { + @include bp(large) { + margin-bottom: 40px; + } + + .content-card { + height: 516px; + overflow: hidden; + position: relative; + + &:before { + content: ""; + position: absolute; + background: #fff; + left: 0; + bottom: 0; + width: 100%; + height: 20px;; + z-index: 1; + } + } + .tag-new { + text-transform: uppercase; + font-size: $font-size-medium; + color: $brand-primary; + font-weight: $font-bold; + } + + h3 { + font-size: 1.5rem; + color: $gray-dark; + padding-bottom: 15px; + margin-bottom: 15px; + + a { + color: $gray-dark; + + &:active, + &:focus, + &:hover { + text-decoration: none; + color: $brand-primary; + } + } + } + + .date { + color: $base-font-color-light; + display: block; + margin-bottom: 5px; + font-style: italic; + } + } + + .recently { + a { + margin-bottom: 16px; + + h3 { + color: $gray-dark; + transition: $base-transition; + padding-bottom: 8px; + margin-bottom: 6px; + } + + ul { + position: relative; + margin-bottom: 4px; + li { + color: $base-font-color-light; + font-size: $font-size-small; + display: inline-block; + + &.dot { + font-size: 10px; + } + + &.tag { + position: absolute; + right: 0; + top: 3px; + background: $brand-primary; + color: #fff; + text-transform: uppercase; + font-size: 11px; + font-weight: $font-bold; + padding: 1px 5px; + } + } + + + } + + p { + color: $base-font-color; + } + + &:active, + &:focus, + &:hover { + text-decoration: none; + box-shadow: $box-shadow-item; + h3 { + color: #765; + color: $brand-primary; + } + } + } + } +} diff --git a/_sass/layout/nutshell.scss b/_sass/layout/nutshell.scss new file mode 100755 index 000000000..64dec85d0 --- /dev/null +++ b/_sass/layout/nutshell.scss @@ -0,0 +1,111 @@ +// NUTSHELL +//------------------------------------------------ +//------------------------------------------------ + +.nutshell { + background: $gray; + + .heading-line { + h2 { + span { + background: $gray; + } + } + } + + .scala-items-list { + .items-menu { + .scala-item { + @include span-columns(4); + @include omega(3n); + padding: $padding-small; + text-align: center; + transition: $base-transition; + @include bp(medium) { + @include span-columns(12); + } + + min-height: 165px; + + h3 { + color: #fff; + font-size: $font-size-h3; + text-transform: uppercase; + font-family: $base-font-family; + margin-bottom: 10px; + } + + p { + color: $base-font-color-inverse; + font-size: $font-size-large; + } + + + &:active, + &:focus, + &:hover { + cursor: pointer; + background: $gray-dark; + } + + &.active { + background: $gray-dark; + } + } + + .items-content { + background: $gray-dark; + transition: $base-transition; + + .items-code { + display: none; + background: $gray-dark; + padding: 65px 0; + + .scala-code { + + @include span-columns(6); + @include bp(large) { + @include span-columns(12); + } + } + + .scala-text { + code { + background: $gray-darker; + padding: 2px 8px; + color: #859900; + border-radius: 2px; + margin: 0 3px; + } + @include span-columns(6); + @include bp(large) { + @include span-columns(12); + } + + h3 { + font-size: 1.625rem; + color: #fff; + margin-bottom: 20px; + } + + p { + color: $base-font-color-inverse; + } + + &.scala-text-large { + @include span-columns(12); + margin-bottom: 30px; + } + } + } + } + } + } + + .scala-item-expanded { + display: none; + height: 400px; + background: $gray-dark; + } +} diff --git a/_sass/layout/run-scala.scss b/_sass/layout/run-scala.scss new file mode 100755 index 000000000..79eac19a5 --- /dev/null +++ b/_sass/layout/run-scala.scss @@ -0,0 +1,57 @@ +// RUN SCALA +//------------------------------------------------ +//------------------------------------------------ + +#site-main { + .run-scala { + background: $gray-dark; + padding-bottom: 0; + overflow: hidden; + + .code-element { + margin-bottom: -1px; + margin-top: 48px; + position: relative; + + textarea { + width: 100%; + background: $gray-darker; + height: 400px; + overflow: hidden; + + &:focus { + outline: none; + } + } + + .btn-run { + position: absolute; + right: 20px; + bottom: 20px; + background: rgba(#fff, 0.1); + padding: 3px 14px; + color: #fff; + font-size: $font-size-small; + cursor: pointer; + transition: $base-transition; + @include user-select(none); + + + + &:hover { + background: rgba(#fff, 0.2); + } + + &.inactive { + color: rgba(#fff, 0.5); + background: rgba(#fff, 0.05); + pointer-events: none; + } + + i { + margin-right: 10px; + } + } + } + } +} diff --git a/_sass/layout/runs.scss b/_sass/layout/runs.scss new file mode 100755 index 000000000..172073a79 --- /dev/null +++ b/_sass/layout/runs.scss @@ -0,0 +1,71 @@ +// RUNS +//------------------------------------------------ +//------------------------------------------------ + +#site-main { + .runs { + padding: 30px 0; + background: $gray; + + h2 { + color: #fff; + text-align: center; + font-size: $font-size-large; + } + + ul { + @include display(flex); + @include align-items(center); + @include justify-content(center); + margin-top: 30px; + li:nth-child(2) { + height: 100px; + width: 1px; + background: $base-border-color-white; + margin-left: 36px; + margin-right: 36px; + } + li:nth-child(1), + li:nth-child(3) { + + @include border-radius(100%); + @include display(flex); + @include align-items(center); + @include justify-content(center); + + + + span { + + @include border-radius(100%); + @include display(flex); + @include align-items(center); + @include justify-content(center); + + img { + height: 56px; + width: 56px; + opacity: 0.3; + transition: $base-transition; + } + } + + &:hover { + span { + img { + opacity: 1; + } + } + } + } + } + + p { + text-align: center; + color: rgba(#fff, 0.6); + margin-top: 28px; + text-transform: uppercase; + font-size: $font-size-small; + } + } +} diff --git a/_sass/layout/scala-ecosystem.scss b/_sass/layout/scala-ecosystem.scss new file mode 100755 index 000000000..1fb9925e1 --- /dev/null +++ b/_sass/layout/scala-ecosystem.scss @@ -0,0 +1,125 @@ +// SCALA ECOSISTEM +//------------------------------------------------ +//------------------------------------------------ + +#site-main { + .scala-ecosystem { + padding-bottom: 0; + background: url("../img/frontpage/background-scala-ecosystem.png") no-repeat center bottom $gray-li; + @include image-size(); + + .heading-line { + @include clearfix; + + h2 { + span { + background: #234D57; + } + } + } + + .browser { + .header-browser { + background: $gray-dark; + padding: 14px 20px; + @include display(flex); + @include align-items(center); + @include justify-content(space-between); + + img { + width: 116px; + height: auto; + } + + img:last-child { + width: 86px; + height: auto; + } + } + + .main-browser { + background: rgba($gray, 0.5); + transition: $base-transition; + text-align: center; + padding: 70px 0 80px; + + h2 { + color: #fff; + font-size: 2.5rem; + margin-bottom: 24px; + } + + .input-control { + position: relative; + background: #333; + width: 550px; + margin-left: auto; + margin-right: auto; + color: $base-font-color-light; + + span { + position: absolute; + left: 20px; + top: 8px; + } + + input { + padding: 12px 18px 12px 50px; + border-radius: $border-radius-small; + width: 100%; + font-weight: $font-bold; + } + } + @include bp(medium) { + padding-left: 20px; + padding-right: 20px; + + h2 { + font-size: 1.4rem; + } + + .input-control { + width: 100%; + } + } + } + } + + &:hover { + .main-browser { + background: $gray; + padding-bottom: 140px; + } + } + } + + .autocomplete-suggestions { + border: 1px solid $gray-light; + background: #FFF; + overflow: auto; + } + + .autocomplete-suggestion { + padding: 2px 5px; + white-space: nowrap; + overflow: hidden; + } + + .autocomplete-selected { + background: $gray-lighter; + } + + .autocomplete-suggestions strong { + font-weight: normal; + color: $gray-dark; + } + + .autocomplete-group { + padding: 2px 5px; + } + + .autocomplete-group strong { + display: block; + border-bottom: 1px solid $gray-light; + } +} diff --git a/_sass/layout/scala-main-resources.scss b/_sass/layout/scala-main-resources.scss new file mode 100755 index 000000000..29a1ae575 --- /dev/null +++ b/_sass/layout/scala-main-resources.scss @@ -0,0 +1,181 @@ +// SCALA MAIN RESOURCES +//------------------------------------------------ +//------------------------------------------------ + +.scala-main-resources { + height: 180px; + background: $gray-darker; + position: relative; + + .resources { + .button { + font-size: $font-size-large; + display: block; + @include border-top-radius(200px); + @include border-right-radius(0); + @include border-bottom-radius(0); + @include border-left-radius(200px); + padding: $padding-small $padding-large; + } + + .download { + @include span-columns(4); + @include shift(2); + } + + .api-docs { + @include span-columns(4); + + .button { + text-align: right; + @include border-top-radius(0); + @include border-right-radius(200px); + @include border-bottom-radius(200px); + @include border-left-radius(0); + } + } + @include bp(large) { + .download { + @include span-columns(6); + @include shift(0); + } + + .api-docs { + @include span-columns(6); + margin-right: 0; + } + } + + .api-docs, + .download { + margin-top: -40px; + + ul { + margin-top: 12px; + max-width: 180px; + text-align: center; + + li { + &:first-child { + border-bottom: $base-border-white; + font-family: $heading-font-family; + padding-bottom: 4px; + margin-bottom: 2px; + font-weight: $font-bold; + + a { + font-size: $font-size-large; + } + } + + a { + color: rgba(#fff, 0.90); + font-size: $font-size-medium; + + &:active, + &:focus, + &:hover { + text-decoration: none; + color: rgba(#fff, 0.50); + } + } + } + } + } + + .api-docs { + ul { + float: right; + } + } + + .scala-brand-circle { + width: 340px; + height: 340px; + left: 50%; + top: -178px; + margin-left: -170px; + background: rgba($gray-darker, 0.4); + border-radius: 100%; + position: absolute; + z-index: 60; + @include display(flex); + @include align-items(center); + @include justify-content(center); + + .circle-solid { + background: $gray-darker; + width: 224px; + height: 224px; + border-radius: 100%; + text-align: center; + + > img { + width: 152px; + height: auto; + margin-top: -28px; + } + + .scala-version { + span { + display: block; + color: #fff; + font-family: $heading-font-family; + } + + span:first-child { + font-size: 1.375rem; + margin-top: -9px; + } + + span:nth-child(2) { + font-size: 1.9rem; + margin-top: -10px; + } + p { + color: rgba(#fff, 0.50); + font-style: italic; + font-size: $font-size-medium; + line-height: 1.3; + margin-top: 10px; + } + } + } + } + } + @include bp(medium) { + height: auto; + padding-bottom: $padding-xlarge; + + .resources { + .download { + margin-top: 180px; + } + + .api-docs { + margin-top: 40px; + } + + .api-docs, + .download { + @include span-columns(12); + + .button { + border-radius: 100px; + padding: ($padding-small / 2) ($padding-large / 2); + font-size: $base-font-size; + text-align: center; + } + + ul { + max-width: 100%; + float: none; + } + } + + .scala-brand-circle { + transform: scale(0.8); + } + } + } +} diff --git a/_sass/layout/scaladex.scss b/_sass/layout/scaladex.scss new file mode 100755 index 000000000..7ea611578 --- /dev/null +++ b/_sass/layout/scaladex.scss @@ -0,0 +1,10 @@ +// SCALADEX +//------------------------------------------------ +//------------------------------------------------ + +.autocomplete-suggestions { border: 1px solid #999; background: #FFF; overflow: auto; } +.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; } +.autocomplete-selected { background: #F0F0F0; } +.autocomplete-suggestions strong { font-weight: normal; color: #3399FF; } +.autocomplete-group { padding: 2px 5px; } +.autocomplete-group strong { display: block; border-bottom: 1px solid #000; } diff --git a/_sass/layout/site-main.scss b/_sass/layout/site-main.scss new file mode 100755 index 000000000..095e749ae --- /dev/null +++ b/_sass/layout/site-main.scss @@ -0,0 +1,26 @@ +// MAIN +//------------------------------------------------ +//------------------------------------------------ +#site-main { + section { + padding: $padding-xlarge 0; + } + + .spire { + min-height: 330px; + background: rgba($gray-darker, 0.4); + position: relative; + padding: 0; + + &:before { + content: ""; + position: absolute; + background: url("../img/frontpage/epfl-bc.jpg") no-repeat center center; + @include image-size(); + left: 0; + width: 100%; + height: 100%; + z-index: -1; + } + } +} diff --git a/_sass/layout/table-of-content.scss b/_sass/layout/table-of-content.scss new file mode 100755 index 000000000..1c2dc53b4 --- /dev/null +++ b/_sass/layout/table-of-content.scss @@ -0,0 +1,163 @@ +// DOCUMENTATION +//------------------------------------------------ +//------------------------------------------------ + +#inner-main { + .table-of-content { + margin-bottom: $padding-medium; + + .inner-box { + padding-bottom: 0; + } + + } +} + +.documentation { + @include clearfix; + + .doc-item { + @include span-columns(4); + @include omega(3n); + margin-bottom: $padding-medium; + min-height: 120px; + padding: 15px; + @include bp(large) { + @include span-columns(12); + min-height: auto; + } + + .doc-item-header { + @include display(flex); + @include align-items(center); + @include justify-content(flex-start); + margin-bottom: 10px; + + .fa { + font-size: 1.563rem; + margin-right: 14px; + color: $brand-primary; + } + + h4 { + color: $headings-font-color; + margin-bottom: 0; + transition: $base-transition; + } + + a { + &:active, + &:focus, + &:hover { + text-decoration: none; + } + } + } + + .doc-item-main { + p { + color: $base-font-color; + } + } + + &:active, + &:focus, + &:hover { + text-decoration: none; + background: $gray-lighter; + } + } +} + +.community { + @include clearfix; + padding-bottom: $padding-small; + .discourse, + .gitter { + h3 { + margin-top: 0; + } + @include span-columns(6); + + @include bp(medium) { + @include span-columns(12); + } + + span { + border-bottom: $base-border-gray; + display: block; + color: $base-font-color-light; + font-style: italic; + padding-bottom: 10px; + margin-bottom: 30px; + } + + img { + width: 28px; + height: 28px; + } + + a { + &:active, + &:focus, + &:hover { + text-decoration: none; + color: $brand-primary; + + h4 { + color: $brand-primary; + } + + } + } + } + .discourse { + ul { + li { + @include display(flex); + @include align-items(top); + @include justify-content(flex-start); + + img { + margin-right: 15px; + } + + h4 { + margin-bottom: 8px; + + } + + margin-bottom: $padding-large; + } + } + } + + .gitter { + ul { + li { + @include span-columns(3 of 6); + @include omega(2n); + margin-bottom: 20px; + + @include bp(small) { + @include span-columns(12); + } + + a { + @include display(flex); + @include align-items(center); + @include justify-content(flex-start); + + img { + margin-right: 10px; + } + + h4 { + text-transform: none; + } + } + + } + } + } +} diff --git a/_sass/layout/talk-to-us.scss b/_sass/layout/talk-to-us.scss new file mode 100755 index 000000000..ca83f9676 --- /dev/null +++ b/_sass/layout/talk-to-us.scss @@ -0,0 +1,197 @@ +// TLAK TO US +//------------------------------------------------ +//------------------------------------------------ + +.talk-to-us { + .heading-line { + h2 { + color: $gray-dark; + + span { + background: #fff; + } + + &:before { + background: $base-border-color-gray; + } + } + } + + h3 { + text-align: center; + color: $gray-dark; + font-size: $font-size-medium; + margin-bottom: 40px; + } + + .discourse, + .gitter { + margin-bottom: 50px; + @include clearfix; + } + + .discourse { + .scala-user-discourse { + @include shift(2); + } + + .scala-contributors-discourse, + .scala-user-discourse { + padding: 20px; + + img { + width: 34px; + height: auto; + } + + h4 { + font-family: $base-font-family; + font-size: $font-size-large; + text-transform: uppercase; + color: $gray-dark; + margin: 12px 0 8px; + } + text-align: center; + + p { + color: $base-font-color; + } + + &:active, + &:focus, + &:hover { + text-decoration: none; + background: $gray-lighter; + border-radius: $border-radius-small; + + h4 { + color: $brand-primary; + } + } + @include span-columns(4); + @include bp(large) { + @include span-columns(12); + @include shift(0); + } + } + } + + .gitter { + ul.first { + @include shift(2); + + li { + &:last-child { + border-bottom: $base-border-gray; + } + } + } + + ul, + ul.first { + @include span-columns(4); + @include bp(medium) { + @include span-columns(12); + @include shift(0); + + li { + &:last-child { + border-bottom: none; + } + } + } + } + + ul { + li { + a { + @include display(flex); + @include align-items(center); + @include justify-content(flex-start); + padding: 14px 0; + color: $base-font-color; + font-weight: $font-bold; + padding-left: 30px; + + &:active, + &:focus, + &:hover { + background: $gray-lighter; + text-decoration: none; + } + + img { + width: 28px; + height: auto; + margin-right: 10px; + } + } + border-top: $base-border-gray; + + &:last-child { + border-bottom: $base-border-gray; + } + } + } + } + + .communities { + ul { + text-align: center; + + li { + display: inline-block; + + &:first-child { + img { + width: 127px; + height: auto; + } + margin-right: 20px; + } + + &:last-child { + img { + width: 131px; + height: auto; + } + } + + a { + &:active, + &:focus, + &:hover { + opacity: 0.7; + } + } + } + } + } + + .social { + margin-top: 40px; + text-align: center; + ul { + li { + display: inline-block; + font-size: 1.75rem; + + &:first-child { + margin-right: 14px; + } + + a { + color: $gray; + + &:active, + &:focus, + &:hover { + color: $brand-primary; + } + } + + } + + } + } +} diff --git a/_sass/layout/title-page.scss b/_sass/layout/title-page.scss new file mode 100755 index 000000000..defce3a57 --- /dev/null +++ b/_sass/layout/title-page.scss @@ -0,0 +1,16 @@ +// TITLE PAGE +//------------------------------------------------ +//------------------------------------------------ + +.title-page { + background: $brand-tertiary; + height: 200px; + h1 { + font-size: 1.875rem; + font-family: $base-font-family; + padding-top: $padding-large; + text-transform: uppercase; + text-shadow: $text-shadow; + color: #fff; + } +} diff --git a/_sass/layout/tools.scss b/_sass/layout/tools.scss new file mode 100755 index 000000000..deca4099c --- /dev/null +++ b/_sass/layout/tools.scss @@ -0,0 +1,66 @@ +// TOOLS +//------------------------------------------------ +//------------------------------------------------ +//------------------------------------------------ + +.content-primary { + .tools { + @include clearfix; + + .tool-item { + @include span-columns(4); + @include omega(3n); + margin-bottom: $padding-medium; + min-height: 120px; + padding: 15px; + @include bp(large) { + @include span-columns(12); + min-height: auto; + } + + .tool-item-header { + margin-bottom: 10px; + + img { + height: 50px; + width: auto; + } + + + h4 { + color: $headings-font-color; + margin-bottom: 0; + transition: $base-transition; + } + + a { + &:active, + &:focus, + &:hover { + text-decoration: none; + } + } + + } + + .tool-item-main { + p { + color: $base-font-color; + margin-bottom: 6px; + } + ul { + padding: 0; + margin: 0; + + li { + list-style: none; + padding: 0; + margin: 0; + display: inline-block; + + } + } + } + } + } +} diff --git a/_sass/layout/training-events.scss b/_sass/layout/training-events.scss new file mode 100755 index 000000000..585179164 --- /dev/null +++ b/_sass/layout/training-events.scss @@ -0,0 +1,82 @@ +// TRAINING-EVENTS +//------------------------------------------------ +//------------------------------------------------ + +.training-events { + h3 { + border-bottom: $base-border-gray; + padding-bottom: 14px; + } + + .training-list { + @include clearfix; + margin-top: $padding-medium; + + .training-item { + margin-bottom: $padding-medium; + @include span-columns(3); + @include omega(4n); + @include bp(medium) { + @include span-columns(12); + + padding-bottom: 20px; + border-bottom: $base-border-gray; + } + + img, + .calendar { + float: left; + } + + img { + width: 28px; + height: auto; + } + + .calendar { + span:last-child { + background: $gray-lighter; + } + } + + .training-text { + margin-left: 44px; + + h4 { + margin-bottom: 6px; + } + + p { + color: $base-font-color; + + &:nth-child(2) { + text-transform: uppercase; + } + } + } + + + &:active, + &:focus, + &:hover { + text-decoration: none; + + h4 { + color: $brand-primary; + } + } + } + } + + .org-scala-event { + // background: $gray-lighter; + padding: 24px; + border: 2px dashed $base-border-color-gray; + + h2 { + margin-top: 0; + margin-bottom: 10px; + } + margin-top: $padding-medium; + } +} diff --git a/_sass/layout/twitter-feed.scss b/_sass/layout/twitter-feed.scss new file mode 100755 index 000000000..3f8ab6a0c --- /dev/null +++ b/_sass/layout/twitter-feed.scss @@ -0,0 +1,140 @@ +// TWITTER FEED +//------------------------------------------------ +//------------------------------------------------ + +.twitter-feed { + background: $brand-tertiary; + + .heading-line { + h2 { + span { + background: $brand-tertiary; + } + + &:before { + background: rgba(#fff, 0.5); + } + } + } + + .slider-twitter { + ul { + li { + padding: 0 15px; + @include display(flex); + @include flex-direction(row); + @include align-items(stretch); + @include justify-content(space-between); + + + @include bp(large) { + display: block; + } + + + + + .item-tweet { + padding: $padding-small; + background: #fff; + border-radius: $border-radius-base; + transition: $base-transition; + max-width: 360px; + margin-right: 20px; + + @include bp(large) { + max-width: 100%; + margin-right: 0; + margin-bottom: 20px; + + } + + + &:last-child { + margin-right: 0; + } + + + img { + border-radius: $border-radius-base; + width: 44px; + height: auto; + float: left; + } + + .tweet-text { + margin-left: 64px; + + .header-tweet { + @include display(flex); + @include flex-direction(row); + @include align-items(top); + @include justify-content(space-between); + + ul { + li { + padding: 0; + margin-right: 6px; + + &.user { + font-size: $font-size-large; + font-weight: $font-bold; + color: $headings-font-color; + + a { + color: $headings-font-color; + + &:active, + &:focus, + &:hover { + color: $hover-link-color; + text-decoration: none; + } + } + } + + &.username { + font-size: $font-size-small; + color: $base-font-color-light; + font-weight: $font-bold; + } + } + } + + .date { + font-size: $font-size-small; + color: $base-font-color-light; + } + } + + .main-tweet { + p { + font-size: $font-size-medium; + + .hastag { + color: rgba($base-font-color-light, 0.7); + + &:active, + &:focus, + &:hover { + color: $base-font-color-light; + } + } + } + } + } + + &:hover { + background: rgba(#fff, 0.88); + } + } + } + } + } + + .call-to-action { + p { + color: #fff; + } + } +} diff --git a/_sass/layout/type-md.scss b/_sass/layout/type-md.scss new file mode 100755 index 000000000..35e0f3619 --- /dev/null +++ b/_sass/layout/type-md.scss @@ -0,0 +1,210 @@ +// TYPE MD +//------------------------------------------------ +//------------------------------------------------ + +.books, +.content-primary, +.content-primary-blog, +.table-of-content, +.training-events { + h2, + h3 { + font-weight: $font-regular; + margin-top: 28px; + } + + h2, + h3, + h4, + h5 { + color: $headings-font-color; + font-weight: $font-regular; + + a { + color: $headings-font-color; + + &:active, + &:focus, + &:hover { + color: $brand-primary; + text-decoration: none; + } + } + } + + h2 { + font-size: 1.75rem; + } + + h3 { + font-size: 1.25rem; + } + + h4, + h5 { + font-size: 1.063rem; + font-family: $base-font-family; + text-transform: uppercase; + font-weight: $font-bold; + } +} + +.content-primary, +.content-primary-blog { + h2 { + color: $brand-primary; + a { + color: $brand-primary; + } + } +} + +.content-nav, +.content-nav-blog { + h5 { + font-size: 1.25rem; + margin-bottom: 12px; + color: $headings-font-color; + font-weight: $font-regular; + } +} + +.content-primary, +.text-step { + h2 { + margin-bottom: 24px; + + } + + blockquote, + h3, + h4, + h5, + img, + p, + pre, + table, + ul { + margin-bottom: 18px; + } + + ol, + ul { + padding-left: 18px; + } + + ol { + li { + list-style: decimal; + } + } + + ul { + li { + list-style: disc; + } + } + + ol, + ul { + li { + padding-left: 10px; + margin-bottom: 16px; + + ul { + margin-top: 18px; + + li { + margin-bottom: 8px; + list-style: circle; + padding-left: 0; + } + } + + &:last-child { + margin-bottom: 0; + } + } + } + + em { + font-style: italic; + } + + strong { + font-weight: $font-bold; + } + + del { + text-decoration: line-through; + } + + li, + p { + code { + @include border-radius($border-radius-small); + font-size: $font-size-medium; + background: $gray-lighter; + color: $base-font-color-light; + padding: 0 6px; + margin: 0 4px; + } + } + + pre { + margin-bottom: 36px; + + code { + padding: 20px; + font-size: $font-size-medium; + @include border-radius($border-radius-base); + } + } + + table { + width: 100%; + text-align: left; + + thead { + font-weight: $font-bold; + } + + td, + th { + border-bottom: $base-border-gray; + padding: 6px 0; + } + } + + img { + width: 100%; + height: auto; + } + + blockquote { + padding: 20px; + border: 2px dashed $base-border-color-gray; + font-size: $font-size-large; + font-style: italic; + @include border-radius($border-radius-base); + + p { + margin: 0; + } + } + .tag-list { + padding: 0; + .tag-item { + &:last-child { + margin-bottom: 8px; + } + } + } + + .filter-tag { + margin-top: 30px; + text-transform: uppercase; + font-style: italic; + color: $base-font-color-light; + } +} diff --git a/_sass/layout/upcoming-events.scss b/_sass/layout/upcoming-events.scss new file mode 100755 index 000000000..0daadc3ec --- /dev/null +++ b/_sass/layout/upcoming-events.scss @@ -0,0 +1,31 @@ +.upcoming-events { + background: $gray; + + .heading-line { + h2 { + span { + background: $gray; + } + } + } + + .events-items-list { + @include clearfix; + + .event-item { + @include span-columns(4); + @include omega(3n); + @include bp(large) { + @include span-columns(12); + } + } + } + + .card { + background: $gray-dark; + + &:hover { + background: $gray-darker; + } + } +} diff --git a/_sass/utils/_mixins.scss b/_sass/utils/_mixins.scss new file mode 100755 index 000000000..21216f081 --- /dev/null +++ b/_sass/utils/_mixins.scss @@ -0,0 +1,85 @@ +// MIXINS +//------------------------------------------------ +//------------------------------------------------ + +// Breakpoints +//------------------------------------------------ +@mixin bp($point) { + @if $point==xxlarge { + @media (max-width: $bp-xxlarge) { + @content; + } + } + @if $point==xlarge { + @media (max-width: $bp-xlarge) { + @content; + } + } + @if $point==large { + @media (max-width: $bp-large) { + @content; + } + } + @if $point==medium { + @media (max-width: $bp-medium) { + @content; + } + } + @if $point==small { + @media (max-width: $bp-small) { + @content; + } + } +} + +// Images +//------------------------------------------------ +@mixin image-size { + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} + +// Font +//------------------------------------------------ +@mixin font-smoothing($value: on) { + @if $value == on { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + @else { + -webkit-font-smoothing: subpixel-antialiased; + -moz-osx-font-smoothing: auto; + } +} + +// Border +//------------------------------------------------ +@mixin border-radius($radius) { + border-radius: $radius; + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + -o-border-radius: $radius; +} + +// User select +//------------------------------------------------ +@mixin no-select { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + + +// Box Shadow +//------------------------------------------------ +@mixin box-shadow($params) { + -webkit-box-shadow: $params; + -moz-box-shadow: $params; + box-shadow: $params; +} diff --git a/_sass/utils/_variables.scss b/_sass/utils/_variables.scss new file mode 100755 index 000000000..b40b37998 --- /dev/null +++ b/_sass/utils/_variables.scss @@ -0,0 +1,94 @@ +// VARIABLES +//------------------------------------------------ +//------------------------------------------------ + +// Color +//------------------------------------------------ +$brand-primary: #DC322F; +$brand-secondary: #859900; +$brand-tertiary: #5CC6E4; +//------------------------------------------------- +$gray-darker: #002B36; +$gray-dark: #073642; +$gray: #15414C; +$gray-li: #244E58; +$gray-light: #E5EAEA; +$gray-lighter: #F0F3F3; +$apple-blue: #6dccf5; +//------------------------------------------------- +$headings-font-color: $gray-dark; +$base-font-color: #4A5659; +$base-font-color-light: #899295; +//------------------------------------------------- +$base-font-color-inverse: rgba(#fff, 0.70); + +// Typography +//------------------------------------------------ +@import url('https://fonts.googleapis.com/css?family=Lato:300,400,400i,700i,900'); +@import url('https://fonts.googleapis.com/css?family=Roboto+Slab:400,700'); +@import url('https://fonts.googleapis.com/css?family=Kalam:300,400,700'); +//------------------------------------------------ +$base-font-family: 'Lato', sans-serif; +$heading-font-family: 'Roboto Slab', serif; +//------------------------------------------------ +$em-base: 16px !global; +$base-font-size: $em-base; +//------------------------------------------------ +$font-size-large: 1.063rem; // 17px +$font-size-medium: 0.9375rem; // 15px +$font-size-small: 0.875rem; // 14px +$font-size-xsmall: 0.75rem; // 12px + +$font-size-h2: 1.375rem; // 22px +$font-size-h3: $font-size-large; // 17px + +//------------------------------------------------ +$base-line-height: 1.6; +$heading-line-height: 1.4; +//------------------------------------------------ +$font-light: 300; +$font-regular: 400; +$font-bold: 700; +$font-black: 900; + +// Link Colors +//------------------------------------------------ +$base-link-color: darken($brand-tertiary, 15%); +$hover-link-color: $brand-primary; + +// Border +//------------------------------------------------ +$base-border-color-gray: $gray-light; +$base-border-color-white: rgba(#fff, 0.14); +$base-border-gray: 1px solid $base-border-color-gray; +$base-border-white: 1px solid $base-border-color-white; + +// Other Sizes +//------------------------------------------------ +$padding-xlarge: 50px; +$padding-large: 40px; +$padding-medium: 30px; +$padding-small: 20px; +//------------------------------------------------ +$border-radius-base: 3px; +$border-radius-small: 2px; + +// Breakpoints +//------------------------------------------------ +$bp-small: 480px; +$bp-medium: 768px; +$bp-large: 992px; +$bp-xlarge: 1130px; +$bp-xxlarge: 1400px; + +// Animations +//------------------------------------------------ +$base-duration: 350ms; +$base-timing: ease; +$base-transition: all $base-duration $base-timing; + + +$box-shadow-item: rgba($gray-darker, 0.20) 0 1px 12px; +$box-shadow-inner: rgba($gray-darker, 0.04) 0 2px 1px; +$box-shadow-search: rgba($gray-darker, 0.2) 0 2px 8px; +$text-shadow: rgba($gray-darker, 0.10) 2px 2px 0; diff --git a/_sass/vendors/bourbon/_bourbon-deprecated-upcoming.scss b/_sass/vendors/bourbon/_bourbon-deprecated-upcoming.scss new file mode 100755 index 000000000..e6d1b8cec --- /dev/null +++ b/_sass/vendors/bourbon/_bourbon-deprecated-upcoming.scss @@ -0,0 +1,411 @@ +// The following features have been deprecated and will be removed in the next MAJOR version release + +@mixin inline-block { + display: inline-block; + + @warn "The inline-block mixin is deprecated and will be removed in the next major version release"; +} + +@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) { + + @if type-of($style) == string and type-of($base-color) == color { + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == string and type-of($base-color) == number { + $padding: $text-size; + $text-size: $base-color; + $base-color: #4294f0; + + @if $padding == inherit { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == color and type-of($base-color) == color { + $base-color: $style; + $style: simple; + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == color and type-of($base-color) == number { + $padding: $text-size; + $text-size: $base-color; + $base-color: $style; + $style: simple; + + @if $padding == inherit { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == number { + $padding: $base-color; + $text-size: $style; + $base-color: #4294f0; + $style: simple; + + @if $padding == #4294f0 { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + &:disabled { + cursor: not-allowed; + opacity: 0.5; + } + + @warn "The button mixin is deprecated and will be removed in the next major version release"; +} + +// Selector Style Button +@mixin buttonstyle($type, $b-color, $t-size, $pad) { + // Grayscale button + @if $type == simple and $b-color == grayscale($b-color) { + @include simple($b-color, true, $t-size, $pad); + } + + @if $type == shiny and $b-color == grayscale($b-color) { + @include shiny($b-color, true, $t-size, $pad); + } + + @if $type == pill and $b-color == grayscale($b-color) { + @include pill($b-color, true, $t-size, $pad); + } + + @if $type == flat and $b-color == grayscale($b-color) { + @include flat($b-color, true, $t-size, $pad); + } + + // Colored button + @if $type == simple { + @include simple($b-color, false, $t-size, $pad); + } + + @else if $type == shiny { + @include shiny($b-color, false, $t-size, $pad); + } + + @else if $type == pill { + @include pill($b-color, false, $t-size, $pad); + } + + @else if $type == flat { + @include flat($b-color, false, $t-size, $pad); + } +} + +// Simple Button +@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%); + $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%); + $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%); + $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border: grayscale($border); + $inset-shadow: grayscale($inset-shadow); + $stop-gradient: grayscale($stop-gradient); + $text-shadow: grayscale($text-shadow); + } + + border: 1px solid $border; + border-radius: 3px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + @include linear-gradient ($base-color, $stop-gradient); + padding: $padding; + text-decoration: none; + text-shadow: 0 1px 0 $text-shadow; + background-clip: padding-box; + + &:hover:not(:disabled) { + $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%); + $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%); + $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + $inset-shadow-hover: grayscale($inset-shadow-hover); + $stop-gradient-hover: grayscale($stop-gradient-hover); + } + + @include linear-gradient ($base-color-hover, $stop-gradient-hover); + + box-shadow: inset 0 1px 0 0 $inset-shadow-hover; + cursor: pointer; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%); + $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%); + + @if $grayscale == true { + $border-active: grayscale($border-active); + $inset-shadow-active: grayscale($inset-shadow-active); + } + + border: 1px solid $border-active; + box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active; + } +} + +// Shiny Button +@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81); + $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122); + $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46); + $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12); + $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33); + $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114); + $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border: grayscale($border); + $border-bottom: grayscale($border-bottom); + $fourth-stop: grayscale($fourth-stop); + $inset-shadow: grayscale($inset-shadow); + $second-stop: grayscale($second-stop); + $text-shadow: grayscale($text-shadow); + $third-stop: grayscale($third-stop); + } + + @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%); + + border: 1px solid $border; + border-bottom: 1px solid $border-bottom; + border-radius: 5px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + padding: $padding; + text-align: center; + text-decoration: none; + text-shadow: 0 -1px 1px $text-shadow; + + &:hover:not(:disabled) { + $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18); + $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51); + $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66); + $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63); + + @if $grayscale == true { + $first-stop-hover: grayscale($first-stop-hover); + $second-stop-hover: grayscale($second-stop-hover); + $third-stop-hover: grayscale($third-stop-hover); + $fourth-stop-hover: grayscale($fourth-stop-hover); + } + + @include linear-gradient(top, $first-stop-hover 0%, + $second-stop-hover 50%, + $third-stop-hover 50%, + $fourth-stop-hover 100%); + cursor: pointer; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122); + + @if $grayscale == true { + $inset-shadow-active: grayscale($inset-shadow-active); + } + + box-shadow: inset 0 0 20px 0 $inset-shadow-active; + } +} + +// Pill Button +@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%); + $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%); + $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%); + $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%); + $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%); + $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border-bottom: grayscale($border-bottom); + $border-sides: grayscale($border-sides); + $border-top: grayscale($border-top); + $inset-shadow: grayscale($inset-shadow); + $stop-gradient: grayscale($stop-gradient); + $text-shadow: grayscale($text-shadow); + } + + border: 1px solid $border-top; + border-color: $border-top $border-sides $border-bottom; + border-radius: 16px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: normal; + line-height: 1; + @include linear-gradient ($base-color, $stop-gradient); + padding: $padding; + text-align: center; + text-decoration: none; + text-shadow: 0 -1px 1px $text-shadow; + background-clip: padding-box; + + &:hover:not(:disabled) { + $base-color-hover: adjust-color($base-color, $lightness: -4.5%); + $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%); + $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%); + $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%); + $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%); + $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%); + $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + $border-bottom: grayscale($border-bottom); + $border-sides: grayscale($border-sides); + $border-top: grayscale($border-top); + $inset-shadow-hover: grayscale($inset-shadow-hover); + $stop-gradient-hover: grayscale($stop-gradient-hover); + $text-shadow-hover: grayscale($text-shadow-hover); + } + + @include linear-gradient ($base-color-hover, $stop-gradient-hover); + + background-clip: padding-box; + border: 1px solid $border-top; + border-color: $border-top $border-sides $border-bottom; + box-shadow: inset 0 1px 0 0 $inset-shadow-hover; + cursor: pointer; + text-shadow: 0 -1px 1px $text-shadow-hover; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%); + $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%); + $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%); + $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%); + $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%); + + @if $grayscale == true { + $active-color: grayscale($active-color); + $border-active: grayscale($border-active); + $border-bottom-active: grayscale($border-bottom-active); + $inset-shadow-active: grayscale($inset-shadow-active); + $text-shadow-active: grayscale($text-shadow-active); + } + + background: $active-color; + border: 1px solid $border-active; + border-bottom: 1px solid $border-bottom-active; + box-shadow: inset 0 0 6px 3px $inset-shadow-active; + text-shadow: 0 -1px 1px $text-shadow-active; + } +} + +// Flat Button +@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + } + + background-color: $base-color; + border-radius: 3px; + border: 0; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + padding: $padding; + text-decoration: none; + background-clip: padding-box; + + &:hover:not(:disabled){ + $base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + } + + background-color: $base-color-hover; + cursor: pointer; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%); + + @if $grayscale == true { + $base-color-active: grayscale($base-color-active); + } + + background-color: $base-color-active; + cursor: pointer; + } +} + +// Flexible grid +@function flex-grid($columns, $container-columns: $fg-max-columns) { + $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($width / $container-width); + + @warn "The flex-grid function is deprecated and will be removed in the next major version release"; +} + +// Flexible gutter +@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($gutter / $container-width); + + @warn "The flex-gutter function is deprecated and will be removed in the next major version release"; +} + +@function grid-width($n) { + @return $n * $gw-column + ($n - 1) * $gw-gutter; + + @warn "The grid-width function is deprecated and will be removed in the next major version release"; +} + +@function golden-ratio($value, $increment) { + @return modular-scale($increment, $value, $ratio: $golden); + + @warn "The golden-ratio function is deprecated and will be removed in the next major version release. Please use the modular-scale function, instead."; +} + +@mixin box-sizing($box) { + @include prefixer(box-sizing, $box, webkit moz spec); + + @warn "The box-sizing mixin is deprecated and will be removed in the next major version release. This property can now be used un-prefixed."; +} diff --git a/_sass/vendors/bourbon/_bourbon.scss b/_sass/vendors/bourbon/_bourbon.scss new file mode 100755 index 000000000..635c68041 --- /dev/null +++ b/_sass/vendors/bourbon/_bourbon.scss @@ -0,0 +1,87 @@ +// Bourbon 4.2.7 +// http://bourbon.io +// Copyright 2011-2015 thoughtbot, inc. +// MIT License + +@import "settings/prefixer"; +@import "settings/px-to-em"; +@import "settings/asset-pipeline"; + +@import "functions/assign-inputs"; +@import "functions/contains"; +@import "functions/contains-falsy"; +@import "functions/is-length"; +@import "functions/is-light"; +@import "functions/is-number"; +@import "functions/is-size"; +@import "functions/px-to-em"; +@import "functions/px-to-rem"; +@import "functions/shade"; +@import "functions/strip-units"; +@import "functions/tint"; +@import "functions/transition-property-name"; +@import "functions/unpack"; +@import "functions/modular-scale"; + +@import "helpers/convert-units"; +@import "helpers/directional-values"; +@import "helpers/font-source-declaration"; +@import "helpers/gradient-positions-parser"; +@import "helpers/linear-angle-parser"; +@import "helpers/linear-gradient-parser"; +@import "helpers/linear-positions-parser"; +@import "helpers/linear-side-corner-parser"; +@import "helpers/radial-arg-parser"; +@import "helpers/radial-positions-parser"; +@import "helpers/radial-gradient-parser"; +@import "helpers/render-gradients"; +@import "helpers/shape-size-stripper"; +@import "helpers/str-to-num"; + +@import "css3/animation"; +@import "css3/appearance"; +@import "css3/backface-visibility"; +@import "css3/background"; +@import "css3/background-image"; +@import "css3/border-image"; +@import "css3/calc"; +@import "css3/columns"; +@import "css3/filter"; +@import "css3/flex-box"; +@import "css3/font-face"; +@import "css3/font-feature-settings"; +@import "css3/hidpi-media-query"; +@import "css3/hyphens"; +@import "css3/image-rendering"; +@import "css3/keyframes"; +@import "css3/linear-gradient"; +@import "css3/perspective"; +@import "css3/placeholder"; +@import "css3/radial-gradient"; +@import "css3/selection"; +@import "css3/text-decoration"; +@import "css3/transform"; +@import "css3/transition"; +@import "css3/user-select"; + +@import "addons/border-color"; +@import "addons/border-radius"; +@import "addons/border-style"; +@import "addons/border-width"; +@import "addons/buttons"; +@import "addons/clearfix"; +@import "addons/ellipsis"; +@import "addons/font-stacks"; +@import "addons/hide-text"; +@import "addons/margin"; +@import "addons/padding"; +@import "addons/position"; +@import "addons/prefixer"; +@import "addons/retina-image"; +@import "addons/size"; +@import "addons/text-inputs"; +@import "addons/timing-functions"; +@import "addons/triangle"; +@import "addons/word-wrap"; + +@import "bourbon-deprecated-upcoming"; diff --git a/_sass/vendors/bourbon/addons/_border-color.scss b/_sass/vendors/bourbon/addons/_border-color.scss new file mode 100755 index 000000000..6f6ab36c4 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_border-color.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-color` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include border-color(#a60b55 #76cd9c null #e8ae1a); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-left-color: #e8ae1a; +/// border-right-color: #76cd9c; +/// border-top-color: #a60b55; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `border-color` + +@mixin border-color($vals...) { + @include directional-property(border, color, $vals...); +} diff --git a/_sass/vendors/bourbon/addons/_border-radius.scss b/_sass/vendors/bourbon/addons/_border-radius.scss new file mode 100755 index 000000000..1f6586335 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_border-radius.scss @@ -0,0 +1,48 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-radius` on both corners on the side of a box. +/// +/// @param {Number} $radii +/// List of arguments +/// +/// @example scss - Usage +/// .element-one { +/// @include border-top-radius(5px); +/// } +/// +/// .element-two { +/// @include border-left-radius(3px); +/// } +/// +/// @example css - CSS Output +/// .element-one { +/// border-top-left-radius: 5px; +/// border-top-right-radius: 5px; +/// } +/// +/// .element-two { +/// border-bottom-left-radius: 3px; +/// border-top-left-radius: 3px; +/// } +/// +/// @output `border-radius` + +@mixin border-top-radius($radii) { + border-top-left-radius: $radii; + border-top-right-radius: $radii; +} + +@mixin border-right-radius($radii) { + border-bottom-right-radius: $radii; + border-top-right-radius: $radii; +} + +@mixin border-bottom-radius($radii) { + border-bottom-left-radius: $radii; + border-bottom-right-radius: $radii; +} + +@mixin border-left-radius($radii) { + border-bottom-left-radius: $radii; + border-top-left-radius: $radii; +} diff --git a/_sass/vendors/bourbon/addons/_border-style.scss b/_sass/vendors/bourbon/addons/_border-style.scss new file mode 100755 index 000000000..d86ee79d9 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_border-style.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-style` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include border-style(dashed null solid); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-bottom-style: solid; +/// border-top-style: dashed; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `border-style` + +@mixin border-style($vals...) { + @include directional-property(border, style, $vals...); +} diff --git a/_sass/vendors/bourbon/addons/_border-width.scss b/_sass/vendors/bourbon/addons/_border-width.scss new file mode 100755 index 000000000..0ea2d4b71 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_border-width.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-width` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include border-width(1em null 20px); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-bottom-width: 20px; +/// border-top-width: 1em; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `border-width` + +@mixin border-width($vals...) { + @include directional-property(border, width, $vals...); +} diff --git a/_sass/vendors/bourbon/addons/_buttons.scss b/_sass/vendors/bourbon/addons/_buttons.scss new file mode 100755 index 000000000..debeabc53 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_buttons.scss @@ -0,0 +1,64 @@ +@charset "UTF-8"; + +/// Generates variables for all buttons. Please note that you must use interpolation on the variable: `#{$all-buttons}`. +/// +/// @example scss - Usage +/// #{$all-buttons} { +/// background-color: #f00; +/// } +/// +/// #{$all-buttons-focus}, +/// #{$all-buttons-hover} { +/// background-color: #0f0; +/// } +/// +/// #{$all-buttons-active} { +/// background-color: #00f; +/// } +/// +/// @example css - CSS Output +/// button, +/// input[type="button"], +/// input[type="reset"], +/// input[type="submit"] { +/// background-color: #f00; +/// } +/// +/// button:focus, +/// input[type="button"]:focus, +/// input[type="reset"]:focus, +/// input[type="submit"]:focus, +/// button:hover, +/// input[type="button"]:hover, +/// input[type="reset"]:hover, +/// input[type="submit"]:hover { +/// background-color: #0f0; +/// } +/// +/// button:active, +/// input[type="button"]:active, +/// input[type="reset"]:active, +/// input[type="submit"]:active { +/// background-color: #00f; +/// } +/// +/// @require assign-inputs +/// +/// @type List +/// +/// @todo Remove double assigned variables (Lines 59–62) in v5.0.0 + +$buttons-list: 'button', + 'input[type="button"]', + 'input[type="reset"]', + 'input[type="submit"]'; + +$all-buttons: assign-inputs($buttons-list); +$all-buttons-active: assign-inputs($buttons-list, active); +$all-buttons-focus: assign-inputs($buttons-list, focus); +$all-buttons-hover: assign-inputs($buttons-list, hover); + +$all-button-inputs: $all-buttons; +$all-button-inputs-active: $all-buttons-active; +$all-button-inputs-focus: $all-buttons-focus; +$all-button-inputs-hover: $all-buttons-hover; diff --git a/_sass/vendors/bourbon/addons/_clearfix.scss b/_sass/vendors/bourbon/addons/_clearfix.scss new file mode 100755 index 000000000..11313d66f --- /dev/null +++ b/_sass/vendors/bourbon/addons/_clearfix.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides an easy way to include a clearfix for containing floats. +/// +/// @link http://cssmojo.com/latest_new_clearfix_so_far/ +/// +/// @example scss - Usage +/// .element { +/// @include clearfix; +/// } +/// +/// @example css - CSS Output +/// .element::after { +/// clear: both; +/// content: ""; +/// display: table; +/// } + +@mixin clearfix { + &::after { + clear: both; + content: ""; + display: table; + } +} diff --git a/_sass/vendors/bourbon/addons/_ellipsis.scss b/_sass/vendors/bourbon/addons/_ellipsis.scss new file mode 100755 index 000000000..a367f651c --- /dev/null +++ b/_sass/vendors/bourbon/addons/_ellipsis.scss @@ -0,0 +1,30 @@ +@charset "UTF-8"; + +/// Truncates text and adds an ellipsis to represent overflow. +/// +/// @param {Number} $width [100%] +/// Max-width for the string to respect before being truncated +/// +/// @example scss - Usage +/// .element { +/// @include ellipsis; +/// } +/// +/// @example css - CSS Output +/// .element { +/// display: inline-block; +/// max-width: 100%; +/// overflow: hidden; +/// text-overflow: ellipsis; +/// white-space: nowrap; +/// word-wrap: normal; +/// } + +@mixin ellipsis($width: 100%) { + display: inline-block; + max-width: $width; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + word-wrap: normal; +} diff --git a/_sass/vendors/bourbon/addons/_font-stacks.scss b/_sass/vendors/bourbon/addons/_font-stacks.scss new file mode 100755 index 000000000..57128f422 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_font-stacks.scss @@ -0,0 +1,31 @@ +@charset "UTF-8"; + +/// Georgia font stack. +/// +/// @type List + +$georgia: "Georgia", "Cambria", "Times New Roman", "Times", serif; + +/// Helvetica font stack. +/// +/// @type List + +$helvetica: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; + +/// Lucida Grande font stack. +/// +/// @type List + +$lucida-grande: "Lucida Grande", "Tahoma", "Verdana", "Arial", sans-serif; + +/// Monospace font stack. +/// +/// @type List + +$monospace: "Bitstream Vera Sans Mono", "Consolas", "Courier", monospace; + +/// Verdana font stack. +/// +/// @type List + +$verdana: "Verdana", "Geneva", sans-serif; diff --git a/_sass/vendors/bourbon/addons/_hide-text.scss b/_sass/vendors/bourbon/addons/_hide-text.scss new file mode 100755 index 000000000..4caf20ed5 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_hide-text.scss @@ -0,0 +1,27 @@ +/// Hides the text in an element, commonly used to show an image. Some elements will need block-level styles applied. +/// +/// @link http://zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement +/// +/// @example scss - Usage +/// .element { +/// @include hide-text; +/// } +/// +/// @example css - CSS Output +/// .element { +/// overflow: hidden; +/// text-indent: 101%; +/// white-space: nowrap; +/// } +/// +/// @todo Remove height argument in v5.0.0 + +@mixin hide-text($height: null) { + overflow: hidden; + text-indent: 101%; + white-space: nowrap; + + @if $height { + @warn "The `hide-text` mixin has changed and no longer requires a height. The height argument will no longer be accepted in v5.0.0"; + } +} diff --git a/_sass/vendors/bourbon/addons/_margin.scss b/_sass/vendors/bourbon/addons/_margin.scss new file mode 100755 index 000000000..674f4e5f6 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_margin.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `margin` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include margin(null 10px 3em 20vh); +/// } +/// +/// @example css - CSS Output +/// .element { +/// margin-bottom: 3em; +/// margin-left: 20vh; +/// margin-right: 10px; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `margin` + +@mixin margin($vals...) { + @include directional-property(margin, false, $vals...); +} diff --git a/_sass/vendors/bourbon/addons/_padding.scss b/_sass/vendors/bourbon/addons/_padding.scss new file mode 100755 index 000000000..40a5f006b --- /dev/null +++ b/_sass/vendors/bourbon/addons/_padding.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `padding` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include padding(12vh null 10px 5%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// padding-bottom: 10px; +/// padding-left: 5%; +/// padding-top: 12vh; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `padding` + +@mixin padding($vals...) { + @include directional-property(padding, false, $vals...); +} diff --git a/_sass/vendors/bourbon/addons/_position.scss b/_sass/vendors/bourbon/addons/_position.scss new file mode 100755 index 000000000..e460f3ffd --- /dev/null +++ b/_sass/vendors/bourbon/addons/_position.scss @@ -0,0 +1,48 @@ +@charset "UTF-8"; + +/// Provides a quick method for setting an element’s position. Use a `null` value to “skip” a side. +/// +/// @param {Position} $position [relative] +/// A CSS position value +/// +/// @param {Arglist} $coordinates [null null null null] +/// List of values that correspond to the 4-value syntax for the edges of a box +/// +/// @example scss - Usage +/// .element { +/// @include position(absolute, 0 null null 10em); +/// } +/// +/// @example css - CSS Output +/// .element { +/// left: 10em; +/// position: absolute; +/// top: 0; +/// } +/// +/// @require {function} is-length +/// @require {function} unpack + +@mixin position($position: relative, $coordinates: null null null null) { + @if type-of($position) == list { + $coordinates: $position; + $position: relative; + } + + $coordinates: unpack($coordinates); + + $offsets: ( + top: nth($coordinates, 1), + right: nth($coordinates, 2), + bottom: nth($coordinates, 3), + left: nth($coordinates, 4) + ); + + position: $position; + + @each $offset, $value in $offsets { + @if is-length($value) { + #{$offset}: $value; + } + } +} diff --git a/_sass/vendors/bourbon/addons/_prefixer.scss b/_sass/vendors/bourbon/addons/_prefixer.scss new file mode 100755 index 000000000..2b6f73138 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_prefixer.scss @@ -0,0 +1,66 @@ +@charset "UTF-8"; + +/// A mixin for generating vendor prefixes on non-standardized properties. +/// +/// @param {String} $property +/// Property to prefix +/// +/// @param {*} $value +/// Value to use +/// +/// @param {List} $prefixes +/// Prefixes to define +/// +/// @example scss - Usage +/// .element { +/// @include prefixer(border-radius, 10px, webkit ms spec); +/// } +/// +/// @example css - CSS Output +/// .element { +/// -webkit-border-radius: 10px; +/// -moz-border-radius: 10px; +/// border-radius: 10px; +/// } +/// +/// @require {variable} $prefix-for-webkit +/// @require {variable} $prefix-for-mozilla +/// @require {variable} $prefix-for-microsoft +/// @require {variable} $prefix-for-opera +/// @require {variable} $prefix-for-spec + +@mixin prefixer($property, $value, $prefixes) { + @each $prefix in $prefixes { + @if $prefix == webkit { + @if $prefix-for-webkit { + -webkit-#{$property}: $value; + } + } @else if $prefix == moz { + @if $prefix-for-mozilla { + -moz-#{$property}: $value; + } + } @else if $prefix == ms { + @if $prefix-for-microsoft { + -ms-#{$property}: $value; + } + } @else if $prefix == o { + @if $prefix-for-opera { + -o-#{$property}: $value; + } + } @else if $prefix == spec { + @if $prefix-for-spec { + #{$property}: $value; + } + } @else { + @warn "Unrecognized prefix: #{$prefix}"; + } + } +} + +@mixin disable-prefix-for-all() { + $prefix-for-webkit: false !global; + $prefix-for-mozilla: false !global; + $prefix-for-microsoft: false !global; + $prefix-for-opera: false !global; + $prefix-for-spec: false !global; +} diff --git a/_sass/vendors/bourbon/addons/_retina-image.scss b/_sass/vendors/bourbon/addons/_retina-image.scss new file mode 100755 index 000000000..7febbd751 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_retina-image.scss @@ -0,0 +1,25 @@ +@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: $asset-pipeline) { + @if $asset-pipeline { + background-image: image-url("#{$filename}.#{$extension}"); + } @else { + background-image: url("#{$filename}.#{$extension}"); + } + + @include hidpi { + @if $asset-pipeline { + @if $retina-filename { + background-image: image-url("#{$retina-filename}.#{$extension}"); + } @else { + background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}"); + } + } @else { + @if $retina-filename { + background-image: url("#{$retina-filename}.#{$extension}"); + } @else { + background-image: url("#{$filename}#{$retina-suffix}.#{$extension}"); + } + } + + background-size: $background-size; + } +} diff --git a/_sass/vendors/bourbon/addons/_size.scss b/_sass/vendors/bourbon/addons/_size.scss new file mode 100755 index 000000000..a2992a34c --- /dev/null +++ b/_sass/vendors/bourbon/addons/_size.scss @@ -0,0 +1,51 @@ +@charset "UTF-8"; + +/// Sets the `width` and `height` of the element. +/// +/// @param {List} $size +/// A list of at most 2 size values. +/// +/// If there is only a single value in `$size` it is used for both width and height. All units are supported. +/// +/// @example scss - Usage +/// .first-element { +/// @include size(2em); +/// } +/// +/// .second-element { +/// @include size(auto 10em); +/// } +/// +/// @example css - CSS Output +/// .first-element { +/// width: 2em; +/// height: 2em; +/// } +/// +/// .second-element { +/// width: auto; +/// height: 10em; +/// } +/// +/// @todo Refactor in 5.0.0 to use a comma-separated argument + +@mixin size($value) { + $width: nth($value, 1); + $height: $width; + + @if length($value) > 1 { + $height: nth($value, 2); + } + + @if is-size($height) { + height: $height; + } @else { + @warn "`#{$height}` is not a valid length for the `$height` parameter in the `size` mixin."; + } + + @if is-size($width) { + width: $width; + } @else { + @warn "`#{$width}` is not a valid length for the `$width` parameter in the `size` mixin."; + } +} diff --git a/_sass/vendors/bourbon/addons/_text-inputs.scss b/_sass/vendors/bourbon/addons/_text-inputs.scss new file mode 100755 index 000000000..1eb7a5451 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_text-inputs.scss @@ -0,0 +1,113 @@ +@charset "UTF-8"; + +/// Generates variables for all text-based inputs. Please note that you must use interpolation on the variable: `#{$all-text-inputs}`. +/// +/// @example scss - Usage +/// #{$all-text-inputs} { +/// border: 1px solid #f00; +/// } +/// +/// #{$all-text-inputs-focus}, +/// #{$all-text-inputs-hover} { +/// border: 1px solid #0f0; +/// } +/// +/// #{$all-text-inputs-active} { +/// border: 1px solid #00f; +/// } +/// +/// @example css - CSS Output +/// input[type="color"], +/// input[type="date"], +/// input[type="datetime"], +/// input[type="datetime-local"], +/// input[type="email"], +/// input[type="month"], +/// input[type="number"], +/// input[type="password"], +/// input[type="search"], +/// input[type="tel"], +/// input[type="text"], +/// input[type="time"], +/// input[type="url"], +/// input[type="week"], +/// textarea { +/// border: 1px solid #f00; +/// } +/// +/// input[type="color"]:focus, +/// input[type="date"]:focus, +/// input[type="datetime"]:focus, +/// input[type="datetime-local"]:focus, +/// input[type="email"]:focus, +/// input[type="month"]:focus, +/// input[type="number"]:focus, +/// input[type="password"]:focus, +/// input[type="search"]:focus, +/// input[type="tel"]:focus, +/// input[type="text"]:focus, +/// input[type="time"]:focus, +/// input[type="url"]:focus, +/// input[type="week"]:focus, +/// textarea:focus, +/// input[type="color"]:hover, +/// input[type="date"]:hover, +/// input[type="datetime"]:hover, +/// input[type="datetime-local"]:hover, +/// input[type="email"]:hover, +/// input[type="month"]:hover, +/// input[type="number"]:hover, +/// input[type="password"]:hover, +/// input[type="search"]:hover, +/// input[type="tel"]:hover, +/// input[type="text"]:hover, +/// input[type="time"]:hover, +/// input[type="url"]:hover, +/// input[type="week"]:hover, +/// textarea:hover { +/// border: 1px solid #0f0; +/// } +/// +/// input[type="color"]:active, +/// input[type="date"]:active, +/// input[type="datetime"]:active, +/// input[type="datetime-local"]:active, +/// input[type="email"]:active, +/// input[type="month"]:active, +/// input[type="number"]:active, +/// input[type="password"]:active, +/// input[type="search"]:active, +/// input[type="tel"]:active, +/// input[type="text"]:active, +/// input[type="time"]:active, +/// input[type="url"]:active, +/// input[type="week"]:active, +/// textarea:active { +/// border: 1px solid #00f; +/// } +/// +/// @require assign-inputs +/// +/// @type List + +$text-inputs-list: 'input[type="color"]', + 'input[type="date"]', + 'input[type="datetime"]', + 'input[type="datetime-local"]', + 'input[type="email"]', + 'input[type="month"]', + 'input[type="number"]', + 'input[type="password"]', + 'input[type="search"]', + 'input[type="tel"]', + 'input[type="text"]', + 'input[type="time"]', + 'input[type="url"]', + 'input[type="week"]', + 'input:not([type])', + 'textarea'; + +$all-text-inputs: assign-inputs($text-inputs-list); +$all-text-inputs-active: assign-inputs($text-inputs-list, active); +$all-text-inputs-focus: assign-inputs($text-inputs-list, focus); +$all-text-inputs-hover: assign-inputs($text-inputs-list, hover); diff --git a/_sass/vendors/bourbon/addons/_timing-functions.scss b/_sass/vendors/bourbon/addons/_timing-functions.scss new file mode 100755 index 000000000..20e5f1d40 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_timing-functions.scss @@ -0,0 +1,34 @@ +@charset "UTF-8"; + +/// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie) +/// +/// Timing functions are the same as demoed here: http://jqueryui.com/resources/demos/effect/easing.html +/// +/// @type cubic-bezier + +$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530); +$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190); +$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220); +$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060); +$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715); +$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035); +$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335); +$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045); + +$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940); +$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000); +$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000); +$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000); +$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000); +$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000); +$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000); +$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275); + +$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955); +$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000); +$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000); +$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000); +$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950); +$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000); +$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860); +$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550); diff --git a/_sass/vendors/bourbon/addons/_triangle.scss b/_sass/vendors/bourbon/addons/_triangle.scss new file mode 100755 index 000000000..8a1ed9cd0 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_triangle.scss @@ -0,0 +1,63 @@ +@mixin triangle($size, $color, $direction) { + $width: nth($size, 1); + $height: nth($size, length($size)); + $foreground-color: nth($color, 1); + $background-color: if(length($color) == 2, nth($color, 2), transparent); + height: 0; + width: 0; + + @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) { + $width: $width / 2; + $height: if(length($size) > 1, $height, $height/2); + + @if $direction == up { + border-bottom: $height solid $foreground-color; + border-left: $width solid $background-color; + border-right: $width solid $background-color; + } @else if $direction == right { + border-bottom: $width solid $background-color; + border-left: $height solid $foreground-color; + border-top: $width solid $background-color; + } @else if $direction == down { + border-left: $width solid $background-color; + border-right: $width solid $background-color; + border-top: $height solid $foreground-color; + } @else if $direction == left { + border-bottom: $width solid $background-color; + border-right: $height solid $foreground-color; + border-top: $width solid $background-color; + } + } @else if ($direction == up-right) or ($direction == up-left) { + border-top: $height solid $foreground-color; + + @if $direction == up-right { + border-left: $width solid $background-color; + } @else if $direction == up-left { + border-right: $width solid $background-color; + } + } @else if ($direction == down-right) or ($direction == down-left) { + border-bottom: $height solid $foreground-color; + + @if $direction == down-right { + border-left: $width solid $background-color; + } @else if $direction == down-left { + border-right: $width solid $background-color; + } + } @else if ($direction == inset-up) { + border-color: $background-color $background-color $foreground-color; + border-style: solid; + border-width: $height $width; + } @else if ($direction == inset-down) { + border-color: $foreground-color $background-color $background-color; + border-style: solid; + border-width: $height $width; + } @else if ($direction == inset-right) { + border-color: $background-color $background-color $background-color $foreground-color; + border-style: solid; + border-width: $width $height; + } @else if ($direction == inset-left) { + border-color: $background-color $foreground-color $background-color $background-color; + border-style: solid; + border-width: $width $height; + } +} diff --git a/_sass/vendors/bourbon/addons/_word-wrap.scss b/_sass/vendors/bourbon/addons/_word-wrap.scss new file mode 100755 index 000000000..64856a925 --- /dev/null +++ b/_sass/vendors/bourbon/addons/_word-wrap.scss @@ -0,0 +1,29 @@ +@charset "UTF-8"; + +/// Provides an easy way to change the `word-wrap` property. +/// +/// @param {String} $wrap [break-word] +/// Value for the `word-break` property. +/// +/// @example scss - Usage +/// .wrapper { +/// @include word-wrap(break-word); +/// } +/// +/// @example css - CSS Output +/// .wrapper { +/// overflow-wrap: break-word; +/// word-break: break-all; +/// word-wrap: break-word; +/// } + +@mixin word-wrap($wrap: break-word) { + overflow-wrap: $wrap; + word-wrap: $wrap; + + @if $wrap == break-word { + word-break: break-all; + } @else { + word-break: $wrap; + } +} diff --git a/_sass/vendors/bourbon/css3/_animation.scss b/_sass/vendors/bourbon/css3/_animation.scss new file mode 100755 index 000000000..aac675f5a --- /dev/null +++ b/_sass/vendors/bourbon/css3/_animation.scss @@ -0,0 +1,43 @@ +// http://www.w3.org/TR/css3-animations/#the-animation-name-property- +// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties. + +@mixin animation($animations...) { + @include prefixer(animation, $animations, webkit moz spec); +} + +@mixin animation-name($names...) { + @include prefixer(animation-name, $names, webkit moz spec); +} + +@mixin animation-duration($times...) { + @include prefixer(animation-duration, $times, webkit moz spec); +} + +@mixin animation-timing-function($motions...) { + // ease | linear | ease-in | ease-out | ease-in-out + @include prefixer(animation-timing-function, $motions, webkit moz spec); +} + +@mixin animation-iteration-count($values...) { + // infinite | + @include prefixer(animation-iteration-count, $values, webkit moz spec); +} + +@mixin animation-direction($directions...) { + // normal | alternate + @include prefixer(animation-direction, $directions, webkit moz spec); +} + +@mixin animation-play-state($states...) { + // running | paused + @include prefixer(animation-play-state, $states, webkit moz spec); +} + +@mixin animation-delay($times...) { + @include prefixer(animation-delay, $times, webkit moz spec); +} + +@mixin animation-fill-mode($modes...) { + // none | forwards | backwards | both + @include prefixer(animation-fill-mode, $modes, webkit moz spec); +} diff --git a/_sass/vendors/bourbon/css3/_appearance.scss b/_sass/vendors/bourbon/css3/_appearance.scss new file mode 100755 index 000000000..abddc0204 --- /dev/null +++ b/_sass/vendors/bourbon/css3/_appearance.scss @@ -0,0 +1,3 @@ +@mixin appearance($value) { + @include prefixer(appearance, $value, webkit moz ms o spec); +} diff --git a/_sass/vendors/bourbon/css3/_backface-visibility.scss b/_sass/vendors/bourbon/css3/_backface-visibility.scss new file mode 100755 index 000000000..fc68e2dd0 --- /dev/null +++ b/_sass/vendors/bourbon/css3/_backface-visibility.scss @@ -0,0 +1,3 @@ +@mixin backface-visibility($visibility) { + @include prefixer(backface-visibility, $visibility, webkit spec); +} diff --git a/_sass/vendors/bourbon/css3/_background-image.scss b/_sass/vendors/bourbon/css3/_background-image.scss new file mode 100755 index 000000000..6ed19ab58 --- /dev/null +++ b/_sass/vendors/bourbon/css3/_background-image.scss @@ -0,0 +1,42 @@ +//************************************************************************// +// Background-image property for adding multiple background images with +// gradients, or for stringing multiple gradients together. +//************************************************************************// + +@mixin background-image($images...) { + $webkit-images: (); + $spec-images: (); + + @each $image in $images { + $webkit-image: (); + $spec-image: (); + + @if (type-of($image) == string) { + $url-str: str-slice($image, 1, 3); + $gradient-type: str-slice($image, 1, 6); + + @if $url-str == "url" { + $webkit-image: $image; + $spec-image: $image; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser($image); + $webkit-image: map-get($gradients, webkit-image); + $spec-image: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser($image); + $webkit-image: map-get($gradients, webkit-image); + $spec-image: map-get($gradients, spec-image); + } + } + + $webkit-images: append($webkit-images, $webkit-image, comma); + $spec-images: append($spec-images, $spec-image, comma); + } + + background-image: $webkit-images; + background-image: $spec-images; +} diff --git a/_sass/vendors/bourbon/css3/_background.scss b/_sass/vendors/bourbon/css3/_background.scss new file mode 100755 index 000000000..019db0ed3 --- /dev/null +++ b/_sass/vendors/bourbon/css3/_background.scss @@ -0,0 +1,55 @@ +//************************************************************************// +// Background property for adding multiple backgrounds using shorthand +// notation. +//************************************************************************// + +@mixin background($backgrounds...) { + $webkit-backgrounds: (); + $spec-backgrounds: (); + + @each $background in $backgrounds { + $webkit-background: (); + $spec-background: (); + $background-type: type-of($background); + + @if $background-type == string or $background-type == list { + $background-str: if($background-type == list, nth($background, 1), $background); + + $url-str: str-slice($background-str, 1, 3); + $gradient-type: str-slice($background-str, 1, 6); + + @if $url-str == "url" { + $webkit-background: $background; + $spec-background: $background; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser("#{$background}"); + $webkit-background: map-get($gradients, webkit-image); + $spec-background: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser("#{$background}"); + $webkit-background: map-get($gradients, webkit-image); + $spec-background: map-get($gradients, spec-image); + } + + @else { + $webkit-background: $background; + $spec-background: $background; + } + } + + @else { + $webkit-background: $background; + $spec-background: $background; + } + + $webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma); + $spec-backgrounds: append($spec-backgrounds, $spec-background, comma); + } + + background: $webkit-backgrounds; + background: $spec-backgrounds; +} diff --git a/_sass/vendors/bourbon/css3/_border-image.scss b/_sass/vendors/bourbon/css3/_border-image.scss new file mode 100755 index 000000000..cf568ce6d --- /dev/null +++ b/_sass/vendors/bourbon/css3/_border-image.scss @@ -0,0 +1,59 @@ +@mixin border-image($borders...) { + $webkit-borders: (); + $spec-borders: (); + + @each $border in $borders { + $webkit-border: (); + $spec-border: (); + $border-type: type-of($border); + + @if $border-type == string or list { + $border-str: if($border-type == list, nth($border, 1), $border); + + $url-str: str-slice($border-str, 1, 3); + $gradient-type: str-slice($border-str, 1, 6); + + @if $url-str == "url" { + $webkit-border: $border; + $spec-border: $border; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser("#{$border}"); + $webkit-border: map-get($gradients, webkit-image); + $spec-border: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser("#{$border}"); + $webkit-border: map-get($gradients, webkit-image); + $spec-border: map-get($gradients, spec-image); + } + + @else { + $webkit-border: $border; + $spec-border: $border; + } + } + + @else { + $webkit-border: $border; + $spec-border: $border; + } + + $webkit-borders: append($webkit-borders, $webkit-border, comma); + $spec-borders: append($spec-borders, $spec-border, comma); + } + + -webkit-border-image: $webkit-borders; + border-image: $spec-borders; + border-style: solid; +} + +//Examples: +// @include border-image(url("image.png")); +// @include border-image(url("image.png") 20 stretch); +// @include border-image(linear-gradient(45deg, orange, yellow)); +// @include border-image(linear-gradient(45deg, orange, yellow) stretch); +// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round); +// @include border-image(radial-gradient(top, cover, orange, yellow, orange)); diff --git a/_sass/vendors/bourbon/css3/_calc.scss b/_sass/vendors/bourbon/css3/_calc.scss new file mode 100755 index 000000000..0bfc738dd --- /dev/null +++ b/_sass/vendors/bourbon/css3/_calc.scss @@ -0,0 +1,4 @@ +@mixin calc($property, $value) { + #{$property}: -webkit-calc(#{$value}); + #{$property}: calc(#{$value}); +} diff --git a/_sass/vendors/bourbon/css3/_columns.scss b/_sass/vendors/bourbon/css3/_columns.scss new file mode 100755 index 000000000..96117670c --- /dev/null +++ b/_sass/vendors/bourbon/css3/_columns.scss @@ -0,0 +1,47 @@ +@mixin columns($arg: auto) { + // || + @include prefixer(columns, $arg, webkit moz spec); +} + +@mixin column-count($int: auto) { + // auto || integer + @include prefixer(column-count, $int, webkit moz spec); +} + +@mixin column-gap($length: normal) { + // normal || length + @include prefixer(column-gap, $length, webkit moz spec); +} + +@mixin column-fill($arg: auto) { + // auto || length + @include prefixer(column-fill, $arg, webkit moz spec); +} + +@mixin column-rule($arg) { + // || || + @include prefixer(column-rule, $arg, webkit moz spec); +} + +@mixin column-rule-color($color) { + @include prefixer(column-rule-color, $color, webkit moz spec); +} + +@mixin column-rule-style($style: none) { + // none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid + @include prefixer(column-rule-style, $style, webkit moz spec); +} + +@mixin column-rule-width ($width: none) { + @include prefixer(column-rule-width, $width, webkit moz spec); +} + +@mixin column-span($arg: none) { + // none || all + @include prefixer(column-span, $arg, webkit moz spec); +} + +@mixin column-width($length: auto) { + // auto || length + @include prefixer(column-width, $length, webkit moz spec); +} diff --git a/_sass/vendors/bourbon/css3/_filter.scss b/_sass/vendors/bourbon/css3/_filter.scss new file mode 100755 index 000000000..b8f8ffb0e --- /dev/null +++ b/_sass/vendors/bourbon/css3/_filter.scss @@ -0,0 +1,4 @@ +@mixin filter($function: none) { + // [ + @include prefixer(perspective, $depth, webkit moz spec); +} + +@mixin perspective-origin($value: 50% 50%) { + @include prefixer(perspective-origin, $value, webkit moz spec); +} diff --git a/_sass/vendors/bourbon/css3/_placeholder.scss b/_sass/vendors/bourbon/css3/_placeholder.scss new file mode 100755 index 000000000..5682fd097 --- /dev/null +++ b/_sass/vendors/bourbon/css3/_placeholder.scss @@ -0,0 +1,8 @@ +@mixin placeholder { + $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input"; + @each $placeholder in $placeholders { + &:#{$placeholder}-placeholder { + @content; + } + } +} diff --git a/_sass/vendors/bourbon/css3/_radial-gradient.scss b/_sass/vendors/bourbon/css3/_radial-gradient.scss new file mode 100755 index 000000000..18f7b5b58 --- /dev/null +++ b/_sass/vendors/bourbon/css3/_radial-gradient.scss @@ -0,0 +1,39 @@ +// Requires Sass 3.1+ +@mixin radial-gradient($g1, $g2, + $g3: null, $g4: null, + $g5: null, $g6: null, + $g7: null, $g8: null, + $g9: null, $g10: null, + $pos: null, + $shape-size: null, + $fallback: null) { + + $data: _radial-arg-parser($g1, $g2, $pos, $shape-size); + $g1: nth($data, 1); + $g2: nth($data, 2); + $pos: nth($data, 3); + $shape-size: nth($data, 4); + + $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10; + + // Strip deprecated cover/contain for spec + $shape-size-spec: _shape-size-stripper($shape-size); + + // Set $g1 as the default fallback color + $first-color: nth($full, 1); + $fallback-color: nth($first-color, 1); + + @if (type-of($fallback) == color) or ($fallback == "transparent") { + $fallback-color: $fallback; + } + + // Add Commas and spaces + $shape-size: if($shape-size, "#{$shape-size}, ", null); + $pos: if($pos, "#{$pos}, ", null); + $pos-spec: if($pos, "at #{$pos}", null); + $shape-size-spec: if(($shape-size-spec != " ") and ($pos == null), "#{$shape-size-spec}, ", "#{$shape-size-spec} "); + + background-color: $fallback-color; + background-image: -webkit-radial-gradient(#{$pos}#{$shape-size}#{$full}); + background-image: radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full}); +} diff --git a/_sass/vendors/bourbon/css3/_selection.scss b/_sass/vendors/bourbon/css3/_selection.scss new file mode 100755 index 000000000..cd71d4f53 --- /dev/null +++ b/_sass/vendors/bourbon/css3/_selection.scss @@ -0,0 +1,42 @@ +@charset "UTF-8"; + +/// Outputs the spec and prefixed versions of the `::selection` pseudo-element. +/// +/// @param {Bool} $current-selector [false] +/// If set to `true`, it takes the current element into consideration. +/// +/// @example scss - Usage +/// .element { +/// @include selection(true) { +/// background-color: #ffbb52; +/// } +/// } +/// +/// @example css - CSS Output +/// .element::-moz-selection { +/// background-color: #ffbb52; +/// } +/// +/// .element::selection { +/// background-color: #ffbb52; +/// } + +@mixin selection($current-selector: false) { + @if $current-selector { + &::-moz-selection { + @content; + } + + &::selection { + @content; + } + } @else { + ::-moz-selection { + @content; + } + + ::selection { + @content; + } + } +} diff --git a/_sass/vendors/bourbon/css3/_text-decoration.scss b/_sass/vendors/bourbon/css3/_text-decoration.scss new file mode 100755 index 000000000..9222746ce --- /dev/null +++ b/_sass/vendors/bourbon/css3/_text-decoration.scss @@ -0,0 +1,19 @@ +@mixin text-decoration($value) { +// || || + @include prefixer(text-decoration, $value, moz); +} + +@mixin text-decoration-line($line: none) { +// none || underline || overline || line-through + @include prefixer(text-decoration-line, $line, moz); +} + +@mixin text-decoration-style($style: solid) { +// solid || double || dotted || dashed || wavy + @include prefixer(text-decoration-style, $style, moz webkit); +} + +@mixin text-decoration-color($color: currentColor) { +// currentColor || + @include prefixer(text-decoration-color, $color, moz); +} diff --git a/_sass/vendors/bourbon/css3/_transform.scss b/_sass/vendors/bourbon/css3/_transform.scss new file mode 100755 index 000000000..8ee6509ff --- /dev/null +++ b/_sass/vendors/bourbon/css3/_transform.scss @@ -0,0 +1,15 @@ +@mixin transform($property: none) { + // none | + @include prefixer(transform, $property, webkit moz ms o spec); +} + +@mixin transform-origin($axes: 50%) { + // x-axis - left | center | right | length | % + // y-axis - top | center | bottom | length | % + // z-axis - length + @include prefixer(transform-origin, $axes, webkit moz ms o spec); +} + +@mixin transform-style($style: flat) { + @include prefixer(transform-style, $style, webkit moz ms o spec); +} diff --git a/_sass/vendors/bourbon/css3/_transition.scss b/_sass/vendors/bourbon/css3/_transition.scss new file mode 100755 index 000000000..3c785ed52 --- /dev/null +++ b/_sass/vendors/bourbon/css3/_transition.scss @@ -0,0 +1,71 @@ +// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable. +// Example: @include transition (all 2s ease-in-out); +// @include transition (opacity 1s ease-in 2s, width 2s ease-out); +// @include transition-property (transform, opacity); + +@mixin transition($properties...) { + // Fix for vendor-prefix transform property + $needs-prefixes: false; + $webkit: (); + $moz: (); + $spec: (); + + // Create lists for vendor-prefixed transform + @each $list in $properties { + @if nth($list, 1) == "transform" { + $needs-prefixes: true; + $list1: -webkit-transform; + $list2: -moz-transform; + $list3: (); + + @each $var in $list { + $list3: join($list3, $var); + + @if $var != "transform" { + $list1: join($list1, $var); + $list2: join($list2, $var); + } + } + + $webkit: append($webkit, $list1); + $moz: append($moz, $list2); + $spec: append($spec, $list3); + } @else { + $webkit: append($webkit, $list, comma); + $moz: append($moz, $list, comma); + $spec: append($spec, $list, comma); + } + } + + @if $needs-prefixes { + -webkit-transition: $webkit; + -moz-transition: $moz; + transition: $spec; + } @else { + @if length($properties) >= 1 { + @include prefixer(transition, $properties, webkit moz spec); + } @else { + $properties: all 0.15s ease-out 0s; + @include prefixer(transition, $properties, webkit moz spec); + } + } +} + +@mixin transition-property($properties...) { + -webkit-transition-property: transition-property-names($properties, "webkit"); + -moz-transition-property: transition-property-names($properties, "moz"); + transition-property: transition-property-names($properties, false); +} + +@mixin transition-duration($times...) { + @include prefixer(transition-duration, $times, webkit moz spec); +} + +@mixin transition-timing-function($motions...) { + // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier() + @include prefixer(transition-timing-function, $motions, webkit moz spec); +} + +@mixin transition-delay($times...) { + @include prefixer(transition-delay, $times, webkit moz spec); +} diff --git a/_sass/vendors/bourbon/css3/_user-select.scss b/_sass/vendors/bourbon/css3/_user-select.scss new file mode 100755 index 000000000..d4e555100 --- /dev/null +++ b/_sass/vendors/bourbon/css3/_user-select.scss @@ -0,0 +1,3 @@ +@mixin user-select($value: none) { + @include prefixer(user-select, $value, webkit moz ms spec); +} diff --git a/_sass/vendors/bourbon/functions/_assign-inputs.scss b/_sass/vendors/bourbon/functions/_assign-inputs.scss new file mode 100755 index 000000000..f8aba9678 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_assign-inputs.scss @@ -0,0 +1,11 @@ +@function assign-inputs($inputs, $pseudo: null) { + $list: (); + + @each $input in $inputs { + $input: unquote($input); + $input: if($pseudo, $input + ":" + $pseudo, $input); + $list: append($list, $input, comma); + } + + @return $list; +} diff --git a/_sass/vendors/bourbon/functions/_contains-falsy.scss b/_sass/vendors/bourbon/functions/_contains-falsy.scss new file mode 100755 index 000000000..c096fdb92 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_contains-falsy.scss @@ -0,0 +1,20 @@ +@charset "UTF-8"; + +/// Checks if a list does not contains a value. +/// +/// @access private +/// +/// @param {List} $list +/// The list to check against. +/// +/// @return {Bool} + +@function contains-falsy($list) { + @each $item in $list { + @if not $item { + @return true; + } + } + + @return false; +} diff --git a/_sass/vendors/bourbon/functions/_contains.scss b/_sass/vendors/bourbon/functions/_contains.scss new file mode 100755 index 000000000..3dec27db8 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_contains.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Checks if a list contains a value(s). +/// +/// @access private +/// +/// @param {List} $list +/// The list to check against. +/// +/// @param {List} $values +/// A single value or list of values to check for. +/// +/// @example scss - Usage +/// contains($list, $value) +/// +/// @return {Bool} + +@function contains($list, $values...) { + @each $value in $values { + @if type-of(index($list, $value)) != "number" { + @return false; + } + } + + @return true; +} diff --git a/_sass/vendors/bourbon/functions/_is-length.scss b/_sass/vendors/bourbon/functions/_is-length.scss new file mode 100755 index 000000000..5826e789b --- /dev/null +++ b/_sass/vendors/bourbon/functions/_is-length.scss @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +/// Checks for a valid CSS length. +/// +/// @param {String} $value + +@function is-length($value) { + @return type-of($value) != "null" and (str-slice($value + "", 1, 4) == "calc" + or index(auto inherit initial 0, $value) + or (type-of($value) == "number" and not(unitless($value)))); +} diff --git a/_sass/vendors/bourbon/functions/_is-light.scss b/_sass/vendors/bourbon/functions/_is-light.scss new file mode 100755 index 000000000..92d90ac3c --- /dev/null +++ b/_sass/vendors/bourbon/functions/_is-light.scss @@ -0,0 +1,21 @@ +@charset "UTF-8"; + +/// Programatically determines whether a color is light or dark. +/// +/// @link http://robots.thoughtbot.com/closer-look-color-lightness +/// +/// @param {Color (Hex)} $color +/// +/// @example scss - Usage +/// is-light($color) +/// +/// @return {Bool} + +@function is-light($hex-color) { + $-local-red: red(rgba($hex-color, 1)); + $-local-green: green(rgba($hex-color, 1)); + $-local-blue: blue(rgba($hex-color, 1)); + $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255; + + @return $-local-lightness > 0.6; +} diff --git a/_sass/vendors/bourbon/functions/_is-number.scss b/_sass/vendors/bourbon/functions/_is-number.scss new file mode 100755 index 000000000..a64e0bf21 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_is-number.scss @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +/// Checks for a valid number. +/// +/// @param {Number} $value +/// +/// @require {function} contains + +@function is-number($value) { + @return contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value); +} diff --git a/_sass/vendors/bourbon/functions/_is-size.scss b/_sass/vendors/bourbon/functions/_is-size.scss new file mode 100755 index 000000000..661789ab4 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_is-size.scss @@ -0,0 +1,13 @@ +@charset "UTF-8"; + +/// Checks for a valid CSS size. +/// +/// @param {String} $value +/// +/// @require {function} contains +/// @require {function} is-length + +@function is-size($value) { + @return is-length($value) + or contains("fill" "fit-content" "min-content" "max-content", $value); +} diff --git a/_sass/vendors/bourbon/functions/_modular-scale.scss b/_sass/vendors/bourbon/functions/_modular-scale.scss new file mode 100755 index 000000000..20fa38812 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_modular-scale.scss @@ -0,0 +1,69 @@ +// Scaling Variables +$golden: 1.618; +$minor-second: 1.067; +$major-second: 1.125; +$minor-third: 1.2; +$major-third: 1.25; +$perfect-fourth: 1.333; +$augmented-fourth: 1.414; +$perfect-fifth: 1.5; +$minor-sixth: 1.6; +$major-sixth: 1.667; +$minor-seventh: 1.778; +$major-seventh: 1.875; +$octave: 2; +$major-tenth: 2.5; +$major-eleventh: 2.667; +$major-twelfth: 3; +$double-octave: 4; + +$modular-scale-ratio: $perfect-fourth !default; +$modular-scale-base: em($em-base) !default; + +@function modular-scale($increment, $value: $modular-scale-base, $ratio: $modular-scale-ratio) { + $v1: nth($value, 1); + $v2: nth($value, length($value)); + $value: $v1; + + // scale $v2 to just above $v1 + @while $v2 > $v1 { + $v2: ($v2 / $ratio); // will be off-by-1 + } + @while $v2 < $v1 { + $v2: ($v2 * $ratio); // will fix off-by-1 + } + + // check AFTER scaling $v2 to prevent double-counting corner-case + $double-stranded: $v2 > $v1; + + @if $increment > 0 { + @for $i from 1 through $increment { + @if $double-stranded and ($v1 * $ratio) > $v2 { + $value: $v2; + $v2: ($v2 * $ratio); + } @else { + $v1: ($v1 * $ratio); + $value: $v1; + } + } + } + + @if $increment < 0 { + // adjust $v2 to just below $v1 + @if $double-stranded { + $v2: ($v2 / $ratio); + } + + @for $i from $increment through -1 { + @if $double-stranded and ($v1 / $ratio) < $v2 { + $value: $v2; + $v2: ($v2 / $ratio); + } @else { + $v1: ($v1 / $ratio); + $value: $v1; + } + } + } + + @return $value; +} diff --git a/_sass/vendors/bourbon/functions/_px-to-em.scss b/_sass/vendors/bourbon/functions/_px-to-em.scss new file mode 100755 index 000000000..ae81a44ad --- /dev/null +++ b/_sass/vendors/bourbon/functions/_px-to-em.scss @@ -0,0 +1,13 @@ +// Convert pixels to ems +// eg. for a relational value of 12px write em(12) when the parent is 16px +// if the parent is another value say 24px write em(12, 24) + +@function em($pxval, $base: $em-base) { + @if not unitless($pxval) { + $pxval: strip-units($pxval); + } + @if not unitless($base) { + $base: strip-units($base); + } + @return ($pxval / $base) * 1em; +} diff --git a/_sass/vendors/bourbon/functions/_px-to-rem.scss b/_sass/vendors/bourbon/functions/_px-to-rem.scss new file mode 100755 index 000000000..0ac941e76 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_px-to-rem.scss @@ -0,0 +1,15 @@ +// Convert pixels to rems +// eg. for a relational value of 12px write rem(12) +// Assumes $em-base is the font-size of + +@function rem($pxval) { + @if not unitless($pxval) { + $pxval: strip-units($pxval); + } + + $base: $em-base; + @if not unitless($base) { + $base: strip-units($base); + } + @return ($pxval / $base) * 1rem; +} diff --git a/_sass/vendors/bourbon/functions/_shade.scss b/_sass/vendors/bourbon/functions/_shade.scss new file mode 100755 index 000000000..8aaf2c6d2 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_shade.scss @@ -0,0 +1,24 @@ +@charset "UTF-8"; + +/// Mixes a color with black. +/// +/// @param {Color} $color +/// +/// @param {Number (Percentage)} $percent +/// The amount of black to be mixed in. +/// +/// @example scss - Usage +/// .element { +/// background-color: shade(#ffbb52, 60%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// background-color: #664a20; +/// } +/// +/// @return {Color} + +@function shade($color, $percent) { + @return mix(#000, $color, $percent); +} diff --git a/_sass/vendors/bourbon/functions/_strip-units.scss b/_sass/vendors/bourbon/functions/_strip-units.scss new file mode 100755 index 000000000..6c5f3e810 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_strip-units.scss @@ -0,0 +1,17 @@ +@charset "UTF-8"; + +/// Strips the unit from a number. +/// +/// @param {Number (With Unit)} $value +/// +/// @example scss - Usage +/// $dimension: strip-units(10em); +/// +/// @example css - CSS Output +/// $dimension: 10; +/// +/// @return {Number (Unitless)} + +@function strip-units($value) { + @return ($value / ($value * 0 + 1)); +} diff --git a/_sass/vendors/bourbon/functions/_tint.scss b/_sass/vendors/bourbon/functions/_tint.scss new file mode 100755 index 000000000..2e3381488 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_tint.scss @@ -0,0 +1,24 @@ +@charset "UTF-8"; + +/// Mixes a color with white. +/// +/// @param {Color} $color +/// +/// @param {Number (Percentage)} $percent +/// The amount of white to be mixed in. +/// +/// @example scss - Usage +/// .element { +/// background-color: tint(#6ecaa6, 40%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// background-color: #a8dfc9; +/// } +/// +/// @return {Color} + +@function tint($color, $percent) { + @return mix(#fff, $color, $percent); +} diff --git a/_sass/vendors/bourbon/functions/_transition-property-name.scss b/_sass/vendors/bourbon/functions/_transition-property-name.scss new file mode 100755 index 000000000..18348b93a --- /dev/null +++ b/_sass/vendors/bourbon/functions/_transition-property-name.scss @@ -0,0 +1,22 @@ +// Return vendor-prefixed property names if appropriate +// Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background +//************************************************************************// +@function transition-property-names($props, $vendor: false) { + $new-props: (); + + @each $prop in $props { + $new-props: append($new-props, transition-property-name($prop, $vendor), comma); + } + + @return $new-props; +} + +@function transition-property-name($prop, $vendor: false) { + // put other properties that need to be prefixed here aswell + @if $vendor and $prop == transform { + @return unquote('-'+$vendor+'-'+$prop); + } + @else { + @return $prop; + } +} diff --git a/_sass/vendors/bourbon/functions/_unpack.scss b/_sass/vendors/bourbon/functions/_unpack.scss new file mode 100755 index 000000000..4367935d5 --- /dev/null +++ b/_sass/vendors/bourbon/functions/_unpack.scss @@ -0,0 +1,27 @@ +@charset "UTF-8"; + +/// Converts shorthand to the 4-value syntax. +/// +/// @param {List} $shorthand +/// +/// @example scss - Usage +/// .element { +/// margin: unpack(1em 2em); +/// } +/// +/// @example css - CSS Output +/// .element { +/// margin: 1em 2em 1em 2em; +/// } + +@function unpack($shorthand) { + @if length($shorthand) == 1 { + @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1); + } @else if length($shorthand) == 2 { + @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2); + } @else if length($shorthand) == 3 { + @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2); + } @else { + @return $shorthand; + } +} diff --git a/_sass/vendors/bourbon/helpers/_convert-units.scss b/_sass/vendors/bourbon/helpers/_convert-units.scss new file mode 100755 index 000000000..e0a65a05c --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_convert-units.scss @@ -0,0 +1,21 @@ +//************************************************************************// +// Helper function for str-to-num fn. +// Source: http://sassmeister.com/gist/9647408 +//************************************************************************// +@function _convert-units($number, $unit) { + $strings: "px", "cm", "mm", "%", "ch", "pica", "in", "em", "rem", "pt", "pc", "ex", "vw", "vh", "vmin", "vmax", "deg", "rad", "grad", "turn"; + $units: 1px, 1cm, 1mm, 1%, 1ch, 1pica, 1in, 1em, 1rem, 1pt, 1pc, 1ex, 1vw, 1vh, 1vmin, 1vmax, 1deg, 1rad, 1grad, 1turn; + $index: index($strings, $unit); + + @if not $index { + @warn "Unknown unit `#{$unit}`."; + @return false; + } + + @if type-of($number) != "number" { + @warn "`#{$number} is not a number`"; + @return false; + } + + @return $number * nth($units, $index); +} diff --git a/_sass/vendors/bourbon/helpers/_directional-values.scss b/_sass/vendors/bourbon/helpers/_directional-values.scss new file mode 100755 index 000000000..6ee538db4 --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_directional-values.scss @@ -0,0 +1,96 @@ +@charset "UTF-8"; + +/// Directional-property mixins are shorthands for writing properties like the following +/// +/// @ignore You can also use `false` instead of `null`. +/// +/// @param {List} $vals +/// List of directional values +/// +/// @example scss - Usage +/// .element { +/// @include border-style(dotted null); +/// @include margin(null 0 10px); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-bottom-style: dotted; +/// border-top-style: dotted; +/// margin-bottom: 10px; +/// margin-left: 0; +/// margin-right: 0; +/// } +/// +/// @require {function} contains-falsy +/// +/// @return {List} + +@function collapse-directionals($vals) { + $output: null; + + $a: nth($vals, 1); + $b: if(length($vals) < 2, $a, nth($vals, 2)); + $c: if(length($vals) < 3, $a, nth($vals, 3)); + $d: if(length($vals) < 2, $a, nth($vals, if(length($vals) < 4, 2, 4))); + + @if $a == 0 { $a: 0; } + @if $b == 0 { $b: 0; } + @if $c == 0 { $c: 0; } + @if $d == 0 { $d: 0; } + + @if $a == $b and $a == $c and $a == $d { $output: $a; } + @else if $a == $c and $b == $d { $output: $a $b; } + @else if $b == $d { $output: $a $b $c; } + @else { $output: $a $b $c $d; } + + @return $output; +} + +/// Output directional properties, for instance `margin`. +/// +/// @access private +/// +/// @param {String} $pre +/// Prefix to use +/// @param {String} $suf +/// Suffix to use +/// @param {List} $vals +/// List of values +/// +/// @require {function} collapse-directionals +/// @require {function} contains-falsy + +@mixin directional-property($pre, $suf, $vals) { + // Property Names + $top: $pre + "-top" + if($suf, "-#{$suf}", ""); + $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", ""); + $left: $pre + "-left" + if($suf, "-#{$suf}", ""); + $right: $pre + "-right" + if($suf, "-#{$suf}", ""); + $all: $pre + if($suf, "-#{$suf}", ""); + + $vals: collapse-directionals($vals); + + @if contains-falsy($vals) { + @if nth($vals, 1) { #{$top}: nth($vals, 1); } + + @if length($vals) == 1 { + @if nth($vals, 1) { #{$right}: nth($vals, 1); } + } @else { + @if nth($vals, 2) { #{$right}: nth($vals, 2); } + } + + @if length($vals) == 2 { + @if nth($vals, 1) { #{$bottom}: nth($vals, 1); } + @if nth($vals, 2) { #{$left}: nth($vals, 2); } + } @else if length($vals) == 3 { + @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } + @if nth($vals, 2) { #{$left}: nth($vals, 2); } + } @else if length($vals) == 4 { + @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } + @if nth($vals, 4) { #{$left}: nth($vals, 4); } + } + } @else { + #{$all}: $vals; + } +} diff --git a/_sass/vendors/bourbon/helpers/_font-source-declaration.scss b/_sass/vendors/bourbon/helpers/_font-source-declaration.scss new file mode 100755 index 000000000..7f17586c9 --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_font-source-declaration.scss @@ -0,0 +1,43 @@ +// Used for creating the source string for fonts using @font-face +// Reference: http://goo.gl/Ru1bKP + +@function font-url-prefixer($asset-pipeline) { + @if $asset-pipeline == true { + @return font-url; + } @else { + @return url; + } +} + +@function font-source-declaration( + $font-family, + $file-path, + $asset-pipeline, + $file-formats, + $font-url) { + + $src: (); + + $formats-map: ( + eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"), + woff2: "#{$file-path}.woff2" format("woff2"), + woff: "#{$file-path}.woff" format("woff"), + ttf: "#{$file-path}.ttf" format("truetype"), + svg: "#{$file-path}.svg##{$font-family}" format("svg") + ); + + @each $key, $values in $formats-map { + @if contains($file-formats, $key) { + $file-path: nth($values, 1); + $font-format: nth($values, 2); + + @if $asset-pipeline == true { + $src: append($src, font-url($file-path) $font-format, comma); + } @else { + $src: append($src, url($file-path) $font-format, comma); + } + } + } + + @return $src; +} diff --git a/_sass/vendors/bourbon/helpers/_gradient-positions-parser.scss b/_sass/vendors/bourbon/helpers/_gradient-positions-parser.scss new file mode 100755 index 000000000..07d30b6cf --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_gradient-positions-parser.scss @@ -0,0 +1,13 @@ +@function _gradient-positions-parser($gradient-type, $gradient-positions) { + @if $gradient-positions + and ($gradient-type == linear) + and (type-of($gradient-positions) != color) { + $gradient-positions: _linear-positions-parser($gradient-positions); + } + @else if $gradient-positions + and ($gradient-type == radial) + and (type-of($gradient-positions) != color) { + $gradient-positions: _radial-positions-parser($gradient-positions); + } + @return $gradient-positions; +} diff --git a/_sass/vendors/bourbon/helpers/_linear-angle-parser.scss b/_sass/vendors/bourbon/helpers/_linear-angle-parser.scss new file mode 100755 index 000000000..e0401ed8d --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_linear-angle-parser.scss @@ -0,0 +1,25 @@ +// Private function for linear-gradient-parser +@function _linear-angle-parser($image, $first-val, $prefix, $suffix) { + $offset: null; + $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val)); + $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val)); + + @if ($unit-long == "grad") or + ($unit-long == "turn") { + $offset: if($unit-long == "grad", -100grad * 3, -0.75turn); + } + + @else if ($unit-short == "deg") or + ($unit-short == "rad") { + $offset: if($unit-short == "deg", -90 * 3, 1.6rad); + } + + @if $offset { + $num: _str-to-num($first-val); + + @return ( + webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix, + spec-image: $image + ); + } +} diff --git a/_sass/vendors/bourbon/helpers/_linear-gradient-parser.scss b/_sass/vendors/bourbon/helpers/_linear-gradient-parser.scss new file mode 100755 index 000000000..48a8f77f9 --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_linear-gradient-parser.scss @@ -0,0 +1,41 @@ +@function _linear-gradient-parser($image) { + $image: unquote($image); + $gradients: (); + $start: str-index($image, "("); + $end: str-index($image, ","); + $first-val: str-slice($image, $start + 1, $end - 1); + + $prefix: str-slice($image, 1, $start); + $suffix: str-slice($image, $end, str-length($image)); + + $has-multiple-vals: str-index($first-val, " "); + $has-single-position: unquote(_position-flipper($first-val) + ""); + $has-angle: is-number(str-slice($first-val, 1, 1)); + + @if $has-multiple-vals { + $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals); + } + + @else if $has-single-position != "" { + $pos: unquote($has-single-position + ""); + + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $prefix + "to " + $pos + $suffix + ); + } + + @else if $has-angle { + // Rotate degree for webkit + $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix); + } + + @else { + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $image + ); + } + + @return $gradients; +} diff --git a/_sass/vendors/bourbon/helpers/_linear-positions-parser.scss b/_sass/vendors/bourbon/helpers/_linear-positions-parser.scss new file mode 100755 index 000000000..96d6a6d45 --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_linear-positions-parser.scss @@ -0,0 +1,61 @@ +@function _linear-positions-parser($pos) { + $type: type-of(nth($pos, 1)); + $spec: null; + $degree: null; + $side: null; + $corner: null; + $length: length($pos); + // Parse Side and corner positions + @if ($length > 1) { + @if nth($pos, 1) == "to" { // Newer syntax + $side: nth($pos, 2); + + @if $length == 2 { // eg. to top + // Swap for backwards compatibility + $degree: _position-flipper(nth($pos, 2)); + } + @else if $length == 3 { // eg. to top left + $corner: nth($pos, 3); + } + } + @else if $length == 2 { // Older syntax ("top left") + $side: _position-flipper(nth($pos, 1)); + $corner: _position-flipper(nth($pos, 2)); + } + + @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + $spec: to $side $corner; + } + @else if $length == 1 { + // Swap for backwards compatibility + @if $type == string { + $degree: $pos; + $spec: to _position-flipper($pos); + } + @else { + $degree: -270 - $pos; //rotate the gradient opposite from spec + $spec: $pos; + } + } + $degree: unquote($degree + ","); + $spec: unquote($spec + ","); + @return $degree $spec; +} + +@function _position-flipper($pos) { + @return if($pos == left, right, null) + if($pos == right, left, null) + if($pos == top, bottom, null) + if($pos == bottom, top, null); +} diff --git a/_sass/vendors/bourbon/helpers/_linear-side-corner-parser.scss b/_sass/vendors/bourbon/helpers/_linear-side-corner-parser.scss new file mode 100755 index 000000000..7a691253d --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_linear-side-corner-parser.scss @@ -0,0 +1,31 @@ +// Private function for linear-gradient-parser +@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) { + $val-1: str-slice($first-val, 1, $has-multiple-vals - 1); + $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val)); + $val-3: null; + $has-val-3: str-index($val-2, " "); + + @if $has-val-3 { + $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2)); + $val-2: str-slice($val-2, 1, $has-val-3 - 1); + } + + $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3); + $pos: unquote($pos + ""); + + // Use old spec for webkit + @if $val-1 == "to" { + @return ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ); + } + + // Bring the code up to spec + @else { + @return ( + webkit-image: -webkit- + $image, + spec-image: $prefix + "to " + $pos + $suffix + ); + } +} diff --git a/_sass/vendors/bourbon/helpers/_radial-arg-parser.scss b/_sass/vendors/bourbon/helpers/_radial-arg-parser.scss new file mode 100755 index 000000000..56c6030b7 --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_radial-arg-parser.scss @@ -0,0 +1,69 @@ +@function _radial-arg-parser($g1, $g2, $pos, $shape-size) { + @each $value in $g1, $g2 { + $first-val: nth($value, 1); + $pos-type: type-of($first-val); + $spec-at-index: null; + + // Determine if spec was passed to mixin + @if type-of($value) == list { + $spec-at-index: if(index($value, at), index($value, at), false); + } + @if $spec-at-index { + @if $spec-at-index > 1 { + @for $i from 1 through ($spec-at-index - 1) { + $shape-size: $shape-size nth($value, $i); + } + @for $i from ($spec-at-index + 1) through length($value) { + $pos: $pos nth($value, $i); + } + } + @else if $spec-at-index == 1 { + @for $i from ($spec-at-index + 1) through length($value) { + $pos: $pos nth($value, $i); + } + } + $g1: null; + } + + // If not spec calculate correct values + @else { + @if ($pos-type != color) or ($first-val != "transparent") { + @if ($pos-type == number) + or ($first-val == "center") + or ($first-val == "top") + or ($first-val == "right") + or ($first-val == "bottom") + or ($first-val == "left") { + + $pos: $value; + + @if $pos == $g1 { + $g1: null; + } + } + + @else if + ($first-val == "ellipse") + or ($first-val == "circle") + or ($first-val == "closest-side") + or ($first-val == "closest-corner") + or ($first-val == "farthest-side") + or ($first-val == "farthest-corner") + or ($first-val == "contain") + or ($first-val == "cover") { + + $shape-size: $value; + + @if $value == $g1 { + $g1: null; + } + + @else if $value == $g2 { + $g2: null; + } + } + } + } + } + @return $g1, $g2, $pos, $shape-size; +} diff --git a/_sass/vendors/bourbon/helpers/_radial-gradient-parser.scss b/_sass/vendors/bourbon/helpers/_radial-gradient-parser.scss new file mode 100755 index 000000000..5444d8085 --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_radial-gradient-parser.scss @@ -0,0 +1,50 @@ +@function _radial-gradient-parser($image) { + $image: unquote($image); + $gradients: (); + $start: str-index($image, "("); + $end: str-index($image, ","); + $first-val: str-slice($image, $start + 1, $end - 1); + + $prefix: str-slice($image, 1, $start); + $suffix: str-slice($image, $end, str-length($image)); + + $is-spec-syntax: str-index($first-val, "at"); + + @if $is-spec-syntax and $is-spec-syntax > 1 { + $keyword: str-slice($first-val, 1, $is-spec-syntax - 2); + $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); + $pos: append($pos, $keyword, comma); + + $gradients: ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ); + } + + @else if $is-spec-syntax == 1 { + $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); + + $gradients: ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ); + } + + @else if str-index($image, "cover") or str-index($image, "contain") { + @warn "Radial-gradient needs to be updated to conform to latest spec."; + + $gradients: ( + webkit-image: null, + spec-image: $image + ); + } + + @else { + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $image + ); + } + + @return $gradients; +} diff --git a/_sass/vendors/bourbon/helpers/_radial-positions-parser.scss b/_sass/vendors/bourbon/helpers/_radial-positions-parser.scss new file mode 100755 index 000000000..3c552ad79 --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_radial-positions-parser.scss @@ -0,0 +1,18 @@ +@function _radial-positions-parser($gradient-pos) { + $shape-size: nth($gradient-pos, 1); + $pos: nth($gradient-pos, 2); + $shape-size-spec: _shape-size-stripper($shape-size); + + $pre-spec: unquote(if($pos, "#{$pos}, ", null)) + unquote(if($shape-size, "#{$shape-size},", null)); + $pos-spec: if($pos, "at #{$pos}", null); + + $spec: "#{$shape-size-spec} #{$pos-spec}"; + + // Add comma + @if ($spec != " ") { + $spec: "#{$spec},"; + } + + @return $pre-spec $spec; +} diff --git a/_sass/vendors/bourbon/helpers/_render-gradients.scss b/_sass/vendors/bourbon/helpers/_render-gradients.scss new file mode 100755 index 000000000..576567683 --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_render-gradients.scss @@ -0,0 +1,26 @@ +// User for linear and radial gradients within background-image or border-image properties + +@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) { + $pre-spec: null; + $spec: null; + $vendor-gradients: null; + @if $gradient-type == linear { + @if $gradient-positions { + $pre-spec: nth($gradient-positions, 1); + $spec: nth($gradient-positions, 2); + } + } + @else if $gradient-type == radial { + $pre-spec: nth($gradient-positions, 1); + $spec: nth($gradient-positions, 2); + } + + @if $vendor { + $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients); + } + @else if $vendor == false { + $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})"; + $vendor-gradients: unquote($vendor-gradients); + } + @return $vendor-gradients; +} diff --git a/_sass/vendors/bourbon/helpers/_shape-size-stripper.scss b/_sass/vendors/bourbon/helpers/_shape-size-stripper.scss new file mode 100755 index 000000000..ee5eda422 --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_shape-size-stripper.scss @@ -0,0 +1,10 @@ +@function _shape-size-stripper($shape-size) { + $shape-size-spec: null; + @each $value in $shape-size { + @if ($value == "cover") or ($value == "contain") { + $value: null; + } + $shape-size-spec: "#{$shape-size-spec} #{$value}"; + } + @return $shape-size-spec; +} diff --git a/_sass/vendors/bourbon/helpers/_str-to-num.scss b/_sass/vendors/bourbon/helpers/_str-to-num.scss new file mode 100755 index 000000000..3ef1d873b --- /dev/null +++ b/_sass/vendors/bourbon/helpers/_str-to-num.scss @@ -0,0 +1,50 @@ +//************************************************************************// +// Helper function for linear/radial-gradient-parsers. +// Source: http://sassmeister.com/gist/9647408 +//************************************************************************// +@function _str-to-num($string) { + // Matrices + $strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"; + $numbers: 0 1 2 3 4 5 6 7 8 9; + + // Result + $result: 0; + $divider: 0; + $minus: false; + + // Looping through all characters + @for $i from 1 through str-length($string) { + $character: str-slice($string, $i, $i); + $index: index($strings, $character); + + @if $character == "-" { + $minus: true; + } + + @else if $character == "." { + $divider: 1; + } + + @else { + @if not $index { + $result: if($minus, $result * -1, $result); + @return _convert-units($result, str-slice($string, $i)); + } + + $number: nth($numbers, $index); + + @if $divider == 0 { + $result: $result * 10; + } + + @else { + // Move the decimal dot to the left + $divider: $divider * 10; + $number: $number / $divider; + } + + $result: $result + $number; + } + } + @return if($minus, $result * -1, $result); +} diff --git a/_sass/vendors/bourbon/settings/_asset-pipeline.scss b/_sass/vendors/bourbon/settings/_asset-pipeline.scss new file mode 100755 index 000000000..4c6afc5bb --- /dev/null +++ b/_sass/vendors/bourbon/settings/_asset-pipeline.scss @@ -0,0 +1,7 @@ +@charset "UTF-8"; + +/// A global setting to enable or disable the `$asset-pipeline` variable for all functions that accept it. +/// +/// @type Bool + +$asset-pipeline: false !default; diff --git a/_sass/vendors/bourbon/settings/_prefixer.scss b/_sass/vendors/bourbon/settings/_prefixer.scss new file mode 100755 index 000000000..8c390514d --- /dev/null +++ b/_sass/vendors/bourbon/settings/_prefixer.scss @@ -0,0 +1,9 @@ +@charset "UTF-8"; + +/// Global variables to enable or disable vendor prefixes + +$prefix-for-webkit: true !default; +$prefix-for-mozilla: true !default; +$prefix-for-microsoft: true !default; +$prefix-for-opera: true !default; +$prefix-for-spec: true !default; diff --git a/_sass/vendors/bourbon/settings/_px-to-em.scss b/_sass/vendors/bourbon/settings/_px-to-em.scss new file mode 100755 index 000000000..f2f9a3e8d --- /dev/null +++ b/_sass/vendors/bourbon/settings/_px-to-em.scss @@ -0,0 +1 @@ +$em-base: 16px !default; diff --git a/_sass/vendors/neat/_neat-helpers.scss b/_sass/vendors/neat/_neat-helpers.scss new file mode 100755 index 000000000..2d6d808ae --- /dev/null +++ b/_sass/vendors/neat/_neat-helpers.scss @@ -0,0 +1,11 @@ +// Mixins +@import "mixins/clearfix"; + +// Functions +@import "functions/private"; +@import "functions/new-breakpoint"; + +// Settings +@import "settings/grid"; +@import "settings/visual-grid"; +@import "settings/disable-warnings"; diff --git a/_sass/vendors/neat/_neat.scss b/_sass/vendors/neat/_neat.scss new file mode 100755 index 000000000..e17217122 --- /dev/null +++ b/_sass/vendors/neat/_neat.scss @@ -0,0 +1,23 @@ +// Neat 1.8.0 +// http://neat.bourbon.io +// Copyright 2012-2015 thoughtbot, inc. +// MIT License + +// Helpers +@import "neat-helpers"; + +// Grid +@import "grid/private"; +@import "grid/box-sizing"; +@import "grid/omega"; +@import "grid/outer-container"; +@import "grid/span-columns"; +@import "grid/row"; +@import "grid/shift"; +@import "grid/pad"; +@import "grid/fill-parent"; +@import "grid/media"; +@import "grid/to-deprecate"; +@import "grid/visual-grid"; +@import "grid/display-context"; +@import "grid/direction-context"; diff --git a/_sass/vendors/neat/functions/_new-breakpoint.scss b/_sass/vendors/neat/functions/_new-breakpoint.scss new file mode 100755 index 000000000..41ab95564 --- /dev/null +++ b/_sass/vendors/neat/functions/_new-breakpoint.scss @@ -0,0 +1,49 @@ +@charset "UTF-8"; + +/// Returns a media context (media query / grid context) that can be stored in a variable and passed to `media()` as a single-keyword argument. Media contexts defined using `new-breakpoint` are used by the visual grid, as long as they are defined before importing Neat. +/// +/// @param {List} $query +/// A list of media query features and values. Each `$feature` should have a corresponding `$value`. +/// +/// If there is only a single `$value` in `$query`, `$default-feature` is going to be used. +/// +/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). +/// +/// @param {Number (unitless)} $total-columns [$grid-columns] +/// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. +/// +/// @example scss - Usage +/// $mobile: new-breakpoint(max-width 480px 4); +/// +/// .element { +/// @include media($mobile) { +/// @include span-columns(4); +/// } +/// } +/// +/// @example css - CSS Output +/// @media screen and (max-width: 480px) { +/// .element { +/// display: block; +/// float: left; +/// margin-right: 7.42297%; +/// width: 100%; +/// } +/// .element:last-child { +/// margin-right: 0; +/// } +/// } + +@function new-breakpoint($query: $feature $value $columns, $total-columns: $grid-columns) { + @if length($query) == 1 { + $query: $default-feature nth($query, 1) $total-columns; + } @else if is-even(length($query)) { + $query: append($query, $total-columns); + } + + @if is-not(belongs-to($query, $visual-grid-breakpoints)) { + $visual-grid-breakpoints: append($visual-grid-breakpoints, $query, comma) !global; + } + + @return $query; +} diff --git a/_sass/vendors/neat/functions/_private.scss b/_sass/vendors/neat/functions/_private.scss new file mode 100755 index 000000000..872d4dc58 --- /dev/null +++ b/_sass/vendors/neat/functions/_private.scss @@ -0,0 +1,114 @@ +// Not function for Libsass compatibility +// https://github.com/sass/libsass/issues/368 +@function is-not($value) { + @return if($value, false, true); +} + +// Checks if a number is even +@function is-even($int) { + @return $int % 2 == 0; +} + +// Checks if an element belongs to a list or not +@function belongs-to($tested-item, $list) { + @return is-not(not-belongs-to($tested-item, $list)); +} + +@function not-belongs-to($tested-item, $list) { + @return is-not(index($list, $tested-item)); +} + +// Contains display value +@function contains-display-value($query) { + @return belongs-to(table, $query) + or belongs-to(block, $query) + or belongs-to(inline-block, $query) + or belongs-to(inline, $query); +} + +// Parses the first argument of span-columns() +@function container-span($span: $span) { + @if length($span) == 3 { + $container-columns: nth($span, 3); + @return $container-columns; + } @else if length($span) == 2 { + $container-columns: nth($span, 2); + @return $container-columns; + } + + @return $grid-columns; +} + +@function container-shift($shift: $shift) { + $parent-columns: $grid-columns !default !global; + + @if length($shift) == 3 { + $container-columns: nth($shift, 3); + @return $container-columns; + } @else if length($shift) == 2 { + $container-columns: nth($shift, 2); + @return $container-columns; + } + + @return $parent-columns; +} + +// Generates a striped background +@function gradient-stops($grid-columns, $color: $visual-grid-color) { + $transparent: transparent; + + $column-width: flex-grid(1, $grid-columns); + $gutter-width: flex-gutter($grid-columns); + $column-offset: $column-width; + + $values: ($transparent 0, $color 0); + + @for $i from 1 to $grid-columns*2 { + @if is-even($i) { + $values: append($values, $transparent $column-offset, comma); + $values: append($values, $color $column-offset, comma); + $column-offset: $column-offset + $column-width; + } @else { + $values: append($values, $color $column-offset, comma); + $values: append($values, $transparent $column-offset, comma); + $column-offset: $column-offset + $gutter-width; + } + } + + @return $values; +} + +// Layout direction +@function get-direction($layout, $default) { + $direction: null; + + @if to-upper-case($layout) == "LTR" or to-upper-case($layout) == "RTL" { + $direction: direction-from-layout($layout); + } @else { + $direction: direction-from-layout($default); + } + + @return $direction; +} + +@function direction-from-layout($layout) { + $direction: null; + + @if to-upper-case($layout) == "LTR" { + $direction: right; + } @else { + $direction: left; + } + + @return $direction; +} + +@function get-opposite-direction($direction) { + $opposite-direction: left; + + @if $direction == "left" { + $opposite-direction: right; + } + + @return $opposite-direction; +} diff --git a/_sass/vendors/neat/grid/_box-sizing.scss b/_sass/vendors/neat/grid/_box-sizing.scss new file mode 100755 index 000000000..b6d3fec33 --- /dev/null +++ b/_sass/vendors/neat/grid/_box-sizing.scss @@ -0,0 +1,15 @@ +@charset "UTF-8"; + +@if $border-box-sizing == true { + html { // http://bit.ly/1qk2tVR + box-sizing: border-box; + } + + * { + &, + &::after, + &::before { + box-sizing: inherit; + } + } +} diff --git a/_sass/vendors/neat/grid/_direction-context.scss b/_sass/vendors/neat/grid/_direction-context.scss new file mode 100755 index 000000000..7b0d46e8b --- /dev/null +++ b/_sass/vendors/neat/grid/_direction-context.scss @@ -0,0 +1,33 @@ +@charset "UTF-8"; + +/// Changes the direction property used by other mixins called in the code block argument. +/// +/// @param {String} $direction [left-to-right] +/// Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. +/// +/// @example scss - Usage +/// @include direction-context(right-to-left) { +/// .right-to-left-block { +/// @include span-columns(6); +/// } +/// } +/// +/// @example css - CSS Output +/// .right-to-left-block { +/// float: right; +/// ... +/// } + +@mixin direction-context($direction: left-to-right) { + $scope-direction: $layout-direction; + + @if to-lower-case($direction) == "left-to-right" { + $layout-direction: LTR !global; + } @else if to-lower-case($direction) == "right-to-left" { + $layout-direction: RTL !global; + } + + @content; + + $layout-direction: $scope-direction !global; +} diff --git a/_sass/vendors/neat/grid/_display-context.scss b/_sass/vendors/neat/grid/_display-context.scss new file mode 100755 index 000000000..ed9b0637d --- /dev/null +++ b/_sass/vendors/neat/grid/_display-context.scss @@ -0,0 +1,28 @@ +@charset "UTF-8"; + +/// Changes the display property used by other mixins called in the code block argument. +/// +/// @param {String} $display [block] +/// Display value to be used within the block. Can be `table` or `block`. +/// +/// @example scss +/// @include display-context(table) { +/// .display-table { +/// @include span-columns(6); +/// } +/// } +/// +/// @example css +/// .display-table { +/// display: table-cell; +/// ... +/// } + +@mixin display-context($display: block) { + $scope-display: $container-display-table; + $container-display-table: $display == table !global; + + @content; + + $container-display-table: $scope-display !global; +} diff --git a/_sass/vendors/neat/grid/_fill-parent.scss b/_sass/vendors/neat/grid/_fill-parent.scss new file mode 100755 index 000000000..415f0b1e5 --- /dev/null +++ b/_sass/vendors/neat/grid/_fill-parent.scss @@ -0,0 +1,22 @@ +@charset "UTF-8"; + +/// Forces the element to fill its parent container. +/// +/// @example scss - Usage +/// .element { +/// @include fill-parent; +/// } +/// +/// @example css - CSS Output +/// .element { +/// width: 100%; +/// box-sizing: border-box; +/// } + +@mixin fill-parent() { + width: 100%; + + @if $border-box-sizing == false { + box-sizing: border-box; + } +} diff --git a/_sass/vendors/neat/grid/_media.scss b/_sass/vendors/neat/grid/_media.scss new file mode 100755 index 000000000..bd516e99a --- /dev/null +++ b/_sass/vendors/neat/grid/_media.scss @@ -0,0 +1,92 @@ +@charset "UTF-8"; + +/// Outputs a media-query block with an optional grid context (the total number of columns used in the grid). +/// +/// @param {List} $query +/// A list of media query features and values, where each `$feature` should have a corresponding `$value`. +/// For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). +/// +/// If there is only a single `$value` in `$query`, `$default-feature` is going to be used. +/// +/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). +/// +/// +/// @param {Number (unitless)} $total-columns [$grid-columns] +/// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. +/// +/// @example scss - Usage +/// .responsive-element { +/// @include media(769px) { +/// @include span-columns(6); +/// } +/// } +/// +/// .new-context-element { +/// @include media(min-width 320px max-width 480px, 6) { +/// @include span-columns(6); +/// } +/// } +/// +/// @example css - CSS Output +/// @media screen and (min-width: 769px) { +/// .responsive-element { +/// display: block; +/// float: left; +/// margin-right: 2.35765%; +/// width: 48.82117%; +/// } +/// +/// .responsive-element:last-child { +/// margin-right: 0; +/// } +/// } +/// +/// @media screen and (min-width: 320px) and (max-width: 480px) { +/// .new-context-element { +/// display: block; +/// float: left; +/// margin-right: 4.82916%; +/// width: 100%; +/// } +/// +/// .new-context-element:last-child { +/// margin-right: 0; +/// } +/// } + +@mixin media($query: $feature $value $columns, $total-columns: $grid-columns) { + @if length($query) == 1 { + @media screen and ($default-feature: nth($query, 1)) { + $default-grid-columns: $grid-columns; + $grid-columns: $total-columns !global; + @content; + $grid-columns: $default-grid-columns !global; + } + } @else { + $loop-to: length($query); + $media-query: "screen and "; + $default-grid-columns: $grid-columns; + $grid-columns: $total-columns !global; + + @if is-not(is-even(length($query))) { + $grid-columns: nth($query, $loop-to) !global; + $loop-to: $loop-to - 1; + } + + $i: 1; + @while $i <= $loop-to { + $media-query: $media-query + "(" + nth($query, $i) + ": " + nth($query, $i + 1) + ") "; + + @if ($i + 1) != $loop-to { + $media-query: $media-query + "and "; + } + + $i: $i + 2; + } + + @media #{$media-query} { + @content; + $grid-columns: $default-grid-columns !global; + } + } +} diff --git a/_sass/vendors/neat/grid/_omega.scss b/_sass/vendors/neat/grid/_omega.scss new file mode 100755 index 000000000..80f918ab7 --- /dev/null +++ b/_sass/vendors/neat/grid/_omega.scss @@ -0,0 +1,87 @@ +@charset "UTF-8"; + +/// Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts. +/// +/// @param {List} $query [block] +/// List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). +/// +/// When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Note that composite arguments such as `2n+1` do not support this feature. +/// +/// **Deprecation warning**: The omega mixin will no longer take a `$direction` argument. To change the layout direction, use `row($direction)` or set `$default-layout-direction` instead. +/// +/// @example scss - Usage +/// .element { +/// @include omega; +/// } +/// +/// .nth-element { +/// @include omega(4n); +/// } +/// +/// @example css - CSS Output +/// .element { +/// margin-right: 0; +/// } +/// +/// .nth-element:nth-child(4n) { +/// margin-right: 0; +/// } +/// +/// .nth-element:nth-child(4n+1) { +/// clear: left; +/// } + +@mixin omega($query: block, $direction: default) { + $table: belongs-to(table, $query); + $auto: belongs-to(auto, $query); + + @if $direction != default { + @include -neat-warn("The omega mixin will no longer take a $direction argument. To change the layout direction, use the direction(){...} mixin."); + } @else { + $direction: get-direction($layout-direction, $default-layout-direction); + } + + @if $table { + @include -neat-warn("The omega mixin no longer removes padding in table layouts."); + } + + @if length($query) == 1 { + @if $auto { + &:last-child { + margin-#{$direction}: 0; + } + } + + @else if contains-display-value($query) and $table == false { + margin-#{$direction}: 0; + } + + @else { + @include nth-child($query, $direction); + } + } @else if length($query) == 2 { + @if $auto { + &:last-child { + margin-#{$direction}: 0; + } + } @else { + @include nth-child(nth($query, 1), $direction); + } + } @else { + @include -neat-warn("Too many arguments passed to the omega() mixin."); + } +} + +@mixin nth-child($query, $direction) { + $opposite-direction: get-opposite-direction($direction); + + &:nth-child(#{$query}) { + margin-#{$direction}: 0; + } + + @if type-of($query) == number and unit($query) == "n" { + &:nth-child(#{$query}+1) { + clear: $opposite-direction; + } + } +} diff --git a/_sass/vendors/neat/grid/_outer-container.scss b/_sass/vendors/neat/grid/_outer-container.scss new file mode 100755 index 000000000..d3f626743 --- /dev/null +++ b/_sass/vendors/neat/grid/_outer-container.scss @@ -0,0 +1,34 @@ +@charset "UTF-8"; + +/// Makes an element a outer container by centering it in the viewport, clearing its floats, and setting its `max-width`. +/// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. +/// +/// @param {Number [unit]} $local-max-width [$max-width] +/// Max width to be applied to the element. Can be a percentage or a measure. +/// +/// @example scss - Usage +/// .element { +/// @include outer-container(100%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// max-width: 100%; +/// margin-left: auto; +/// margin-right: auto; +/// } +/// +/// .element::after { +/// clear: both; +/// content: ""; +/// display: table; +/// } + +@mixin outer-container($local-max-width: $max-width) { + @include clearfix; + max-width: $local-max-width; + margin: { + left: auto; + right: auto; + } +} diff --git a/_sass/vendors/neat/grid/_pad.scss b/_sass/vendors/neat/grid/_pad.scss new file mode 100755 index 000000000..d697e1b99 --- /dev/null +++ b/_sass/vendors/neat/grid/_pad.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Adds padding to the element. +/// +/// @param {List} $padding [flex-gutter()] +/// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. +/// +/// @example scss - Usage +/// .element { +/// @include pad(30px -20px 10px default); +/// } +/// +/// @example css - CSS Output +/// .element { +/// padding: 30px -20px 10px 2.35765%; +/// } + +@mixin pad($padding: flex-gutter()) { + $padding-list: null; + @each $value in $padding { + $value: if($value == 'default', flex-gutter(), $value); + $padding-list: join($padding-list, $value); + } + padding: $padding-list; +} diff --git a/_sass/vendors/neat/grid/_private.scss b/_sass/vendors/neat/grid/_private.scss new file mode 100755 index 000000000..4c4e18c17 --- /dev/null +++ b/_sass/vendors/neat/grid/_private.scss @@ -0,0 +1,35 @@ +$parent-columns: $grid-columns !default; +$fg-column: $column; +$fg-gutter: $gutter; +$fg-max-columns: $grid-columns; +$container-display-table: false !default; +$layout-direction: LTR !default; + +@function flex-grid($columns, $container-columns: $fg-max-columns) { + $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($width / $container-width); +} + +@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($gutter / $container-width); +} + +@function grid-width($n) { + @return $n * $gw-column + ($n - 1) * $gw-gutter; +} + +@function get-parent-columns($columns) { + @if $columns != $grid-columns { + $parent-columns: $columns !global; + } @else { + $parent-columns: $grid-columns !global; + } + + @return $parent-columns; +} + +@function is-display-table($container-is-display-table, $display) { + @return $container-is-display-table == true or $display == table; +} diff --git a/_sass/vendors/neat/grid/_row.scss b/_sass/vendors/neat/grid/_row.scss new file mode 100755 index 000000000..4d913a925 --- /dev/null +++ b/_sass/vendors/neat/grid/_row.scss @@ -0,0 +1,52 @@ +@charset "UTF-8"; + +/// Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout. +/// +/// @param {String} $display [default] +/// Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. +/// +/// @param {String} $direction [$default-layout-direction] +/// Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). +/// +/// @example scss - Usage +/// .element { +/// @include row(); +/// } +/// +/// @example css - CSS Output +/// .element { +/// *zoom: 1; +/// display: block; +/// } +/// +/// .element:before, .element:after { +/// content: " "; +/// display: table; +/// } +/// +/// .element:after { +/// clear: both; +/// } + +@mixin row($display: default, $direction: $default-layout-direction) { + @if $direction != $default-layout-direction { + @include -neat-warn("The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin."); + } + + $layout-direction: $direction !global; + + @if $display != default { + @include -neat-warn("The $display argument will be deprecated in future versions in favor of the display(){...} mixin."); + } + + @if $display == table { + display: table; + @include fill-parent; + table-layout: fixed; + $container-display-table: true !global; + } @else { + @include clearfix; + display: block; + $container-display-table: false !global; + } +} diff --git a/_sass/vendors/neat/grid/_shift.scss b/_sass/vendors/neat/grid/_shift.scss new file mode 100755 index 000000000..c0f24cd8e --- /dev/null +++ b/_sass/vendors/neat/grid/_shift.scss @@ -0,0 +1,50 @@ +@charset "UTF-8"; + +/// Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. +/// +/// @param {Number (unitless)} $n-columns [1] +/// Number of columns by which the element shifts. +/// +/// @example scss - Usage +/// .element { +/// @include shift(-3); +/// } +/// +/// @example css - CSS output +/// .element { +/// margin-left: -25.58941%; +/// } + +@mixin shift($n-columns: 1) { + @include shift-in-context($n-columns); +} + +/// Translates an element horizontally by a number of columns, in a specific nesting context. +/// +/// @param {List} $shift +/// A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`). +/// +/// The two values can be separated with any string such as `of`, `/`, etc. +/// +/// @example scss - Usage +/// .element { +/// @include shift(-3 of 6); +/// } +/// +/// @example css - CSS output +/// .element { +/// margin-left: -52.41458%; +/// } + +@mixin shift-in-context($shift: $columns of $container-columns) { + $n-columns: nth($shift, 1); + $parent-columns: container-shift($shift) !global; + + $direction: get-direction($layout-direction, $default-layout-direction); + $opposite-direction: get-opposite-direction($direction); + + margin-#{$opposite-direction}: $n-columns * flex-grid(1, $parent-columns) + $n-columns * flex-gutter($parent-columns); + + // Reset nesting context + $parent-columns: $grid-columns !global; +} diff --git a/_sass/vendors/neat/grid/_span-columns.scss b/_sass/vendors/neat/grid/_span-columns.scss new file mode 100755 index 000000000..a7f9b0031 --- /dev/null +++ b/_sass/vendors/neat/grid/_span-columns.scss @@ -0,0 +1,94 @@ +@charset "UTF-8"; + +/// Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well. +/// +/// @param {List} $span +/// A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional). +/// +/// If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. +/// +/// The values can be separated with any string such as `of`, `/`, etc. +/// +/// `$columns` also accepts decimals for when it's necessary to break out of the standard grid. E.g. Passing `2.4` in a standard 12 column grid will divide the row into 5 columns. +/// +/// @param {String} $display [block] +/// Sets the display property of the element. By default it sets the display property of the element to `block`. +/// +/// If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. +/// +/// If passed `table`, it sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid. +/// +/// @example scss - Usage +/// .element { +/// @include span-columns(6); +/// +/// .nested-element { +/// @include span-columns(2 of 6); +/// } +/// } +/// +/// @example css - CSS Output +/// .element { +/// display: block; +/// float: left; +/// margin-right: 2.35765%; +/// width: 48.82117%; +/// } +/// +/// .element:last-child { +/// margin-right: 0; +/// } +/// +/// .element .nested-element { +/// display: block; +/// float: left; +/// margin-right: 4.82916%; +/// width: 30.11389%; +/// } +/// +/// .element .nested-element:last-child { +/// margin-right: 0; +/// } + +@mixin span-columns($span: $columns of $container-columns, $display: block) { + $columns: nth($span, 1); + $container-columns: container-span($span); + + $parent-columns: get-parent-columns($container-columns) !global; + + $direction: get-direction($layout-direction, $default-layout-direction); + $opposite-direction: get-opposite-direction($direction); + + $display-table: is-display-table($container-display-table, $display); + + @if $display-table { + display: table-cell; + width: percentage($columns / $container-columns); + } @else { + float: #{$opposite-direction}; + + @if $display != no-display { + display: block; + } + + @if $display == collapse { + @include -neat-warn("The 'collapse' argument will be deprecated. Use 'block-collapse' instead."); + } + + @if $display == collapse or $display == block-collapse { + width: flex-grid($columns, $container-columns) + flex-gutter($container-columns); + + &:last-child { + width: flex-grid($columns, $container-columns); + } + + } @else { + margin-#{$direction}: flex-gutter($container-columns); + width: flex-grid($columns, $container-columns); + + &:last-child { + margin-#{$direction}: 0; + } + } + } +} diff --git a/_sass/vendors/neat/grid/_to-deprecate.scss b/_sass/vendors/neat/grid/_to-deprecate.scss new file mode 100755 index 000000000..aeea0795b --- /dev/null +++ b/_sass/vendors/neat/grid/_to-deprecate.scss @@ -0,0 +1,97 @@ +@charset "UTF-8"; + +@mixin breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) { + @include -neat-warn("The breakpoint() mixin was renamed to media() in Neat 1.0. Please update your project with the new syntax before the next version bump."); + + @if length($query) == 1 { + @media screen and ($default-feature: nth($query, 1)) { + $default-grid-columns: $grid-columns; + $grid-columns: $total-columns; + @content; + $grid-columns: $default-grid-columns; + } + } @else if length($query) == 2 { + @media screen and (nth($query, 1): nth($query, 2)) { + $default-grid-columns: $grid-columns; + $grid-columns: $total-columns; + @content; + $grid-columns: $default-grid-columns; + } + } @else if length($query) == 3 { + @media screen and (nth($query, 1): nth($query, 2)) { + $default-grid-columns: $grid-columns; + $grid-columns: nth($query, 3); + @content; + $grid-columns: $default-grid-columns; + } + } @else if length($query) == 4 { + @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) { + $default-grid-columns: $grid-columns; + $grid-columns: $total-columns; + @content; + $grid-columns: $default-grid-columns; + } + } @else if length($query) == 5 { + @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) { + $default-grid-columns: $grid-columns; + $grid-columns: nth($query, 5); + @content; + $grid-columns: $default-grid-columns; + } + } @else { + @include -neat-warn("Wrong number of arguments for breakpoint(). Read the documentation for more details."); + } +} + +@mixin nth-omega($nth, $display: block, $direction: default) { + @include -neat-warn("The nth-omega() mixin is deprecated. Please use omega() instead."); + @include omega($nth $display, $direction); +} + +/// Resets the active display property to `block`. Particularly useful when changing the display property in a single row. +/// +/// @example scss - Usage +/// .element { +/// @include row(table); +/// // Context changed to table display +/// } +/// +/// @include reset-display; +/// // Context is reset to block display + +@mixin reset-display { + $container-display-table: false !global; + @include -neat-warn("Resetting $display will be deprecated in future versions in favor of the display(){...} mixin."); +} + +/// Resets the active layout direction to the default value set in `$default-layout-direction`. Particularly useful when changing the layout direction in a single row. +/// +/// @example scss - Usage +/// .element { +/// @include row($direction: RTL); +/// // Context changed to right-to-left +/// } +/// +/// @include reset-layout-direction; +/// // Context is reset to left-to-right + +@mixin reset-layout-direction { + $layout-direction: $default-layout-direction !global; + @include -neat-warn("Resetting $direction will be deprecated in future versions in favor of the direction(){...} mixin."); +} + +/// Resets both the active layout direction and the active display property. +/// +/// @example scss - Usage +/// .element { +/// @include row(table, RTL); +/// // Context changed to table table and right-to-left +/// } +/// +/// @include reset-all; +/// // Context is reset to block display and left-to-right + +@mixin reset-all { + @include reset-display; + @include reset-layout-direction; +} diff --git a/_sass/vendors/neat/grid/_visual-grid.scss b/_sass/vendors/neat/grid/_visual-grid.scss new file mode 100755 index 000000000..1192d8288 --- /dev/null +++ b/_sass/vendors/neat/grid/_visual-grid.scss @@ -0,0 +1,42 @@ +@charset "UTF-8"; + +@mixin grid-column-gradient($values...) { + background-image: -webkit-linear-gradient(left, $values); + background-image: -moz-linear-gradient(left, $values); + background-image: -ms-linear-gradient(left, $values); + background-image: -o-linear-gradient(left, $values); + background-image: unquote("linear-gradient(to left, #{$values})"); +} + +@if $visual-grid == true or $visual-grid == yes { + body:before { + @include grid-column-gradient(gradient-stops($grid-columns)); + content: ""; + display: inline-block; + height: 100%; + left: 0; + margin: 0 auto; + max-width: $max-width; + opacity: $visual-grid-opacity; + pointer-events: none; + position: fixed; + right: 0; + width: 100%; + + @if $visual-grid-index == back { + z-index: -1; + } + + @else if $visual-grid-index == front { + z-index: 9999; + } + + @each $breakpoint in $visual-grid-breakpoints { + @if $breakpoint { + @include media($breakpoint) { + @include grid-column-gradient(gradient-stops($grid-columns)); + } + } + } + } +} diff --git a/_sass/vendors/neat/mixins/_clearfix.scss b/_sass/vendors/neat/mixins/_clearfix.scss new file mode 100755 index 000000000..e68efc440 --- /dev/null +++ b/_sass/vendors/neat/mixins/_clearfix.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides an easy way to include a clearfix for containing floats. +/// +/// @link http://goo.gl/yP5hiZ +/// +/// @example scss +/// .element { +/// @include clearfix; +/// } +/// +/// @example css +/// .element::after { +/// clear: both; +/// content: ""; +/// display: block; +/// } + +@mixin clearfix { + &::after { + clear: both; + content: ""; + display: block; + } +} diff --git a/_sass/vendors/neat/settings/_disable-warnings.scss b/_sass/vendors/neat/settings/_disable-warnings.scss new file mode 100755 index 000000000..3f9b92a6a --- /dev/null +++ b/_sass/vendors/neat/settings/_disable-warnings.scss @@ -0,0 +1,13 @@ +@charset "UTF-8"; + +/// Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag. +/// +/// @type Bool + +$disable-warnings: false !default; + +@mixin -neat-warn($message) { + @if $disable-warnings == false { + @warn "#{$message}"; + } +} diff --git a/_sass/vendors/neat/settings/_grid.scss b/_sass/vendors/neat/settings/_grid.scss new file mode 100755 index 000000000..c1ab7fdcb --- /dev/null +++ b/_sass/vendors/neat/settings/_grid.scss @@ -0,0 +1,51 @@ +@charset "UTF-8"; + +/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. Set with a `!global` flag. +/// +/// @type Number (Unit) + +$column: 4.2358em !default; + +/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. Set with the `!global` flag. +/// +/// @type Number (Unit) + +$gutter: 1.618em !default; + +/// Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag. +/// +/// @type Number (Unitless) + +$grid-columns: 12 !default; + +/// Sets the max-width property of the element that includes `outer-container()`. Set with the `!global` flag. +/// +/// @type Number (Unit) +/// +$max-width: 1200px !default; + +/// When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag. +/// +/// @type Bool +/// +/// @example css - CSS Output +/// html { +/// box-sizing: border-box; } +/// +/// *, *::after, *::before { +/// box-sizing: inherit; +/// } + +$border-box-sizing: true !default; + +/// Sets the default [media feature](http://www.w3.org/TR/css3-mediaqueries/#media) that `media()` and `new-breakpoint()` revert to when only a breakpoint value is passed. Set with a `!global` flag. +/// +/// @type String + +$default-feature: min-width; // Default @media feature for the breakpoint() mixin + +///Sets the default layout direction of the grid. Can be `LTR` or `RTL`. Set with a `!global` flag. +/// +///@type String + +$default-layout-direction: LTR !default; diff --git a/_sass/vendors/neat/settings/_visual-grid.scss b/_sass/vendors/neat/settings/_visual-grid.scss new file mode 100755 index 000000000..9cd1815a2 --- /dev/null +++ b/_sass/vendors/neat/settings/_visual-grid.scss @@ -0,0 +1,27 @@ +@charset "UTF-8"; + +/// Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag. +/// +/// @type Bool + +$visual-grid: false !default; + +/// Sets the visual grid color. Set with `!global` flag. +/// +/// @type Color + +$visual-grid-color: #eee !default; + +/// Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag. +/// +/// @type String + +$visual-grid-index: back !default; + +/// Sets the opacity property of the visual grid. Set with `!global` flag. +/// +/// @type Number (unitless) + +$visual-grid-opacity: 0.4 !default; + +$visual-grid-breakpoints: () !default; diff --git a/_sass/vendors/unslider/unslider.scss b/_sass/vendors/unslider/unslider.scss new file mode 100755 index 000000000..b800e1143 --- /dev/null +++ b/_sass/vendors/unslider/unslider.scss @@ -0,0 +1,8 @@ +/** + * Here's where everything gets included. You don't need + * to change anything here, and doing so might break + * stuff. Here be dragons and all that. + */ +@import 'variables'; +@import 'unslider/reset'; +@import 'unslider/dots'; \ No newline at end of file diff --git a/_sass/vendors/unslider/unslider/dots.scss b/_sass/vendors/unslider/unslider/dots.scss new file mode 100755 index 000000000..d7f96b476 --- /dev/null +++ b/_sass/vendors/unslider/unslider/dots.scss @@ -0,0 +1,30 @@ +@if($unslider-dot-navigation){ + .#{$unslider-namespace}-nav, %#{$unslider-namespace}-nav { + ol { + list-style: none; + text-align: center; + + li { + display: inline-block; + width: 6px; + height: 6px; + margin: 0 4px; + + background: transparent; + border-radius: 5px; + + overflow: hidden; + text-indent: -999em; + + border: 2px solid $unslider-dot-colour; + + cursor: pointer; + + &.unslider-active { + background: $unslider-dot-colour; + cursor: default; + } + } + } + } +} \ No newline at end of file diff --git a/_sass/vendors/unslider/unslider/reset.scss b/_sass/vendors/unslider/unslider/reset.scss new file mode 100755 index 000000000..1f3cbb8af --- /dev/null +++ b/_sass/vendors/unslider/unslider/reset.scss @@ -0,0 +1,70 @@ +.#{$unslider-namespace}, %#{$unslider-namespace} { + // Should either be relative or absolute + // as long as it's not static, but we'll + // set it using jQuery + // position: relative; + overflow: auto; + margin: 0; + padding: 0; + + &-wrap { + position: relative; + + &.unslider-carousel > li { + float: left; + } + } + + // Vertical sliders don't float left + &-vertical { + > ul { + height: 100%; + } + + li { + float: none; + width: 100%; + } + } + + // Fading needs everything to appear on top of + // each other + &-fade { + position: relative; + + .unslider-wrap li { + position: absolute; + left: 0; + top: 0; + right: 0; + z-index: 8; + + &.unslider-active { + z-index: 10; + } + } + } + + ul, ol, li { + list-style: none; + + /* Reset any weird spacing */ + margin: 0; + padding: 0; + + border: none; + } + + &-arrow { + position: absolute; + left: 20px; + z-index: 2; + + cursor: pointer; + + &.next { + left: auto; + right: 20px; + } + } +} \ No newline at end of file diff --git a/_sass/vendors/unslider/variables.scss b/_sass/vendors/unslider/variables.scss new file mode 100755 index 000000000..cfd102a29 --- /dev/null +++ b/_sass/vendors/unslider/variables.scss @@ -0,0 +1,18 @@ +/** + * Default variables + * + * While these can be set with JavaScript, it's probably + * better and faster to just set them here, compile to + * CSS and include that instead to use some of that + * hardware-accelerated goodness. + */ + +// Unslider 2 has navigation styles pre-designed. You can turn it off here. +$unslider-dot-navigation: false; +$unslider-dot-colour: #fff; + +// Unslider 2 has navigation styles pre-designed. You can turn it off here. +$unslider-transition-function: cubic-bezier(.42,0,.58,1); + +// Set a namespace for Unslider +$unslider-namespace: 'unslider'; \ No newline at end of file diff --git a/resources/css/style.css b/resources/css/style.css deleted file mode 100644 index dab8d35a3..000000000 --- a/resources/css/style.css +++ /dev/null @@ -1 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Lato:300,400,400i,700i,900");@import url("https://fonts.googleapis.com/css?family=Roboto+Slab:400,700");@import url("https://fonts.googleapis.com/css?family=Kalam:300,400,700");html{box-sizing:border-box}*,*::after,*::before{box-sizing:inherit}.unslider{overflow:auto;margin:0;padding:0}.unslider-wrap{position:relative}.unslider-wrap.unslider-carousel>li{float:left}.unslider-vertical>ul{height:100%}.unslider-vertical li{float:none;width:100%}.unslider-fade{position:relative}.unslider-fade .unslider-wrap li{position:absolute;left:0;top:0;right:0;z-index:8}.unslider-fade .unslider-wrap li.unslider-active{z-index:10}.unslider ul,.unslider ol,.unslider li{list-style:none;margin:0;padding:0;border:none}.unslider-arrow{position:absolute;left:20px;z-index:2;cursor:pointer}.unslider-arrow.next{left:auto;right:20px}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}html,body{height:90%;margin:0}input,select,textarea{font-family:"Lato",sans-serif;font-size:1.063rem;display:block;appearance:none;border:none}::-webkit-input-placeholder{color:#899295}:-moz-placeholder{color:#899295}::-moz-placeholder{color:#899295}:-ms-input-placeholder{color:#899295}.wrap{max-width:1200px;margin-left:auto;margin-right:auto;padding:0 20px}.wrap::after{clear:both;content:"";display:block}.dot{font-size:10px;color:rgba(137,146,149,0.6);margin:0 3px}ul,ol{list-style-type:none;margin:0;padding:0}dl{margin:0}dt{font-weight:600;margin:0}dd{margin:0}figure{margin:0}img,picture{margin:0;max-width:100%}html{font-size:16px}body{color:#4A5659;font-family:"Lato",sans-serif;font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{transition:all 350ms ease}h1,h2,h3,h4,h5,h6{font-family:"Roboto Slab",serif;line-height:1.4;font-weight:900;margin:0}h2{font-weight:400}p{margin:0}a{color:#23aad1;text-decoration:none;transition:all 350ms ease}a:active,a:focus,a:hover{color:#DC322F;text-decoration:underline}hr{border-bottom:1px solid #E5EAEA;border-left:0;border-right:0;border-top:0;margin:0}blockquote{margin:0}#site-header{background:#002B36}#site-header .new-on-the-blog{background:rgba(0,43,54,0.8);text-align:center;padding:8px 0;color:#fff;transition:all 350ms ease;position:relative}@media (max-width: 768px){#site-header .new-on-the-blog{padding:10px 40px}}#site-header .new-on-the-blog span{position:absolute;right:20px;top:3px;z-index:1;cursor:pointer;font-size:1.275rem;opacity:0.6;transition:all 350ms ease}#site-header .new-on-the-blog span:hover{opacity:1}#site-header .new-on-the-blog a{color:#fff;text-decoration:underline}#site-header .new-on-the-blog a:active,#site-header .new-on-the-blog a:focus,#site-header .new-on-the-blog a:hover{text-decoration:none}#site-header.header-home{background:none}#site-header.header-home .header-background{background:rgba(0,43,54,0.45);position:relative;padding-bottom:150px}#site-header.header-home .header-background:before{content:"";position:absolute;background:url("../img/frontpage/background-header-home.jpg") no-repeat center center;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;left:0;width:100%;height:100%;z-index:-1}.inner-text{position:relative;float:left;display:block;margin-right:2.35765%;width:65.88078%}.inner-text h1{font-family:"Lato",sans-serif;font-size:2.813rem;font-weight:900;color:#fff;margin:30px 0 15px 0}.inner-text p{font-size:1.25rem;color:#fff;margin-bottom:30px}.inner-text:last-child{margin-right:0}@media (max-width: 992px){.inner-text{float:left;display:block;margin-right:2.35765%;width:100%}.inner-text:last-child{margin-right:0}.inner-text h1{font-size:2.213rem;margin:0 0 15px 0}}.scala-main-resources{height:180px;background:#002B36;position:relative}.scala-main-resources .resources .button{font-size:1.063rem;display:block;border-top-left-radius:200px;border-top-right-radius:200px;border-bottom-right-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:200px;border-top-left-radius:200px;padding:20px 40px}.scala-main-resources .resources .download{float:left;display:block;margin-right:2.35765%;width:31.76157%;margin-left:17.05961%}.scala-main-resources .resources .download:last-child{margin-right:0}.scala-main-resources .resources .api-docs{float:left;display:block;margin-right:2.35765%;width:31.76157%}.scala-main-resources .resources .api-docs:last-child{margin-right:0}.scala-main-resources .resources .api-docs .button{text-align:right;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:200px;border-top-right-radius:200px;border-bottom-left-radius:200px;border-bottom-right-radius:200px;border-bottom-left-radius:0;border-top-left-radius:0}@media (max-width: 992px){.scala-main-resources .resources .download{float:left;display:block;margin-right:2.35765%;width:48.82117%;margin-left:0%}.scala-main-resources .resources .download:last-child{margin-right:0}.scala-main-resources .resources .api-docs{float:left;display:block;margin-right:2.35765%;width:48.82117%;margin-right:0}.scala-main-resources .resources .api-docs:last-child{margin-right:0}}.scala-main-resources .resources .api-docs,.scala-main-resources .resources .download{margin-top:-40px}.scala-main-resources .resources .api-docs ul,.scala-main-resources .resources .download ul{margin-top:12px;max-width:180px;text-align:center}.scala-main-resources .resources .api-docs ul li:first-child,.scala-main-resources .resources .download ul li:first-child{border-bottom:1px solid rgba(255,255,255,0.14);font-family:"Roboto Slab",serif;padding-bottom:4px;margin-bottom:2px;font-weight:700}.scala-main-resources .resources .api-docs ul li:first-child a,.scala-main-resources .resources .download ul li:first-child a{font-size:1.063rem}.scala-main-resources .resources .api-docs ul li a,.scala-main-resources .resources .download ul li a{color:rgba(255,255,255,0.9);font-size:.9375rem}.scala-main-resources .resources .api-docs ul li a:active,.scala-main-resources .resources .api-docs ul li a:focus,.scala-main-resources .resources .api-docs ul li a:hover,.scala-main-resources .resources .download ul li a:active,.scala-main-resources .resources .download ul li a:focus,.scala-main-resources .resources .download ul li a:hover{text-decoration:none;color:rgba(255,255,255,0.5)}.scala-main-resources .resources .api-docs ul{float:right}.scala-main-resources .resources .scala-brand-circle{width:340px;height:340px;left:50%;top:-178px;margin-left:-170px;background:rgba(0,43,54,0.4);border-radius:100%;position:absolute;z-index:60;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-ms-flex-pack:center}.scala-main-resources .resources .scala-brand-circle .circle-solid{background:#002B36;width:224px;height:224px;border-radius:100%;text-align:center}.scala-main-resources .resources .scala-brand-circle .circle-solid>img{width:152px;height:auto;margin-top:-28px}.scala-main-resources .resources .scala-brand-circle .circle-solid .scala-version span{display:block;color:#fff;font-family:"Roboto Slab",serif}.scala-main-resources .resources .scala-brand-circle .circle-solid .scala-version span:first-child{font-size:1.375rem;margin-top:-9px}.scala-main-resources .resources .scala-brand-circle .circle-solid .scala-version span:nth-child(2){font-size:1.9rem;margin-top:-10px}.scala-main-resources .resources .scala-brand-circle .circle-solid .scala-version p{color:rgba(255,255,255,0.5);font-style:italic;font-size:.9375rem;line-height:1.3;margin-top:10px}@media (max-width: 768px){.scala-main-resources{height:auto;padding-bottom:50px}.scala-main-resources .resources .download{margin-top:180px}.scala-main-resources .resources .api-docs{margin-top:40px}.scala-main-resources .resources .api-docs,.scala-main-resources .resources .download{float:left;display:block;margin-right:2.35765%;width:100%}.scala-main-resources .resources .api-docs:last-child,.scala-main-resources .resources .download:last-child{margin-right:0}.scala-main-resources .resources .api-docs .button,.scala-main-resources .resources .download .button{border-radius:100px;padding:10px 20px;font-size:16px;text-align:center}.scala-main-resources .resources .api-docs ul,.scala-main-resources .resources .download ul{max-width:100%;float:none}.scala-main-resources .resources .scala-brand-circle{transform:scale(0.8)}}#site-main section{padding:50px 0}#site-main .spire{min-height:330px;background:rgba(0,43,54,0.4);position:relative;padding:0}#site-main .spire:before{content:"";position:absolute;background:url("../img/frontpage/epfl-bc.jpg") no-repeat center center;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;left:0;width:100%;height:100%;z-index:-1}.navigation{padding:30px 0;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;-webkit-box-direction:normal;-moz-box-direction:normal;box-direction:normal;-webkit-flex-direction:row;-moz-flex-direction:row;flex-direction:row;-ms-flex-direction:row;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:justify;-moz-box-pack:justify;box-pack:justify;-webkit-justify-content:space-between;-moz-justify-content:space-between;-ms-justify-content:space-between;-o-justify-content:space-between;justify-content:space-between;-ms-flex-pack:justify}.navigation .navigation-bdand img{width:104px;height:43px}.navigation .navigation-panel-button{display:none;font-size:1.333rem;color:#fff;cursor:pointer}@media (max-width: 992px){.navigation .navigation-panel-button{order:3;display:block}}.navigation .navigation-menu .navigation-menu-item{display:inline-block}.navigation .navigation-menu .navigation-menu-item:last-child{margin-right:0}.navigation .navigation-menu .navigation-menu-item a{padding:5px 15px;text-transform:uppercase;color:#fff;border-radius:300px;font-weight:700}.navigation .navigation-menu .navigation-menu-item a:active,.navigation .navigation-menu .navigation-menu-item a:focus,.navigation .navigation-menu .navigation-menu-item a:hover,.navigation .navigation-menu .navigation-menu-item a.active{background:#DC322F;text-decoration:none}@media (max-width: 992px){.navigation .navigation-menu{padding:20px;position:fixed;top:0;right:0;bottom:0;left:auto;height:100%;width:270px;-webkit-transform:translateX(270px);-moz-transform:translateX(270px);-ms-transform:translateX(270px);-o-transform:translateX(270px);transform:translateX(270px);-webkit-transition:all 0.25s linear;-moz-transition:all 0.25s linear;transition:all 0.25s linear;background:#fff;-webkit-overflow-scrolling:touch;overflow-y:auto;z-index:100;background:rgba(0,43,54,0.99)}.navigation .navigation-menu.is-visible{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}.navigation .navigation-menu .navigation-menu-item{margin-right:16px;padding:10px 0;display:block}}.navigation-fade-screen{position:fixed;top:0;right:0;bottom:0;left:0;-webkit-transition:all 0.15s ease-out 0s;-moz-transition:all 0.15s ease-out 0s;transition:all 0.15s ease-out 0s;background:#000;opacity:0;visibility:hidden;z-index:90}.navigation-fade-screen.is-visible{opacity:0.6;visibility:visible}.twitter-feed{background:#5CC6E4}.twitter-feed .heading-line h2 span{background:#5CC6E4}.twitter-feed .heading-line h2:before{background:rgba(255,255,255,0.5)}.twitter-feed .slider-twitter ul li{padding:0 15px;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;-webkit-box-direction:normal;-moz-box-direction:normal;box-direction:normal;-webkit-flex-direction:row;-moz-flex-direction:row;flex-direction:row;-ms-flex-direction:row;-webkit-box-align:stretch;-moz-box-align:stretch;box-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;-ms-align-items:stretch;-o-align-items:stretch;align-items:stretch;-ms-flex-align:stretch;-webkit-box-pack:justify;-moz-box-pack:justify;box-pack:justify;-webkit-justify-content:space-between;-moz-justify-content:space-between;-ms-justify-content:space-between;-o-justify-content:space-between;justify-content:space-between;-ms-flex-pack:justify}@media (max-width: 992px){.twitter-feed .slider-twitter ul li{display:block}}.twitter-feed .slider-twitter ul li .item-tweet{padding:20px;background:#fff;border-radius:3px;transition:all 350ms ease;max-width:360px;margin-right:20px}@media (max-width: 992px){.twitter-feed .slider-twitter ul li .item-tweet{max-width:100%;margin-right:0;margin-bottom:20px}}.twitter-feed .slider-twitter ul li .item-tweet:last-child{margin-right:0}.twitter-feed .slider-twitter ul li .item-tweet img{border-radius:3px;width:44px;height:auto;float:left}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text{margin-left:64px}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .header-tweet{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;-webkit-box-direction:normal;-moz-box-direction:normal;box-direction:normal;-webkit-flex-direction:row;-moz-flex-direction:row;flex-direction:row;-ms-flex-direction:row;-webkit-box-align:top;-moz-box-align:top;box-align:top;-webkit-align-items:top;-moz-align-items:top;-ms-align-items:top;-o-align-items:top;align-items:top;-ms-flex-align:top;-webkit-box-pack:justify;-moz-box-pack:justify;box-pack:justify;-webkit-justify-content:space-between;-moz-justify-content:space-between;-ms-justify-content:space-between;-o-justify-content:space-between;justify-content:space-between;-ms-flex-pack:justify}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .header-tweet ul li{padding:0;margin-right:6px}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .header-tweet ul li.user{font-size:1.063rem;font-weight:700;color:#073642}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .header-tweet ul li.user a{color:#073642}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .header-tweet ul li.user a:active,.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .header-tweet ul li.user a:focus,.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .header-tweet ul li.user a:hover{color:#DC322F;text-decoration:none}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .header-tweet ul li.username{font-size:.875rem;color:#899295;font-weight:700}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .header-tweet .date{font-size:.875rem;color:#899295}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .main-tweet p{font-size:.9375rem}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .main-tweet p .hastag{color:rgba(137,146,149,0.7)}.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .main-tweet p .hastag:active,.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .main-tweet p .hastag:focus,.twitter-feed .slider-twitter ul li .item-tweet .tweet-text .main-tweet p .hastag:hover{color:#899295}.twitter-feed .slider-twitter ul li .item-tweet:hover{background:rgba(255,255,255,0.88)}.twitter-feed .call-to-action p{color:#fff}.ides{background:#073642}.ides ul{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:top;-moz-box-align:top;box-align:top;-webkit-align-items:top;-moz-align-items:top;-ms-align-items:top;-o-align-items:top;align-items:top;-ms-flex-align:top;-webkit-box-pack:distribute;-moz-box-pack:distribute;box-pack:distribute;-webkit-justify-content:space-around;-moz-justify-content:space-around;-ms-justify-content:space-around;-o-justify-content:space-around;justify-content:space-around;-ms-flex-pack:distribute}.ides ul li{text-align:center;position:relative}.ides ul li:nth-child(2n){width:1px;height:94px;background:rgba(255,255,255,0.14)}.ides ul li a{display:inline-block;color:rgba(255,255,255,0.5);font-family:"Roboto Slab",serif}.ides ul li a .bullet{position:absolute;top:-12px;right:-14px;background:#15414C;border-radius:100%;width:24px;height:24px;z-index:10;transition:all 350ms ease;text-align:center}.ides ul li a .bullet img{width:16px;height:16px;margin-top:4px}.ides ul li a.sublime .bullet{top:-10px;right:0}.ides ul li a img{height:56px;width:auto;margin-bottom:6px;opacity:0.4;transition:all 350ms ease}.ides ul li a span{display:block;font-size:.875rem}.ides ul li a:hover{color:#fff;text-decoration:none}.ides ul li a:hover img{opacity:1}.ides ul li a:hover .bullet{background:#859900}.nutshell{background:#15414C}.nutshell .heading-line h2 span{background:#15414C}.nutshell .scala-items-list .items-menu .scala-item{float:left;display:block;margin-right:2.35765%;width:31.76157%;padding:20px;text-align:center;transition:all 350ms ease;min-height:165px}.nutshell .scala-items-list .items-menu .scala-item:last-child{margin-right:0}.nutshell .scala-items-list .items-menu .scala-item:nth-child(3n){margin-right:0}.nutshell .scala-items-list .items-menu .scala-item:nth-child(3n+1){clear:left}@media (max-width: 768px){.nutshell .scala-items-list .items-menu .scala-item{float:left;display:block;margin-right:2.35765%;width:100%}.nutshell .scala-items-list .items-menu .scala-item:last-child{margin-right:0}}.nutshell .scala-items-list .items-menu .scala-item h3{color:#fff;font-size:1.063rem;text-transform:uppercase;font-family:"Lato",sans-serif;margin-bottom:10px}.nutshell .scala-items-list .items-menu .scala-item p{color:rgba(255,255,255,0.7);font-size:1.063rem}.nutshell .scala-items-list .items-menu .scala-item:active,.nutshell .scala-items-list .items-menu .scala-item:focus,.nutshell .scala-items-list .items-menu .scala-item:hover{cursor:pointer;background:#073642}.nutshell .scala-items-list .items-menu .scala-item.active{background:#073642}.nutshell .scala-items-list .items-menu .items-content{background:#073642;transition:all 350ms ease}.nutshell .scala-items-list .items-menu .items-content .items-code{display:none;background:#073642;padding:65px 0}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-code{float:left;display:block;margin-right:2.35765%;width:48.82117%}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-code:last-child{margin-right:0}@media (max-width: 992px){.nutshell .scala-items-list .items-menu .items-content .items-code .scala-code{float:left;display:block;margin-right:2.35765%;width:100%}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-code:last-child{margin-right:0}}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-text{float:left;display:block;margin-right:2.35765%;width:48.82117%}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-text code{background:#002B36;padding:2px 8px;color:#859900;border-radius:2px;margin:0 3px}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-text:last-child{margin-right:0}@media (max-width: 992px){.nutshell .scala-items-list .items-menu .items-content .items-code .scala-text{float:left;display:block;margin-right:2.35765%;width:100%}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-text:last-child{margin-right:0}}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-text h3{font-size:1.625rem;color:#fff;margin-bottom:20px}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-text p{color:rgba(255,255,255,0.7)}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-text.scala-text-large{float:left;display:block;margin-right:2.35765%;width:100%;margin-bottom:30px}.nutshell .scala-items-list .items-menu .items-content .items-code .scala-text.scala-text-large:last-child{margin-right:0}.nutshell .scala-item-expanded{display:none;height:400px;background:#073642}.courses{background:#244E58}.courses .heading-line h2 span{background:#244E58}.courses .online-courses,.courses .upcoming-training{float:left;display:block;margin-right:2.35765%;width:48.82117%}.courses .online-courses:last-child,.courses .upcoming-training:last-child{margin-right:0}@media (max-width: 992px){.courses .online-courses,.courses .upcoming-training{float:left;display:block;margin-right:2.35765%;width:100%}.courses .online-courses:last-child,.courses .upcoming-training:last-child{margin-right:0}}@media (max-width: 992px){.courses .online-courses{margin-bottom:40px}}.upcoming-events{background:#15414C}.upcoming-events .heading-line h2 span{background:#15414C}.upcoming-events .events-items-list::after{clear:both;content:"";display:block}.upcoming-events .events-items-list .event-item{float:left;display:block;margin-right:2.35765%;width:31.76157%}.upcoming-events .events-items-list .event-item:last-child{margin-right:0}.upcoming-events .events-items-list .event-item:nth-child(3n){margin-right:0}.upcoming-events .events-items-list .event-item:nth-child(3n+1){clear:left}@media (max-width: 992px){.upcoming-events .events-items-list .event-item{float:left;display:block;margin-right:2.35765%;width:100%}.upcoming-events .events-items-list .event-item:last-child{margin-right:0}}.upcoming-events .card{background:#073642}.upcoming-events .card:hover{background:#002B36}#site-main .scala-ecosystem{padding-bottom:0;background:url("../img/frontpage/background-scala-ecosystem.png") no-repeat center bottom #244E58;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover}#site-main .scala-ecosystem .heading-line::after{clear:both;content:"";display:block}#site-main .scala-ecosystem .heading-line h2 span{background:#234D57}#site-main .scala-ecosystem .browser .header-browser{background:#073642;padding:14px 20px;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:justify;-moz-box-pack:justify;box-pack:justify;-webkit-justify-content:space-between;-moz-justify-content:space-between;-ms-justify-content:space-between;-o-justify-content:space-between;justify-content:space-between;-ms-flex-pack:justify}#site-main .scala-ecosystem .browser .header-browser img{width:116px;height:auto}#site-main .scala-ecosystem .browser .header-browser img:last-child{width:86px;height:auto}#site-main .scala-ecosystem .browser .main-browser{background:rgba(21,65,76,0.5);transition:all 350ms ease;text-align:center;padding:70px 0 80px}#site-main .scala-ecosystem .browser .main-browser h2{color:#fff;font-size:2.5rem;margin-bottom:24px}#site-main .scala-ecosystem .browser .main-browser .input-control{position:relative;background:#333;width:550px;margin-left:auto;margin-right:auto;color:#899295}#site-main .scala-ecosystem .browser .main-browser .input-control span{position:absolute;left:20px;top:8px}#site-main .scala-ecosystem .browser .main-browser .input-control input{padding:12px 18px 12px 50px;border-radius:2px;width:100%;font-weight:700}@media (max-width: 768px){#site-main .scala-ecosystem .browser .main-browser{padding-left:20px;padding-right:20px}#site-main .scala-ecosystem .browser .main-browser h2{font-size:1.4rem}#site-main .scala-ecosystem .browser .main-browser .input-control{width:100%}}#site-main .scala-ecosystem:hover .main-browser{background:#15414C;padding-bottom:140px}#site-main .autocomplete-suggestions{border:1px solid #E5EAEA;background:#FFF;overflow:auto}#site-main .autocomplete-suggestion{padding:2px 5px;white-space:nowrap;overflow:hidden}#site-main .autocomplete-selected{background:#F0F3F3}#site-main .autocomplete-suggestions strong{font-weight:normal;color:#073642}#site-main .autocomplete-group{padding:2px 5px}#site-main .autocomplete-group strong{display:block;border-bottom:1px solid #E5EAEA}.new-blog{background:#F0F3F3}.new-blog .heading-line h2{color:#073642}.new-blog .heading-line h2 span{background:#F0F3F3}.new-blog .heading-line h2:before{background:#E5EAEA}.new-blog .new,.new-blog .recently{float:left;display:block;margin-right:2.35765%;width:48.82117%}.new-blog .new:last-child,.new-blog .recently:last-child{margin-right:0}@media (max-width: 992px){.new-blog .new,.new-blog .recently{float:left;display:block;margin-right:2.35765%;width:100%}.new-blog .new:last-child,.new-blog .recently:last-child{margin-right:0}}.new-blog .new h3,.new-blog .recently h3{font-family:"Lato",sans-serif;text-transform:uppercase;border-bottom:1px solid #E5EAEA;font-size:1.063rem}.new-blog .new .content-card,.new-blog .recently .content-card{background:#fff;padding:22px;display:block;border-radius:3px}@media (max-width: 992px){.new-blog .new{margin-bottom:40px}}.new-blog .new .content-card{height:516px;overflow:hidden;position:relative}.new-blog .new .content-card:before{content:"";position:absolute;background:#fff;left:0;bottom:0;width:100%;height:20px;z-index:1}.new-blog .new .tag-new{text-transform:uppercase;font-size:.9375rem;color:#DC322F;font-weight:700}.new-blog .new h3{font-size:1.5rem;color:#073642;padding-bottom:15px;margin-bottom:15px}.new-blog .new h3 a{color:#073642}.new-blog .new h3 a:active,.new-blog .new h3 a:focus,.new-blog .new h3 a:hover{text-decoration:none;color:#DC322F}.new-blog .new .date{color:#899295;display:block;margin-bottom:5px;font-style:italic}.new-blog .recently a{margin-bottom:16px}.new-blog .recently a h3{color:#073642;transition:all 350ms ease;padding-bottom:8px;margin-bottom:6px}.new-blog .recently a ul{position:relative;margin-bottom:4px}.new-blog .recently a ul li{color:#899295;font-size:.875rem;display:inline-block}.new-blog .recently a ul li.dot{font-size:10px}.new-blog .recently a ul li.tag{position:absolute;right:0;top:3px;background:#DC322F;color:#fff;text-transform:uppercase;font-size:11px;font-weight:700;padding:1px 5px}.new-blog .recently a p{color:#4A5659}.new-blog .recently a:active,.new-blog .recently a:focus,.new-blog .recently a:hover{text-decoration:none;box-shadow:rgba(0,43,54,0.2) 0 1px 12px}.new-blog .recently a:active h3,.new-blog .recently a:focus h3,.new-blog .recently a:hover h3{color:#765;color:#DC322F}.talk-to-us .heading-line h2{color:#073642}.talk-to-us .heading-line h2 span{background:#fff}.talk-to-us .heading-line h2:before{background:#E5EAEA}.talk-to-us h3{text-align:center;color:#073642;font-size:.9375rem;margin-bottom:40px}.talk-to-us .discourse,.talk-to-us .gitter{margin-bottom:50px}.talk-to-us .discourse::after,.talk-to-us .gitter::after{clear:both;content:"";display:block}.talk-to-us .discourse .scala-user-discourse{margin-left:17.05961%}.talk-to-us .discourse .scala-contributors-discourse,.talk-to-us .discourse .scala-user-discourse{padding:20px;text-align:center;float:left;display:block;margin-right:2.35765%;width:31.76157%}.talk-to-us .discourse .scala-contributors-discourse img,.talk-to-us .discourse .scala-user-discourse img{width:34px;height:auto}.talk-to-us .discourse .scala-contributors-discourse h4,.talk-to-us .discourse .scala-user-discourse h4{font-family:"Lato",sans-serif;font-size:1.063rem;text-transform:uppercase;color:#073642;margin:12px 0 8px}.talk-to-us .discourse .scala-contributors-discourse p,.talk-to-us .discourse .scala-user-discourse p{color:#4A5659}.talk-to-us .discourse .scala-contributors-discourse:active,.talk-to-us .discourse .scala-contributors-discourse:focus,.talk-to-us .discourse .scala-contributors-discourse:hover,.talk-to-us .discourse .scala-user-discourse:active,.talk-to-us .discourse .scala-user-discourse:focus,.talk-to-us .discourse .scala-user-discourse:hover{text-decoration:none;background:#F0F3F3;border-radius:2px}.talk-to-us .discourse .scala-contributors-discourse:active h4,.talk-to-us .discourse .scala-contributors-discourse:focus h4,.talk-to-us .discourse .scala-contributors-discourse:hover h4,.talk-to-us .discourse .scala-user-discourse:active h4,.talk-to-us .discourse .scala-user-discourse:focus h4,.talk-to-us .discourse .scala-user-discourse:hover h4{color:#DC322F}.talk-to-us .discourse .scala-contributors-discourse:last-child,.talk-to-us .discourse .scala-user-discourse:last-child{margin-right:0}@media (max-width: 992px){.talk-to-us .discourse .scala-contributors-discourse,.talk-to-us .discourse .scala-user-discourse{float:left;display:block;margin-right:2.35765%;width:100%;margin-left:0%}.talk-to-us .discourse .scala-contributors-discourse:last-child,.talk-to-us .discourse .scala-user-discourse:last-child{margin-right:0}}.talk-to-us .gitter ul.first{margin-left:17.05961%}.talk-to-us .gitter ul.first li:last-child{border-bottom:1px solid #E5EAEA}.talk-to-us .gitter ul,.talk-to-us .gitter ul.first{float:left;display:block;margin-right:2.35765%;width:31.76157%}.talk-to-us .gitter ul:last-child,.talk-to-us .gitter ul.first:last-child{margin-right:0}@media (max-width: 768px){.talk-to-us .gitter ul,.talk-to-us .gitter ul.first{float:left;display:block;margin-right:2.35765%;width:100%;margin-left:0%}.talk-to-us .gitter ul:last-child,.talk-to-us .gitter ul.first:last-child{margin-right:0}.talk-to-us .gitter ul li:last-child,.talk-to-us .gitter ul.first li:last-child{border-bottom:none}}.talk-to-us .gitter ul li{border-top:1px solid #E5EAEA}.talk-to-us .gitter ul li a{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-o-justify-content:flex-start;justify-content:flex-start;-ms-flex-pack:start;padding:14px 0;color:#4A5659;font-weight:700;padding-left:30px}.talk-to-us .gitter ul li a:active,.talk-to-us .gitter ul li a:focus,.talk-to-us .gitter ul li a:hover{background:#F0F3F3;text-decoration:none}.talk-to-us .gitter ul li a img{width:28px;height:auto;margin-right:10px}.talk-to-us .gitter ul li:last-child{border-bottom:1px solid #E5EAEA}.talk-to-us .communities ul{text-align:center}.talk-to-us .communities ul li{display:inline-block}.talk-to-us .communities ul li:first-child{margin-right:20px}.talk-to-us .communities ul li:first-child img{width:127px;height:auto}.talk-to-us .communities ul li:last-child img{width:131px;height:auto}.talk-to-us .communities ul li a:active,.talk-to-us .communities ul li a:focus,.talk-to-us .communities ul li a:hover{opacity:0.7}.talk-to-us .social{margin-top:40px;text-align:center}.talk-to-us .social ul li{display:inline-block;font-size:1.75rem}.talk-to-us .social ul li:first-child{margin-right:14px}.talk-to-us .social ul li a{color:#15414C}.talk-to-us .social ul li a:active,.talk-to-us .social ul li a:focus,.talk-to-us .social ul li a:hover{color:#DC322F}.maintenance{background:#073642}.maintenance .heading-line h2 span{background:#073642}.maintenance h3{color:#fff;text-align:center;font-size:0.9375rem}.maintenance .maintained{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-ms-flex-pack:center;flex-wrap:wrap;margin-bottom:40px}.maintenance .maintained li:first-child{margin-right:32px}.maintenance .maintained li a img{height:43px;width:auto;opacity:0.3;transition:all 350ms ease}.maintenance .maintained li a:hover img{opacity:1}@media (max-width: 480px){.maintenance .maintained li:first-child{margin-right:0}}.maintenance .supported{padding-top:30px;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;-webkit-box-direction:normal;-moz-box-direction:normal;box-direction:normal;-webkit-flex-direction:row;-moz-flex-direction:row;flex-direction:row;-ms-flex-direction:row;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:justify;-moz-box-pack:justify;box-pack:justify;-webkit-justify-content:space-between;-moz-justify-content:space-between;-ms-justify-content:space-between;-o-justify-content:space-between;justify-content:space-between;-ms-flex-pack:justify;flex-wrap:wrap}.maintenance .supported a img{height:42px;width:auto;display:block;opacity:0.3;transition:all 350ms ease}@media (max-width: 992px){.maintenance .supported a img{margin:5px}}@media (max-width: 768px){.maintenance .supported a img{margin:10px}}.maintenance .supported a:hover img{opacity:1}#site-footer{padding:50px 0;background:#002B36;color:rgba(255,255,255,0.5)}#site-footer ul{float:left;display:block;margin-right:2.35765%;width:14.70196%}#site-footer ul:last-child{margin-right:0}@media (max-width: 992px){#site-footer ul{float:left;display:block;margin-right:2.35765%;width:31.76157%;margin-bottom:20px}#site-footer ul:last-child{margin-right:0}#site-footer ul:nth-child(3n){margin-right:0}#site-footer ul:nth-child(3n+1){clear:left}}@media (max-width: 480px){#site-footer ul{float:left;display:block;margin-right:2.35765%;width:100%}#site-footer ul:last-child{margin-right:0}}#site-footer ul li{margin-bottom:3px}#site-footer ul li h3{color:#fff;margin-bottom:10px;text-transform:uppercase;font-family:"Lato",sans-serif;font-weight:700;font-size:1.063rem}#site-footer ul li a{color:rgba(255,255,255,0.5);font-size:.9375rem}#site-footer ul li a:active,#site-footer ul li a:focus,#site-footer ul li a:hover{color:#fff;text-decoration:none}#site-footer .site-footer-top{margin-bottom:40px}#site-footer .site-footer-top::after{clear:both;content:"";display:block}#site-footer .site-footer-bottom{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;-webkit-box-direction:normal;-moz-box-direction:normal;box-direction:normal;-webkit-flex-direction:row;-moz-flex-direction:row;flex-direction:row;-ms-flex-direction:row;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:justify;-moz-box-pack:justify;box-pack:justify;-webkit-justify-content:space-between;-moz-justify-content:space-between;-ms-justify-content:space-between;-o-justify-content:space-between;justify-content:space-between;-ms-flex-pack:justify}#site-footer .site-footer-bottom img{width:104px;height:auto}@media (max-width: 480px){#site-footer .site-footer-bottom{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-o-justify-content:flex-start;justify-content:flex-start;-ms-flex-pack:start;flex-wrap:wrap}#site-footer .site-footer-bottom img{margin-top:18px}}#site-footer .site-footer-bottom img{opacity:0.4;margin-right:65px}.marker{position:absolute;width:16px;height:8px;background:#A4302E;left:0px;top:0px;border-radius:100%;cursor:pointer}@media (max-width: 1400px){.marker{display:none}}.marker:hover .info-marker,.marker:hover .arrow{visibility:visible;opacity:1;transition:all 350ms ease}.marker:before{content:"";position:absolute;background:rgba(164,48,46,0.3);left:-8px;top:-4px;width:32px;height:16px;border-radius:100%;z-index:1}.marker .info-marker{width:472px;position:absolute;left:-13px;top:30px;font-size:.875rem;color:#fff;font-family:"Roboto Slab",serif;background:rgba(7,54,66,0.8);padding:20px;visibility:hidden;opacity:0}.marker .info-marker .arrow{position:absolute;left:0;top:-16px;width:23px;height:13px;z-index:1}#site-main .runs{padding:30px 0;background:#15414C}#site-main .runs h2{color:#fff;text-align:center;font-size:1.063rem}#site-main .runs ul{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-ms-flex-pack:center;margin-top:30px}#site-main .runs ul li:nth-child(2){height:100px;width:1px;background:rgba(255,255,255,0.14);margin-left:36px;margin-right:36px}#site-main .runs ul li:nth-child(1),#site-main .runs ul li:nth-child(3){border-radius:100%;-webkit-border-radius:100%;-moz-border-radius:100%;-ms-border-radius:100%;-o-border-radius:100%;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-ms-flex-pack:center}#site-main .runs ul li:nth-child(1) span,#site-main .runs ul li:nth-child(3) span{border-radius:100%;-webkit-border-radius:100%;-moz-border-radius:100%;-ms-border-radius:100%;-o-border-radius:100%;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-ms-flex-pack:center}#site-main .runs ul li:nth-child(1) span img,#site-main .runs ul li:nth-child(3) span img{height:56px;width:56px;opacity:0.3;transition:all 350ms ease}#site-main .runs ul li:nth-child(1):hover span img,#site-main .runs ul li:nth-child(3):hover span img{opacity:1}#site-main .runs p{text-align:center;color:rgba(255,255,255,0.6);margin-top:28px;text-transform:uppercase;font-size:.875rem}#site-main .run-scala{background:#073642;padding-bottom:0;overflow:hidden}#site-main .run-scala .code-element{margin-bottom:-1px;margin-top:48px;position:relative}#site-main .run-scala .code-element textarea{width:100%;background:#002B36;height:400px;overflow:hidden}#site-main .run-scala .code-element textarea:focus{outline:none}#site-main .run-scala .code-element .btn-run{position:absolute;right:20px;bottom:20px;background:rgba(255,255,255,0.1);padding:3px 14px;color:#fff;font-size:.875rem;cursor:pointer;transition:all 350ms ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#site-main .run-scala .code-element .btn-run:hover{background:rgba(255,255,255,0.2)}#site-main .run-scala .code-element .btn-run.inactive{color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.05);pointer-events:none}#site-main .run-scala .code-element .btn-run i{margin-right:10px}.autocomplete-suggestions{border:1px solid #999;background:#FFF;overflow:auto}.autocomplete-suggestion{padding:2px 5px;white-space:nowrap;overflow:hidden}.autocomplete-selected{background:#F0F0F0}.autocomplete-suggestions strong{font-weight:normal;color:#3399FF}.autocomplete-group{padding:2px 5px}.autocomplete-group strong{display:block;border-bottom:1px solid #000}#inner-main{background:#F0F3F3;padding-bottom:50px}#inner-main section:nth-child(2){margin-top:-80px}#inner-main .inner-box{padding:30px;background:#fff;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;-webkit-box-shadow:rgba(0,43,54,0.04) 0 2px 1px;-moz-box-shadow:rgba(0,43,54,0.04) 0 2px 1px;box-shadow:rgba(0,43,54,0.04) 0 2px 1px}#inner-main .content .wrap{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap}#inner-main .content .content-primary,#inner-main .content .content-primary-blog{float:left;display:block;margin-right:2.35765%;width:74.41059%}#inner-main .content .content-primary:last-child,#inner-main .content .content-primary-blog:last-child{margin-right:0}@media (max-width: 992px){#inner-main .content .content-primary,#inner-main .content .content-primary-blog{width:100%;order:2;margin-right:0}}#inner-main .content .content-nav,#inner-main .content .content-nav-blog{float:left;display:block;margin-right:2.35765%;width:23.23176%}#inner-main .content .content-nav:last-child,#inner-main .content .content-nav-blog:last-child{margin-right:0}@media (max-width: 992px){#inner-main .content .content-nav,#inner-main .content .content-nav-blog{width:100%;order:1;margin-bottom:30px}}@media (max-width: 992px){#inner-main .content .content-nav-blog{display:none}}#inner-main .content .content-primary .documentation .doc-item,#inner-main .content .content-primary .documentation .tool-item,#inner-main .content .content-primary .tools .doc-item,#inner-main .content .content-primary .tools .tool-item{margin-bottom:0;transition:all 350ms ease;float:left;display:block;margin-right:2.35765%;width:48.82117%}#inner-main .content .content-primary .documentation .doc-item:last-child,#inner-main .content .content-primary .documentation .tool-item:last-child,#inner-main .content .content-primary .tools .doc-item:last-child,#inner-main .content .content-primary .tools .tool-item:last-child{margin-right:0}#inner-main .content .content-primary .documentation .doc-item:nth-child(2n),#inner-main .content .content-primary .documentation .tool-item:nth-child(2n),#inner-main .content .content-primary .tools .doc-item:nth-child(2n),#inner-main .content .content-primary .tools .tool-item:nth-child(2n){margin-right:0}#inner-main .content .content-primary .documentation .doc-item:nth-child(2n+1),#inner-main .content .content-primary .documentation .tool-item:nth-child(2n+1),#inner-main .content .content-primary .tools .doc-item:nth-child(2n+1),#inner-main .content .content-primary .tools .tool-item:nth-child(2n+1){clear:left}@media (max-width: 992px){#inner-main .content .content-primary .documentation .doc-item,#inner-main .content .content-primary .documentation .tool-item,#inner-main .content .content-primary .tools .doc-item,#inner-main .content .content-primary .tools .tool-item{width:100%}}#inner-main .content .content-primary .documentation .doc-item a:active h4,#inner-main .content .content-primary .documentation .doc-item a:focus h4,#inner-main .content .content-primary .documentation .doc-item a:hover h4,#inner-main .content .content-primary .documentation .tool-item a:active h4,#inner-main .content .content-primary .documentation .tool-item a:focus h4,#inner-main .content .content-primary .documentation .tool-item a:hover h4,#inner-main .content .content-primary .tools .doc-item a:active h4,#inner-main .content .content-primary .tools .doc-item a:focus h4,#inner-main .content .content-primary .tools .doc-item a:hover h4,#inner-main .content .content-primary .tools .tool-item a:active h4,#inner-main .content .content-primary .tools .tool-item a:focus h4,#inner-main .content .content-primary .tools .tool-item a:hover h4{color:#DC322F}#inner-main .content .content-primary .documentation .doc-item:nth-child(2n),#inner-main .content .content-primary .documentation .tool-item:nth-child(2n),#inner-main .content .content-primary .tools .doc-item:nth-child(2n),#inner-main .content .content-primary .tools .tool-item:nth-child(2n){clear:none}#inner-main .content .content-primary .documentation .doc-item:active,#inner-main .content .content-primary .documentation .doc-item:focus,#inner-main .content .content-primary .documentation .doc-item:hover,#inner-main .content .content-primary .documentation .tool-item:active,#inner-main .content .content-primary .documentation .tool-item:focus,#inner-main .content .content-primary .documentation .tool-item:hover,#inner-main .content .content-primary .tools .doc-item:active,#inner-main .content .content-primary .tools .doc-item:focus,#inner-main .content .content-primary .tools .doc-item:hover,#inner-main .content .content-primary .tools .tool-item:active,#inner-main .content .content-primary .tools .tool-item:focus,#inner-main .content .content-primary .tools .tool-item:hover{text-decoration:none;background:none}#inner-main .content .content-nav .inner-box .inner-toc>ul>li{margin-top:10px;line-height:1.2}#inner-main .content .content-nav .inner-box .inner-toc>ul>li>a{color:#073642}#inner-main .content .content-nav .inner-box .inner-toc>ul>li>a:active,#inner-main .content .content-nav .inner-box .inner-toc>ul>li>a:focus,#inner-main .content .content-nav .inner-box .inner-toc>ul>li>a:hover{color:#DC322F}#inner-main .content .content-nav .inner-box .inner-toc>ul>li>ul{margin:5px 0;padding-left:14px;color:rgba(137,146,149,0.7);border-left:1px solid #E5EAEA}#inner-main .content .content-nav .inner-box .inner-toc>ul>li>ul li{font-size:.9375rem;margin-bottom:-2px}#inner-main .content .content-nav .inner-box .inner-toc>ul>li>ul li ul li{font-size:.875rem}#inner-main .content .content-nav .inner-box .inner-toc>ul>li>ul li ul li:before{color:rgba(137,146,149,0.5);padding-left:0;margin-right:6px;content:"\2192"}#inner-main .content .content-nav .inner-box .inner-toc>ul>li>ul li ul li a{font-style:italic}#inner-main .content .content-nav .inner-box hr{border:none;height:1px;width:60px;background:#E5EAEA;margin:18px 0}#inner-main .content .content-nav .inner-box .help-us{line-height:1.1}#inner-main .content .content-nav .inner-box .help-us a{font-size:.75rem;background:rgba(92,198,228,0.15)}#inner-main .content .content-nav .inner-box .help-us a:active,#inner-main .content .content-nav .inner-box .help-us a:focus,#inner-main .content .content-nav .inner-box .help-us a:hover{text-decoration:none}#inner-main .content .content-nav .inner-box .help-us a br{height:5px}.title-page{background:#5CC6E4;height:200px}.title-page h1{font-size:1.875rem;font-family:"Lato",sans-serif;padding-top:40px;text-transform:uppercase;text-shadow:rgba(0,43,54,0.1) 2px 2px 0;color:#fff}.books h2,.books h3,.content-primary h2,.content-primary h3,.content-primary-blog h2,.content-primary-blog h3,.table-of-content h2,.table-of-content h3,.training-events h2,.training-events h3{font-weight:400;margin-top:28px}.books h2,.books h3,.books h4,.books h5,.content-primary h2,.content-primary h3,.content-primary h4,.content-primary h5,.content-primary-blog h2,.content-primary-blog h3,.content-primary-blog h4,.content-primary-blog h5,.table-of-content h2,.table-of-content h3,.table-of-content h4,.table-of-content h5,.training-events h2,.training-events h3,.training-events h4,.training-events h5{color:#073642;font-weight:400}.books h2 a,.books h3 a,.books h4 a,.books h5 a,.content-primary h2 a,.content-primary h3 a,.content-primary h4 a,.content-primary h5 a,.content-primary-blog h2 a,.content-primary-blog h3 a,.content-primary-blog h4 a,.content-primary-blog h5 a,.table-of-content h2 a,.table-of-content h3 a,.table-of-content h4 a,.table-of-content h5 a,.training-events h2 a,.training-events h3 a,.training-events h4 a,.training-events h5 a{color:#073642}.books h2 a:active,.books h2 a:focus,.books h2 a:hover,.books h3 a:active,.books h3 a:focus,.books h3 a:hover,.books h4 a:active,.books h4 a:focus,.books h4 a:hover,.books h5 a:active,.books h5 a:focus,.books h5 a:hover,.content-primary h2 a:active,.content-primary h2 a:focus,.content-primary h2 a:hover,.content-primary h3 a:active,.content-primary h3 a:focus,.content-primary h3 a:hover,.content-primary h4 a:active,.content-primary h4 a:focus,.content-primary h4 a:hover,.content-primary h5 a:active,.content-primary h5 a:focus,.content-primary h5 a:hover,.content-primary-blog h2 a:active,.content-primary-blog h2 a:focus,.content-primary-blog h2 a:hover,.content-primary-blog h3 a:active,.content-primary-blog h3 a:focus,.content-primary-blog h3 a:hover,.content-primary-blog h4 a:active,.content-primary-blog h4 a:focus,.content-primary-blog h4 a:hover,.content-primary-blog h5 a:active,.content-primary-blog h5 a:focus,.content-primary-blog h5 a:hover,.table-of-content h2 a:active,.table-of-content h2 a:focus,.table-of-content h2 a:hover,.table-of-content h3 a:active,.table-of-content h3 a:focus,.table-of-content h3 a:hover,.table-of-content h4 a:active,.table-of-content h4 a:focus,.table-of-content h4 a:hover,.table-of-content h5 a:active,.table-of-content h5 a:focus,.table-of-content h5 a:hover,.training-events h2 a:active,.training-events h2 a:focus,.training-events h2 a:hover,.training-events h3 a:active,.training-events h3 a:focus,.training-events h3 a:hover,.training-events h4 a:active,.training-events h4 a:focus,.training-events h4 a:hover,.training-events h5 a:active,.training-events h5 a:focus,.training-events h5 a:hover{color:#DC322F;text-decoration:none}.books h2,.content-primary h2,.content-primary-blog h2,.table-of-content h2,.training-events h2{font-size:1.75rem}.books h3,.content-primary h3,.content-primary-blog h3,.table-of-content h3,.training-events h3{font-size:1.25rem}.books h4,.books h5,.content-primary h4,.content-primary h5,.content-primary-blog h4,.content-primary-blog h5,.table-of-content h4,.table-of-content h5,.training-events h4,.training-events h5{font-size:1.063rem;font-family:"Lato",sans-serif;text-transform:uppercase;font-weight:700}.content-primary h2,.content-primary-blog h2{color:#DC322F}.content-primary h2 a,.content-primary-blog h2 a{color:#DC322F}.content-nav h5,.content-nav-blog h5{font-size:1.25rem;margin-bottom:12px;color:#073642;font-weight:400}.content-primary h2,.text-step h2{margin-bottom:24px}.content-primary blockquote,.content-primary h3,.content-primary h4,.content-primary h5,.content-primary img,.content-primary p,.content-primary pre,.content-primary table,.content-primary ul,.text-step blockquote,.text-step h3,.text-step h4,.text-step h5,.text-step img,.text-step p,.text-step pre,.text-step table,.text-step ul{margin-bottom:18px}.content-primary ol,.content-primary ul,.text-step ol,.text-step ul{padding-left:18px}.content-primary ol li,.text-step ol li{list-style:decimal}.content-primary ul li,.text-step ul li{list-style:disc}.content-primary ol li,.content-primary ul li,.text-step ol li,.text-step ul li{padding-left:10px;margin-bottom:16px}.content-primary ol li ul,.content-primary ul li ul,.text-step ol li ul,.text-step ul li ul{margin-top:18px}.content-primary ol li ul li,.content-primary ul li ul li,.text-step ol li ul li,.text-step ul li ul li{margin-bottom:8px;list-style:circle;padding-left:0}.content-primary ol li:last-child,.content-primary ul li:last-child,.text-step ol li:last-child,.text-step ul li:last-child{margin-bottom:0}.content-primary em,.text-step em{font-style:italic}.content-primary strong,.text-step strong{font-weight:700}.content-primary del,.text-step del{text-decoration:line-through}.content-primary li code,.content-primary p code,.text-step li code,.text-step p code{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;font-size:.9375rem;background:#F0F3F3;color:#899295;padding:0 6px;margin:0 4px}.content-primary pre,.text-step pre{margin-bottom:36px}.content-primary pre code,.text-step pre code{padding:20px;font-size:.9375rem;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}.content-primary table,.text-step table{width:100%;text-align:left}.content-primary table thead,.text-step table thead{font-weight:700}.content-primary table td,.content-primary table th,.text-step table td,.text-step table th{border-bottom:1px solid #E5EAEA;padding:6px 0}.content-primary img,.text-step img{width:100%;height:auto}.content-primary blockquote,.text-step blockquote{padding:20px;border:2px dashed #E5EAEA;font-size:1.063rem;font-style:italic;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}.content-primary blockquote p,.text-step blockquote p{margin:0}.content-primary .tag-list,.text-step .tag-list{padding:0}.content-primary .tag-list .tag-item:last-child,.text-step .tag-list .tag-item:last-child{margin-bottom:8px}.content-primary .filter-tag,.text-step .filter-tag{margin-top:30px;text-transform:uppercase;font-style:italic;color:#899295}#inner-main .table-of-content{margin-bottom:30px}#inner-main .table-of-content .inner-box{padding-bottom:0}.documentation::after{clear:both;content:"";display:block}.documentation .doc-item{float:left;display:block;margin-right:2.35765%;width:31.76157%;margin-bottom:30px;min-height:120px;padding:15px}.documentation .doc-item:last-child{margin-right:0}.documentation .doc-item:nth-child(3n){margin-right:0}.documentation .doc-item:nth-child(3n+1){clear:left}@media (max-width: 992px){.documentation .doc-item{float:left;display:block;margin-right:2.35765%;width:100%;min-height:auto}.documentation .doc-item:last-child{margin-right:0}}.documentation .doc-item .doc-item-header{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-o-justify-content:flex-start;justify-content:flex-start;-ms-flex-pack:start;margin-bottom:10px}.documentation .doc-item .doc-item-header .fa{font-size:1.563rem;margin-right:14px;color:#DC322F}.documentation .doc-item .doc-item-header h4{color:#073642;margin-bottom:0;transition:all 350ms ease}.documentation .doc-item .doc-item-header a:active,.documentation .doc-item .doc-item-header a:focus,.documentation .doc-item .doc-item-header a:hover{text-decoration:none}.documentation .doc-item .doc-item-main p{color:#4A5659}.documentation .doc-item:active,.documentation .doc-item:focus,.documentation .doc-item:hover{text-decoration:none;background:#F0F3F3}.community{padding-bottom:20px}.community::after{clear:both;content:"";display:block}.community .discourse,.community .gitter{float:left;display:block;margin-right:2.35765%;width:48.82117%}.community .discourse h3,.community .gitter h3{margin-top:0}.community .discourse:last-child,.community .gitter:last-child{margin-right:0}@media (max-width: 768px){.community .discourse,.community .gitter{float:left;display:block;margin-right:2.35765%;width:100%}.community .discourse:last-child,.community .gitter:last-child{margin-right:0}}.community .discourse span,.community .gitter span{border-bottom:1px solid #E5EAEA;display:block;color:#899295;font-style:italic;padding-bottom:10px;margin-bottom:30px}.community .discourse img,.community .gitter img{width:28px;height:28px}.community .discourse a:active,.community .discourse a:focus,.community .discourse a:hover,.community .gitter a:active,.community .gitter a:focus,.community .gitter a:hover{text-decoration:none;color:#DC322F}.community .discourse a:active h4,.community .discourse a:focus h4,.community .discourse a:hover h4,.community .gitter a:active h4,.community .gitter a:focus h4,.community .gitter a:hover h4{color:#DC322F}.community .discourse ul li{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:top;-moz-box-align:top;box-align:top;-webkit-align-items:top;-moz-align-items:top;-ms-align-items:top;-o-align-items:top;align-items:top;-ms-flex-align:top;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-o-justify-content:flex-start;justify-content:flex-start;-ms-flex-pack:start;margin-bottom:40px}.community .discourse ul li img{margin-right:15px}.community .discourse ul li h4{margin-bottom:8px}.community .gitter ul li{float:left;display:block;margin-right:4.82916%;width:47.58542%;margin-bottom:20px}.community .gitter ul li:last-child{margin-right:0}.community .gitter ul li:nth-child(2n){margin-right:0}.community .gitter ul li:nth-child(2n+1){clear:left}@media (max-width: 480px){.community .gitter ul li{float:left;display:block;margin-right:2.35765%;width:100%}.community .gitter ul li:last-child{margin-right:0}}.community .gitter ul li a{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-o-justify-content:flex-start;justify-content:flex-start;-ms-flex-pack:start}.community .gitter ul li a img{margin-right:10px}.community .gitter ul li a h4{text-transform:none}.content-primary .tools::after{clear:both;content:"";display:block}.content-primary .tools .tool-item{float:left;display:block;margin-right:2.35765%;width:31.76157%;margin-bottom:30px;min-height:120px;padding:15px}.content-primary .tools .tool-item:last-child{margin-right:0}.content-primary .tools .tool-item:nth-child(3n){margin-right:0}.content-primary .tools .tool-item:nth-child(3n+1){clear:left}@media (max-width: 992px){.content-primary .tools .tool-item{float:left;display:block;margin-right:2.35765%;width:100%;min-height:auto}.content-primary .tools .tool-item:last-child{margin-right:0}}.content-primary .tools .tool-item .tool-item-header{margin-bottom:10px}.content-primary .tools .tool-item .tool-item-header img{height:50px;width:auto}.content-primary .tools .tool-item .tool-item-header h4{color:#073642;margin-bottom:0;transition:all 350ms ease}.content-primary .tools .tool-item .tool-item-header a:active,.content-primary .tools .tool-item .tool-item-header a:focus,.content-primary .tools .tool-item .tool-item-header a:hover{text-decoration:none}.content-primary .tools .tool-item .tool-item-main p{color:#4A5659;margin-bottom:6px}.content-primary .tools .tool-item .tool-item-main ul{padding:0;margin:0}.content-primary .tools .tool-item .tool-item-main ul li{list-style:none;padding:0;margin:0;display:inline-block}.books h2{margin-bottom:30px}.books-list::after{clear:both;content:"";display:block}.books-list .book-item{float:left;display:block;margin-right:2.35765%;width:31.76157%;margin-bottom:50px}.books-list .book-item:last-child{margin-right:0}.books-list .book-item:nth-child(3n){margin-right:0}.books-list .book-item:nth-child(3n+1){clear:left}@media (max-width: 768px){.books-list .book-item{float:left;display:block;margin-right:2.35765%;width:100%}.books-list .book-item:last-child{margin-right:0}}.books-list .book-item .book-item-header .content-img-boook{border-bottom:1px solid #E5EAEA;height:120px;overflow:hidden}.books-list .book-item .book-item-header .content-img-boook img{height:145px;width:auto;display:block;margin-top:10px;transition:all 350ms ease;border-left:1px solid #E5EAEA;border-top:1px solid #E5EAEA;border-right:1px solid #E5EAEA}.books-list .book-item .book-item-header h3{margin-bottom:10px;transition:all 350ms ease}.books-list .book-item .book-item-header a:active,.books-list .book-item .book-item-header a:focus,.books-list .book-item .book-item-header a:hover{text-decoration:none;color:#DC322F}.books-list .book-item .book-item-header a:active img,.books-list .book-item .book-item-header a:focus img,.books-list .book-item .book-item-header a:hover img{margin-top:0}.books-list .book-item .book-item-header a:active h3,.books-list .book-item .book-item-header a:focus h3,.books-list .book-item .book-item-header a:hover h3{color:#DC322F}.books-list .book-item .book-item-main .author,.books-list .book-item .book-item-main .published{color:#899295}.books-list .book-item .book-item-main .published{font-style:italic}.books-list .book-item .book-item-main .description{margin-top:10px}.books-list .book-item .book-item-main ul{padding-left:18px}.books-list .book-item .book-item-main ul li{list-style:disc;margin-bottom:3px}.training-events h3{border-bottom:1px solid #E5EAEA;padding-bottom:14px}.training-events .training-list{margin-top:30px}.training-events .training-list::after{clear:both;content:"";display:block}.training-events .training-list .training-item{margin-bottom:30px;float:left;display:block;margin-right:2.35765%;width:23.23176%}.training-events .training-list .training-item:last-child{margin-right:0}.training-events .training-list .training-item:nth-child(4n){margin-right:0}.training-events .training-list .training-item:nth-child(4n+1){clear:left}@media (max-width: 768px){.training-events .training-list .training-item{float:left;display:block;margin-right:2.35765%;width:100%;padding-bottom:20px;border-bottom:1px solid #E5EAEA}.training-events .training-list .training-item:last-child{margin-right:0}}.training-events .training-list .training-item img,.training-events .training-list .training-item .calendar{float:left}.training-events .training-list .training-item img{width:28px;height:auto}.training-events .training-list .training-item .calendar span:last-child{background:#F0F3F3}.training-events .training-list .training-item .training-text{margin-left:44px}.training-events .training-list .training-item .training-text h4{margin-bottom:6px}.training-events .training-list .training-item .training-text p{color:#4A5659}.training-events .training-list .training-item .training-text p:nth-child(2){text-transform:uppercase}.training-events .training-list .training-item:active,.training-events .training-list .training-item:focus,.training-events .training-list .training-item:hover{text-decoration:none}.training-events .training-list .training-item:active h4,.training-events .training-list .training-item:focus h4,.training-events .training-list .training-item:hover h4{color:#DC322F}.training-events .org-scala-event{padding:24px;border:2px dashed #E5EAEA;margin-top:30px}.training-events .org-scala-event h2{margin-top:0;margin-bottom:10px}.title-page .content-title-blog h1{float:left;display:block;margin-right:2.35765%;width:74.41059%}.title-page .content-title-blog h1:last-child{margin-right:0}@media (max-width: 768px){.title-page .content-title-blog h1{float:left;display:block;margin-right:2.35765%;width:100%}.title-page .content-title-blog h1:last-child{margin-right:0}}.title-page .content-title-blog .search-container{float:left;display:block;margin-right:2.35765%;width:23.23176%;margin-top:50px}.title-page .content-title-blog .search-container:last-child{margin-right:0}@media (max-width: 768px){.title-page .content-title-blog .search-container{float:left;display:block;margin-right:2.35765%;width:100%;margin-top:20px;margin-bottom:20px}.title-page .content-title-blog .search-container:last-child{margin-right:0}}.blog-list .blog-item{display:block;border-bottom:1px solid #E5EAEA;padding-bottom:18px}.blog-list .blog-item h2{margin-bottom:6px;font-size:1.5rem}.blog-list .blog-item .blog-date{text-transform:uppercase;margin-bottom:4px;font-size:0.875rem}.blog-list .blog-item .blog-author{margin-bottom:12px}.blog-list .blog-item a:active,.blog-list .blog-item a:focus,.blog-list .blog-item a:hover{text-decoration:none}.blog-list-nav{margin-top:18px}.blog-list-nav .blog-list-nav-item{border-bottom:1px solid #E5EAEA;padding-bottom:10px;margin-top:14px}.blog-list-nav .blog-list-nav-item:last-child{border-bottom:none;padding-bottom:0}.blog-list-nav .blog-list-nav-item h4{font-family:"Lato",sans-serif}.blog-list-nav .blog-list-nav-item p{margin-bottom:10px;font-size:.9375rem}.blog-list-nav .blog-list-nav-item a{color:#073642}.blog-list-nav .blog-list-nav-item a:active,.blog-list-nav .blog-list-nav-item a:focus,.blog-list-nav .blog-list-nav-item a:hover{text-decoration:none;color:#DC322F}.blog-detail-head{border-bottom:1px solid #E5EAEA;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-moz-box-align:start;box-align:start;-webkit-align-items:flex-start;-moz-align-items:flex-start;-ms-align-items:flex-start;-o-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:justify;-moz-box-pack:justify;box-pack:justify;-webkit-justify-content:space-between;-moz-justify-content:space-between;-ms-justify-content:space-between;-o-justify-content:space-between;justify-content:space-between;-ms-flex-pack:justify;flex-wrap:wrap;padding-bottom:18px}.blog-detail-head div p:first-child{text-transform:uppercase;margin-bottom:8px;font-size:0.875rem}.blog-detail-head div p{margin-bottom:0}.download{position:relative}.download::after{clear:both;content:"";display:block}.download .content-ribbon{position:absolute;right:30px;top:-10px;z-index:50}.download .content-ribbon .ribbon-version{background:#DC322F;text-align:center;padding:8px 36px}.download .content-ribbon .ribbon-version span{color:#fff;font-size:2.25rem}.download .content-ribbon ul{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:justify;-moz-box-pack:justify;box-pack:justify;-webkit-justify-content:space-between;-moz-justify-content:space-between;-ms-justify-content:space-between;-o-justify-content:space-between;justify-content:space-between;-ms-flex-pack:justify;margin-top:8px}.download .content-ribbon ul li{display:inline-block;font-size:.875rem}.download .content-ribbon ul li:nth-child(2){font-size:0.625rem}.download .main-download{margin-top:70px;float:left;display:block;margin-right:2.35765%;width:65.88078%;margin-left:17.05961%}.download .main-download:last-child{margin-right:0}@media (max-width: 992px){.download .main-download{float:left;display:block;margin-right:2.35765%;width:100%;margin-left:0%}.download .main-download:last-child{margin-right:0}}.download .main-download h2{margin-top:0;font-size:1.75rem}.download .main-download .install-steps{margin-top:48px;border-bottom:1px solid #E5EAEA;padding-bottom:60px}.download .main-download .install-steps::after{clear:both;content:"";display:block}.download .main-download .install-steps .step:first-child{margin-bottom:100px;position:relative}@media (max-width: 480px){.download .main-download .install-steps .step:first-child{margin-bottom:50px}}.download .main-download .install-steps .step:first-child img{width:12px;height:100px;position:absolute;left:25px;top:50px}.download .main-download .install-steps .step::after{clear:both;content:"";display:block}.download .main-download .install-steps .step .number-step{width:64px;height:64px;float:left;background:#DC322F;border-radius:100%;color:#fff;font-size:1.75rem;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-ms-flex-pack:center}.download .main-download .install-steps .step .text-step{margin-left:90px}.download .main-download .install-steps .step .text-step h3{margin-bottom:10px;font-size:1.25rem}.download .main-download .install-steps .step .text-step p span{font-style:italic;color:#899295}.download .main-download .install-steps .download-options{margin-top:38px}.download .main-download .install-steps .download-options::after{clear:both;content:"";display:block}.download .main-download .install-steps .download-options .download-intellij,.download .main-download .install-steps .download-options .download-sbt{position:relative;float:left;display:block;margin-right:3.57866%;width:48.21067%}.download .main-download .install-steps .download-options .download-intellij:last-child,.download .main-download .install-steps .download-options .download-sbt:last-child{margin-right:0}@media (max-width: 992px){.download .main-download .install-steps .download-options .download-intellij,.download .main-download .install-steps .download-options .download-sbt{float:left;display:block;margin-right:3.57866%;width:100%;margin-bottom:34px}.download .main-download .install-steps .download-options .download-intellij:last-child,.download .main-download .install-steps .download-options .download-sbt:last-child{margin-right:0}}.download .main-download .install-steps .download-options .download-intellij .btn-download,.download .main-download .install-steps .download-options .download-sbt .btn-download{background:#DC322F;display:block;text-align:center;color:#fff;text-transform:uppercase;padding:16px 0;border-radius:100px;font-weight:700;margin-bottom:34px}.download .main-download .install-steps .download-options .download-intellij .btn-download:active,.download .main-download .install-steps .download-options .download-intellij .btn-download:focus,.download .main-download .install-steps .download-options .download-intellij .btn-download:hover,.download .main-download .install-steps .download-options .download-sbt .btn-download:active,.download .main-download .install-steps .download-options .download-sbt .btn-download:focus,.download .main-download .install-steps .download-options .download-sbt .btn-download:hover{text-decoration:none;background:#b9221f}.download .main-download .install-steps .download-options .download-intellij .btn-download .fa,.download .main-download .install-steps .download-options .download-sbt .btn-download .fa{margin-right:10px;font-size:1.25rem}.download .main-download .install-steps .download-options .download-intellij ul,.download .main-download .install-steps .download-options .download-sbt ul{position:relative;z-index:50}.download .main-download .install-steps .download-options .download-intellij ul li,.download .main-download .install-steps .download-options .download-sbt ul li{border-bottom:1px solid #E5EAEA}.download .main-download .install-steps .download-options .download-intellij ul li:first-child,.download .main-download .install-steps .download-options .download-sbt ul li:first-child{border-top:1px solid #E5EAEA}.download .main-download .install-steps .download-options .download-intellij ul li a,.download .main-download .install-steps .download-options .download-sbt ul li a{padding:10px 16px;display:block;color:#4A5659}.download .main-download .install-steps .download-options .download-intellij ul li a:active,.download .main-download .install-steps .download-options .download-intellij ul li a:focus,.download .main-download .install-steps .download-options .download-intellij ul li a:hover,.download .main-download .install-steps .download-options .download-sbt ul li a:active,.download .main-download .install-steps .download-options .download-sbt ul li a:focus,.download .main-download .install-steps .download-options .download-sbt ul li a:hover{background:#F0F3F3;text-decoration:none}.download .main-download .install-steps .download-options .download-intellij ul li a .fa,.download .main-download .install-steps .download-options .download-sbt ul li a .fa{margin-right:8px}.download .description{position:absolute;left:-130px;top:60px;z-index:40;color:#DC322F;width:280px;font-family:'Kalam', cursive}.download .description img{width:92px;height:165px;margin-bottom:24px}@media (max-width: 1130px){.download .description{display:none}}.download .download-intellij{padding-right:10px;position:relative}.download .download-intellij .or{font-size:1.15rem;position:absolute;right:-22px;top:10px;z-index:100}@media (max-width: 992px){.download .download-intellij .or{display:none}}.download .download-sbt{padding-left:10px}.download .download-sbt .description{top:60px;left:auto;right:-120px;text-align:right}.download .bottom-lead{margin-top:165px}@media (max-width: 992px){.download .bottom-lead{margin-top:20px}}.button{padding:8px 18px;font-size:.875rem;font-weight:700;text-transform:uppercase;color:#fff;background:#859900;border-radius:3px;display:inline-block}.button:active,.button:focus,.button:hover{text-decoration:none;color:#fff;background:#DC322F}.call-to-action{text-align:center;margin-top:40px}.call-to-action.action-medium{margin-top:30px}.call-to-action.action-small{margin-top:20px}.call-to-action p{font-size:.875rem;color:rgba(255,255,255,0.7)}.call-to-action p.align-top{margin-bottom:12px}.call-to-action p.align-bottom{margin-top:12px}.call-to-action p a{text-decoration:underline;color:rgba(255,255,255,0.7)}.call-to-action p a:active,.call-to-action p a:focus,.call-to-action p a:hover{color:#fff}.unslider ul li{padding:0 1px}.unslider .unslider-arrow{display:none}.unslider .unslider-nav{margin-top:10px}@media (max-width: 992px){.unslider .unslider-nav{margin-top:10px}}.unslider .unslider-nav ol li{width:7px;height:7px;border:none;background:rgba(255,255,255,0.3)}.unslider .unslider-nav ol li.unslider-active{pointer-events:none;background:#fff}.heading-line{margin-bottom:40px;text-align:center}.heading-line h2{color:#fff;position:relative;font-size:1.375rem;font-weight:700}.heading-line h2 span{padding:0 30px;position:relative;background:#073642;z-index:5}.heading-line h2:before{content:"";display:block;height:1px;position:absolute;top:50%;width:100%;background:rgba(255,255,255,0.14)}.heading-line .sub-heading{font-size:.875rem;color:rgba(255,255,255,0.7);font-style:italic}.heading-line .lead{font-size:1.063rem;color:rgba(255,255,255,0.7);margin-top:10px;float:left;display:block;margin-right:2.35765%;width:65.88078%;margin-left:17.05961%}.heading-line .lead:last-child{margin-right:0}@media (max-width: 768px){.heading-line .lead{float:left;display:block;margin-right:2.35765%;width:100%;margin-left:0%}.heading-line .lead:last-child{margin-right:0}}.card{padding:18px;border-radius:3px;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;-webkit-box-direction:normal;-moz-box-direction:normal;box-direction:normal;-webkit-flex-direction:row;-moz-flex-direction:row;flex-direction:row;-ms-flex-direction:row;background:#15414C;transition:all 350ms ease;margin-bottom:14px}.card:hover{background:#073642}.card img{width:28px;height:28px;border-radius:2px}.card .card-text{margin-left:14px}.card .card-text h4{font-family:"Lato",sans-serif;font-size:1.063rem;color:#fff}.card .card-text ul li{color:rgba(255,255,255,0.7);display:inline-block}.card .card-text ul li.online-courses-price,.card .card-text ul li.event-location{font-size:.75rem;text-transform:uppercase}.card .card-text ul li.online-courses-date,.card .card-text ul li.date-event{font-size:.875rem}.card .card-text ul li.dot{color:rgba(255,255,255,0.4)}.card:active,.card:focus,.card:hover{text-decoration:none}.calendar{width:28px;height:32px;background:#fff;border-radius:2px;overflow:hidden}.calendar span{display:block;font-size:10px;font-weight:700;text-align:center}.calendar span:first-child{background:#DC322F;color:#fff}a .calendar span:last-child{color:#073642;font-size:12px;margin-top:-1px}.tooltip{display:none;position:absolute;background-color:rgba(0,43,54,0.95);border-radius:3px;padding:5px 12px;color:#fff;font-size:.875rem}.code-element{margin-bottom:20px}.code-element pre{margin-top:0}.code-element code{padding:20px}.code-element .bar-code{background:#B4BBBD;text-align:center;padding:2px 0;font-size:.875rem;font-weight:700;min-height:26px;border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;-ms-border-radius:3px 3px 0 0;-o-border-radius:3px 3px 0 0}.code-element .hljs{background:rgba(0,43,54,0.8)}.pagination{margin-top:30px;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-ms-flex-pack:center}.pagination .pagination-item a{display:block;padding:3px 10px;background:#5CC6E4;color:#fff;margin-right:2px;border-radius:2px}.pagination .pagination-item a:active,.pagination .pagination-item a:focus,.pagination .pagination-item a:hover{text-decoration:none;background:#23aad1}.pagination .pagination-item a.active{background:#fff;color:#899295;pointer-events:none}.nav-tab{border-bottom:1px solid #E5EAEA;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-o-justify-content:flex-start;justify-content:flex-start;-ms-flex-pack:start;margin-bottom:10px}.nav-tab .item-tab a{color:#899295;display:block;padding:0 20px 10px;margin-bottom:-1px}.nav-tab .item-tab a:active,.nav-tab .item-tab a:focus,.nav-tab .item-tab a:hover{text-decoration:none;color:#4A5659}.nav-tab .item-tab a.active{border-bottom:2px solid #DC322F;color:#DC322F;pointer-events:none}@media (max-width: 480px){.nav-tab{-webkit-box-pack:justify;-moz-box-pack:justify;box-pack:justify;-webkit-justify-content:space-between;-moz-justify-content:space-between;-ms-justify-content:space-between;-o-justify-content:space-between;justify-content:space-between;-ms-flex-pack:justify}.nav-tab .item-tab a{padding:0 10px 10px;font-size:.9375rem}}.tag-list{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-o-justify-content:flex-start;justify-content:flex-start;-ms-flex-pack:start;flex-wrap:wrap;padding-left:0}.tag-list .tag-item{font-size:0.6875rem;background:#F0F3F3;padding:2px 10px;text-transform:uppercase;color:#899295;margin-right:8px;margin-bottom:8px;list-style:none}.search-container{position:relative}.search-container .icon-search{position:absolute;left:14px;top:4px;z-index:30}.search-container input{padding:8px 18px 8px 40px;appearance:none;font-size:16px;border-radius:3px;width:100%;box-sizing:border-box}.search-container input:focus{outline:none;background:rgba(255,255,255,0.9);-webkit-box-shadow:rgba(0,43,54,0.04) 0 2px 1px;-moz-box-shadow:rgba(0,43,54,0.04) 0 2px 1px;box-shadow:rgba(0,43,54,0.04) 0 2px 1px;border-radius:0}.search-container .result-container{position:absolute;display:none;width:100%;left:0;top:38px;background:#fff;-webkit-box-shadow:rgba(0,43,54,0.2) 0 2px 8px;-moz-box-shadow:rgba(0,43,54,0.2) 0 2px 8px;box-shadow:rgba(0,43,54,0.2) 0 2px 8px;padding:10px}.search-container .result-container li{border-bottom:1px solid #E5EAEA}.search-container .result-container li a{display:block;padding:4px 16px}.search-container .result-container li:last-child{border-bottom:none} diff --git a/resources/css/style.scss b/resources/css/style.scss new file mode 100755 index 000000000..431f712fb --- /dev/null +++ b/resources/css/style.scss @@ -0,0 +1,75 @@ +--- +# Front matter comment to ensure Jekyll properly reads file. +--- + +// VENDORS +//------------------------------------------------ +@import 'vendors/bourbon/bourbon'; +@import 'vendors/neat/neat'; +@import 'vendors/unslider/unslider'; + +// UTILS +//------------------------------------------------ +@import 'utils/variables'; +@import 'utils/mixins'; + +// BASE +//------------------------------------------------ +@import 'base/body'; +@import 'base/form'; +@import 'base/helper'; +@import 'base/lists'; +@import 'base/media'; +@import 'base/typography'; + +// LAYOUT +//------------------------------------------------ + +// Home +@import 'layout/header'; +@import 'layout/inner-text'; +@import 'layout/scala-main-resources'; +@import 'layout/site-main'; +@import 'layout/navigation'; +@import 'layout/twitter-feed'; +@import 'layout/ides'; +@import 'layout/nutshell'; +@import 'layout/courses'; +@import 'layout/upcoming-events'; +@import 'layout/scala-ecosystem'; +@import 'layout/new-blog'; +@import 'layout/talk-to-us'; +@import 'layout/maintenance'; +@import 'layout/footer'; +@import 'layout/marker'; +@import 'layout/runs'; +@import 'layout/run-scala'; +@import 'layout/scaladex'; + +// Inner Page +@import 'layout/inner-main'; +@import 'layout/title-page'; +@import 'layout/type-md'; +@import 'layout/table-of-content'; +@import 'layout/tools'; +@import 'layout/books'; +@import 'layout/training-events'; +@import 'layout/blog'; +@import 'layout/download'; + + +// COMPONENTS +//------------------------------------------------ +//------------------------------------------------ +@import 'components/buttons'; +@import 'components/call-to-action'; +@import 'components/slider'; +@import 'components/heading-line'; +@import 'components/card'; +@import 'components/calendar'; +@import 'components/tooltip'; +@import 'components/code'; +@import 'components/pagination'; +@import 'components/tab'; +@import 'components/tag'; +@import 'components/search';