123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /**
- * @class Global_CSS
- */
- @import "compass/css3/images";
- $default-gradient: matte !default;
- $support-for-original-webkit-gradients: false;
- /**
- * Adds a background gradient into a specified selector.
- *
- * @include background-gradient(#444, 'glossy');
- *
- * You can also use color-stops if you want full control of the gradient:
- *
- * @include background-gradient(#444, color-stops(#333, #222, #111));
- *
- * @param {Color} $bg-color
- * The base color of the gradient.
- *
- * @param {String/List} [$type=$default-gradient]
- * The style of the gradient, one of five pre-defined options: matte, bevel, glossy, recessed, or linear:
- *
- * @include background-gradient(red, 'glossy');
- *
- * It can also accept a list of color-stop values:;
- *
- * @include background-gradient(black, color-stops(#333, #111, #000));
- *
- * Values 'flat' and 'none' will result in no gradient, just flat background-color
- *
- * @param {String} $direction
- * @param {Number} [$contrast=1]
- * The direction of the gradient.
- */
- @mixin background-gradient(
- $bg-color,
- $type: $default-gradient,
- $direction: top,
- $contrast: 1
- ) {
- $flat: $type == null or $type == none or $type == flat;
- @if $flat or ($bg-color == transparent) {
- background-color: $bg-color;
- @if $bg-color != null {
- // invoking this mixin with null, none, or flat as the $type parameter means
- // "no gradient" so make sure we don't inherit one via the cascade
- background-image: none;
- }
- }
- @if not ($flat or ($bg-color == transparent)) {
- @if type-of($type) == "list" {
- // Color stops provided - no $bg-color required
- @include background-image(linear-gradient($direction, $type));
- } @else if $bg-color != transparent {
- // Named gradients
- @if $bg-color == null {
- @warn '@background-gradient: $bg-color is required for named gradient "#{$type}"';
- } @else if $type == bevel {
- @include background-image(bevel-gradient($bg-color, $direction, $contrast));
- } @else if $type == glossy {
- @include background-image(glossy-gradient($bg-color, $direction, $contrast));
- } @else if $type == recessed {
- @include background-image(recessed-gradient($bg-color, $direction, $contrast));
- } @else if $type == linear {
- @include background-image(linear-gradient($direction, color_stops(lighten($bg-color, 5%), darken($bg-color, 10%))));
- } @else if $type == matte {
- @include background-image(matte-gradient($bg-color, $direction, $contrast));
- } @else {
- @warn '@background-gradient: invalid gradient name "#{$type}"';
- }
- }
- }
- }
- // These are functions so they can be combined together with background-image()// ie. @include background-image(background_noise(), glossy-gradient());
- @function bevel-gradient($bg-color: $base-color, $direction: top, $contrast: 1) {
- @return linear-gradient($direction, color_stops(
- lighten($bg-color, 15%),
- lighten($bg-color, 8%) 30%,
- $bg-color 65%,
- darken($bg-color, 6%)
- ));
- }
- @function glossy-gradient($bg-color: $base-color, $direction: top, $contrast: 1) {
- @return linear-gradient($direction, color_stops(lighten($bg-color, 15% * $contrast), lighten($bg-color, 5% * $contrast) 50%, $bg-color 51%, darken($bg-color, 5% * $contrast)));
- }
- @function recessed-gradient($bg-color: $base-color, $direction: top, $contrast: 1) {
- @return linear-gradient($direction, color_stops(darken($bg-color, 10% * $contrast), darken($bg-color, 5% * $contrast) 10%, $bg-color 65%, lighten($bg-color, .5% * $contrast)));
- }
- @function matte-gradient (
- $bg-color: $base-color,
- $direction: top,
- $contrast: 1
- ) {
- @return linear-gradient(
- $direction,
- color_stops(
- lighten($bg-color, 15% * $contrast),
- lighten($bg-color, 5% * $contrast) 3%,
- darken($bg-color, 5% * $contrast)
- )
- );
- }
|