/* 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; }