diff --git a/.gitignore b/.gitignore index bf3c8f602..eda88ae1f 100644 --- a/.gitignore +++ b/.gitignore @@ -26,10 +26,6 @@ Resources/public/stylesheets/sass Resources/.sass-cache/ Resources/bower_components/ Resources/node_modules/ -Resources/public/sass/* -!Resources/public/sass/_custom.scss -!Resources/public/sass/_timeline.scss -!Resources/public/sass/custom/ /nbproject/private/ diff --git a/Resources/public/sass/config/_buttons.scss b/Resources/public/sass/config/_buttons.scss new file mode 100644 index 000000000..00b61968c --- /dev/null +++ b/Resources/public/sass/config/_buttons.scss @@ -0,0 +1,7 @@ +// Buttons +$button-font-size : 15px !default; +$button-text-color : #000 !default; +$button-text-weight : 300 !default; +$button-padding : 8px 12px !default; +$button-background : #eee !default; +$button-margin : 5px !default; \ No newline at end of file diff --git a/Resources/public/sass/config/_colors.scss b/Resources/public/sass/config/_colors.scss new file mode 100644 index 000000000..9c200db0f --- /dev/null +++ b/Resources/public/sass/config/_colors.scss @@ -0,0 +1,64 @@ +// BODY +$body-background : #fff !default; + +// PLAIN TEXT +$text-color : #555 !default; + +// HEADINGS +$headings-color : #404040 !default; + +// LINKS +$link-color : #6998C9 !default; +$link-visited-color : #808080 !default; +$link-active-color : shade(red,5%) !default; +$link-hover-color : #007ED5 !default; +$link-focus-color : $link-color !default; + +$white : #fff !default; +$black : #000 !default; +$orange : #FF622C !default; +$red : #C83D3D !default; +$green : #27806f !default; +$blue : #2980b9 !default; +$yellow : #FFC82C !default; + +$light-blue : #4995C7; +$llight-blue : #72B0D9; +$dark-blue : #096EB0 !default; +$ddark-blue : #07507F !default; + +$light-green : #419484 !default; +$llight-green : #6CB3A5 !default; + +$warning-bg : $orange !default; +$caution-bg : $red !default; +$error-bg : $red !default; +$success-bg : $green !default; +$info-bg : $blue !default; + +$grey-95 : lighten($black, 5%) !default; +$grey-90 : lighten($black, 10%) !default; +$grey-85 : lighten($black, 15%) !default; +$grey-80 : lighten($black, 20%) !default; +$grey-75 : lighten($black, 25%) !default; +$grey-70 : lighten($black, 30%) !default; +$grey-65 : lighten($black, 35%) !default; +$grey-60 : lighten($black, 40%) !default; +$grey-55 : lighten($black, 45%) !default; +$grey-50 : lighten($black, 50%) !default; +$grey-45 : lighten($black, 55%) !default; +$grey-40 : lighten($black, 60%) !default; +$grey-35 : lighten($black, 65%) !default; +$grey-30 : lighten($black, 70%) !default; +$grey-25 : lighten($black, 75%) !default; +$grey-20 : lighten($black, 80%) !default; +$grey-15 : lighten($black, 85%) !default; +$grey-10 : lighten($black, 90%) !default; +$grey-5 : lighten($black, 95%) !default; + + +$dark-grey: $grey-80; //#333; +$medium-grey: $grey-50; //#999; +$light-grey: $grey-20; //#DDD; + +@import "../custom/config/colors"; \ No newline at end of file diff --git a/Resources/public/sass/config/_variables.scss b/Resources/public/sass/config/_variables.scss new file mode 100644 index 000000000..09840d957 --- /dev/null +++ b/Resources/public/sass/config/_variables.scss @@ -0,0 +1,115 @@ +// Typography +//$sans-serif: $helvetica; +//$serif: $georgia; +//$base-font-family: $sans-serif; +//$header-font-family: $base-font-family; + +// Font Sizes +$base-font-size: 1em; +$h1-font-size: $base-font-size * 2.25; +$h2-font-size: $base-font-size * 2; +$h3-font-size: $base-font-size * 1.75; +$h4-font-size: $base-font-size * 1.5; +$h5-font-size: $base-font-size * 1.25; +$h6-font-size: $base-font-size; + +// Line height +$base-line-height: 1.5; +$header-line-height: 1.25; + +// Other Sizes +$base-border-radius: 3px; +$base-spacing: $base-line-height * 1em; +$base-z-index: 0; + +// Background Color +$base-background-color: white; + +// Font Colors +$base-font-color: $dark-grey; +$base-accent-color: $blue; + +// Link Colors +$base-link-color: $base-accent-color; +$hover-link-color: darken($base-accent-color, 15); +$base-button-color: $base-link-color; +$hover-button-color: $hover-link-color; + +/* +// Flash Colors +$alert-color: $light-yellow; +$error-color: $light-red; +$notice-color: lighten($base-accent-color, 40); +$success-color: $light-green; +*/ + +// Border color +$base-border-color: $light-grey; +$base-border: 1px solid $base-border-color; + +// Footer +$footer-background: $grey-50;//-blue;// desaturate(darken($base-accent-color, 20), 30); +$footer-color: white; +$footer-link-color: transparentize($footer-color, .6); +$footer-disclaimer-color: transparentize($footer-color, .6); +$footer-vertical-padding: 0; + +// Forms +$form-border-size: 1px; +$form-border-color: $base-border-color; +$form-border-color-hover: darken($base-border-color, 10); +$form-border-color-focus: $base-accent-color; +$form-border-radius: $base-border-radius; +$form-box-shadow: inset 0 1px 3px rgba(black,0.06); +$form-box-shadow-focus: $form-box-shadow, 0 0 5px rgba(darken($form-border-color-focus, 5), 0.7); +$form-font-size: $base-font-size; +//$form-font-family: $base-font-family; + +// Navigation +$navigation-background: $dark-grey; +$navigation-color: transparentize(white, 0.3); +$navigation-color-hover: white; +$navigation-height: 60px; +$navigation-active-link-color: transparentize(white, 0.5); +$navigation-submenu-padding: 1em; +$navigation-submenu-width: 12em; +$navigation-border-radius: $base-border-radius; +$navigation-first-padding-top: 1em; +$navigation-last-padding-bottom: 0.7em; +$navigation-more-pin: '\25BE'; +$navigation-more-pin-color: $navigation-color; +$navigation-ul-submenu-top: 1.5em; +$navigation-ul-submenu-padding-left: 0; +$navigation-search-padding: .85em .6em; +$navigation-border-bottom: 1px solid darken($navigation-background, 10); + +//Table +$table-width: 100%; + +$table-head-bg-color: $orange; +$table-head-td-border: unset; +$table-head-td-text-align: center; +$table-head-td-padding: 0.3em; +$table-head-text-color: $white; + +$table-body-tr-bg-color-even: $grey-5; +$table-body-tr-bg-color-odd: unset; +$table-body-td-border: unset; +$table-body-td-text-align: left; +$table-body-td-padding: 0.3em; +$table-body-text-color: unset; + +//Tabs +$tabs-nav-margin-bottom: none; +$tabs-nav-title-bg-color: $blue; +$tabs-nav-title-text-color: $white; +$tabs-nav-title-padding: 0.5em 0.5em 0.5em 1em; +$tabs-nav-bg-color: none; +$tabs-nav-text-color: inherit; +$tabs-new-border: 3px solid transparent; +$tabs-nav-hover-border: 3px solid $orange; +$tabs-nav-hover-text-color: inherit; +$tabs-nav-font-family: unset; +$tabs-nav-padding: 0.5em 0.5em 0.5em 1.5em; + +@import "../custom/config/variables"; \ No newline at end of file diff --git a/Resources/public/sass/contrib/bourbon/_bourbon-deprecated-upcoming.scss b/Resources/public/sass/contrib/bourbon/_bourbon-deprecated-upcoming.scss new file mode 100644 index 000000000..e6d1b8cec --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/_bourbon.scss b/Resources/public/sass/contrib/bourbon/_bourbon.scss new file mode 100644 index 000000000..509fcc10e --- /dev/null +++ b/Resources/public/sass/contrib/bourbon/_bourbon.scss @@ -0,0 +1,87 @@ +// Bourbon 4.2.6 +// 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/Resources/public/sass/contrib/bourbon/addons/_border-color.scss b/Resources/public/sass/contrib/bourbon/addons/_border-color.scss new file mode 100644 index 000000000..6f6ab36c4 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_border-radius.scss b/Resources/public/sass/contrib/bourbon/addons/_border-radius.scss new file mode 100644 index 000000000..1f6586335 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_border-style.scss b/Resources/public/sass/contrib/bourbon/addons/_border-style.scss new file mode 100644 index 000000000..d86ee79d9 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_border-width.scss b/Resources/public/sass/contrib/bourbon/addons/_border-width.scss new file mode 100644 index 000000000..0ea2d4b71 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_buttons.scss b/Resources/public/sass/contrib/bourbon/addons/_buttons.scss new file mode 100644 index 000000000..debeabc53 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_clearfix.scss b/Resources/public/sass/contrib/bourbon/addons/_clearfix.scss new file mode 100644 index 000000000..11313d66f --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_ellipsis.scss b/Resources/public/sass/contrib/bourbon/addons/_ellipsis.scss new file mode 100644 index 000000000..a367f651c --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_font-stacks.scss b/Resources/public/sass/contrib/bourbon/addons/_font-stacks.scss new file mode 100644 index 000000000..57128f422 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_hide-text.scss b/Resources/public/sass/contrib/bourbon/addons/_hide-text.scss new file mode 100644 index 000000000..4caf20ed5 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_margin.scss b/Resources/public/sass/contrib/bourbon/addons/_margin.scss new file mode 100644 index 000000000..674f4e5f6 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_padding.scss b/Resources/public/sass/contrib/bourbon/addons/_padding.scss new file mode 100644 index 000000000..40a5f006b --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_position.scss b/Resources/public/sass/contrib/bourbon/addons/_position.scss new file mode 100644 index 000000000..e460f3ffd --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_prefixer.scss b/Resources/public/sass/contrib/bourbon/addons/_prefixer.scss new file mode 100644 index 000000000..2b6f73138 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_retina-image.scss b/Resources/public/sass/contrib/bourbon/addons/_retina-image.scss new file mode 100644 index 000000000..7febbd751 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_size.scss b/Resources/public/sass/contrib/bourbon/addons/_size.scss new file mode 100644 index 000000000..a2992a34c --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_text-inputs.scss b/Resources/public/sass/contrib/bourbon/addons/_text-inputs.scss new file mode 100644 index 000000000..1eb7a5451 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_timing-functions.scss b/Resources/public/sass/contrib/bourbon/addons/_timing-functions.scss new file mode 100644 index 000000000..20e5f1d40 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_triangle.scss b/Resources/public/sass/contrib/bourbon/addons/_triangle.scss new file mode 100644 index 000000000..8a1ed9cd0 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/addons/_word-wrap.scss b/Resources/public/sass/contrib/bourbon/addons/_word-wrap.scss new file mode 100644 index 000000000..64856a925 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_animation.scss b/Resources/public/sass/contrib/bourbon/css3/_animation.scss new file mode 100644 index 000000000..aac675f5a --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_appearance.scss b/Resources/public/sass/contrib/bourbon/css3/_appearance.scss new file mode 100644 index 000000000..abddc0204 --- /dev/null +++ b/Resources/public/sass/contrib/bourbon/css3/_appearance.scss @@ -0,0 +1,3 @@ +@mixin appearance($value) { + @include prefixer(appearance, $value, webkit moz ms o spec); +} diff --git a/Resources/public/sass/contrib/bourbon/css3/_backface-visibility.scss b/Resources/public/sass/contrib/bourbon/css3/_backface-visibility.scss new file mode 100644 index 000000000..fc68e2dd0 --- /dev/null +++ b/Resources/public/sass/contrib/bourbon/css3/_backface-visibility.scss @@ -0,0 +1,3 @@ +@mixin backface-visibility($visibility) { + @include prefixer(backface-visibility, $visibility, webkit spec); +} diff --git a/Resources/public/sass/contrib/bourbon/css3/_background-image.scss b/Resources/public/sass/contrib/bourbon/css3/_background-image.scss new file mode 100644 index 000000000..6ed19ab58 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_background.scss b/Resources/public/sass/contrib/bourbon/css3/_background.scss new file mode 100644 index 000000000..019db0ed3 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_border-image.scss b/Resources/public/sass/contrib/bourbon/css3/_border-image.scss new file mode 100644 index 000000000..cf568ce6d --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_calc.scss b/Resources/public/sass/contrib/bourbon/css3/_calc.scss new file mode 100644 index 000000000..0bfc738dd --- /dev/null +++ b/Resources/public/sass/contrib/bourbon/css3/_calc.scss @@ -0,0 +1,4 @@ +@mixin calc($property, $value) { + #{$property}: -webkit-calc(#{$value}); + #{$property}: calc(#{$value}); +} diff --git a/Resources/public/sass/contrib/bourbon/css3/_columns.scss b/Resources/public/sass/contrib/bourbon/css3/_columns.scss new file mode 100644 index 000000000..96117670c --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_filter.scss b/Resources/public/sass/contrib/bourbon/css3/_filter.scss new file mode 100644 index 000000000..b8f8ffb0e --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_placeholder.scss b/Resources/public/sass/contrib/bourbon/css3/_placeholder.scss new file mode 100644 index 000000000..5682fd097 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_radial-gradient.scss b/Resources/public/sass/contrib/bourbon/css3/_radial-gradient.scss new file mode 100644 index 000000000..8da076e28 --- /dev/null +++ b/Resources/public/sass/contrib/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(unquote(#{$pos}#{$shape-size}#{$full})); + background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})"); +} diff --git a/Resources/public/sass/contrib/bourbon/css3/_selection.scss b/Resources/public/sass/contrib/bourbon/css3/_selection.scss new file mode 100644 index 000000000..cd71d4f53 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_text-decoration.scss b/Resources/public/sass/contrib/bourbon/css3/_text-decoration.scss new file mode 100644 index 000000000..9222746ce --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_transform.scss b/Resources/public/sass/contrib/bourbon/css3/_transform.scss new file mode 100644 index 000000000..8ee6509ff --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_transition.scss b/Resources/public/sass/contrib/bourbon/css3/_transition.scss new file mode 100644 index 000000000..3c785ed52 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/css3/_user-select.scss b/Resources/public/sass/contrib/bourbon/css3/_user-select.scss new file mode 100644 index 000000000..d4e555100 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_assign-inputs.scss b/Resources/public/sass/contrib/bourbon/functions/_assign-inputs.scss new file mode 100644 index 000000000..f8aba9678 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_contains-falsy.scss b/Resources/public/sass/contrib/bourbon/functions/_contains-falsy.scss new file mode 100644 index 000000000..c096fdb92 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_contains.scss b/Resources/public/sass/contrib/bourbon/functions/_contains.scss new file mode 100644 index 000000000..3dec27db8 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_is-length.scss b/Resources/public/sass/contrib/bourbon/functions/_is-length.scss new file mode 100644 index 000000000..5826e789b --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_is-light.scss b/Resources/public/sass/contrib/bourbon/functions/_is-light.scss new file mode 100644 index 000000000..92d90ac3c --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_is-number.scss b/Resources/public/sass/contrib/bourbon/functions/_is-number.scss new file mode 100644 index 000000000..a64e0bf21 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_is-size.scss b/Resources/public/sass/contrib/bourbon/functions/_is-size.scss new file mode 100644 index 000000000..661789ab4 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_modular-scale.scss b/Resources/public/sass/contrib/bourbon/functions/_modular-scale.scss new file mode 100644 index 000000000..20fa38812 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_px-to-em.scss b/Resources/public/sass/contrib/bourbon/functions/_px-to-em.scss new file mode 100644 index 000000000..ae81a44ad --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_px-to-rem.scss b/Resources/public/sass/contrib/bourbon/functions/_px-to-rem.scss new file mode 100644 index 000000000..0ac941e76 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_shade.scss b/Resources/public/sass/contrib/bourbon/functions/_shade.scss new file mode 100644 index 000000000..8aaf2c6d2 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_strip-units.scss b/Resources/public/sass/contrib/bourbon/functions/_strip-units.scss new file mode 100644 index 000000000..6c5f3e810 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_tint.scss b/Resources/public/sass/contrib/bourbon/functions/_tint.scss new file mode 100644 index 000000000..2e3381488 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_transition-property-name.scss b/Resources/public/sass/contrib/bourbon/functions/_transition-property-name.scss new file mode 100644 index 000000000..18348b93a --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/functions/_unpack.scss b/Resources/public/sass/contrib/bourbon/functions/_unpack.scss new file mode 100644 index 000000000..4367935d5 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_convert-units.scss b/Resources/public/sass/contrib/bourbon/helpers/_convert-units.scss new file mode 100644 index 000000000..e0a65a05c --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_directional-values.scss b/Resources/public/sass/contrib/bourbon/helpers/_directional-values.scss new file mode 100644 index 000000000..6ee538db4 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_font-source-declaration.scss b/Resources/public/sass/contrib/bourbon/helpers/_font-source-declaration.scss new file mode 100644 index 000000000..7f17586c9 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_gradient-positions-parser.scss b/Resources/public/sass/contrib/bourbon/helpers/_gradient-positions-parser.scss new file mode 100644 index 000000000..07d30b6cf --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_linear-angle-parser.scss b/Resources/public/sass/contrib/bourbon/helpers/_linear-angle-parser.scss new file mode 100644 index 000000000..e0401ed8d --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_linear-gradient-parser.scss b/Resources/public/sass/contrib/bourbon/helpers/_linear-gradient-parser.scss new file mode 100644 index 000000000..48a8f77f9 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_linear-positions-parser.scss b/Resources/public/sass/contrib/bourbon/helpers/_linear-positions-parser.scss new file mode 100644 index 000000000..96d6a6d45 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_linear-side-corner-parser.scss b/Resources/public/sass/contrib/bourbon/helpers/_linear-side-corner-parser.scss new file mode 100644 index 000000000..7a691253d --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_radial-arg-parser.scss b/Resources/public/sass/contrib/bourbon/helpers/_radial-arg-parser.scss new file mode 100644 index 000000000..56c6030b7 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_radial-gradient-parser.scss b/Resources/public/sass/contrib/bourbon/helpers/_radial-gradient-parser.scss new file mode 100644 index 000000000..5444d8085 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_radial-positions-parser.scss b/Resources/public/sass/contrib/bourbon/helpers/_radial-positions-parser.scss new file mode 100644 index 000000000..3c552ad79 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_render-gradients.scss b/Resources/public/sass/contrib/bourbon/helpers/_render-gradients.scss new file mode 100644 index 000000000..576567683 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_shape-size-stripper.scss b/Resources/public/sass/contrib/bourbon/helpers/_shape-size-stripper.scss new file mode 100644 index 000000000..ee5eda422 --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/helpers/_str-to-num.scss b/Resources/public/sass/contrib/bourbon/helpers/_str-to-num.scss new file mode 100644 index 000000000..3ef1d873b --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/settings/_asset-pipeline.scss b/Resources/public/sass/contrib/bourbon/settings/_asset-pipeline.scss new file mode 100644 index 000000000..4c6afc5bb --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/settings/_prefixer.scss b/Resources/public/sass/contrib/bourbon/settings/_prefixer.scss new file mode 100644 index 000000000..8c390514d --- /dev/null +++ b/Resources/public/sass/contrib/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/Resources/public/sass/contrib/bourbon/settings/_px-to-em.scss b/Resources/public/sass/contrib/bourbon/settings/_px-to-em.scss new file mode 100644 index 000000000..f2f9a3e8d --- /dev/null +++ b/Resources/public/sass/contrib/bourbon/settings/_px-to-em.scss @@ -0,0 +1 @@ +$em-base: 16px !default; diff --git a/Resources/public/sass/contrib/fontawesome/_animated.scss b/Resources/public/sass/contrib/fontawesome/_animated.scss new file mode 100644 index 000000000..8a020dbff --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/Resources/public/sass/contrib/fontawesome/_bordered-pulled.scss b/Resources/public/sass/contrib/fontawesome/_bordered-pulled.scss new file mode 100644 index 000000000..d4b85a02f --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_bordered-pulled.scss @@ -0,0 +1,25 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em $fa-border-color; + border-radius: .1em; +} + +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { float: right; } +.pull-left { float: left; } + +.#{$fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/Resources/public/sass/contrib/fontawesome/_core.scss b/Resources/public/sass/contrib/fontawesome/_core.scss new file mode 100644 index 000000000..7425ef85f --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_core.scss @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix} { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} diff --git a/Resources/public/sass/contrib/fontawesome/_fixed-width.scss b/Resources/public/sass/contrib/fontawesome/_fixed-width.scss new file mode 100644 index 000000000..b221c9813 --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/Resources/public/sass/contrib/fontawesome/_icons.scss b/Resources/public/sass/contrib/fontawesome/_icons.scss new file mode 100644 index 000000000..6f9375989 --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_icons.scss @@ -0,0 +1,697 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } +.#{$fa-css-prefix}-music:before { content: $fa-var-music; } +.#{$fa-css-prefix}-search:before { content: $fa-var-search; } +.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } +.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } +.#{$fa-css-prefix}-star:before { content: $fa-var-star; } +.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } +.#{$fa-css-prefix}-user:before { content: $fa-var-user; } +.#{$fa-css-prefix}-film:before { content: $fa-var-film; } +.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } +.#{$fa-css-prefix}-th:before { content: $fa-var-th; } +.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } +.#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-remove:before, +.#{$fa-css-prefix}-close:before, +.#{$fa-css-prefix}-times:before { content: $fa-var-times; } +.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } +.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } +.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } +.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } +.#{$fa-css-prefix}-gear:before, +.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } +.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } +.#{$fa-css-prefix}-home:before { content: $fa-var-home; } +.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } +.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } +.#{$fa-css-prefix}-road:before { content: $fa-var-road; } +.#{$fa-css-prefix}-download:before { content: $fa-var-download; } +.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } +.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } +.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } +.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } +.#{$fa-css-prefix}-rotate-right:before, +.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } +.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } +.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } +.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } +.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } +.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } +.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } +.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } +.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } +.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } +.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } +.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } +.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } +.#{$fa-css-prefix}-book:before { content: $fa-var-book; } +.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } +.#{$fa-css-prefix}-print:before { content: $fa-var-print; } +.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } +.#{$fa-css-prefix}-font:before { content: $fa-var-font; } +.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } +.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } +.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } +.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } +.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } +.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } +.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } +.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } +.#{$fa-css-prefix}-list:before { content: $fa-var-list; } +.#{$fa-css-prefix}-dedent:before, +.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } +.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } +.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } +.#{$fa-css-prefix}-photo:before, +.#{$fa-css-prefix}-image:before, +.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } +.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } +.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } +.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } +.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } +.#{$fa-css-prefix}-edit:before, +.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } +.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } +.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } +.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } +.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } +.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } +.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } +.#{$fa-css-prefix}-play:before { content: $fa-var-play; } +.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } +.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } +.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } +.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } +.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } +.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } +.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } +.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } +.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } +.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } +.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } +.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } +.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } +.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } +.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } +.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } +.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } +.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } +.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } +.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } +.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } +.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } +.#{$fa-css-prefix}-mail-forward:before, +.#{$fa-css-prefix}-share:before { content: $fa-var-share; } +.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } +.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } +.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } +.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } +.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } +.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } +.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } +.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } +.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } +.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } +.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } +.#{$fa-css-prefix}-warning:before, +.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } +.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } +.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } +.#{$fa-css-prefix}-random:before { content: $fa-var-random; } +.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } +.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } +.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } +.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } +.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } +.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } +.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } +.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } +.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } +.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } +.#{$fa-css-prefix}-bar-chart-o:before, +.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } +.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } +.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } +.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } +.#{$fa-css-prefix}-key:before { content: $fa-var-key; } +.#{$fa-css-prefix}-gears:before, +.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } +.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } +.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } +.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } +.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } +.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } +.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } +.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } +.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } +.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } +.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } +.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } +.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } +.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } +.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } +.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } +.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } +.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } +.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } +.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook-f:before, +.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } +.#{$fa-css-prefix}-github:before { content: $fa-var-github; } +.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } +.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, +.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } +.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } +.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } +.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } +.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } +.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } +.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } +.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } +.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } +.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } +.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } +.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } +.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } +.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } +.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } +.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } +.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } +.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } +.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } +.#{$fa-css-prefix}-group:before, +.#{$fa-css-prefix}-users:before { content: $fa-var-users; } +.#{$fa-css-prefix}-chain:before, +.#{$fa-css-prefix}-link:before { content: $fa-var-link; } +.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } +.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } +.#{$fa-css-prefix}-cut:before, +.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } +.#{$fa-css-prefix}-copy:before, +.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } +.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } +.#{$fa-css-prefix}-save:before, +.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } +.#{$fa-css-prefix}-square:before { content: $fa-var-square; } +.#{$fa-css-prefix}-navicon:before, +.#{$fa-css-prefix}-reorder:before, +.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } +.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } +.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } +.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } +.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } +.#{$fa-css-prefix}-table:before { content: $fa-var-table; } +.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } +.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } +.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } +.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } +.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } +.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } +.#{$fa-css-prefix}-money:before { content: $fa-var-money; } +.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } +.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } +.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } +.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } +.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } +.#{$fa-css-prefix}-unsorted:before, +.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } +.#{$fa-css-prefix}-sort-down:before, +.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } +.#{$fa-css-prefix}-sort-up:before, +.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } +.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } +.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } +.#{$fa-css-prefix}-rotate-left:before, +.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } +.#{$fa-css-prefix}-legal:before, +.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } +.#{$fa-css-prefix}-dashboard:before, +.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } +.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } +.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } +.#{$fa-css-prefix}-flash:before, +.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } +.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } +.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } +.#{$fa-css-prefix}-paste:before, +.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } +.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } +.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } +.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } +.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } +.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } +.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } +.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } +.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } +.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } +.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } +.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } +.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } +.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } +.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } +.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } +.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } +.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } +.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } +.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } +.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } +.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } +.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } +.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } +.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } +.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } +.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } +.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } +.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } +.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } +.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } +.#{$fa-css-prefix}-mobile-phone:before, +.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } +.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } +.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } +.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } +.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } +.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } +.#{$fa-css-prefix}-mail-reply:before, +.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } +.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } +.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } +.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } +.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } +.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } +.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } +.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } +.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } +.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } +.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } +.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } +.#{$fa-css-prefix}-code:before { content: $fa-var-code; } +.#{$fa-css-prefix}-mail-reply-all:before, +.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } +.#{$fa-css-prefix}-star-half-empty:before, +.#{$fa-css-prefix}-star-half-full:before, +.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } +.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } +.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } +.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } +.#{$fa-css-prefix}-unlink:before, +.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } +.#{$fa-css-prefix}-question:before { content: $fa-var-question; } +.#{$fa-css-prefix}-info:before { content: $fa-var-info; } +.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } +.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } +.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } +.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } +.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } +.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } +.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } +.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } +.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } +.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } +.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } +.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } +.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } +.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } +.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } +.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } +.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } +.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } +.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } +.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } +.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } +.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } +.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } +.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } +.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } +.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } +.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } +.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } +.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } +.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } +.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } +.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } +.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } +.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } +.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } +.#{$fa-css-prefix}-toggle-down:before, +.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } +.#{$fa-css-prefix}-toggle-up:before, +.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } +.#{$fa-css-prefix}-toggle-right:before, +.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } +.#{$fa-css-prefix}-euro:before, +.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } +.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } +.#{$fa-css-prefix}-dollar:before, +.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } +.#{$fa-css-prefix}-rupee:before, +.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } +.#{$fa-css-prefix}-cny:before, +.#{$fa-css-prefix}-rmb:before, +.#{$fa-css-prefix}-yen:before, +.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } +.#{$fa-css-prefix}-ruble:before, +.#{$fa-css-prefix}-rouble:before, +.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } +.#{$fa-css-prefix}-won:before, +.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } +.#{$fa-css-prefix}-bitcoin:before, +.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } +.#{$fa-css-prefix}-file:before { content: $fa-var-file; } +.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } +.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } +.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } +.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } +.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } +.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } +.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } +.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } +.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } +.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } +.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } +.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } +.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } +.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } +.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } +.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } +.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } +.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } +.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } +.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } +.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } +.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } +.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } +.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } +.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } +.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } +.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } +.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } +.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } +.#{$fa-css-prefix}-android:before { content: $fa-var-android; } +.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } +.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } +.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } +.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } +.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } +.#{$fa-css-prefix}-female:before { content: $fa-var-female; } +.#{$fa-css-prefix}-male:before { content: $fa-var-male; } +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } +.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } +.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } +.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } +.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } +.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } +.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } +.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } +.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } +.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } +.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } +.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } +.#{$fa-css-prefix}-toggle-left:before, +.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } +.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } +.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } +.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } +.#{$fa-css-prefix}-turkish-lira:before, +.#{$fa-css-prefix}-try:before { content: $fa-var-try; } +.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } +.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } +.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } +.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } +.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } +.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } +.#{$fa-css-prefix}-institution:before, +.#{$fa-css-prefix}-bank:before, +.#{$fa-css-prefix}-university:before { content: $fa-var-university; } +.#{$fa-css-prefix}-mortar-board:before, +.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } +.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } +.#{$fa-css-prefix}-google:before { content: $fa-var-google; } +.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } +.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } +.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } +.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } +.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } +.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } +.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } +.#{$fa-css-prefix}-language:before { content: $fa-var-language; } +.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } +.#{$fa-css-prefix}-building:before { content: $fa-var-building; } +.#{$fa-css-prefix}-child:before { content: $fa-var-child; } +.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } +.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } +.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } +.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } +.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } +.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } +.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } +.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } +.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } +.#{$fa-css-prefix}-automobile:before, +.#{$fa-css-prefix}-car:before { content: $fa-var-car; } +.#{$fa-css-prefix}-cab:before, +.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } +.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } +.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } +.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } +.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } +.#{$fa-css-prefix}-database:before { content: $fa-var-database; } +.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } +.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } +.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } +.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } +.#{$fa-css-prefix}-file-photo-o:before, +.#{$fa-css-prefix}-file-picture-o:before, +.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } +.#{$fa-css-prefix}-file-zip-o:before, +.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } +.#{$fa-css-prefix}-file-sound-o:before, +.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } +.#{$fa-css-prefix}-file-movie-o:before, +.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } +.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } +.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } +.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } +.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } +.#{$fa-css-prefix}-life-bouy:before, +.#{$fa-css-prefix}-life-buoy:before, +.#{$fa-css-prefix}-life-saver:before, +.#{$fa-css-prefix}-support:before, +.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } +.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } +.#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } +.#{$fa-css-prefix}-ge:before, +.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } +.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } +.#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, +.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } +.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } +.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } +.#{$fa-css-prefix}-wechat:before, +.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } +.#{$fa-css-prefix}-send:before, +.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } +.#{$fa-css-prefix}-send-o:before, +.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } +.#{$fa-css-prefix}-history:before { content: $fa-var-history; } +.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } +.#{$fa-css-prefix}-header:before { content: $fa-var-header; } +.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } +.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } +.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } +.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } +.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } +.#{$fa-css-prefix}-soccer-ball-o:before, +.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } +.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } +.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } +.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } +.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } +.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } +.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } +.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } +.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } +.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } +.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } +.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } +.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } +.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } +.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } +.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } +.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } +.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } +.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } +.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } +.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } +.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } +.#{$fa-css-prefix}-at:before { content: $fa-var-at; } +.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } +.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } +.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } +.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } +.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } +.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } +.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } +.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } +.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } +.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } +.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } +.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } +.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } +.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } +.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } +.#{$fa-css-prefix}-shekel:before, +.#{$fa-css-prefix}-sheqel:before, +.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } +.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } +.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } +.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } +.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } +.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } +.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } +.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } +.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } +.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } +.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } +.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } +.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } +.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } +.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } +.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } +.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } +.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } +.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } +.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } +.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } +.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, +.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } +.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } +.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } +.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } +.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } +.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } +.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } +.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } +.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } +.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } +.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } +.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } +.#{$fa-css-prefix}-server:before { content: $fa-var-server; } +.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } +.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } +.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } +.#{$fa-css-prefix}-train:before { content: $fa-var-train; } +.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } +.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } +.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } diff --git a/Resources/public/sass/contrib/fontawesome/_larger.scss b/Resources/public/sass/contrib/fontawesome/_larger.scss new file mode 100644 index 000000000..41e9a8184 --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_larger.scss @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { font-size: 2em; } +.#{$fa-css-prefix}-3x { font-size: 3em; } +.#{$fa-css-prefix}-4x { font-size: 4em; } +.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/Resources/public/sass/contrib/fontawesome/_list.scss b/Resources/public/sass/contrib/fontawesome/_list.scss new file mode 100644 index 000000000..7d1e4d54d --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_list.scss @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.#{$fa-css-prefix}-li { + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } +} diff --git a/Resources/public/sass/contrib/fontawesome/_mixins.scss b/Resources/public/sass/contrib/fontawesome/_mixins.scss new file mode 100644 index 000000000..f96719b6a --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_mixins.scss @@ -0,0 +1,26 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +@mixin fa-icon-rotate($degrees, $rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} diff --git a/Resources/public/sass/contrib/fontawesome/_path.scss b/Resources/public/sass/contrib/fontawesome/_path.scss new file mode 100644 index 000000000..bb457c23a --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_path.scss @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); +// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/Resources/public/sass/contrib/fontawesome/_rotated-flipped.scss b/Resources/public/sass/contrib/fontawesome/_rotated-flipped.scss new file mode 100644 index 000000000..a3558fd09 --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_rotated-flipped.scss @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .#{$fa-css-prefix}-rotate-90, +:root .#{$fa-css-prefix}-rotate-180, +:root .#{$fa-css-prefix}-rotate-270, +:root .#{$fa-css-prefix}-flip-horizontal, +:root .#{$fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/Resources/public/sass/contrib/fontawesome/_stacked.scss b/Resources/public/sass/contrib/fontawesome/_stacked.scss new file mode 100644 index 000000000..aef740366 --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_stacked.scss @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { line-height: inherit; } +.#{$fa-css-prefix}-stack-2x { font-size: 2em; } +.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/Resources/public/sass/contrib/fontawesome/_variables.scss b/Resources/public/sass/contrib/fontawesome/_variables.scss new file mode 100644 index 000000000..0a471102c --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/_variables.scss @@ -0,0 +1,708 @@ +// Variables +// -------------------------- + +$fa-font-path: "../fonts" !default; +$fa-font-size-base: 14px !default; +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.5.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-css-prefix: fa !default; +$fa-version: "4.5.0" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; + +$fa-var-500px: "\f26e"; +$fa-var-adjust: "\f042"; +$fa-var-adn: "\f170"; +$fa-var-align-center: "\f037"; +$fa-var-align-justify: "\f039"; +$fa-var-align-left: "\f036"; +$fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; +$fa-var-ambulance: "\f0f9"; +$fa-var-anchor: "\f13d"; +$fa-var-android: "\f17b"; +$fa-var-angellist: "\f209"; +$fa-var-angle-double-down: "\f103"; +$fa-var-angle-double-left: "\f100"; +$fa-var-angle-double-right: "\f101"; +$fa-var-angle-double-up: "\f102"; +$fa-var-angle-down: "\f107"; +$fa-var-angle-left: "\f104"; +$fa-var-angle-right: "\f105"; +$fa-var-angle-up: "\f106"; +$fa-var-apple: "\f179"; +$fa-var-archive: "\f187"; +$fa-var-area-chart: "\f1fe"; +$fa-var-arrow-circle-down: "\f0ab"; +$fa-var-arrow-circle-left: "\f0a8"; +$fa-var-arrow-circle-o-down: "\f01a"; +$fa-var-arrow-circle-o-left: "\f190"; +$fa-var-arrow-circle-o-right: "\f18e"; +$fa-var-arrow-circle-o-up: "\f01b"; +$fa-var-arrow-circle-right: "\f0a9"; +$fa-var-arrow-circle-up: "\f0aa"; +$fa-var-arrow-down: "\f063"; +$fa-var-arrow-left: "\f060"; +$fa-var-arrow-right: "\f061"; +$fa-var-arrow-up: "\f062"; +$fa-var-arrows: "\f047"; +$fa-var-arrows-alt: "\f0b2"; +$fa-var-arrows-h: "\f07e"; +$fa-var-arrows-v: "\f07d"; +$fa-var-asterisk: "\f069"; +$fa-var-at: "\f1fa"; +$fa-var-automobile: "\f1b9"; +$fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; +$fa-var-ban: "\f05e"; +$fa-var-bank: "\f19c"; +$fa-var-bar-chart: "\f080"; +$fa-var-bar-chart-o: "\f080"; +$fa-var-barcode: "\f02a"; +$fa-var-bars: "\f0c9"; +$fa-var-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; +$fa-var-bed: "\f236"; +$fa-var-beer: "\f0fc"; +$fa-var-behance: "\f1b4"; +$fa-var-behance-square: "\f1b5"; +$fa-var-bell: "\f0f3"; +$fa-var-bell-o: "\f0a2"; +$fa-var-bell-slash: "\f1f6"; +$fa-var-bell-slash-o: "\f1f7"; +$fa-var-bicycle: "\f206"; +$fa-var-binoculars: "\f1e5"; +$fa-var-birthday-cake: "\f1fd"; +$fa-var-bitbucket: "\f171"; +$fa-var-bitbucket-square: "\f172"; +$fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; +$fa-var-bold: "\f032"; +$fa-var-bolt: "\f0e7"; +$fa-var-bomb: "\f1e2"; +$fa-var-book: "\f02d"; +$fa-var-bookmark: "\f02e"; +$fa-var-bookmark-o: "\f097"; +$fa-var-briefcase: "\f0b1"; +$fa-var-btc: "\f15a"; +$fa-var-bug: "\f188"; +$fa-var-building: "\f1ad"; +$fa-var-building-o: "\f0f7"; +$fa-var-bullhorn: "\f0a1"; +$fa-var-bullseye: "\f140"; +$fa-var-bus: "\f207"; +$fa-var-buysellads: "\f20d"; +$fa-var-cab: "\f1ba"; +$fa-var-calculator: "\f1ec"; +$fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; +$fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; +$fa-var-camera: "\f030"; +$fa-var-camera-retro: "\f083"; +$fa-var-car: "\f1b9"; +$fa-var-caret-down: "\f0d7"; +$fa-var-caret-left: "\f0d9"; +$fa-var-caret-right: "\f0da"; +$fa-var-caret-square-o-down: "\f150"; +$fa-var-caret-square-o-left: "\f191"; +$fa-var-caret-square-o-right: "\f152"; +$fa-var-caret-square-o-up: "\f151"; +$fa-var-caret-up: "\f0d8"; +$fa-var-cart-arrow-down: "\f218"; +$fa-var-cart-plus: "\f217"; +$fa-var-cc: "\f20a"; +$fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; +$fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; +$fa-var-cc-mastercard: "\f1f1"; +$fa-var-cc-paypal: "\f1f4"; +$fa-var-cc-stripe: "\f1f5"; +$fa-var-cc-visa: "\f1f0"; +$fa-var-certificate: "\f0a3"; +$fa-var-chain: "\f0c1"; +$fa-var-chain-broken: "\f127"; +$fa-var-check: "\f00c"; +$fa-var-check-circle: "\f058"; +$fa-var-check-circle-o: "\f05d"; +$fa-var-check-square: "\f14a"; +$fa-var-check-square-o: "\f046"; +$fa-var-chevron-circle-down: "\f13a"; +$fa-var-chevron-circle-left: "\f137"; +$fa-var-chevron-circle-right: "\f138"; +$fa-var-chevron-circle-up: "\f139"; +$fa-var-chevron-down: "\f078"; +$fa-var-chevron-left: "\f053"; +$fa-var-chevron-right: "\f054"; +$fa-var-chevron-up: "\f077"; +$fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; +$fa-var-circle: "\f111"; +$fa-var-circle-o: "\f10c"; +$fa-var-circle-o-notch: "\f1ce"; +$fa-var-circle-thin: "\f1db"; +$fa-var-clipboard: "\f0ea"; +$fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; +$fa-var-close: "\f00d"; +$fa-var-cloud: "\f0c2"; +$fa-var-cloud-download: "\f0ed"; +$fa-var-cloud-upload: "\f0ee"; +$fa-var-cny: "\f157"; +$fa-var-code: "\f121"; +$fa-var-code-fork: "\f126"; +$fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; +$fa-var-coffee: "\f0f4"; +$fa-var-cog: "\f013"; +$fa-var-cogs: "\f085"; +$fa-var-columns: "\f0db"; +$fa-var-comment: "\f075"; +$fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; +$fa-var-comments: "\f086"; +$fa-var-comments-o: "\f0e6"; +$fa-var-compass: "\f14e"; +$fa-var-compress: "\f066"; +$fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; +$fa-var-copy: "\f0c5"; +$fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; +$fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; +$fa-var-crop: "\f125"; +$fa-var-crosshairs: "\f05b"; +$fa-var-css3: "\f13c"; +$fa-var-cube: "\f1b2"; +$fa-var-cubes: "\f1b3"; +$fa-var-cut: "\f0c4"; +$fa-var-cutlery: "\f0f5"; +$fa-var-dashboard: "\f0e4"; +$fa-var-dashcube: "\f210"; +$fa-var-database: "\f1c0"; +$fa-var-dedent: "\f03b"; +$fa-var-delicious: "\f1a5"; +$fa-var-desktop: "\f108"; +$fa-var-deviantart: "\f1bd"; +$fa-var-diamond: "\f219"; +$fa-var-digg: "\f1a6"; +$fa-var-dollar: "\f155"; +$fa-var-dot-circle-o: "\f192"; +$fa-var-download: "\f019"; +$fa-var-dribbble: "\f17d"; +$fa-var-dropbox: "\f16b"; +$fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; +$fa-var-edit: "\f044"; +$fa-var-eject: "\f052"; +$fa-var-ellipsis-h: "\f141"; +$fa-var-ellipsis-v: "\f142"; +$fa-var-empire: "\f1d1"; +$fa-var-envelope: "\f0e0"; +$fa-var-envelope-o: "\f003"; +$fa-var-envelope-square: "\f199"; +$fa-var-eraser: "\f12d"; +$fa-var-eur: "\f153"; +$fa-var-euro: "\f153"; +$fa-var-exchange: "\f0ec"; +$fa-var-exclamation: "\f12a"; +$fa-var-exclamation-circle: "\f06a"; +$fa-var-exclamation-triangle: "\f071"; +$fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; +$fa-var-external-link: "\f08e"; +$fa-var-external-link-square: "\f14c"; +$fa-var-eye: "\f06e"; +$fa-var-eye-slash: "\f070"; +$fa-var-eyedropper: "\f1fb"; +$fa-var-facebook: "\f09a"; +$fa-var-facebook-f: "\f09a"; +$fa-var-facebook-official: "\f230"; +$fa-var-facebook-square: "\f082"; +$fa-var-fast-backward: "\f049"; +$fa-var-fast-forward: "\f050"; +$fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; +$fa-var-female: "\f182"; +$fa-var-fighter-jet: "\f0fb"; +$fa-var-file: "\f15b"; +$fa-var-file-archive-o: "\f1c6"; +$fa-var-file-audio-o: "\f1c7"; +$fa-var-file-code-o: "\f1c9"; +$fa-var-file-excel-o: "\f1c3"; +$fa-var-file-image-o: "\f1c5"; +$fa-var-file-movie-o: "\f1c8"; +$fa-var-file-o: "\f016"; +$fa-var-file-pdf-o: "\f1c1"; +$fa-var-file-photo-o: "\f1c5"; +$fa-var-file-picture-o: "\f1c5"; +$fa-var-file-powerpoint-o: "\f1c4"; +$fa-var-file-sound-o: "\f1c7"; +$fa-var-file-text: "\f15c"; +$fa-var-file-text-o: "\f0f6"; +$fa-var-file-video-o: "\f1c8"; +$fa-var-file-word-o: "\f1c2"; +$fa-var-file-zip-o: "\f1c6"; +$fa-var-files-o: "\f0c5"; +$fa-var-film: "\f008"; +$fa-var-filter: "\f0b0"; +$fa-var-fire: "\f06d"; +$fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; +$fa-var-flag: "\f024"; +$fa-var-flag-checkered: "\f11e"; +$fa-var-flag-o: "\f11d"; +$fa-var-flash: "\f0e7"; +$fa-var-flask: "\f0c3"; +$fa-var-flickr: "\f16e"; +$fa-var-floppy-o: "\f0c7"; +$fa-var-folder: "\f07b"; +$fa-var-folder-o: "\f114"; +$fa-var-folder-open: "\f07c"; +$fa-var-folder-open-o: "\f115"; +$fa-var-font: "\f031"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; +$fa-var-forumbee: "\f211"; +$fa-var-forward: "\f04e"; +$fa-var-foursquare: "\f180"; +$fa-var-frown-o: "\f119"; +$fa-var-futbol-o: "\f1e3"; +$fa-var-gamepad: "\f11b"; +$fa-var-gavel: "\f0e3"; +$fa-var-gbp: "\f154"; +$fa-var-ge: "\f1d1"; +$fa-var-gear: "\f013"; +$fa-var-gears: "\f085"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; +$fa-var-gift: "\f06b"; +$fa-var-git: "\f1d3"; +$fa-var-git-square: "\f1d2"; +$fa-var-github: "\f09b"; +$fa-var-github-alt: "\f113"; +$fa-var-github-square: "\f092"; +$fa-var-gittip: "\f184"; +$fa-var-glass: "\f000"; +$fa-var-globe: "\f0ac"; +$fa-var-google: "\f1a0"; +$fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-square: "\f0d4"; +$fa-var-google-wallet: "\f1ee"; +$fa-var-graduation-cap: "\f19d"; +$fa-var-gratipay: "\f184"; +$fa-var-group: "\f0c0"; +$fa-var-h-square: "\f0fd"; +$fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; +$fa-var-hand-o-down: "\f0a7"; +$fa-var-hand-o-left: "\f0a5"; +$fa-var-hand-o-right: "\f0a4"; +$fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$fa-var-hand-rock-o: "\f255"; +$fa-var-hand-scissors-o: "\f257"; +$fa-var-hand-spock-o: "\f259"; +$fa-var-hand-stop-o: "\f256"; +$fa-var-hashtag: "\f292"; +$fa-var-hdd-o: "\f0a0"; +$fa-var-header: "\f1dc"; +$fa-var-headphones: "\f025"; +$fa-var-heart: "\f004"; +$fa-var-heart-o: "\f08a"; +$fa-var-heartbeat: "\f21e"; +$fa-var-history: "\f1da"; +$fa-var-home: "\f015"; +$fa-var-hospital-o: "\f0f8"; +$fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; +$fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; +$fa-var-ils: "\f20b"; +$fa-var-image: "\f03e"; +$fa-var-inbox: "\f01c"; +$fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; +$fa-var-info: "\f129"; +$fa-var-info-circle: "\f05a"; +$fa-var-inr: "\f156"; +$fa-var-instagram: "\f16d"; +$fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; +$fa-var-ioxhost: "\f208"; +$fa-var-italic: "\f033"; +$fa-var-joomla: "\f1aa"; +$fa-var-jpy: "\f157"; +$fa-var-jsfiddle: "\f1cc"; +$fa-var-key: "\f084"; +$fa-var-keyboard-o: "\f11c"; +$fa-var-krw: "\f159"; +$fa-var-language: "\f1ab"; +$fa-var-laptop: "\f109"; +$fa-var-lastfm: "\f202"; +$fa-var-lastfm-square: "\f203"; +$fa-var-leaf: "\f06c"; +$fa-var-leanpub: "\f212"; +$fa-var-legal: "\f0e3"; +$fa-var-lemon-o: "\f094"; +$fa-var-level-down: "\f149"; +$fa-var-level-up: "\f148"; +$fa-var-life-bouy: "\f1cd"; +$fa-var-life-buoy: "\f1cd"; +$fa-var-life-ring: "\f1cd"; +$fa-var-life-saver: "\f1cd"; +$fa-var-lightbulb-o: "\f0eb"; +$fa-var-line-chart: "\f201"; +$fa-var-link: "\f0c1"; +$fa-var-linkedin: "\f0e1"; +$fa-var-linkedin-square: "\f08c"; +$fa-var-linux: "\f17c"; +$fa-var-list: "\f03a"; +$fa-var-list-alt: "\f022"; +$fa-var-list-ol: "\f0cb"; +$fa-var-list-ul: "\f0ca"; +$fa-var-location-arrow: "\f124"; +$fa-var-lock: "\f023"; +$fa-var-long-arrow-down: "\f175"; +$fa-var-long-arrow-left: "\f177"; +$fa-var-long-arrow-right: "\f178"; +$fa-var-long-arrow-up: "\f176"; +$fa-var-magic: "\f0d0"; +$fa-var-magnet: "\f076"; +$fa-var-mail-forward: "\f064"; +$fa-var-mail-reply: "\f112"; +$fa-var-mail-reply-all: "\f122"; +$fa-var-male: "\f183"; +$fa-var-map: "\f279"; +$fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; +$fa-var-mars: "\f222"; +$fa-var-mars-double: "\f227"; +$fa-var-mars-stroke: "\f229"; +$fa-var-mars-stroke-h: "\f22b"; +$fa-var-mars-stroke-v: "\f22a"; +$fa-var-maxcdn: "\f136"; +$fa-var-meanpath: "\f20c"; +$fa-var-medium: "\f23a"; +$fa-var-medkit: "\f0fa"; +$fa-var-meh-o: "\f11a"; +$fa-var-mercury: "\f223"; +$fa-var-microphone: "\f130"; +$fa-var-microphone-slash: "\f131"; +$fa-var-minus: "\f068"; +$fa-var-minus-circle: "\f056"; +$fa-var-minus-square: "\f146"; +$fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; +$fa-var-mobile: "\f10b"; +$fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; +$fa-var-money: "\f0d6"; +$fa-var-moon-o: "\f186"; +$fa-var-mortar-board: "\f19d"; +$fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; +$fa-var-music: "\f001"; +$fa-var-navicon: "\f0c9"; +$fa-var-neuter: "\f22c"; +$fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; +$fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; +$fa-var-outdent: "\f03b"; +$fa-var-pagelines: "\f18c"; +$fa-var-paint-brush: "\f1fc"; +$fa-var-paper-plane: "\f1d8"; +$fa-var-paper-plane-o: "\f1d9"; +$fa-var-paperclip: "\f0c6"; +$fa-var-paragraph: "\f1dd"; +$fa-var-paste: "\f0ea"; +$fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; +$fa-var-paw: "\f1b0"; +$fa-var-paypal: "\f1ed"; +$fa-var-pencil: "\f040"; +$fa-var-pencil-square: "\f14b"; +$fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; +$fa-var-phone: "\f095"; +$fa-var-phone-square: "\f098"; +$fa-var-photo: "\f03e"; +$fa-var-picture-o: "\f03e"; +$fa-var-pie-chart: "\f200"; +$fa-var-pied-piper: "\f1a7"; +$fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-p: "\f231"; +$fa-var-pinterest-square: "\f0d3"; +$fa-var-plane: "\f072"; +$fa-var-play: "\f04b"; +$fa-var-play-circle: "\f144"; +$fa-var-play-circle-o: "\f01d"; +$fa-var-plug: "\f1e6"; +$fa-var-plus: "\f067"; +$fa-var-plus-circle: "\f055"; +$fa-var-plus-square: "\f0fe"; +$fa-var-plus-square-o: "\f196"; +$fa-var-power-off: "\f011"; +$fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; +$fa-var-puzzle-piece: "\f12e"; +$fa-var-qq: "\f1d6"; +$fa-var-qrcode: "\f029"; +$fa-var-question: "\f128"; +$fa-var-question-circle: "\f059"; +$fa-var-quote-left: "\f10d"; +$fa-var-quote-right: "\f10e"; +$fa-var-ra: "\f1d0"; +$fa-var-random: "\f074"; +$fa-var-rebel: "\f1d0"; +$fa-var-recycle: "\f1b8"; +$fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; +$fa-var-reddit-square: "\f1a2"; +$fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; +$fa-var-remove: "\f00d"; +$fa-var-renren: "\f18b"; +$fa-var-reorder: "\f0c9"; +$fa-var-repeat: "\f01e"; +$fa-var-reply: "\f112"; +$fa-var-reply-all: "\f122"; +$fa-var-retweet: "\f079"; +$fa-var-rmb: "\f157"; +$fa-var-road: "\f018"; +$fa-var-rocket: "\f135"; +$fa-var-rotate-left: "\f0e2"; +$fa-var-rotate-right: "\f01e"; +$fa-var-rouble: "\f158"; +$fa-var-rss: "\f09e"; +$fa-var-rss-square: "\f143"; +$fa-var-rub: "\f158"; +$fa-var-ruble: "\f158"; +$fa-var-rupee: "\f156"; +$fa-var-safari: "\f267"; +$fa-var-save: "\f0c7"; +$fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; +$fa-var-search: "\f002"; +$fa-var-search-minus: "\f010"; +$fa-var-search-plus: "\f00e"; +$fa-var-sellsy: "\f213"; +$fa-var-send: "\f1d8"; +$fa-var-send-o: "\f1d9"; +$fa-var-server: "\f233"; +$fa-var-share: "\f064"; +$fa-var-share-alt: "\f1e0"; +$fa-var-share-alt-square: "\f1e1"; +$fa-var-share-square: "\f14d"; +$fa-var-share-square-o: "\f045"; +$fa-var-shekel: "\f20b"; +$fa-var-sheqel: "\f20b"; +$fa-var-shield: "\f132"; +$fa-var-ship: "\f21a"; +$fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; +$fa-var-shopping-cart: "\f07a"; +$fa-var-sign-in: "\f090"; +$fa-var-sign-out: "\f08b"; +$fa-var-signal: "\f012"; +$fa-var-simplybuilt: "\f215"; +$fa-var-sitemap: "\f0e8"; +$fa-var-skyatlas: "\f216"; +$fa-var-skype: "\f17e"; +$fa-var-slack: "\f198"; +$fa-var-sliders: "\f1de"; +$fa-var-slideshare: "\f1e7"; +$fa-var-smile-o: "\f118"; +$fa-var-soccer-ball-o: "\f1e3"; +$fa-var-sort: "\f0dc"; +$fa-var-sort-alpha-asc: "\f15d"; +$fa-var-sort-alpha-desc: "\f15e"; +$fa-var-sort-amount-asc: "\f160"; +$fa-var-sort-amount-desc: "\f161"; +$fa-var-sort-asc: "\f0de"; +$fa-var-sort-desc: "\f0dd"; +$fa-var-sort-down: "\f0dd"; +$fa-var-sort-numeric-asc: "\f162"; +$fa-var-sort-numeric-desc: "\f163"; +$fa-var-sort-up: "\f0de"; +$fa-var-soundcloud: "\f1be"; +$fa-var-space-shuttle: "\f197"; +$fa-var-spinner: "\f110"; +$fa-var-spoon: "\f1b1"; +$fa-var-spotify: "\f1bc"; +$fa-var-square: "\f0c8"; +$fa-var-square-o: "\f096"; +$fa-var-stack-exchange: "\f18d"; +$fa-var-stack-overflow: "\f16c"; +$fa-var-star: "\f005"; +$fa-var-star-half: "\f089"; +$fa-var-star-half-empty: "\f123"; +$fa-var-star-half-full: "\f123"; +$fa-var-star-half-o: "\f123"; +$fa-var-star-o: "\f006"; +$fa-var-steam: "\f1b6"; +$fa-var-steam-square: "\f1b7"; +$fa-var-step-backward: "\f048"; +$fa-var-step-forward: "\f051"; +$fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; +$fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; +$fa-var-street-view: "\f21d"; +$fa-var-strikethrough: "\f0cc"; +$fa-var-stumbleupon: "\f1a4"; +$fa-var-stumbleupon-circle: "\f1a3"; +$fa-var-subscript: "\f12c"; +$fa-var-subway: "\f239"; +$fa-var-suitcase: "\f0f2"; +$fa-var-sun-o: "\f185"; +$fa-var-superscript: "\f12b"; +$fa-var-support: "\f1cd"; +$fa-var-table: "\f0ce"; +$fa-var-tablet: "\f10a"; +$fa-var-tachometer: "\f0e4"; +$fa-var-tag: "\f02b"; +$fa-var-tags: "\f02c"; +$fa-var-tasks: "\f0ae"; +$fa-var-taxi: "\f1ba"; +$fa-var-television: "\f26c"; +$fa-var-tencent-weibo: "\f1d5"; +$fa-var-terminal: "\f120"; +$fa-var-text-height: "\f034"; +$fa-var-text-width: "\f035"; +$fa-var-th: "\f00a"; +$fa-var-th-large: "\f009"; +$fa-var-th-list: "\f00b"; +$fa-var-thumb-tack: "\f08d"; +$fa-var-thumbs-down: "\f165"; +$fa-var-thumbs-o-down: "\f088"; +$fa-var-thumbs-o-up: "\f087"; +$fa-var-thumbs-up: "\f164"; +$fa-var-ticket: "\f145"; +$fa-var-times: "\f00d"; +$fa-var-times-circle: "\f057"; +$fa-var-times-circle-o: "\f05c"; +$fa-var-tint: "\f043"; +$fa-var-toggle-down: "\f150"; +$fa-var-toggle-left: "\f191"; +$fa-var-toggle-off: "\f204"; +$fa-var-toggle-on: "\f205"; +$fa-var-toggle-right: "\f152"; +$fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; +$fa-var-train: "\f238"; +$fa-var-transgender: "\f224"; +$fa-var-transgender-alt: "\f225"; +$fa-var-trash: "\f1f8"; +$fa-var-trash-o: "\f014"; +$fa-var-tree: "\f1bb"; +$fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; +$fa-var-trophy: "\f091"; +$fa-var-truck: "\f0d1"; +$fa-var-try: "\f195"; +$fa-var-tty: "\f1e4"; +$fa-var-tumblr: "\f173"; +$fa-var-tumblr-square: "\f174"; +$fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; +$fa-var-twitch: "\f1e8"; +$fa-var-twitter: "\f099"; +$fa-var-twitter-square: "\f081"; +$fa-var-umbrella: "\f0e9"; +$fa-var-underline: "\f0cd"; +$fa-var-undo: "\f0e2"; +$fa-var-university: "\f19c"; +$fa-var-unlink: "\f127"; +$fa-var-unlock: "\f09c"; +$fa-var-unlock-alt: "\f13e"; +$fa-var-unsorted: "\f0dc"; +$fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; +$fa-var-usd: "\f155"; +$fa-var-user: "\f007"; +$fa-var-user-md: "\f0f0"; +$fa-var-user-plus: "\f234"; +$fa-var-user-secret: "\f21b"; +$fa-var-user-times: "\f235"; +$fa-var-users: "\f0c0"; +$fa-var-venus: "\f221"; +$fa-var-venus-double: "\f226"; +$fa-var-venus-mars: "\f228"; +$fa-var-viacoin: "\f237"; +$fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; +$fa-var-vimeo-square: "\f194"; +$fa-var-vine: "\f1ca"; +$fa-var-vk: "\f189"; +$fa-var-volume-down: "\f027"; +$fa-var-volume-off: "\f026"; +$fa-var-volume-up: "\f028"; +$fa-var-warning: "\f071"; +$fa-var-wechat: "\f1d7"; +$fa-var-weibo: "\f18a"; +$fa-var-weixin: "\f1d7"; +$fa-var-whatsapp: "\f232"; +$fa-var-wheelchair: "\f193"; +$fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; +$fa-var-windows: "\f17a"; +$fa-var-won: "\f159"; +$fa-var-wordpress: "\f19a"; +$fa-var-wrench: "\f0ad"; +$fa-var-xing: "\f168"; +$fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; +$fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; +$fa-var-yelp: "\f1e9"; +$fa-var-yen: "\f157"; +$fa-var-youtube: "\f167"; +$fa-var-youtube-play: "\f16a"; +$fa-var-youtube-square: "\f166"; + diff --git a/Resources/public/sass/contrib/fontawesome/font-awesome.scss b/Resources/public/sass/contrib/fontawesome/font-awesome.scss new file mode 100644 index 000000000..f4668a53c --- /dev/null +++ b/Resources/public/sass/contrib/fontawesome/font-awesome.scss @@ -0,0 +1,17 @@ +/*! + * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables"; +@import "mixins"; +@import "path"; +@import "core"; +@import "larger"; +@import "fixed-width"; +@import "list"; +@import "bordered-pulled"; +@import "animated"; +@import "rotated-flipped"; +@import "stacked"; +@import "icons"; diff --git a/Resources/public/sass/contrib/gridle/_grid-settings.scss b/Resources/public/sass/contrib/gridle/_grid-settings.scss new file mode 100644 index 000000000..794343496 --- /dev/null +++ b/Resources/public/sass/contrib/gridle/_grid-settings.scss @@ -0,0 +1,23 @@ +// Import gridle : +@import 'gridle/gridle'; + +// setup the grid (required) : +@include gridle_setup(( + context : 12, + gutter-width : 20px, + debug : true +)); + +// register special columns : +@include gridle_register_column("1on5", 1, 5); + +// clear each classes : +@include gridle_register_clear_each(2, left); +@include gridle_register_clear_each(12, both); + +// register states : +@include gridle_register_default_states(); +@include gridle_register_state(ipad-landscape, ( + query : "only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape)", + gutter-width : 0 +)); \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/grid-bootstrap.scss b/Resources/public/sass/contrib/gridle/grid-bootstrap.scss new file mode 100644 index 000000000..101ee15cd --- /dev/null +++ b/Resources/public/sass/contrib/gridle/grid-bootstrap.scss @@ -0,0 +1,48 @@ +// Import gridle : +@import 'gridle/gridle'; + + +// basic configuration : +@include gridle_setup( ( + context : 12, + gutter-width : 30px, + html-states-classes : true +) ); + +// register states : +@include gridle_register_default_mobile_first_states(); + +/* + * Optional : + * Change generation class names pattern (for example to match bootstrap naming conventions or generate with your own names) : + * Check documentation (http://gridle.org/documentation#name-pattern) for full list + * + * %- = separator sign (configurable by $gridle-class-separator) (no need to add separators if you doesn't want them) + * %state = the state name (mobile, ipad, etc...) + * %count = the column count (1, 2, 3, 4, etc...) + */ +$gridle-grid-name-pattern : ('col','%-','%state','%-','%count'); +$gridle-parent-name-pattern : ('row','%-','%state'); +$gridle-prefix-name-pattern : ('col','%-','%state','%-','offset','%-','%count'); +$gridle-push-name-pattern : ('col','%-','%state','%-','push','%-','%count'); +$gridle-pull-name-pattern : ('col','%-','%state','%-','pull','%-','%count'); +$gridle-show-name-pattern : ('visible','%-','%state'); +$gridle-hide-name-pattern : ('hidden','%-','%state'); + + +/** + * Mobile first approach : + */ +[class*="col-"] { + width:100%; // 100% by default +} + + +// Generate classes : +@include gridle_generate_classes(); + +// Max size : +.container { + margin:0 auto; + max-width:1200px; +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/grid.scss b/Resources/public/sass/contrib/gridle/grid.scss new file mode 100644 index 000000000..d638093c6 --- /dev/null +++ b/Resources/public/sass/contrib/gridle/grid.scss @@ -0,0 +1,24 @@ +// Import grid settings : +@import 'grid-settings'; + +// Generate classes : +@include gridle_generate_classes(); + +// you can generate classes separately if you need : +// @include gridle_generate_classes(default); // default is the base state always registered +// @include gridle_generate_classes(mobile, (grid, push, pull)) // generate only the grid, push and pull classes for mobile +// etc... + +// generate a center custom class for all the states : +@include gridle_generate_custom_class( ('center','%-','%state') ) { + text-align:center; +} +// this will produces classes : center, center-mobile, center-tablet, center-ipad-landscape +// for separators, you can use the %- (replaced by the $gridle-class-separator option), or -, --, _, __ + +// Max size : +.container { + margin:0 auto; + max-width:960px; + @include gridle_grid_background(); +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/gridle/_common-mixins.scss b/Resources/public/sass/contrib/gridle/gridle/_common-mixins.scss new file mode 100644 index 000000000..cd8d5ada0 --- /dev/null +++ b/Resources/public/sass/contrib/gridle/gridle/_common-mixins.scss @@ -0,0 +1,124 @@ +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Common mixins +// |------------------------------------------------------ +// |------------------------------------------------------ + +@mixin _gridle_container_common( + $state : default +) { + @extend %gridle-simple-clearfix; + @extend %gridle-container-common; + // debug part + $debug : _gridle_get_var_value(debug, $state); + @if ($debug == true) { + #{$gridle-debug-selector} { + @extend %gridle-container-debug-common; + } + } +} +$_gridle-already-generated : (); +@mixin _gridle_grid_common() { + @extend %gridle-grid-common; + + // default values + $default-gutter-width : _gridle_get_var_value(gutter-width, default); + $default-direction : _gridle_get_var_value(direction, default); + + // loop on each states : + @each $stateName, $state in $_gridle-states + { + // selector key to be used in map + $key : "#{$stateName} #{&}"; + + // check if already generated classes + $already-generated : map-has-key($_gridle-already-generated, $key); + + // vars + $direction : _gridle_get_var_value(direction, $state); + $classes : _gridle_get_var_value(classes, $state); + $gutter-width : _gridle_get_var_value(gutter-width, $state); + $debug : _gridle_get_var_value(debug, $state); + + @if $already-generated != true and $classes and ( ($default-direction != $direction or $default-gutter-width != $gutter-width) or $stateName == default) + { + // set that we have already generated css for this selector + $_gridle-already-generated : map-set($_gridle-already-generated, $key, true) !global; + + // generate the css for this element + @include gridle_state($state) { + @if $direction != $default-direction or $stateName == default { + // content : "#{$key}"; + @if $direction == rtl { + float:right; + direction:rtl; + } @else { + float:left; + direction:ltr; + } + } + @if $gutter-width != $default-gutter-width or $stateName == default { + padding-left:$gutter-width/2; + padding-right:$gutter-width/2; + } + } + + @if $debug == true { + #{$gridle-debug-selector} { + @extend %gridle-grid-debug-common; + } + } + } + } +} +@mixin _gridle_parent_common() { + @extend %gridle-clearfix; + @extend %gridle-parent-common; +} +@mixin _gridle_push_common( + $state : default +) { + $debug : _gridle_get_var_value(debug, $state); + + // extend common : + @extend %gridle-push-pull-common; + @if $debug == true { + #{$gridle-debug-selector} { + @extend %gridle-push-pull-debug-background-common; + background-color:#f4efdf !important; + } + } +} +@mixin _gridle_pull_common( + $state : default +) { + $debug : _gridle_get_var_value(debug, $state); + + @extend %gridle-push-pull-common; + @if $debug == true { + #{$gridle-debug-selector} { + @extend %gridle-push-pull-debug-background-common; + background-color:#cfe4d5 !important; + } + } +} +@mixin _gridle_prefix_common( + $state : default +) { + $debug : _gridle_get_var_value(debug, $state); + @if $debug == true { + #{$gridle-debug-selector} { + @extend %gridle-prefix-debug-common; + } + } +} +@mixin _gridle_suffix_common( + $state : default +) { + $debug : _gridle_get_var_value(debug, $state); + @if $debug == true { + #{$gridle-debug-selector} { + @extend %gridle-suffix-debug-common; + } + } +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/gridle/_default-states.scss b/Resources/public/sass/contrib/gridle/gridle/_default-states.scss new file mode 100644 index 000000000..aeb007cdf --- /dev/null +++ b/Resources/public/sass/contrib/gridle/gridle/_default-states.scss @@ -0,0 +1,35 @@ +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Default states +// |------------------------------------------------------ +// |------------------------------------------------------ + +// retina +@include gridle_register_state("retina", ( + query : "(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx)", + classes : false +) ); + +// tv +@include gridle_register_state("tv", ( + query : "only tv", + classes : false +) ); + +// print +@include gridle_register_state("print", ( + query : "only print", + classes : false +) ); + +// portrait +@include gridle_register_state("portrait", ( + query : "only screen and (orientation: portrait)", + classes : false +) ); + +// landscape +@include gridle_register_state("landscape", ( + query : "only screen and (orientation: landscape)", + classes : false +) ); \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/gridle/_functions.scss b/Resources/public/sass/contrib/gridle/gridle/_functions.scss new file mode 100644 index 000000000..9e6fc0e7e --- /dev/null +++ b/Resources/public/sass/contrib/gridle/gridle/_functions.scss @@ -0,0 +1,387 @@ +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Functions +// |------------------------------------------------------ +// |------------------------------------------------------ + +/** + * Str replace + * + * @param {string} $string String that you want to replace + * @param {string} $substr String that is to be replaced by `$newsubstr` + * @param {string} $newsubstr String that replaces `$substr` + * @param {number*} $all Flag for replaceing all (1+) or not (0) + * @return {string} + */ +@function str-replace($string, $substr, $newsubstr, $all: 0) { + $position-found: str-index($string, $substr); + $processed: (); + + @while ($position-found and $position-found > 0) { + $length-substr: str-length($substr); + $processed: append($processed, str-slice($string, 0, $position-found - 1)); + $processed: append($processed, $newsubstr); + $string: str-slice($string, $position-found + $length-substr); + + $position-found: 0; + + @if ($all > 0) { + $position-found: str-index($string, $substr); + } + } + + $processed: append($processed, $string); + $string: ""; + + @each $s in $processed { + $string: #{$string}#{$s}; + } + + @return $string; +} + +/** + * Map set + * + * @param Map $map The map to use + * @param String $key The key to update + * @param Mixed $value The new value + * @return Map The new map + */ +@function map-set($map, $key, $value) { + $new: ($key: $value); + @return map-merge($map, $new); +} + + +/** + * Get the column width in percent for the global or a specific context + * + * @param int $columns The number of columns to calculate + * @param int $context : $gridle-columns-count The context to use + * @return percentage The width in percent + */ +@function gridle_get_column_width( + $columns : 1, + $stateMap-or-stateName : null +) { + @return percentage(1 / $context * $columns); +} + + +/** + * Get a state map + * + * @param string $name The name of the state to get + * @return map A state map object + */ +@function _gridle_get_state( + $stateMap-or-stateName +) { + // check if has a state named like this + @if (type-of($stateMap-or-stateName) == string + and map-has-key($_gridle_states, unquote("#{$stateMap-or-stateName}"))) + { + @return map-get($_gridle_states, unquote("#{$stateMap-or-stateName}")); + } + + // a map is passed, so it's a state himself + @if $stateMap-or-stateName + and type-of($stateMap-or-stateName) == map + { + @return map-merge($_gridle-settings, $stateMap-or-stateName); + } + + // return the default one if exist + @if map-has-key($_gridle_states, default) + { + @return map-get($_gridle_states, default); + } + + // nothing finded, return the default state + @return $_gridle-settings; +} + + +/** + * Check if a state exist : + * + * @param string $name The name of the state to check + * @return Boolean true is exist + */ +@function _gridle_has_state( + $stateName +) { + @if map-has-key($_gridle_states, unquote("#{$stateName}")) { + @return true; + } @else { + @return false; + } +} + + +/** + * Get the media queries variables : + * + * @param int $index The media query indes + * @param String $var The media query variable name + * @return String|int The variable value + */ +@function _gridle_get_state_var( + $stateName, + $var : "name" +) { + + // get the state : + $state : _gridle_get_state($stateName); + + // check ig state and if has the variable : + @if $state + and map-has-key($state,unquote("#{$var}")) + { + @return map-get($state,unquote("#{$var}")); + } + + // nothing getted : + @return null; +} + + +/** + * Get a variable + * + * @param String $varName The variable name + * @param String $stateMap-or-stateName The state name or a map state value + * @return Mixed The finded value + */ +@function _gridle_get_var_value( + $varName, + $stateMap-or-stateName : null +) { + // if is a state : + $state : null; + + // get the state (if no state find, return the default one) : + $state : _gridle_get_state($stateMap-or-stateName); + + // extend default state with given state : + $props : map-merge($_gridle-settings, $state); + + @if map-has-key($props, unquote("#{$varName}")) { + @return map-get($state, unquote("#{$varName}")); + } + + // nothing finded : + @return null; +} + + +/** + * Set a variable in a state + * @param Mixed $stateName-or-stateIndex The state name of state index + * @param String $var Variable name to assign + * @param Mixed $newValue The new value to assign + * @return List The states list (full) + */ +@function _gridle_set_state_var( + $stateName, + $var, + $newValue +) { + // get the state : + $state : _gridle_get_state($stateName); + + // check ig state and if has the variable : + @if $state + and map-has-key($state,unquote("#{$var}")) + { + // set new value in state : + $state : map-set($state, unquote("#{$var}"), $newValue); + + // set states : + $_gridle_states : map-set($_gridle_states, unquote("#{$stateName}"), $state); + + // return new state : + @return $state; + } + + // nothing getted : + @return null; +} + + +/** + * Generate a column + * + * @param String $name The column name (often count) + * @param int $columns The column count that the column will take + * @param int $context The context on witch the with will be calculed + * @param Boolean $generateClasses Set if the column has to be generated in css + */ +@function _gridle_create_column( + $name, + $columns, + $context, + $name-multiplicator : 1 // used to extend the state on custom registered columns +) { + @return ( + name : $name, + columns : $columns, + context : $context, + name-multiplicator : $name-multiplicator + ); +} + + +/** + * Generate classname + * + * @param List $parrern The pattern to use to generate classname + * @param String $state The state + * @param int $count The column count + */ +@function _gridle_classname( + $pattern, + $state : null, + $count : null +) { + + // init selector : + $sel : "."; + + // delete default : + @if unquote("#{$state}") == default { + $state : null; + } + + // add class prefix : + @if $gridle-class-prefix and $gridle-class-prefix != '' { + $sel : "#{$sel}#{$gridle-class-prefix}"; + @if $gridle-class-separator { + $sel : "#{$sel}#{$gridle-class-separator}"; + } + } + + // construct class name : + $i : 1; + @each $var in $pattern { + + // replace tokens : + @if $var == '%state' and $state { + $sel : "#{$sel}#{$state}"; + } + @if $var == '%count' and $count { + $sel : "#{$sel}#{$count}"; + } + @if $var != '%state' and $var != '%count' and $var != '%-' and $var != '-' and $var != '--' and $var != '_' and $var != '__' and $var != '%prefix' { + $sel : "#{$sel}#{$var}"; + } + + // handle separators : + @if ($var == '%-' or $var == '-' or $var == '--' or $var == '_' or $var == '__') and $i < length($pattern) { + $index : $i + 1; + $value : nth($pattern, $index); + @if $value != '%state' and $value != '%count' and $value != '%-' and $value != '-' and $value != '--' and $value != '_' and $value != '__' and $value != '%prefix' { + @if $var == '%-' { + $sel : "#{$sel}#{$gridle-class-separator}"; + } @else { + $sel : "#{$sel}#{$var}"; + } + } + @if $value == '%state' and $state { + @if $var == '%-' { + $sel : "#{$sel}#{$gridle-class-separator}"; + } @else { + $sel : "#{$sel}#{$var}"; + } + } + @if $value == '%count' and $count { + @if $var == '%-' { + $sel : "#{$sel}#{$gridle-class-separator}"; + } @else { + $sel : "#{$sel}#{$var}"; + } + } + } + + // update i : + $i : $i + 1; + } + + // return generated class : + @return $sel; +} + + +/** + * Get the media query for a particular state, or with, etc... + * + * @param Mixed $state-or-min-width The state name of the min with + * @param Mixed $max-width The max width if first param is a min width + * @return String The media query string without the @media + */ +@function _gridle_get_media_query( + $state-or-settings +) { + // check if is a string : + $state : null; + @if type-of($state-or-settings) == string + { + $state : _gridle_get_state($state-or-settings); + } + @else if $state-or-settings == null + { + $state : $_gridle-settings; + } + @else + { + $state : map-merge($_gridle-settings, $state-or-settings); + } + + // if it's some settings or a state : + @if $state { + + // get vars : + $name : map-get($state, name); + $min-width : map-get($state, min-width); + $max-width : map-get($state, max-width); + $query : map-get($state, query); + + // direct query : + @if $query + { + @return $query; + } + @else if $min-width and $max-width + { + @return "screen and (min-width: #{$min-width}) and (max-width: #{$max-width})"; + } + @else if $min-width + { + @return "screen and (min-width: #{$min-width})"; + } + @else if $max-width + { + @return "screen and (max-width: #{$max-width})"; + } + @else + { + @return null; + } + + } + @else + { + @return null; + } +} + + +/** + * Get states count + * + * @return int The number of states defined + */ +@function _gridle_get_states_count() { + @return length($_gridle_states) / length($_gridle_states_vars_pattern); +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/gridle/_generate-mixins.scss b/Resources/public/sass/contrib/gridle/gridle/_generate-mixins.scss new file mode 100644 index 000000000..d09a0e37c --- /dev/null +++ b/Resources/public/sass/contrib/gridle/gridle/_generate-mixins.scss @@ -0,0 +1,624 @@ +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Generate mixins +// |------------------------------------------------------ +// |------------------------------------------------------ + + +/** + * Generate a custom class for all the states + * + * @param list $pattern The name pattern of the class + * @param list $statesNames The states names to generate + */ +@mixin gridle_generate_custom_class( + $pattern, + $statesNames : null +) { + // manage states to generate : + $states : (); + @if $statesNames == null { + // loop on each states to generate names list : + @each $stateName, $state in $_gridle_states { + $states : append($states, $stateName); + } + } @else { + $states : $statesNames; + } + + // loop on each states : + @each $stateName in $states + { + // manage statename : + @if type-of($stateName) != string { + $stateName : map-get($stateName, name); + } + + // classes : + $classes : _gridle_get_var_value(classes, $stateName); + + // genrate the classname : + @if $classes + { + @include gridle_state($stateName, false) { + #{_gridle_classname($pattern, $stateName)} { + @content; + } + } + } + } +} + +// Generate all helpers classes +// All the classes generated are not wrapper in gridle_state +// in this mixin... Just the names are generated accordingly to the +// requested state +@mixin _gridle_generate_helper_classes ( + $state : null, + $what : null +) { + // helpers : + @if $what == null or index($what, float) or index($what, helpers) { + #{_gridle_classname($gridle-float-left-name-pattern, $state)} { + @include gridle_float(left); + } + #{_gridle_classname($gridle-float-right-name-pattern, $state)} { + @include gridle_float(right); + } + } + + @if $what == null or index($what, clear) or index($what, helpers) { + #{_gridle_classname($gridle-clear-name-pattern, $state)} { + @include gridle_clear(both); + } + #{_gridle_classname($gridle-clear-left-name-pattern, $state)} { + @include gridle_clear(left); + } + #{_gridle_classname($gridle-clear-right-name-pattern, $state)} { + @include gridle_clear(right); + } + } + + @if $what == null or index($what, no_gutter) or index($what, no_margin) or index($what, helpers) { + #{_gridle_classname($gridle-no-gutter-name-pattern, $state)}, + #{_gridle_classname($gridle-no-margin-name-pattern, $state)} { + @include gridle_no_margin(); + } + #{_gridle_classname($gridle-no-gutter-left-name-pattern, $state)}, + #{_gridle_classname($gridle-no-margin-left-name-pattern, $state)} { + @include gridle_no_margin(left); + } + #{_gridle_classname($gridle-no-gutter-right-name-pattern, $state)}, + #{_gridle_classname($gridle-no-margin-right-name-pattern, $state)} { + @include gridle_no_margin(right); + } + #{_gridle_classname($gridle-no-gutter-top-name-pattern, $state)}, + #{_gridle_classname($gridle-no-margin-top-name-pattern, $state)} { + @include gridle_no_margin(top); + } + #{_gridle_classname($gridle-no-gutter-bottom-name-pattern, $state)}, + #{_gridle_classname($gridle-no-margin-bottom-name-pattern, $state)} { + @include gridle_no_margin(bottom); + } + } + + @if $what == null or index($what, gutter) or index($what, margin) or index($what, helpers) { + #{_gridle_classname($gridle-gutter-name-pattern, $state)}, + #{_gridle_classname($gridle-margin-name-pattern, $state)} { + @include gridle_margin(left right); + } + #{_gridle_classname($gridle-gutter-left-name-pattern, $state)}, + #{_gridle_classname($gridle-margin-left-name-pattern, $state)} { + @include gridle_margin(left); + } + #{_gridle_classname($gridle-gutter-right-name-pattern, $state)}, + #{_gridle_classname($gridle-margin-right-name-pattern, $state)} { + @include gridle_margin(right); + } + #{_gridle_classname($gridle-gutter-top-name-pattern, $state)}, + #{_gridle_classname($gridle-margin-top-name-pattern, $state)} { + @include gridle_margin(top); + } + #{_gridle_classname($gridle-gutter-bottom-name-pattern, $state)}, + #{_gridle_classname($gridle-margin-bottom-name-pattern, $state)} { + @include gridle_margin(bottom); + } + } + + @if $what == null or index($what, auto_height) or index($what, helpers) { + #{_gridle_classname($gridle-auto-height-name-pattern, $state)} { + height:inherit; + } + } + + @if $what == null or index($what, centered) or index($what, helpers) { + #{_gridle_classname($gridle-centered-name-pattern, $state)} { + @include gridle_centered(null); + } + } + + @if $what == null or index($what, parent) or index($what, helpers) { + #{_gridle_classname($gridle-parent-name-pattern, $state)} { + @include _gridle_parent(); + } + } + + @if $what == null or index($what, vertical_align) or index($what, helpers) { + #{_gridle_classname($gridle-vertical-align-middle-name-pattern, $state)} { + @include _gridle_vertical_align(); + } + #{_gridle_classname($gridle-vertical-align-top-name-pattern, $state)} { + @include _gridle_vertical_align(top); + } + #{_gridle_classname($gridle-vertical-align-bottom-name-pattern, $state)} { + @include _gridle_vertical_align(bottom); + } + } + + /** + * Visible, hide, etc... + */ + @if $what == null or index($what, hide) or index($what, helpers) { + #{_gridle_classname($gridle-hide-name-pattern, $state)} { + @include gridle_hide(null); + } + } + + @if $what == null or index($what, not_visible) or index($what, helpers) { + #{_gridle_classname($gridle-not-visible-name-pattern, $state)} { + @include gridle_not_visible(null); + } + } + + @if $what == null or index($what, show) or index($what, helpers) { + #{_gridle_classname($gridle-show-name-pattern, $state)} { + @include gridle_show(null); + } + #{_gridle_classname($gridle-show-inline-name-pattern, $state)} { + @include gridle_show_inline(null); + } + } + + @if $what == null or index($what, visible) or index($what, helpers) { + #{_gridle_classname($gridle-visible-name-pattern, $state)} { + @include gridle_visible(null); + } + } + + /** + * Clear each class : + */ + @if $what == null or index($what, clear_each) or index($what, helpers) { + @each $clearName, $clearMap in $_gridle_clear_classes { + // get count : + $clearCount : map-get($clearMap, clearEach); + // what to clear : + $clearWhat : map-get($clearMap, clearWhat); + // generate the class : + #{_gridle_classname($gridle-clear-each-pattern, $state, $clearCount)} { + @include _gridle_clear_each($clearCount, $clearWhat); + } + } + } + + // debug colors : + $debug : _gridle_get_var_value(debug, $state); + @if $debug and ( $what == null or index($what, debug_colors) or index($what, helpers) ) { + // debug color classes : + #{_gridle_classname($gridle-debug-color-name-pattern, $state, 1)} { + #{$gridle-debug-selector} { + background-color : #edeeb2; + } + } + #{_gridle_classname($gridle-debug-color-name-pattern, $state, 2)} { + #{$gridle-debug-selector} { + background-color : #fae4a7; + } + } + #{_gridle_classname($gridle-debug-color-name-pattern, $state, 3)} { + #{$gridle-debug-selector} { + background-color : #f5eacc; + } + } + #{_gridle_classname($gridle-debug-color-name-pattern, $state, 4)} { + #{$gridle-debug-selector} { + background-color : #eebdb2; + } + } + #{_gridle_classname($gridle-debug-color-name-pattern, $state, 5)} { + #{$gridle-debug-selector} { + background-color : #d4b2ee; + } + } + #{_gridle_classname($gridle-debug-color-name-pattern, $state, 6)} { + #{$gridle-debug-selector} { + background-color : #b2d8ee; + } + } + } +} + + +// generate settings json : +@mixin gridle_generate_json_settings() { + + // settings content : + $gridle-settings-states : "{"; + + // generate all classes for differents media queries : + $statesCount : length($_gridle_states); + $i : 0; + @each $stateName, $state in $_gridle_states { + + $name : $stateName; + + $gridle-settings-states : "#{$gridle-settings-states} \"#{$name}\":{"; + + @each $varName, $var in $state { + + $value : null; + @if $varName == "query" { + $value : _gridle_get_media_query($stateName); + } @else { + $value : map-get($state,$varName); + } + + @if $value == null { + $gridle-settings-states : "#{$gridle-settings-states} \"#{$varName}\" : null,"; + } @elseif type-of($value) == bool { + $gridle-settings-states : "#{$gridle-settings-states} \"#{$varName}\" : #{$value},"; + } @else { + $gridle-settings-states : "#{$gridle-settings-states} \"#{$varName}\" : \"#{$value}\","; + } + } + + $gridle-settings-states : "#{$gridle-settings-states} \"_gridle\" : true"; + + @if $i >= $statesCount - 1 { + $gridle-settings-states : "#{$gridle-settings-states} }"; + } @else { + $gridle-settings-states : "#{$gridle-settings-states} },"; + } + + // update i : + $i : $i + 1; + + } + + // generate settings json : + $gridle-settings-states : "#{$gridle-settings-states}}"; + $gridle-settings : "{"; + $gridle-settings : "#{$gridle-settings} \"version\" : \"#{$_gridle-version}\""; + + // states : + $gridle-settings : "#{$gridle-settings}, \"states\" : #{$gridle-settings-states}"; + + // debug devices : + $debug_devices : $_gridle_states_debug_devices; + @if length($_gridle_states_debug_devices) <= 0 { + $debug_devices : null; + } + // $gridle-settings : "#{$gridle-settings}, \"debugDevices\" : { #{$debug_devices} }"; + + // settings : + // $gridle-settings : "#{$gridle-settings}, \"classPrefix\" : \"#{$gridle-class-prefix}\""; + $gridle-settings : "#{$gridle-settings} }"; + #gridle-settings { + content : $gridle-settings; + } +} + + +// gridle mixin : +// Generate all the classes needed for a grid +@mixin gridle_generate_classes( + $stateName : null, + $what : null, + $scope : null +) { + // if the what parameter is not null, mean that we need to generate only certain classes in a certain order : + @if $what + { + // loop on each what item to generate the corresponding classes : + @each $w in $what + { + // check if a scope exist : + @if $scope { + // wrapp grid into scope : + .#{$scope} { + @include _gridle_generate_classes($stateName, ( $w ), true); + } + } @else { + // generate classes : + @include _gridle_generate_classes($stateName, ( $w ), false); + } + } + } + @else + { + // don't have any "what" parameter so generate all the classes + // check if a scope exist : + @if $scope { + // wrapp grid into scope : + .#{$scope} { + @include _gridle_generate_classes($stateName, null, true); + } + } @else { + // generate classes : + @include _gridle_generate_classes($stateName, null, false); + } + } +} +$_gridle_generateOnlyOnce : true; // keep track of generate once classes +@mixin _gridle_generate_classes( + $stateName : null, + $what : null, + $has-parent : false +) { + + // generate these classes only once : + @if $_gridle_generateOnlyOnce + { + + // update status : + $_gridle_generateOnlyOnce : false; + + // | ------------------------ + // | Windows 8 fix + // | ------------------------ + + // Windows 8 fix for snap mode : + @media screen and (max-width: 400px) { + @-ms-viewport { width: device-width; } + } + + + // | ------------------------ + // | Container + // | ------------------------ + + // generate container class : + @if $what == null or index($what, container) or index($what, default) + { + $container-selector : (); + $container-selector : append( $container-selector, unquote("#{_gridle_classname($gridle-container-name-pattern)}"), comma); + #{$container-selector} { + @include gridle_container(); + } + } + + + // | ------------------------ + // | Parent selector + // | ------------------------ + + // parent common css : + @if $what == null or index($what, parent) or index($what, default) + { + $parentSelector : _gridle_classname($gridle-parent-name-pattern,null,null); + #{$parentSelector} { + @extend %gridle-clearfix; + @extend %gridle-parent-common; + } + } + + + // // | ------------------------ + // // | JSON Settings + // // | ------------------------ + + // // generate json settings : + @if $gridle-generate-json-settings + { + @include gridle_generate_json_settings(); + } + + } + + + // | ------------------------ + // | Set the list of states to generate + // | ------------------------ + $states : $_gridle_states; + @if $stateName and _gridle_has_state($stateName) { + $states : map-set((), $stateName, _gridle_get_state($stateName)); + } + + + // | ------------------------ + // | Store all the generated common selectors + // | ------------------------ + + // generate all selector for extends : + $grid-common-selector : (); + $push-common-selector : (); + $pull-common-selector : (); + $prefix-common-selector : (); + $suffix-common-selector : (); + + + // | ------------------------ + // | Media queries classes common selectors + // | ------------------------ + + // generate all classes for media queries : + @each $stateName, $state in $states { + + // setup vars : + $media : $stateName; + $classes : map-get($state, classes); + $context : map-get($state, context); + $name-multiplicator : map-get($state, name-multiplicator); + $generate-push-classes : _gridle_get_var_value(generate-push-classes, $state); + $generate-pull-classes : _gridle_get_var_value(generate-pull-classes, $state); + $generate-prefix-classes : _gridle_get_var_value(generate-prefix-classes, $state); + $generate-suffix-classes : _gridle_get_var_value(generate-suffix-classes, $state); + + // generate classes : + @if $classes == true and $context { + + // get specials columns : + $columnsMap : map-merge((), $_gridle_columns); + + // register each default columns : + @for $j from 0 through $context { + + // name : + $columnName : "#{$j*$name-multiplicator}"; + $columnWidth : $j * $name-multiplicator; + + // // create a column : + $col : _gridle_create_column($columnName, $columnWidth, $context, $name-multiplicator); + + // // add column in columns map : + $columnsMap : map-set($columnsMap, $columnName, $col); + } + + // loop on each columns to generate common selector : + @each $columnName, $column in $columnsMap { + + // add selector : + @if $what == null or index($what, grid) or index($what, default) { + $grid-common-selector : append( $grid-common-selector, unquote("#{_gridle_classname($gridle-grid-name-pattern, $media, $columnName)}"), comma ); + } + @if $generate-push-classes and ($what == null or index($what, push) or index($what, default)) { + $push-common-selector : append( $push-common-selector, unquote("#{_gridle_classname($gridle-push-name-pattern, $media, $columnName)}"), comma ); + } + @if $generate-pull-classes and ($what == null or index($what, pull) or index($what, default)) { + $pull-common-selector : append( $pull-common-selector, unquote("#{_gridle_classname($gridle-pull-name-pattern, $media, $columnName)}"), comma ); + } + @if $generate-prefix-classes and ($what == null or index($what, prefix) or index($what, default)) { + $prefix-common-selector : append( $prefix-common-selector, unquote("#{_gridle_classname($gridle-prefix-name-pattern, $media, $columnName)}"), comma ); + } + @if $generate-suffix-classes and ($what == null or index($what, suffix) or index($what, default)) { + $suffix-common-selector : append( $suffix-common-selector, unquote("#{_gridle_classname($gridle-suffix-name-pattern, $media, $columnName)}"), comma ); + } + } + } + } + + // common css : + @if $what == null or index($what, grid) or index($what, default) { + #{$grid-common-selector} { + @include _gridle_grid_common(); + } + } + @if $what == null or index($what, push) or index($what, default) { + #{$push-common-selector} { + @include _gridle_push_common(); + } + } + @if $what == null or index($what, pull) or index($what, default) { + #{$pull-common-selector} { + @include _gridle_pull_common(); + } + } + @if $what == null or index($what, prefix) or index($what, default) { + #{$prefix-common-selector} { + @include _gridle_prefix_common(); + } + } + @if $what == null or index($what, suffix) or index($what, default) { + #{$suffix-common-selector} { + @include _gridle_suffix_common(); + } + } + + + // | ------------------------ + // | Media queries classes + // | ------------------------ + + // generate all classes for differents media queries : + @each $stateName, $state in $states { + + // setup vars : + $classes : _gridle_get_var_value(classes, $state); + $context : _gridle_get_var_value(context, $state); + $name-multiplicator : _gridle_get_var_value(name-multiplicator, $state); + $generate-push-classes : _gridle_get_var_value(generate-push-classes, $state); + $generate-pull-classes : _gridle_get_var_value(generate-pull-classes, $state); + $generate-prefix-classes : _gridle_get_var_value(generate-prefix-classes, $state); + $generate-suffix-classes : _gridle_get_var_value(generate-suffix-classes, $state); + $generate-helpers-classes : _gridle_get_var_value(generate-helpers-classes, $state); + + // generate all media queries grid classes : + @if $classes == true { + + // parent common css : + $parentSelector : _gridle_classname($gridle-parent-name-pattern,$stateName,null); + #{$parentSelector} { + @extend %gridle-clearfix; + @extend %gridle-parent-common; + } + + // generate all the classes : + @include gridle_state($stateName, $has-parent) { + + // get specials columns : + $columnsMap : map-merge((), $_gridle_columns); + + // register each default columns : + @for $j from 0 through $context { + + // name : + $columnName : "#{$j*$name-multiplicator}"; + $columnWidth : $j * $name-multiplicator; + + // // create a column : + $col : _gridle_create_column($columnName, $columnWidth, $context, $name-multiplicator); + + // // add column in columns map : + $columnsMap : map-set($columnsMap, $columnName, $col); + } + + // generate all classes for columns : + @each $columnName, $column in $columnsMap { + + // variables : + $columnsCount : map-get($column, columns); + $columnsContext : map-get($column, context); + $columnsNameMultiplicator : map-get($column, name-multiplicator); + + // extend context in state (for columns) : + $extendedState : map-merge($state, ( + context : $columnsContext, + name-multiplicator : $columnsNameMultiplicator // inject the name multiplicator here getted from column to handle custom registered columns + )); + + // classes : + @if $what == null or index($what, grid) or index($what, default) { + #{_gridle_classname($gridle-grid-name-pattern, $stateName, $columnName)} { + @include _gridle($columnsCount, $extendedState); + } + } + @if $generate-push-classes == true and ($what == null or index($what, push) or index($what, default)) { + #{_gridle_classname($gridle-push-name-pattern, $stateName, $columnName)} { + @include _gridle_push($columnsCount, $extendedState); + } + } + @if $generate-pull-classes == true and ($what == null or index($what, pull) or index($what, default)) { + #{_gridle_classname($gridle-pull-name-pattern, $stateName, $columnName)} { + @include _gridle_pull($columnsCount, $extendedState); + } + } + @if $generate-prefix-classes == true and ($what == null or index($what, prefix) or index($what, default)) { + #{_gridle_classname($gridle-prefix-name-pattern, $stateName, $columnName)} { + @include _gridle_prefix($columnsCount, $extendedState); + } + } + @if $generate-suffix-classes == true and ($what == null or index($what, suffix) or index($what, default)) { + #{_gridle_classname($gridle-suffix-name-pattern, $stateName, $columnName)} { + @include _gridle_suffix($columnsCount, $extendedState); + } + } + } + + // media queries helpers classes : + @if $generate-helpers-classes == true { + @include _gridle_generate_helper_classes($stateName, $what); + } + } + } + } +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/gridle/_gridle.scss b/Resources/public/sass/contrib/gridle/gridle/_gridle.scss new file mode 100644 index 000000000..cddbe1376 --- /dev/null +++ b/Resources/public/sass/contrib/gridle/gridle/_gridle.scss @@ -0,0 +1,141 @@ +// |------------------------------------------------------ +// |------------------------------------------------------ +// Gridle (.scss) +// Gridle is an one and unique grid system file that allows you to generate almost all +// grid you've ever dreamt about. +// |------------------------------------------------------ +// |------------------------------------------------------ + +// |------------------------------------------------------ +// |------------------------------------------------------ +// Copyright (c) 2014 Olivier Bossel + +// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +// documentation files (the "Software"), to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all copies or substantial portions +// of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. +// |------------------------------------------------------ +// |------------------------------------------------------ + +// |------------------------------------------------------ +// |------------------------------------------------------ +// @created 25.03.13 +// @updated 09.06.15 +// @author Olivier Bossel +// @version 1.3.40 +// |------------------------------------------------------ +// |------------------------------------------------------ + +$_gridle-version : "1.3.40"; + + + + +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Variables +// |------------------------------------------------------ +// |------------------------------------------------------ + +$_gridle_settings : (); // the default settings +$_gridle_states : (); // the variable map for each states +$_gridle_clear_classes :(); // store each automatic clear count +$_gridle_columns : (); // store the registered special columns +$_gridle_states_debug_devices : (); // save the debug states devices + + + + +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Settings +// |------------------------------------------------------ +// |------------------------------------------------------ + +@import 'settings'; + + + + +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Silent classes +// |------------------------------------------------------ +// |------------------------------------------------------ + +@import 'silent-classes'; + + + + +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Common mixins +// |------------------------------------------------------ +// |------------------------------------------------------ + +@import 'common-mixins'; + + + + +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Functions +// |------------------------------------------------------ +// |------------------------------------------------------ + +@import 'functions'; + + + + +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Settings mixins +// |------------------------------------------------------ +// |------------------------------------------------------ + +@import 'settings-mixins'; + + + + +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Mixins +// |------------------------------------------------------ +// |------------------------------------------------------ + +@import 'mixins'; + + + + +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Generate mixins +// |------------------------------------------------------ +// |------------------------------------------------------ + +@import 'generate-mixins'; + + + + +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Default states +// |------------------------------------------------------ +// |------------------------------------------------------ + +@import 'default-states'; diff --git a/Resources/public/sass/contrib/gridle/gridle/_mixins.scss b/Resources/public/sass/contrib/gridle/gridle/_mixins.scss new file mode 100644 index 000000000..b4e440443 --- /dev/null +++ b/Resources/public/sass/contrib/gridle/gridle/_mixins.scss @@ -0,0 +1,831 @@ +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Mixins +// |------------------------------------------------------ +// |------------------------------------------------------ + +// Helper to apply multiple config for a certain state with one mixin +@mixin gridle_set( + $settings, + $state : default +) { + + // loop on each settings + @each $settingName, $settingValue in $settings + { + $sn : unquote("#{$settingName}"); + $sv : $settingValue; + + // check if setting name is a state : + @if _gridle_has_state($sn) { + // process the state + @include gridle_set($sv, $sn); + } @else { + @if $sn == container { + @include gridle_container($state); + } @else if $sn == grid { + @include gridle($sv, $state); + } @else if $sn == push { + @include gridle_push($sv, $state); + } @else if $sn == pull { + @include gridle_pull($sv, $state); + } @else if $sn == prefix { + @include gridle_prefix($sv, $state); + } @else if $sn == suffix { + @include gridle_suffix($sv, $state); + } @else if $sn == pull { + @include gridle_pull($sv, $state); + } @else if $sn == clear_each { + @include gridle_clear_each(nth($sv,1), nth($sv,2), $state); + } @else if $sn == centered { + @include gridle_centered($state); + } @else if $sn == parent { + @include gridle_parent($state); + } @else if $sn == vertical_align { + @include gridle_vertical_align($sv, $state); + } @else if $sn == hide { + @if $sv == true { + @include gridle_hide($state); + } @else { + @include gridle_show($state); + } + } @else if $sn == show { + @if $sv == true { + @include gridle_show($state); + } @else { + @include gridle_hide($state); + } + } @else if $sn == visible { + @if $sv == true { + @include gridle_visible($state); + } @else { + @include gridle_not_visible($state); + } + } @else if $sn == not_visible { + @if $sv == true { + @include gridle_not_visible($state); + } @else { + @include gridle_visible($state); + } + } @else if $sn == show_inline { + @if $sv == true { + @include gridle_show_inline($state); + } @else { + @include gridle_hide($state); + } + } @else if $sn == float { + @include gridle_float($sv, $state); + } @else if $sn == clear { + @include gridle_clear($sv, $state); + } @else if $sn == no_gutter + or $sn == no_margin { + @include gridle_no_gutter($sv, $state); + } @else if $sn == gutter + or $sn == margin { + @include gridle_gutter($sv, $state); + } @else { + // we do nothing + } + } + } +} + +// Responsive helpers mixins : +@mixin gridle_state( + $states, + $has-parent : true +) { + + // check first param if is a state : + $firstState : nth($states,1); + @if _gridle_has_state($firstState) { + + // loop on each states : + @each $state in $states + { + // variables : + $html-states-classes : _gridle_get_var_value(html-states-classes, $state); + $debug : _gridle_get_var_value(debug, $state); + $stateName : _gridle_get_var_value(name, $state); + + // check if is a state : + @if ($html-states-classes or $debug) + and $stateName { + // html class : + @if $has-parent { + html#{_gridle_classname("#{$stateName}")} & { @content; } + } @else { + html#{_gridle_classname("#{$stateName}")} { @content; } + } + } + + // get the media query : + $q : _gridle_get_media_query($state); + + // make the media query if a query exist : + @if $q { + @media #{$q} { + @content; + } + } + @else + { + @content; + } + } + + } @else { + + // variables : + $html-states-classes : _gridle_get_var_value(html-states-classes, $states); + $debug : _gridle_get_var_value(debug, $states); + $stateName : _gridle_get_var_value(name, $states); + + // check if is a state : + @if ($html-states-classes or $debug) + and $stateName { + // html class : + @if $has-parent { + html#{_gridle_classname("#{$stateName}")} & { @content; } + } @else { + html#{_gridle_classname("#{$stateName}")} { @content; } + } + } + + // get the media query : + $q : _gridle_get_media_query($states); + + // make the media query if a query exist : + @if $q { + @media #{$q} { + @content; + } + } + @else + { + @content; + } + + } +} + + + +// Container mixin : +@mixin gridle_container( + $state : default +) { + @include _gridle_container_common($state); +} + + +// Grid mixin : +// Set the width of the specified grid column : +@mixin gridle( + $columns, + $state-or-context : default, + $state : default +) { + // manage state and context : + $context : null; + @if type-of($state-or-context) == number { + $context : $state-or-context; + } @else { + $state : $state-or-context; + } + + // common : + @include _gridle_grid_common(); + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle($columns, $state, $context); + } + } @else { + @include _gridle($columns, $state, $context); + } +} +@mixin _gridle( + $columns, + $state : default, + $context : null +) { + // vars : + $name : _gridle_get_var_value(name, $state); + @if type-of($context) != number { + $context : _gridle_get_var_value(context, $state); + } + $name-multiplicator : _gridle_get_var_value(name-multiplicator, $state); + $gutter-width : _gridle_get_var_value(gutter-width, $state); + $ie7-support : _gridle_get_var_value(ie7-support, $state); + $debug : _gridle_get_var_value(debug, $state); + $debug-show-class-names : _gridle_get_var_value(debug-show-class-names, $state); + + // manage columns + @if type-of($columns) != number and map-has-key($_gridle_columns, $columns) { + // the columns is a saved one, get the context and column value + $column : map-get($_gridle_columns, $columns); + $context : map-get($column, context); + $columns : map-get($column, columns); + } @else if type-of($columns) == number { + $columns : $columns / $name-multiplicator; + } @else { + @error "the column #{$columns} does not exist..."; + } + + // vars : + $width : percentage(1 / $context * $columns); + + // set value : + width:$width; + + // ie7 support : + @if $ie7-support == true { + *width: expression((this.parentNode.clientWidth/#{$context}*#{($columns / $name-multiplicator)} - parseInt(this.currentStyle['paddingLeft']) - parseInt(this.currentStyle['paddingRight'])) + 'px'); + } + + // debug : + @if $debug == true and $debug-show-class-names == true { + #{$gridle-debug-selector} { + &:before { + @if $name == default { + content:"grid-#{$name}-#{$columns}"; + } @else { + content:"grid-#{$name}-#{$columns}" !important; + } + } + &.parent:before { + @if $name == default { + content:"grid-parent-#{$name}-#{$columns}"; + } @else { + content:"grid-parent-#{$name}-#{$columns}" !important; + } + } + } + } +} + + +// push : +// Push the element of the count of column wanted +@mixin gridle_push( + $columns, + $state-or-context : default, + $state : default +) { + // manage state and context + $context : null; + @if type-of($state-or-context) == number { + $context : $state-or-context; + } @else { + $state : $state-or-context; + } + + // common : + @include _gridle_push_common($state); + + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_push($columns, $state, $context); + } + } @else { + @include _gridle_push($columns, $state, $context); + } +} +@mixin _gridle_push( + $columns, + $state : default, + $context : null +) { + // variables : + $name : _gridle_get_var_value(name, $state); + @if type-of($context) != number { + $context : _gridle_get_var_value(context, $state); + } + $direction : _gridle_get_var_value(direction, $state); + $name-multiplicator : _gridle_get_var_value(name-multiplicator, $state); + $debug : _gridle_get_var_value(debug, $state); + $debug-show-class-names : _gridle_get_var_value(debug-show-class-names, $state); + + // vars : + $width : percentage(1 / $context) * ($columns / $name-multiplicator); + @if $direction == rtl { $width : $width*-1; } + left:$width; + + // debug css : + @if $debug == true and $debug-show-class-names == true { + #{$gridle-debug-selector} { + &:after { + @if $name == default { + content:"push-#{$name}-#{$columns}"; + } @else { + content:"push-#{$name}-#{$columns}" !important; + } + } + } + } + +} + + +// pull : +// Pull the element of the count of column wanted +@mixin gridle_pull( + $columns, + $state : default +) { + // common : + @include _gridle_pull_common($state); + + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_pull($columns,$state); + } + } @else { + @include _gridle_pull($columns,$state); + } +} +@mixin _gridle_pull( + $columns, + $state : default +) { + // vars : + $name : _gridle_get_var_value(name, $state); + $context : _gridle_get_var_value(context, $state); + $direction : _gridle_get_var_value(direction, $state); + $name-multiplicator : _gridle_get_var_value(name-multiplicator, $state); + $debug : _gridle_get_var_value(debug, $state); + $debug-show-class-names : _gridle_get_var_value(debug-show-class-names, $state); + + // vars : + $width : percentage(1 / $context) * ($columns / $name-multiplicator); + @if $direction == rtl { $width : $width*-1; } + right:$width; + + // debug css : + @if $debug == true and $debug-show-class-names == true { + #{$gridle-debug-selector} { + &:after { + @if $name == default { + content:"pull-#{$name}-#{$columns}"; + } @else { + content:"pull-#{$name}-#{$columns}" !important; + } + } + } + } +} + + +// push : +// Push the element of the count of column wanted +@mixin gridle_prefix( + $columns, + $state : default +) { + // common : + @include _gridle_prefix_common($state); + + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_prefix($columns,$state); + } + } @else { + @include _gridle_prefix($columns,$state); + } +} +@mixin _gridle_prefix( + $columns, + $state : default +) { + // vars : + $name : _gridle_get_var_value(name, $state); + $context : _gridle_get_var_value(context, $state); + $direction : _gridle_get_var_value(direction, $state); + $gutter-width : _gridle_get_var_value(gutter-width, $state); + $name-multiplicator : _gridle_get_var_value(name-multiplicator, $state); + $debug : _gridle_get_var_value(debug, $state); + $debug-show-class-names : _gridle_get_var_value(debug-show-class-names, $state); + + // vars : + $width : percentage(1 / $context) * ($columns / $name-multiplicator); + + // set value : + @if $direction == rtl { margin-right:$width; } + @else { margin-left:$width; } + + // debug css : + @if $debug == true and $debug-show-class-names == true { + #{$gridle-debug-selector} { + &:after { + @if $name == default { + content:"prefix-#{$name}-#{$columns}"; + } @else { + content:"prefix-#{$name}-#{$columns}" !important; + } + } + } + } +} + + +// pull : +// Pull the element of the count of column wanted +@mixin gridle_suffix( + $columns, + $state : default +) { + // common : + @include _gridle_suffix_common($state); + + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_suffix($columns,$state); + } + } @else { + @include _gridle_suffix($columns,$state); + } +} +@mixin _gridle_suffix( + $columns, + $state : default +) { + // vars : + $name : _gridle_get_var_value(name, $state); + $context : _gridle_get_var_value(context, $state); + $direction : _gridle_get_var_value(direction, $state); + $gutter-width : _gridle_get_var_value(gutter-width, $state); + $name-multiplicator : _gridle_get_var_value(name-multiplicator, $state); + $debug : _gridle_get_var_value(debug, $state); + $debug-show-class-names : _gridle_get_var_value(debug-show-class-names, $state); + + // vars : + $width : percentage(1 / $context) * ($columns / $name-multiplicator); + + // set value : + @if $direction == rtl { margin-left:$width; } + @else { margin-right:$width; } + + // debug css : + @if $debug == true and $debug-show-class-names == true { + #{$gridle-debug-selector} { + &:after { + @if $name == default { + content:"suffix-#{$name}-#{$columns}"; + } @else { + content:"suffix-#{$name}-#{$columns}" !important; + } + } + } + } +} + + +// grid background : +// Display the grid background debug +@mixin gridle_grid_background( + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_grid_background($state); + } + } @else { + @include _gridle_grid_background($state); + } +} +@mixin _gridle_grid_background( + $state : default +) { + + // variables : + $context : _gridle_get_var_value(context, $state); + + position:relative; + z-index:9999; + &:before { + content:''; + position:absolute; + top:0; left:0; + width:100%; height:100% !important; + // vars : + $width : percentage(1 / $context); + background: linear-gradient(to right, rgba(0,0,0,.01) 50% , rgba(0,0,0,.04) 50%); /* Standard syntax */ + background-size:($width*2) 100%; + // background-position:$gridle-gutter-width/2 0; + } +} + + +/** + * Parent clear each + */ +// Grid mixin : +// Set the width of the specified grid column : +@mixin gridle_clear_each( + $clearEach, + $clearWhat : both, + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_clear_each($clearEach, $clearWhat); + } + } @else { + @include _gridle_clear_each($clearEach, $clearWhat); + } +} +@mixin _gridle_clear_each( + $clearEach, + $clearWhat +) { + > *:nth-child(#{$clearEach}n+1) { + clear : $clearWhat; + } +} + + +// Grid centered : +@mixin gridle_centered( + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_centered(); + } + } @else { + @include _gridle_centered(); + } +} +@mixin _gridle_centered() { + display:block !important; + float:none !important; + margin-left:auto !important; + margin-right:auto !important; + clear:both !important; +} + + +// Grid parent : +@mixin gridle_parent( + $state : default +) { + // common : + @include _gridle_parent_common(); + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_parent(); + } + } @else { + @include _gridle_parent(); + } +} +@mixin _gridle_parent() { + @include gridle_no_gutter(); +} + + +/** + * Vertical align : + */ +@mixin gridle_vertical_align( + $align : middle, + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_vertical_align($align); + } + } @else { + @include _gridle_vertical_align($align); + } +} +@mixin _gridle_vertical_align( + $align : middle +) { + font-size:0; + clear:both; + + > * { + display:inline-block; + float:none !important; + vertical-align:$align; + font-size:1rem; + } +} + + +// Hide on : +// @param String $media On what state +@mixin gridle_hide( + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_hide(); + } + } @else { + @include _gridle_hide(); + } +} +@mixin _gridle_hide() { + display:none; +} + + +// Not visible on : +// @param String $media What to hide (one of the 3 state classes name) +@mixin gridle_not_visible( + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_not_visible(); + } + } @else { + @include _gridle_not_visible(); + } +} +@mixin _gridle_not_visible() { + visibility:hidden; +} + + +// Show on +// @param String $media What to hide (one of the 3 state classes name) +@mixin gridle_show( + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_show(); + } + } @else { + @include _gridle_show(); + } +} +@mixin _gridle_show() { + display:block; +} + + +/** + * Show inline + * + * @param String $state The state name + */ +@mixin gridle_show_inline( + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_show_inline(); + } + } @else { + @include _gridle_show_inline(); + } +} +@mixin _gridle_show_inline() { + display:inline-block; +} + + +// Visible on : +// @param String $media On what state +@mixin gridle_visible( + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_visible(); + } + } @else { + @include _gridle_visible(); + } +} +@mixin _gridle_visible() { + visibility:visible; +} + + +// Gridle Right : +@mixin gridle_float( + $float-direction : left, + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_float($float-direction); + } + } @else { + @include _gridle_float($float-direction); + } +} +@mixin _gridle_float( + $float-direction : left +) { + float:#{$float-direction}; +} + + +// Gridle clear : +// @param String $clear-direction The direction to clear +// @param String $state The state +@mixin gridle_clear( + $clear-direction : both, + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_clear($clear-direction); + } + } @else { + @include _gridle_clear($clear-direction); + } +} +@mixin _gridle_clear( + $clear-direction : both +) { + clear:#{$clear-direction}; +} + + +// Gridle no gutter : +// @param String $side The side to clear +// @param String $state The state +@mixin gridle_no_gutter( + $side : left right, + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_no_gutter($side); + } + } @else { + @include _gridle_no_gutter($side); + } +} +@mixin gridle_no_margin( + $side : left right, + $state : default +) { + @include gridle_no_gutter($side, $state); +} +@mixin _gridle_no_gutter( + $side : left right +) { + @each $s in $side { + padding-#{$s} : 0; + } +} + + +// Gridle gutter : +// @param String $side The side to clear +// @param String $state The state +@mixin gridle_gutter( + $side : left right, + $state : default +) { + // check if need media query : + @if $state { + @include gridle_state($state) { + @include _gridle_gutter($side); + } + } @else { + @include _gridle_gutter($side); + } +} +// shortcut : +@mixin gridle_margin( + $side : left right, + $state : default +) { + @include gridle_gutter($side, $state); +} +@mixin _gridle_gutter( + $side : left right, + $state : default +) { + $gutter-width : _gridle_get_var_value(gutter-width, $state); + @each $s in $side { + padding-#{$s} : $gutter-width / 2; + } +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/gridle/_settings-mixins.scss b/Resources/public/sass/contrib/gridle/gridle/_settings-mixins.scss new file mode 100644 index 000000000..bfd2df859 --- /dev/null +++ b/Resources/public/sass/contrib/gridle/gridle/_settings-mixins.scss @@ -0,0 +1,139 @@ +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Settings mixins +// |------------------------------------------------------ +// |------------------------------------------------------ + +/** + * Setup + */ +@mixin gridle_setup( + $settings : () +) { + $_gridle-settings : map-merge(( + name : default, + min-width : null, + max-width : null, + query : null, + classes : true, + context : 12, + gutter-width : 20px, + direction : ltr, + name-multiplicator : 1, + debug : false, + debug-show-class-names : true, + ie7-support : false, + html-states-classes : false, + generate-push-classes : true, + generate-pull-classes : true, + generate-prefix-classes : true, + generate-suffix-classes : true, + generate-helpers-classes : true + ), $settings) !global; + + // register default state : + @include gridle_register_state(default, $_gridle-settings); + +} + +// Register an state : +@mixin gridle_register_state( + $name, + $settings +) { + // settings : + $settings : map-merge($_gridle-settings, $settings); + + // set name : + $settings : map-set($settings, name, $name); + + // add state in maps : + $_gridle_states : map-set($_gridle_states, $name, $settings) !global; +} + + +/** + * Register a clear each class + */ +@mixin gridle_register_clear_each( + $count, + $clearWhat +) { + // create the clear map : + $classMap : ( + clearEach : $count, + clearWhat : $clearWhat + ); + + // append to map : + $_gridle_clear_classes : map-set($_gridle_clear_classes, $count, $classMap) !global; +} + + +/** + * Register a special class + */ +@mixin gridle_register_column( + $name, + $columns, + $context +) { + // create a column : + $col : _gridle_create_column($name, $columns, $context); + + // add column in maps : + $_gridle_columns : map-set($_gridle_columns, $name, $col) !global; +} + + +/** + * Register default states + */ +@mixin gridle_register_default_states() { + @include gridle_register_state(mobile, ( + max-width : 480px + )); + @include gridle_register_state(tablet, ( + min-width : 481px, + max-width : 1024px + )); +} + + +/** + * Register default mobile first states : + */ +@mixin gridle_register_default_mobile_first_states() { + @include gridle_register_state(xs, ( + max-width : 768px + )); + @include gridle_register_state(sm, ( + min-width : 768px + )); + @include gridle_register_state(md, ( + min-width : 992px + )); + @include gridle_register_state(lg, ( + min-width : 1200px + )); +} + + +/** + * Set the debug device (not used for now) + * + * @param String $state The state to update + * @para m String $device The device to use (iphone, etc...) + */ +@mixin gridle_set_debug_device( + $state : default, + $device : null +) { + + // check params : + @if $state and $device { + // set the state device : + $_gridle_states_debug_devices : append($_gridle_states_debug_devices, unquote("\"#{$state}\" : \"#{$device}\""), comma); + } + +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/gridle/_settings.scss b/Resources/public/sass/contrib/gridle/gridle/_settings.scss new file mode 100644 index 000000000..991c35154 --- /dev/null +++ b/Resources/public/sass/contrib/gridle/gridle/_settings.scss @@ -0,0 +1,69 @@ +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Settings +// |------------------------------------------------------ +// |------------------------------------------------------ + +$gridle-generate-json-settings : true !default; + +$gridle-debug-selector : ".gridle-debug &, &.gridle-debug" !default; + +$gridle-class-prefix : '' !default; +$gridle-class-separator : '-' !default; + +$gridle-container-name-pattern : ('container') !default; + +$gridle-grid-name-pattern : ('grid','%-','%state','%-','%count') !default; +$gridle-push-name-pattern : ('push','%-','%state','%-','%count') !default; +$gridle-pull-name-pattern : ('pull','%-','%state','%-','%count') !default; +$gridle-prefix-name-pattern : ('prefix','%-','%state','%-','%count') !default; +$gridle-suffix-name-pattern : ('suffix','%-','%state','%-','%count') !default; + +$gridle-parent-name-pattern : ('parent','%-','%state') !default; +$gridle-centered-name-pattern : ('centered','%-','%state') !default; + +$gridle-vertical-align-middle-name-pattern : ('vertical','%-','align','%-','%state','%-','middle') !default; +$gridle-vertical-align-top-name-pattern : ('vertical','%-','align','%-','%state','%-','top') !default; +$gridle-vertical-align-bottom-name-pattern : ('vertical','%-','align','%-','%state','%-','bottom') !default; + +$gridle-hide-name-pattern : ('hide','%-','%state') !default; +$gridle-show-name-pattern : ('show','%-','%state') !default; +$gridle-show-inline-name-pattern : ('show','%-','inline','%-','%state') !default; +$gridle-not-visible-name-pattern : ('not','%-','visible','%-','%state') !default; +$gridle-visible-name-pattern : ('visible','%-','%state') !default; + +$gridle-float-left-name-pattern : ('float','%-','%state','%-','left') !default; +$gridle-float-right-name-pattern : ('float','%-','%state','%-','right') !default; + +$gridle-clear-name-pattern : ('clear','%-','%state') !default; +$gridle-clear-left-name-pattern : ('clear','%-','%state','%-','left') !default; +$gridle-clear-right-name-pattern : ('clear','%-','%state','%-','right') !default; +$gridle-clear-each-pattern : ('clear','%-','each','%-','%state','%-','%count') !default; + +$gridle-no-gutter-name-pattern : ('no','%-','gutter','%-','%state') !default; +$gridle-no-gutter-left-name-pattern : ('no','%-','gutter','%-','%state','%-','left') !default; +$gridle-no-gutter-right-name-pattern : ('no','%-','gutter','%-','%state','%-','right') !default; +$gridle-no-gutter-top-name-pattern : ('no','%-','gutter','%-','%state','%-','top') !default; +$gridle-no-gutter-bottom-name-pattern : ('no','%-','gutter','%-','%state','%-','bottom') !default; + +$gridle-no-margin-name-pattern : ('no','%-','margin','%-','%state') !default; +$gridle-no-margin-left-name-pattern : ('no','%-','margin','%-','%state','%-','left') !default; +$gridle-no-margin-right-name-pattern : ('no','%-','margin','%-','%state','%-','right') !default; +$gridle-no-margin-top-name-pattern : ('no','%-','margin','%-','%state','%-','top') !default; +$gridle-no-margin-bottom-name-pattern : ('no','%-','margin','%-','%state','%-','bottom') !default; + +$gridle-gutter-name-pattern : ('gutter','%-','%state') !default; +$gridle-gutter-left-name-pattern : ('gutter','%-','%state','%-','left') !default; +$gridle-gutter-right-name-pattern : ('gutter','%-','%state','%-','right') !default; +$gridle-gutter-top-name-pattern : ('gutter','%-','%state','%-','top') !default; +$gridle-gutter-bottom-name-pattern : ('gutter','%-','%state','%-','bottom') !default; + +$gridle-margin-name-pattern : ('margins','%-','%state') !default; +$gridle-margin-left-name-pattern : ('margin','%-','%state','%-','left') !default; +$gridle-margin-right-name-pattern : ('margin','%-','%state','%-','right') !default; +$gridle-margin-top-name-pattern : ('margin','%-','%state','%-','top') !default; +$gridle-margin-bottom-name-pattern : ('margin','%-','%state','%-','bottom') !default; + +$gridle-auto-height-name-pattern : ('auto','%-','height','%-','%state') !default; + +$gridle-debug-color-name-pattern : ('debug','%-','color','%-','%state','%-','%count') !default; \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/gridle/_silent-classes.scss b/Resources/public/sass/contrib/gridle/gridle/_silent-classes.scss new file mode 100644 index 000000000..da72abc58 --- /dev/null +++ b/Resources/public/sass/contrib/gridle/gridle/_silent-classes.scss @@ -0,0 +1,106 @@ +// |------------------------------------------------------ +// |------------------------------------------------------ +// | Silent classes +// |------------------------------------------------------ +// |------------------------------------------------------ + +%gridle-pie-clearfix { + &:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; + } + + & { + display: inline-block; + } + + html[xmlns] & { + display: block; + } + + * html & { + height: 1%; + } +} +%gridle-simple-clearfix { + &:after { + content: ""; + display: table; + clear: both; + border-spacing:0; + } +} +%gridle-clearfix { + // For modern browser + &:before, + &:after { + content:""; + display:table; + border-spacing:0; + } + &:after { + clear:both; + } + // For IE 6/7 (trigger hasLayout + & { + zoom:1; + } +} +%gridle-push-pull-debug-background-common { + background-size:50px 90%; + background-position:0 50%; + background-repeat:repeat-x; +} +%gridle-push-pull-common { + position:relative; +} +%gridle-container-common { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +%gridle-parent-common { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +%gridle-container-debug-common { + background-color:#f5f5f5; +} +%gridle-grid-debug-common { + &:before, + &:after { + content:""; + display:block; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowRkEzNzVFNTg1NjgxMUUyOUI4RjhEMzg4QzM4QjZFOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowRkEzNzVFNjg1NjgxMUUyOUI4RjhEMzg4QzM4QjZFOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBGQTM3NUUzODU2ODExRTI5QjhGOEQzODhDMzhCNkU4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBGQTM3NUU0ODU2ODExRTI5QjhGOEQzODhDMzhCNkU4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++5+BhQAAAA9JREFUeNpiYGBgkAIIMAAAHwAbZIBtGgAAAABJRU5ErkJggg==); + margin:10px 0; + padding:5px 0; + text-align:center; + color:white; + font-size:11px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + display:block !important; + } + background-color:#daeff5; +} +%gridle-grid-common { + display:inline-block; + min-height:1px; + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + +} +%gridle-prefix-debug-common { + background-color:#dae7e9 !important; +} +%gridle-suffix-debug-common { + background-color:#dae7e9 !important; +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/style-bootstrap.scss b/Resources/public/sass/contrib/gridle/style-bootstrap.scss new file mode 100644 index 000000000..f2536ae07 --- /dev/null +++ b/Resources/public/sass/contrib/gridle/style-bootstrap.scss @@ -0,0 +1,11 @@ +/** + * Bootstrap style : + */ +.row { + margin:20px 0; // adding margin to rows +} +.thumb { + background:#eee; + width:100%; height:0; + padding-bottom:56%; +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/style.scss b/Resources/public/sass/contrib/gridle/style.scss new file mode 100644 index 000000000..6cc1f299b --- /dev/null +++ b/Resources/public/sass/contrib/gridle/style.scss @@ -0,0 +1,76 @@ +/** + * Imports : + */ +@import 'compass/reset'; + +/** + * Import grid settings : + * This to be able to use gridle mixins, etc... + */ +@import 'grid-settings'; + +/** + * Medias : + */ +ul#medias { + background:black; + text-align:center; + margin-bottom:30px; + + li { + display:inline-block; + height:50px; + line-height:50px; + padding:0 30px; + color:white; + font-size:16px; + cursor:pointer; + margin:0; + + &.active, + &:hover { + background:white; + color:black; + } + } + + @include gridle_state(( + max-width : 620px + )) { + display:none; + } +} + +/** + * Basic formatting : + */ +html { + font:11px/1.5 'Helvetica Neue', Verdana, sans-serif; +} +body { + @include gridle_state(mobile tablet) { + text-align:center; + } + + @include gridle_state(ipad-landscape) { + font-size:16px; + } +} + + +/** + * Gridle set sample : + */ +#myCoolItem { + @include gridle_set(( + grid : 8, + push : 2, + tablet : ( + grid : 12, + push : 0 + ), + mobile : ( + visible : false + ) + )); +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/gridle/tests.scss b/Resources/public/sass/contrib/gridle/tests.scss new file mode 100644 index 000000000..970fca71b --- /dev/null +++ b/Resources/public/sass/contrib/gridle/tests.scss @@ -0,0 +1,280 @@ +// Import grid settings : +@import 'grid-settings'; + +// standard grid mixins : +.grid-12 { + @include gridle(12); +} +.grid-1on5 { + @include gridle("1on5"); +} +.grid-12-on-100 { + @include gridle(12, 100); +} +.grid-15-on-100-on-mobile { + @include gridle(15, 100, mobile); +} +.grid-30-on-100-on-mobile-and-tablet { + @include gridle(30, 100); + @include gridle(30, 100, mobile tablet); +} + +// parent +.grid-parent { + @include gridle_parent(); +} +.grid-parent-set { + @include gridle_set(( + parent : true + )); +} + +// clear each +.clear-each-2 { + @include gridle_clear_each(2); +} +.clear-each-2-left { + @include gridle_clear_each(2, left); +} +.clear-each-2-left-mobile { + @include gridle_clear_each(2, left, mobile); +} +.clear-each-2-set { + @include gridle_set(( + clear_each : ( 2, left ) + )); +} + +// centered +.centered { + @include gridle_centered(); +} +.centered-mobile { + @include gridle_centered(mobile); +} + +// certical align +.vertical-align { + @include gridle_vertical_align(); +} +.vertical-align-bottom { + @include gridle_vertical_align(bottom); +} +.vertical-align-top-mobile { + @include gridle_vertical_align(top, mobile); +} +.vertical-align-set { + @include gridle_set(( + vertical_align : middle + )); +} + +// push +.push-6 { + @include gridle_push(6); +} +.push-12-mobile { + @include gridle_push(12, mobile); +} +.push-set { + @include gridle_set(( + push : 3 + )); +} + +// pull +.pull-6 { + @include gridle_pull(6); +} +.pull-12-mobile { + @include gridle_pull(12, mobile); +} +.pull-set { + @include gridle_set(( + pull : 3 + )); +} + +// prefix +.prefix-6 { + @include gridle_prefix(6); +} +.prefix-12-mobile { + @include gridle_prefix(12, mobile); +} +.prefix-set { + @include gridle_set(( + prefix : 3 + )); +} + +// suffix +.suffix-6 { + @include gridle_suffix(6); +} +.suffix-12-mobile { + @include gridle_suffix(12, mobile); +} +.suffix-set { + @include gridle_set(( + suffix : 3 + )); +} + +// hide +.hide { + @include gridle_hide(); +} +.hide-mobile { + @include gridle_hide(mobile); +} +.hide-set { + @include gridle_set(( + hide : true + )); +} + +// show +.show { + @include gridle_show(); +} +.show-mobile { + @include gridle_show(mobile); +} +.show-set { + @include gridle_set(( + show : false + )); +} + +// show_inline +.show_inline { + @include gridle_show_inline(); +} +.show_inline-mobile { + @include gridle_show_inline(mobile); +} +.show_inline-set { + @include gridle_set(( + show_inline : true + )); +} + +// not_visible +.not_visible { + @include gridle_not_visible(); +} +.not_visible-mobile { + @include gridle_not_visible(mobile); +} +.not_visible-set { + @include gridle_set(( + not_visible : true + )); +} + +// visible +.visible { + @include gridle_visible(); +} +.visible-mobile { + @include gridle_visible(mobile); +} +.visible-set { + @include gridle_set(( + visible : false + )); +} + +// gridle state +.gridle-state { + background: red; + + @include gridle_state(mobile tablet) { + background: pink; + } + @include gridle_state(( + query : "only print" + )) { + background: yellow; + } + @include gridle_state(( + max-width : 200px + )) { + background: green; + } +} + +// gridle set +.gridle-set { + @include gridle_set(( + grid : 6, + push : 2, + tablet : ( + grid : 8, + push : 0, + ), + clear : left, + mobile : ( + grid : 12, + push : 0, + pull : 0 + ) + )); +} +.gridle-set-multiple { + @include gridle_set(( + grid : 6 + )); + @include gridle_set(( + grid : 12 + ), mobile tablet); +} + +// float-right +.float-right { + @include gridle_float(right); +} +.float-left-mobile { + @include gridle_float(left, mobile); +} +.float-set { + @include gridle_set(( + float : right + )); +} + +// clear +.clear { + @include gridle_clear(); +} +.clear-left-mobile { + @include gridle_clear(left, mobile); +} +.clear-set { + @include gridle_set(( + clear : left + )); +} + +// gutters +.gutters { + @include gridle_gutter(); +} +.gutters-left { + @include gridle_gutter(left); +} +.gutters-side-mobile { + @include gridle_gutter(left right, mobile); +} + +// no-gutter +.no-gutter { + @include gridle_no_gutter(); +} +.no-gutter-left { + @include gridle_no_gutter(left); +} +.no-gutter-side-mobile { + @include gridle_no_gutter(left right, mobile); +} \ No newline at end of file diff --git a/Resources/public/sass/contrib/normalize/_normalize.scss b/Resources/public/sass/contrib/normalize/_normalize.scss new file mode 100644 index 000000000..5e5e3c898 --- /dev/null +++ b/Resources/public/sass/contrib/normalize/_normalize.scss @@ -0,0 +1,424 @@ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS and IE text size adjust after device orientation change, + * without disabling user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability of focused elements when they are also in an + * active/hover state. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + box-sizing: content-box; /* 2 */ +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/Resources/public/sass/mixins/_alerts.scss b/Resources/public/sass/mixins/_alerts.scss new file mode 100644 index 000000000..d7d4d62ab --- /dev/null +++ b/Resources/public/sass/mixins/_alerts.scss @@ -0,0 +1,7 @@ +@mixin alert($color) { + background: transparentize($color,0.8); + color: $color; + font-weight: bold; + margin-bottom: 0.75em; + padding: 0.75em; +} \ No newline at end of file diff --git a/Resources/public/sass/mixins/_buttons.scss b/Resources/public/sass/mixins/_buttons.scss new file mode 100644 index 000000000..603856e23 --- /dev/null +++ b/Resources/public/sass/mixins/_buttons.scss @@ -0,0 +1,34 @@ +@mixin button($button-background-color, $button-text-color) { + color: $button-text-color; + background: $button-background-color; + border: medium none; + box-shadow: none; + padding: $button-padding; + text-decoration: none; + text-align: center; + display: inline-block; + vertical-align: middle; + white-space: nowrap; + line-height: normal; + @include border-top-radius($base-border-radius); + @include border-bottom-radius($base-border-radius); + + &:hover, + &:active { + background: darken($button-background-color, 5%); + color: $button-text-color; // force text color for anchor tags + text-decoration: none; // remove underline on anchor tags + } + + &:focus { + background: darken($button-background-color, 5%); + } + + &[disabled] { + background: transparentize($button-background-color,0.4); + color: darken($button-background-color, 10%); + &:hover { + box-shadow: none; + } + } +} \ No newline at end of file diff --git a/Resources/public/sass/modules/_alerts.scss b/Resources/public/sass/modules/_alerts.scss new file mode 100644 index 000000000..03ed6b5cd --- /dev/null +++ b/Resources/public/sass/modules/_alerts.scss @@ -0,0 +1,15 @@ +.success { + @include alert($green); +} + +.error { + @include alert($red); +} + +.alert { + @include alert($orange); +} + +.notice { + @include alert($blue); +} \ No newline at end of file diff --git a/Resources/public/sass/modules/_buttons.scss b/Resources/public/sass/modules/_buttons.scss new file mode 100644 index 000000000..9e0036de5 --- /dev/null +++ b/Resources/public/sass/modules/_buttons.scss @@ -0,0 +1,12 @@ +.sc-button { + @include button($grey-15, $button-text-color); + + &.blue { @include button($blue, $white); } + &.green { @include button($green, $white); } + &.orange { @include button($orange, $white); } + &.red { @include button($red, $white); } + &.black { @include button($grey-90, $white); } + &.white { @include button($white, $text-color); } +} + +@import "../custom/modules/buttons"; \ No newline at end of file diff --git a/Resources/public/sass/modules/_content.scss b/Resources/public/sass/modules/_content.scss new file mode 100644 index 000000000..49be33d38 --- /dev/null +++ b/Resources/public/sass/modules/_content.scss @@ -0,0 +1,7 @@ +html, body { + height: 100%; +} + +.content { + min-height: 85%; +} \ No newline at end of file diff --git a/Resources/public/sass/modules/_footer.scss b/Resources/public/sass/modules/_footer.scss new file mode 100644 index 000000000..1193f4c30 --- /dev/null +++ b/Resources/public/sass/modules/_footer.scss @@ -0,0 +1,65 @@ +.footer { + background: $footer-background; + padding-top: $footer-vertical-padding; + padding-bottom: $footer-vertical-padding; + width: 100%; + + .footer-logo { + text-align: center; + margin-bottom: 2em; + + img { + height: 3em; + } + } + + .footer-links { + @include gridle_clear(both); + + margin-bottom: $base-spacing; + @include gridle(8); + @include gridle_centered(); + } + + ul { + margin-bottom: $base-spacing*2; + @include gridle (4); + list-style-type: none; + } + + li { + text-align: center; + } + + li a { + color: $footer-link-color; + + &:hover { + color: transparentize($footer-color, 0); + } + } + + li h3 { + color: $footer-color; + font-size: 1em; + font-weight: 800; + margin-bottom: .4em; + } + + hr { + @include gridle_clear(both); + border: 1px solid transparentize($footer-disclaimer-color, .3); + margin: 0 auto $base-spacing; + width: 12em; + } + + p { + @include gridle_clear(both); + color: $footer-disclaimer-color; + font-size: .9em; + line-height: 1.5em; + margin: auto; + max-width: 35em; + text-align: center; + } +} \ No newline at end of file diff --git a/Resources/public/sass/modules/_forms.scss b/Resources/public/sass/modules/_forms.scss new file mode 100644 index 000000000..970d33a48 --- /dev/null +++ b/Resources/public/sass/modules/_forms.scss @@ -0,0 +1,145 @@ +fieldset { + border: none; + margin: 0 0 ($base-spacing / 2) 0; + padding: $base-spacing; +} + +input,label, select { + display: block; + /* font-family: $form-font-family; + font-size: $form-font-size; */ +} + +label { + padding-top: $base-spacing / 3; + padding-bottom: $base-spacing / 3; + font-weight: bold; + margin-bottom: $base-spacing / 4; + + &.required:after { + content: "*"; + color: $red; + font-weight: 900; + } + + abbr { + display: none; + } +} + +.inline-choice { + white-space:nowrap; + label { + white-space:normal; + display: inline; + line-height: 1 + ((2 * $base-spacing) / 3); + margin-right: 1em; + font-weight: normal; + } +} + +textarea, +//input, +#{$all-text-inputs}, +select[multiple=multiple] { + //@include box-sizing(border-box); + //@include transition(border-color); + background-color: white; + @include border-top-radius($form-border-radius); + @include border-bottom-radius($form-border-radius); + border: $form-border-size solid $form-border-color; + box-shadow: none; + //box-shadow: $form-box-shadow; + /*font-family: $form-font-family; + font-size: $form-font-size; */ + margin-bottom: $base-spacing / 4; + padding: ($base-spacing / 3) ($base-spacing / 3); + width: 100%; + + &:hover { + border-color: $form-border-color-hover; + } + + &:focus { + border-color: $form-border-color-focus; + box-shadow: $form-box-shadow-focus; + outline: none; + } +} + +textarea { + resize: vertical; +} + +input[type="search"] { + //@include appearance(none); +} + +input[type="checkbox"], +input[type="radio"] { + display: inline; + margin-right: $base-spacing / 4; +} + +input[type="file"] { + padding-bottom: $base-spacing / 2; + width: 100%; +} + +select { + margin-bottom: $base-spacing / 4; + padding-top: ($base-spacing / 5); + padding-bottom: ($base-spacing / 5); + width: 100%; +} + +form { + p { + &.tip { + font-size: .875em; + position: relative; + text-align: center; + margin-top: -.3em; + } + + &.label { + padding: 0; + //margin: 0; + //color: $text-color; + white-space: normal; + } + } + + fieldset { + border: none; + margin-bottom: 1.5em; + padding: 0; + margin: 0; + + legend { + font-size: 1.438em; + font-weight: 700; + width: 100%; + border-bottom: 3px solid #ddd; + margin-bottom: 1em; + + & + * { + -webkit-margin-top-collapse: separate; // webkit hack that makes the legend margins work like they should + } + + h2 { + margin-bottom: 0; + } + } + } + + li { + label { + display: inline-block; + font-weight: normal; + } + } +} + +@import "../custom/modules/forms"; + diff --git a/Resources/public/sass/modules/_navigation.scss b/Resources/public/sass/modules/_navigation.scss new file mode 100644 index 000000000..789707f6a --- /dev/null +++ b/Resources/public/sass/modules/_navigation.scss @@ -0,0 +1,299 @@ +.navigation { + //$navigation-nav-button-background: $base-accent-color; + //$navigation-nav-button-background-hover: lighten($navigation-background, 10); + //$navigation-nav-button-border: 1px solid lighten($navigation-nav-button-background, 20); + //$navigation-search-background: lighten($navigation-background, 5); + //$navigation-search-border: 1px solid darken($navigation-background, 5); + //$horizontal-bar-mode: $large-screen; + + background-color: $navigation-background; + border-bottom: $navigation-border-bottom; + height: $navigation-height; + //width: 100%; + z-index: 999; + + .logo-container { + height: $navigation-height; + + &:before { /* create a full-height inline block pseudo=element */ + content: ' '; + display: inline-block; + vertical-align: middle; /* vertical alignment of the inline element */ + height: 100%; + } + + img.logo { + max-width: 89%; + max-height: $navigation-height - 10px; + display: inline-block; + vertical-align: middle; + } + } + + // Nav menu + .nav { + z-index: 9999999; + height: $navigation-height; + //float: none; + } + + ul.navigation-menu { + -webkit-transform-style: preserve-3d; // stop webkit flicker + clear: both; + display: none; + margin: 0 auto; + overflow: visible; + padding: 0; + width: 100%; + z-index: 9999; + + //@include media ($horizontal-bar-mode) { + display: inline-block; + margin: 0; + padding: 0; + //} + } + + // The nav items + ul li.nav-link { + background: $navigation-background; + display: block; + line-height: $navigation-height; + overflow: hidden; + padding-right: .8em; + text-align: right; + width: 100%; + z-index: 9999; + + // @include media ($horizontal-bar-mode) { + background: transparent; + display: inline; + line-height: $navigation-height; + text-decoration: none; + width: auto; + // } + + a { + color: $navigation-color; + display: inline-block; + font-weight: 400; + + //@include media ($horizontal-bar-mode) { + padding-right: 1em; + //} + + &:hover { + color: $navigation-color-hover; + } + } + } + + .active-nav-item a { + border-bottom: 1px solid $navigation-active-link-color; + padding-bottom: 3px; + } + + // Sub menus + li.more.nav-link { + padding-right: 0; + + // @include media($large-screen) { + padding-right: $navigation-submenu-padding; + // } + + > ul > li:first-child a { + padding-top: $navigation-first-padding-top; + } + + a { + margin-right: $navigation-submenu-padding; + } + + > a { + padding-right: 0.6em; + } + + > a:after { + @include position(absolute, auto -.4em auto auto); + content: $navigation-more-pin; + color: $navigation-more-pin-color; + } + } + + li.more { + overflow: visible; + padding-right: 0; + + a { + padding-right: .8em; + } + + > a { + padding-right: 1.6em; + position: relative; + + //@include media($large-screen) { + margin-right: $navigation-submenu-padding; + //} + + &:after { + content: '›'; + font-size: 1.2em; + position: absolute; + right: $navigation-submenu-padding / 2; + } + } + + &:hover > .submenu { + display: block; + } + + //@include media($horizontal-bar-mode) { + padding-right: .8em; + position: relative; + //} + } + + ul.submenu { + display: none; + padding-left: $navigation-ul-submenu-padding-left; + //@include media($horizontal-bar-mode) { + left: -$navigation-submenu-padding; + position: absolute; + top: $navigation-ul-submenu-top; + //} + + .submenu { + //@include media($horizontal-bar-mode) { + left: $navigation-submenu-width - .2em; + top: 0; + //} + } + + li { + display: block; + padding-right: 0; + + //@include media($horizontal-bar-mode) { + line-height: $navigation-height / 1.3; + + &:first-child > a { + border-top-left-radius: $navigation-border-radius; + border-top-right-radius: $navigation-border-radius; + } + + &:last-child > a { + border-bottom-left-radius: $navigation-border-radius; + border-bottom-right-radius: $navigation-border-radius; + padding-bottom: $navigation-last-padding-bottom; + } + //} + + a { + background-color: darken($navigation-background, 3); + display: inline-block; + text-align: right; + width: 100%; + + //@include media($horizontal-bar-mode) { + background-color: $navigation-background; + padding-left: $navigation-submenu-padding; + text-align: left; + //width: $navigation-submenu-width; + //} + } + } + } + + // Elements on the far right + .navigation-search { + padding: $navigation-search-padding; + position: relative; + + input[type=search] { + //background: $navigation-search-background; + //border: $navigation-search-border; + padding: .6em .55em; + padding-right: 3.5em; + width: calc(100% - 4.5em); + //padding: .6em .8em; + //padding: 0 30px 0 10px; + font-size: .9em; + //color: $navigation-color; + //border-radius: $navigation-border-radius * 2; + margin: 0; + } + + button { + padding: 7px 12px; + position: absolute; + top: .99em; + right: 1em; + } + } + + ul li.nav-link2 { + position: relative; + padding-right: 2em; + text-align: left; + line-height: $navigation-height; + z-index: 9999; + float: left; + list-style: none; + + & div.li-content { + display: inline-block; + line-height: normal; + vertical-align: middle; + + a.more:after { + content: $navigation-more-pin; + color: $navigation-more-pin-color; + padding-left: 0.4em; + font-size: 1.2em; + } + } + + ul { + display: none; + position: absolute; + line-height: normal; + list-style: none; + background-color: #333; + padding-right: 1.5em; + padding-left: 1.5em; + width: 100%; + } + + ul { + li { + padding-top:0.7em; + padding-bottom:0.7em; + + &:first-child { + padding-top: $navigation-first-padding-top; + } + + &:last-child { + padding-bottom: $navigation-first-padding-top; + } + } + } + + &:hover ul { + display: block; + } + + a { + width: 100%; + color: $navigation-color; + font-weight: 400; + + &:hover { + color: $navigation-color-hover; + } + } + } +} + +@import "../custom/modules/navigation"; \ No newline at end of file diff --git a/Resources/public/sass/modules/_table.scss b/Resources/public/sass/modules/_table.scss new file mode 100644 index 000000000..14389580a --- /dev/null +++ b/Resources/public/sass/modules/_table.scss @@ -0,0 +1,33 @@ +table { + width: $table-width; + + thead { + background-color: $table-head-bg-color; + + tr th { + border: $table-head-td-border; + text-align: $table-head-td-text-align; + padding: $table-head-td-padding; + color: $table-head-text-color; + } + } + + tbody { + tr { + td { + border: $table-body-td-border; + text-align: $table-body-td-text-align; + padding: $table-body-td-padding; + color: $table-body-text-color; + } + + &:nth-of-type(even) { + background-color: $table-body-tr-bg-color-even; + } + + &:nth-of-type(odd) { + background-color: $table-body-tr-bg-color-odd; + } + } + } +} \ No newline at end of file diff --git a/Resources/public/sass/modules/_tabs.scss b/Resources/public/sass/modules/_tabs.scss new file mode 100644 index 000000000..75cbbd258 --- /dev/null +++ b/Resources/public/sass/modules/_tabs.scss @@ -0,0 +1,48 @@ +/* Tabs */ +$navigation-color: $red; +$gutter : 4; +$norm: 5; +$body-font-color: $white; +$default-color: $green; +$global-bg-color: $yellow; + +.tab-nav { + margin: 0.5em 0; + padding: 0; + + > li { + font-family: $tabs-nav-font-family; + display: inline-block; + width: 100%; + cursor: default; + @include border-top-radius($base-border-radius); + @include border-bottom-radius($base-border-radius); + margin-bottom: $tabs-nav-margin-bottom; + + &.title { + padding: $tabs-nav-title-padding; + font-weight: 900; + background-color: $tabs-nav-title-bg-color; + color: $tabs-nav-title-text-color; + } + + > a { + display: block; + width: auto; + padding: $tabs-nav-padding; + margin: 0; + color: $tabs-nav-text-color; + cursor: pointer; + border: $tabs-new-border; + background-color: $tabs-nav-bg-color; + @include border-top-radius($base-border-radius); + @include border-bottom-radius($base-border-radius); + + &:hover, &:active { + border: $tabs-nav-hover-border; + color: $tabs-nav-hover-text-color; + text-decoration: none; + } + } + } +} \ No newline at end of file diff --git a/Resources/public/sass/modules/_typography.scss b/Resources/public/sass/modules/_typography.scss new file mode 100644 index 000000000..dce6d75a6 --- /dev/null +++ b/Resources/public/sass/modules/_typography.scss @@ -0,0 +1,23 @@ +ul { + &.unstyled { + list-style: none; + padding-left: 0em; + + ul { + list-style:disc outside; + } + } +} + +a { + color: $base-link-color; + text-decoration: none; + + &:hover { + color: $hover-link-color; + } +} + +.text-right { + text-align: right; +} \ No newline at end of file diff --git a/Resources/public/sass/scratch.scss b/Resources/public/sass/scratch.scss new file mode 100644 index 000000000..5022bc7c7 --- /dev/null +++ b/Resources/public/sass/scratch.scss @@ -0,0 +1,47 @@ +@charset "UTF-8"; + +@import "contrib/normalize/normalize"; +@import "contrib/fontawesome/font-awesome"; +@import "contrib/bourbon/bourbon"; + +@import "config/colors"; +@import "config/variables"; +@import "config/buttons"; + +/* etrange pour les forms */ +* { box-sizing: inherit; } +html { box-sizing: border-box; } + +@import "mixins/buttons"; +@import "mixins/alerts"; + +@import "contrib/gridle/gridle/gridle"; + +@include gridle_setup(( + context : 12, + gutter-width : 20px, + direction : ltr, +)); + +@include gridle_register_state(mobile , ( + max-width : 400px +)); + +@include gridle_register_state(tablet, ( + min-width : 401px, + max-width : 767px, +)); + +@include gridle_generate_classes(); + +@import "modules/typography"; +@import "modules/navigation"; +@import "modules/content"; +@import "modules/footer"; +@import "modules/alerts"; +@import "modules/forms"; +@import "modules/buttons"; +@import "modules/tabs"; +@import "modules/table"; + +@import "custom" \ No newline at end of file