Created
April 19, 2013 11:43
-
-
Save larrybotha/5419841 to your computer and use it in GitHub Desktop.
A Sass mixin to allow output of multiple backgrounds with vendor prefixes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This mixin allows for vendor prefixing of gradients, and allows for multiple | |
// backgrounds. It also allows you to define with which property you would like | |
// to apply your gradients. | |
// i.e. background / background-image / etc. | |
// | |
// It supports both the old and new syntaxes - but be warned - using the official | |
// 'to [direction]' syntax will result in browsers supporting only the old webkit | |
// syntax not rendering a gradient at all. | |
// | |
// https://developer.mozilla.org/en-US/docs/CSS/Tutorials/Using_CSS_gradients | |
// Example: | |
// @include gradient(background, | |
// linear-gradient(180deg, transparent, hsla(0, 0%, 100%, .1) 10px 10px) | |
// ); | |
@function fix8_prepend_vendor($vendor, $grad-list) { | |
$n: length($grad-list); | |
$i: 1; | |
$vendor-list: (); | |
@while $i <= $n { | |
$vendor-list: append($vendor-list, #{$vendor}#{nth($grad-list, $i)}, comma); | |
$i: $i + 1; | |
} | |
@return $vendor-list; | |
} | |
@mixin gradient($prop, $val...) { | |
$n: length($val); | |
$i: 1; | |
$grad-list: (); | |
$prefix-list: (); | |
@while $i <= $n { | |
$grad-list: append($grad-list, nth($val, $i), comma); | |
$i: $i + 1; | |
} | |
#{$prop}: fix8_prepend_vendor(-webkit-, $grad-list); | |
#{$prop}: fix8_prepend_vendor(-moz-, $grad-list); | |
#{$prop}: fix8_prepend_vendor(-ms-, $grad-list); | |
#{$prop}: fix8_prepend_vendor(-o-, $grad-list); | |
#{$prop}: $grad-list; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment