| /* Colors */ |
| .sdc-bc-white { background-color: $white; } |
| .sdc-bc-blue { background-color: $blue; } |
| .sdc-bc-light-blue { background-color: $light-blue; } |
| .sdc-bc-lighter-blue { background-color: $lighter-blue; } |
| .sdc-bc-blue-disabled { background-color: $blue-disabled; } |
| .sdc-bc-dark-blue { background-color: $dark-blue; } |
| .sdc-bc-black { background-color: $black; } |
| .sdc-bc-rich-black { background-color: $rich-black; } |
| .sdc-bc-text-black { background-color: $text-black; } |
| .sdc-bc-dark-gray { background-color: $dark-gray; } |
| .sdc-bc-gray { background-color: $gray; } |
| .sdc-bc-light-gray { background-color: $light-gray; } |
| .sdc-bc-silver { background-color: $silver; } |
| .sdc-bc-light-silver { background-color: $light-silver; } |
| .sdc-bc-green { background-color: $green; } |
| .sdc-bc-red { background-color: $red; } |
| .sdc-bc-disabled-red { background-color: $disabled-red; } |
| .sdc-bc-light-red { background-color: $light-red; } |
| .sdc-bc-yellow { background-color: $yellow; } |
| .sdc-bc-dark-purple { background-color: $dark-purple; } |
| .sdc-bc-purple { background-color: $purple; } |
| .sdc-bc-light-purple { background-color: $light-purple; } |
| .sdc-bc-lighter-silver { background-color: $lighter-silver; } |
| /* Prefix */ |
| $box-sizing-prefix: webkit moz spec; |
| $border-radius-prefix: webkit spec; |
| $box-shadow-radius-prefix: webkit moz spec; |
| $text-shadow-radius-prefix: spec; |
| $text-shadow-prefix: spec; |
| $box-shadow-prefix: all; |
| $linear-gradient-prefix: all; |
| $transition-prefix: webkit moz o spec; |
| $flex-prefix: webkit spec; |
| $browserPrefixes: webkit moz o ms; |
| |
| @mixin prefix($property, $value, $prefixeslist: 'all') { |
| @if $prefixeslist == all { |
| -webkit-#{$property}: $value; |
| -moz-#{$property}: $value; |
| -ms-#{$property}: $value; |
| -o-#{$property}: $value; |
| #{$property}: $value; |
| } @else { |
| @each $prefix in $prefixeslist { |
| @if $prefix == webkit { |
| -webkit-#{$property}: $value; |
| } @else if $prefix == moz { |
| -moz-#{$property}: $value; |
| } @else if $prefix == ms { |
| -ms-#{$property}: $value; |
| } @else if $prefix == o { |
| -o-#{$property}: $value; |
| } @else if $prefix == spec { |
| #{$property}: $value; |
| } @else { |
| @warn "No such prefix: #{$prefix}"; |
| } |
| } |
| } |
| } |
| |
| /* Value Prefix*/ |
| @mixin value-suffix-with-range($property, $valuesuffix, $from, $to, $prefixeslist) { |
| |
| @if $prefixeslist == all { |
| #{property} : -webkit-#{$valuesuffix}($from, $to); |
| #{property} : -moz-#{$valuesuffix}($from, $to); |
| #{property} : -o-#{$valuesuffix}($from, $to); |
| #{property} : -ms-#{$valuesuffix}($from, $to); |
| |
| } @else { |
| @each $prefix in $prefixeslist { |
| @if $prefix == webkit { |
| #{property} : -webkit-#{$valuesuffix}($from, $to); |
| } @else if $prefix == moz { |
| #{property} : -moz-#{$valuesuffix}($from, $to); |
| } @else if $prefix == ms { |
| #{property} : -ms-#{$valuesuffix}($from, $to); |
| } @else if $prefix == o { |
| #{property} : -o-#{$valuesuffix}($from, $to); |
| } @else { |
| @warn "No such prefix: #{$prefix}"; |
| } |
| } |
| } |
| } |
| |
| /* Box sizing */ |
| @mixin box-sizing($value: border-box) { |
| @include prefix(box-sizing, $value, $box-sizing-prefix); |
| } |
| |
| /* Borders & Shadows */ |
| @mixin box-shadow($value) { |
| @include prefix(box-shadow, $value, $box-shadow-radius-prefix); |
| } |
| |
| @mixin text-shadow($value) { |
| @include prefix(text-shadow, $value, $text-shadow-radius-prefix); |
| } |
| |
| @mixin border-radius($value, $positions: all) { |
| @if ($positions == all) { |
| @include prefix(border-radius, $value, $border-radius-prefix); |
| } @else { |
| @each $position in $positions { |
| @include prefix(border-#{$position}-radius, $value, $border-radius-prefix); |
| } |
| } |
| |
| } |
| |
| @mixin transition($value) { |
| @include prefix(transition, $value, $transition-prefix); |
| } |
| |
| /* Opacity */ |
| @mixin opacity($alpha) { |
| $ie-opacity: round($alpha * 100); |
| opacity: $alpha; |
| filter: unquote("alpha(opacity = #{$ie-opacity})"); |
| } |
| |
| /* Ellipsis */ |
| @mixin ellipsis($width: 100%, $display: inline-block, $max-width: none) { |
| overflow: hidden; |
| text-overflow: ellipsis; |
| width: $width; |
| white-space: nowrap; |
| display: $display; |
| max-width: $max-width; |
| } |
| |
| @mixin multiline-ellipsis($lineHeight: 1.3em, $lineCount: 2, $bgColor: $white){ |
| overflow: hidden; |
| position: relative; |
| line-height: $lineHeight; |
| max-height: $lineHeight * $lineCount; |
| text-align: justify; |
| // margin-right: -1em; |
| padding-right: 1em; |
| &:before { |
| content: '...'; |
| position: absolute; |
| right: 3px; |
| bottom: 0; |
| } |
| &:after { |
| content: ''; |
| position: absolute; |
| right: 0; |
| width: 1em; |
| height: 1em; |
| margin-top: 0.2em; |
| background: $bgColor; |
| } |
| } |
| |
| @mixin gradient($from, $to) { |
| /* fallback/image non-cover color */ |
| background-color: $from; |
| background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from($from), to($to)); |
| @include value-suffix-with-range(background-color, linear-gradient, $from, $to, $linear-gradient-prefix); |
| } |
| |
| /* Vertical placement of multuple lines of text */ |
| @mixin vertical-text($height) { |
| position: absolute; |
| top: 50%; |
| margin-top: -$height/2; |
| } |
| |
| @mixin text-vertical-align($align: middle) { |
| display: table; |
| width: 100%; |
| |
| & > * { |
| vertical-align: $align; |
| display: table-cell; |
| } |
| } |
| |
| @mixin center-element($width) { |
| width: $width; |
| margin-left: auto; |
| margin-right: auto; |
| } |
| |
| @mixin center-content($width) { |
| & > * { |
| @include center-element($width); |
| } |
| } |
| |
| /* transform-rotate */ |
| // @mixin |
| // Defines a 2D rotation, the angle is specified in the parameter |
| // @param |
| // $deg - angle in degrees |
| @mixin transform-rotate($deg) { |
| transform: rotate($deg + deg); /* IE10 and Mozilla */ |
| -ms-transform: rotate($deg + deg); /* IE 9 */ |
| -webkit-transform: rotate($deg + deg); /* Safari and Chrome */ |
| } |
| |
| /* transform-translate */ |
| // @mixin |
| // Defines a 2D rotation, the angle is specified in the parameter |
| // @param |
| // $deg - angle in degrees |
| @mixin transform-translate($x, $y) { |
| transform: translate($x, $y); /* IE10 and Mozilla */ |
| -ms-transform: translate($x, $y); /* IE 9 */ |
| -webkit-transform: translate($x, $y); /* Safari and Chrome */ |
| } |
| |
| /* transform-scale */ |
| // @mixin |
| // Defines a 2D scale transformation, changing the elements width and height |
| // @param |
| // $width - width |
| // @param |
| // $height - height |
| @mixin transform-scale($width, $height) { |
| transform: scale($width, $height); /* IE10 and Mozilla */ |
| -ms-transform: scale($width, $height); /* IE 9 */ |
| -webkit-transform: scale($width, $height); /* Safari and Chrome */ |
| } |
| |
| @mixin scrollable() { |
| ::-webkit-scrollbar { |
| width: 8px; |
| } |
| } |
| |
| @mixin create-circle($size, $bgcolor, $content) { |
| border-radius: 50%; |
| width: $size; |
| height: $size; |
| background: $bgcolor; |
| border: 3px solid $bgcolor; |
| &:after { |
| content: $content; |
| position: relative; |
| left: 9px; |
| top: 9px; |
| @include base-font-semibold; |
| font-size: $body-font-1; |
| } |
| } |
| |
| /**/ |
| @mixin keyframe-animation($animationType, $properties, $fromValue, $toValue) { |
| |
| @keyframes #{$animationType} { |
| from { |
| $startIndex: 1; |
| @each $property in $properties { |
| #{$property}: nth($fromValue, $startIndex); |
| $startIndex: $startIndex + 1; |
| } |
| } |
| to { |
| $startIndex: 1; |
| @each $property in $properties { |
| #{$property}: nth($toValue, $startIndex); |
| $startIndex: $startIndex + 1; |
| } |
| } |
| } |
| @-moz-keyframes #{$animationType}{ |
| /* Firefox */ |
| from { |
| $startIndex: 1; |
| @each $property in $properties { |
| #{$property}: nth($fromValue, $startIndex); |
| $startIndex: $startIndex + 1; |
| } |
| } |
| to { |
| $startIndex: 1; |
| @each $property in $properties { |
| #{$property}: nth($toValue, $startIndex); |
| $startIndex: $startIndex + 1; |
| } |
| } |
| } |
| @-webkit-keyframes #{$animationType} { |
| /* Safari and Chrome */ |
| from { |
| $startIndex: 1; |
| @each $property in $properties { |
| #{$property}: nth($fromValue, $startIndex); |
| $startIndex: $startIndex + 1; |
| } |
| } |
| to { |
| $startIndex: 1; |
| @each $property in $properties { |
| #{$property}: nth($toValue, $startIndex); |
| $startIndex: $startIndex + 1; |
| } |
| } |
| } |
| @-o-keyframes #{$animationType} { |
| /* Opera */ |
| from { |
| $startIndex: 1; |
| @each $property in $properties { |
| #{$property}: nth($fromValue, $startIndex); |
| $startIndex: $startIndex + 1; |
| } |
| } |
| to { |
| $startIndex: 1; |
| @each $property in $properties { |
| #{$property}: nth($toValue, $startIndex); |
| $startIndex: $startIndex + 1; |
| } |
| } |
| } |
| } |
| |
| |
| /**/ |
| @mixin border-shadow($xShadow: 0.545px, $yShadow: 0.839px, $blur: 4px, $spread: 0, $color: $light-gray, $opacity: 0.2) { |
| @include box-shadow($xShadow $yShadow $blur $spread rgba($color, $opacity)); |
| } |
| |
| %noselect { |
| -webkit-touch-callout: none; |
| -webkit-user-select: none; |
| -moz-user-select: none; |
| -ms-user-select: none; |
| user-select: none; |
| } |