@@ -17,97 +17,86 @@ $legacy-support-for-webkit: true !default;
1717// their corresponding experimental CSS2 properties when
1818// the implementations are identical except for the property
1919// prefix.
20- @mixin experimental ($property , $value ,
21- $moz : $experimental-support-for-mozilla ,
22- $webkit : $experimental-support-for-webkit ,
23- $o : $experimental-support-for-opera ,
24- $ms : $experimental-support-for-microsoft ,
25- $khtml : $experimental-support-for-khtml ,
26- $official : true
27- ) {
28- @if $webkit and $experimental-support-for-webkit { -webkit- #{$property } : $value ; }
29- @if $khtml and $experimental-support-for-khtml { -khtml- #{$property } : $value ; }
30- @if $moz and $experimental-support-for-mozilla { -moz- #{$property } : $value ; }
31- @if $ms and $experimental-support-for-microsoft { -ms- #{$property } : $value ; }
32- @if $o and $experimental-support-for-opera { -o- #{$property } : $value ; }
33- @if $official { #{$property } : $value ; }
20+ @mixin experimental ($property , $value , $moz : $experimental-support-for-mozilla , $webkit : $experimental-support-for-webkit , $o : $experimental-support-for-opera , $ms : $experimental-support-for-microsoft , $khtml : $experimental-support-for-khtml , $official : true) {
21+ @if $webkit and $experimental-support-for-webkit {
22+ -webkit- #{$property } : $value ;
23+ }
24+ @if $khtml and $experimental-support-for-khtml {
25+ -khtml- #{$property } : $value ;
26+ }
27+ @if $moz and $experimental-support-for-mozilla {
28+ -moz- #{$property } : $value ;
29+ }
30+ @if $ms and $experimental-support-for-microsoft {
31+ -ms- #{$property } : $value ;
32+ }
33+ @if $o and $experimental-support-for-opera {
34+ -o- #{$property } : $value ;
35+ }
36+ @if $official {
37+ #{$property } : $value ;
38+ }
3439}
3540
3641// This mixin is a shortcut for applying only a single experimental value
37- @mixin experimental-only-for ($property , $value ,
38- $moz : false,
39- $webkit : false,
40- $o : false,
41- $ms : false,
42- $khtml : false,
43- $official : false
44- ) {
42+ @mixin experimental-only-for ($property , $value , $moz : false, $webkit : false, $o : false, $ms : false, $khtml : false, $official : false) {
4543 @include experimental ($property , $value , $moz , $webkit , $o , $ms , $khtml , $official );
4644}
4745
4846// Same as experimental(), but for cases when the property is the same and the value is vendorized
49- @mixin experimental-value ($property , $value ,
50- $moz : $experimental-support-for-mozilla ,
51- $webkit : $experimental-support-for-webkit ,
52- $o : $experimental-support-for-opera ,
53- $ms : $experimental-support-for-microsoft ,
54- $khtml : $experimental-support-for-khtml ,
55- $official : true
56- ) {
57- @if $webkit and $experimental-support-for-webkit { #{$property } : - webkit- #{$value } ; }
58- @if $khtml and $experimental-support-for-khtml { #{$property } : - khtml- #{$value } ; }
59- @if $moz and $experimental-support-for-mozilla { #{$property } : - moz- #{$value } ; }
60- @if $ms and $experimental-support-for-microsoft { #{$property } : - ms- #{$value } ; }
61- @if $o and $experimental-support-for-opera { #{$property } : - o- #{$value } ; }
62- @if $official { #{$property } : #{$value } ; }
47+ @mixin experimental-value ($property , $value , $moz : $experimental-support-for-mozilla , $webkit : $experimental-support-for-webkit , $o : $experimental-support-for-opera , $ms : $experimental-support-for-microsoft , $khtml : $experimental-support-for-khtml , $official : true) {
48+ @if $webkit and $experimental-support-for-webkit {
49+ #{$property } : - webkit- #{$value } ;
50+ }
51+ @if $khtml and $experimental-support-for-khtml {
52+ #{$property } : - khtml- #{$value } ;
53+ }
54+ @if $moz and $experimental-support-for-mozilla {
55+ #{$property } : - moz- #{$value } ;
56+ }
57+ @if $ms and $experimental-support-for-microsoft {
58+ #{$property } : - ms- #{$value } ;
59+ }
60+ @if $o and $experimental-support-for-opera {
61+ #{$property } : - o- #{$value } ;
62+ }
63+ @if $official {
64+ #{$property } : #{$value } ;
65+ }
6366}
6467
6568// @private
6669// Check a given support list for support of a particular browser
67- @function supported (
68- $prefix ,
69- $support-list
70- ) {
70+ @function supported ($prefix , $support-list ) {
7171 $keys : moz, webkit, o, ms, khtml, official;
7272 $index : index ($keys , $prefix );
73-
7473 @if $index {
7574 @if $index == 6 and length ($support-list ) == 5 {
7675 @return official;
77- } @else {
76+ }
77+ @else {
7878 @return nth ($support-list , $index );
7979 }
80- } @else {
81- @warn ' Please pass a valid browser for $prefix: moz, webkit, o, ms, khtml, or official.' ;
80+ }
81+ @else {
82+ @warn " Please pass a valid browser for $prefix: moz, webkit, o, ms, khtml, or official." ;
8283 }
8384}
8485
8586// A debug tool for checking browser support
8687@mixin debug-support-matrix ($experimental : true, $ie : true) {
87- @debug #{' $moz-' } $experimental-support-for-mozilla
88- #{' $webkit-' } $experimental-support-for-webkit
89- #{' $opera-' } $experimental-support-for-opera
90- #{' $microsoft-' } $experimental-support-for-microsoft
91- #{' $khtml-' } $experimental-support-for-khtml ;
92- @debug #{' $ie6-' } $legacy-support-for-ie6
93- #{' $ie7-' } $legacy-support-for-ie7
94- #{' $ie8-' } $legacy-support-for-ie8 ;
88+ @debug #{" $moz-" } $experimental-support-for-mozilla #{" $webkit-" } $experimental-support-for-webkit #{" $opera-" } $experimental-support-for-opera #{" $microsoft-" } $experimental-support-for-microsoft #{" $khtml-" } $experimental-support-for-khtml ;
89+ @debug #{" $ie6-" } $legacy-support-for-ie6 #{" $ie7-" } $legacy-support-for-ie7 #{" $ie8-" } $legacy-support-for-ie8 ;
9590}
9691
9792// Capture the current exerimental support settings
9893@function capture-experimental-matrix () {
99- @return $experimental-support-for-mozilla
100- $experimental-support-for-webkit
101- $experimental-support-for-opera
102- $experimental-support-for-microsoft
103- $experimental-support-for-khtml ;
94+ @return $experimental-support-for-mozilla $experimental-support-for-webkit $experimental-support-for-opera $experimental-support-for-microsoft $experimental-support-for-khtml ;
10495}
10596
10697// Capture the current legacy-ie support settings
10798@function capture-legacy-ie-matrix () {
108- @return $legacy-support-for-ie6
109- $legacy-support-for-ie7
110- $legacy-support-for-ie8 ;
99+ @return $legacy-support-for-ie6 $legacy-support-for-ie7 $legacy-support-for-ie8 ;
111100}
112101
113102// Capture and store support
@@ -128,144 +117,73 @@ $legacy-ie-matrix: capture-legacy-ie-matrix();
128117}
129118
130119// Change the experimental-support settings in specific contexts.
131- @mixin set-experimental-support (
132- $moz : false,
133- $webkit : false,
134- $o : false,
135- $ms : false,
136- $khtml : false
137- ) {
138- $experimental-support-for-mozilla : $moz ;
139- $experimental-support-for-webkit : $webkit ;
140- $experimental-support-for-opera : $o ;
141- $experimental-support-for-microsoft : $ms ;
142- $experimental-support-for-khtml : $khtml ;
120+ @mixin set-experimental-support ($moz : false, $webkit : false, $o : false, $ms : false, $khtml : false) {
121+ $experimental-support-for-mozilla : $moz ;
122+ $experimental-support-for-webkit : $webkit ;
123+ $experimental-support-for-opera : $o ;
124+ $experimental-support-for-microsoft : $ms ;
125+ $experimental-support-for-khtml : $khtml ;
143126}
144127
145- @mixin capture-and-set-experimental (
146- $moz : false,
147- $webkit : false,
148- $o : false,
149- $ms : false,
150- $khtml : false
151- ) {
128+ @mixin capture-and-set-experimental ($moz : false, $webkit : false, $o : false, $ms : false, $khtml : false) {
152129 @include capture-experimental-matrix ;
153130 @include set-experimental-support ($moz , $webkit , $o , $ms , $khtml );
154131}
155132
156- @mixin capture-and-adjust-experimental (
157- $moz : $experimental-support-for-mozilla ,
158- $webkit : $experimental-support-for-webkit ,
159- $o : $experimental-support-for-opera ,
160- $ms : $experimental-support-for-microsoft ,
161- $khtml : $experimental-support-for-khtml
162- ) {
133+ @mixin capture-and-adjust-experimental ($moz : $experimental-support-for-mozilla , $webkit : $experimental-support-for-webkit , $o : $experimental-support-for-opera , $ms : $experimental-support-for-microsoft , $khtml : $experimental-support-for-khtml ) {
163134 @include capture-experimental-matrix ;
164135 @include set-experimental-support ($moz , $webkit , $o , $ms , $khtml );
165136}
166137
167138// Change the legacy-support-for-ie* settings in specific contexts.
168- @mixin set-legacy-ie-support (
169- $ie6 : false,
170- $ie7 : false,
171- $ie8 : false
172- ) {
139+ @mixin set-legacy-ie-support ($ie6 : false, $ie7 : false, $ie8 : false) {
173140 $legacy-support-for-ie6 : $ie6 ;
174141 $legacy-support-for-ie7 : $ie7 ;
175142 $legacy-support-for-ie8 : $ie8 ;
176143}
177144
178- @mixin capture-and-set-legacy-ie (
179- $ie6 : false,
180- $ie7 : false,
181- $ie8 : false
182- ) {
145+ @mixin capture-and-set-legacy-ie ($ie6 : false, $ie7 : false, $ie8 : false) {
183146 @include capture-legacy-ie-matrix ;
184147 @include set-legacy-ie-support ($ie6 , $ie7 , $ie8 );
185148}
186149
187- @mixin capture-and-adjust-legacy-ie (
188- $ie6 : $legacy-support-for-ie6 ,
189- $ie7 : $legacy-support-for-ie7 ,
190- $ie8 : $legacy-support-for-ie8
191- ) {
150+ @mixin capture-and-adjust-legacy-ie ($ie6 : $legacy-support-for-ie6 , $ie7 : $legacy-support-for-ie7 , $ie8 : $legacy-support-for-ie8 ) {
192151 @include capture-and-set-legacy-ie ($ie6 , $ie7 , $ie8 );
193152}
194153
195154// Capture current browser support matrix, and set a new matrix of support.
196- @mixin capture-and-set-support (
197- $moz : false,
198- $webkit : false,
199- $o : false,
200- $ms : false,
201- $khtml : false,
202- $ie6 : false,
203- $ie7 : false,
204- $ie8 : false
205- ) {
155+ @mixin capture-and-set-support ($moz : false, $webkit : false, $o : false, $ms : false, $khtml : false, $ie6 : false, $ie7 : false, $ie8 : false) {
206156 // Capture the current state
207157 @include capture-support-matrix ;
208-
209158 // Change support settings
210159 @include set-experimental-support ($moz , $webkit , $o , $ms , $khtml );
211160 @include set-legacy-ie-support ($ie6 , $ie7 , $ie8 );
212161}
213162
214163// Capture current browser support matrix, and set a new matrix of support.
215- @mixin capture-and-adjust-support (
216- $moz : $experimental-support-for-mozilla ,
217- $webkit : $experimental-support-for-webkit ,
218- $o : $experimental-support-for-opera ,
219- $ms : $experimental-support-for-microsoft ,
220- $khtml : $experimental-support-for-khtml ,
221- $ie6 : $legacy-support-for-ie6 ,
222- $ie7 : $legacy-support-for-ie7 ,
223- $ie8 : $legacy-support-for-ie8
224- ) {
164+ @mixin capture-and-adjust-support ($moz : $experimental-support-for-mozilla , $webkit : $experimental-support-for-webkit , $o : $experimental-support-for-opera , $ms : $experimental-support-for-microsoft , $khtml : $experimental-support-for-khtml , $ie6 : $legacy-support-for-ie6 , $ie7 : $legacy-support-for-ie7 , $ie8 : $legacy-support-for-ie8 ) {
225165 @include capture-and-set-support ($moz , $webkit , $o , $ms , $khtml , $ie6 , $ie7 , $ie8 );
226166}
227167
228-
229168// This mixin allows you to change the experimental support settings for
230169// child (@content) styles.
231- @mixin with-only-support-for (
232- $moz : false,
233- $webkit : false,
234- $o : false,
235- $ms : false,
236- $khtml : false,
237- $ie6 : false,
238- $ie7 : false,
239- $ie8 : false
240- ) {
170+ @mixin with-only-support-for ($moz : false, $webkit : false, $o : false, $ms : false, $khtml : false, $ie6 : false, $ie7 : false, $ie8 : false) {
241171 // Capture current state
242- $wo-experimental-matrix : capture-experimental-matrix ();
243- $wo-legacy-ie-matrix : capture-legacy-ie-matrix ();
244-
172+ $wo-experimental-matrix : capture-experimental-matrix ();
173+ $wo-legacy-ie-matrix : capture-legacy-ie-matrix ();
245174 // Set new states
246175 @include set-experimental-support ($moz , $webkit , $o , $ms , $khtml );
247176 @include set-legacy-ie-support ($ie6 , $ie7 , $ie8 );
248-
249177 // Apply styles
250178 @content ;
251-
252179 // Return to original support settings
253180 @include set-experimental-support ($wo-experimental-matrix ...);
254181 @include set-legacy-ie-support ($wo-legacy-ie-matrix ...);
255182}
256183
257184// This mixin is a shortcut for making slight adjustments to browser support
258185// for child (@content) styles
259- @mixin adjust-support-for (
260- $moz : $experimental-support-for-mozilla ,
261- $webkit : $experimental-support-for-webkit ,
262- $o : $experimental-support-for-opera ,
263- $ms : $experimental-support-for-microsoft ,
264- $khtml : $experimental-support-for-khtml ,
265- $ie6 : $legacy-support-for-ie6 ,
266- $ie7 : $legacy-support-for-ie7 ,
267- $ie8 : $legacy-support-for-ie8
268- ) {
186+ @mixin adjust-support-for ($moz : $experimental-support-for-mozilla , $webkit : $experimental-support-for-webkit , $o : $experimental-support-for-opera , $ms : $experimental-support-for-microsoft , $khtml : $experimental-support-for-khtml , $ie6 : $legacy-support-for-ie6 , $ie7 : $legacy-support-for-ie7 , $ie8 : $legacy-support-for-ie8 ) {
269187 @include with-only-support-for ($moz , $webkit , $o , $ms , $khtml , $ie6 , $ie7 , $ie8 ) {
270188 @content ;
271189 }
0 commit comments