@@ -17,97 +17,86 @@ $legacy-support-for-webkit: true !default;
17
17
// their corresponding experimental CSS2 properties when
18
18
// the implementations are identical except for the property
19
19
// 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
+ }
34
39
}
35
40
36
41
// 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) {
45
43
@include experimental ($property , $value , $moz , $webkit , $o , $ms , $khtml , $official );
46
44
}
47
45
48
46
// 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
+ }
63
66
}
64
67
65
68
// @private
66
69
// 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 ) {
71
71
$keys : moz, webkit, o, ms, khtml, official;
72
72
$index : index ($keys , $prefix );
73
-
74
73
@if $index {
75
74
@if $index == 6 and length ($support-list ) == 5 {
76
75
@return official;
77
- } @else {
76
+ }
77
+ @else {
78
78
@return nth ($support-list , $index );
79
79
}
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." ;
82
83
}
83
84
}
84
85
85
86
// A debug tool for checking browser support
86
87
@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 ;
95
90
}
96
91
97
92
// Capture the current exerimental support settings
98
93
@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 ;
104
95
}
105
96
106
97
// Capture the current legacy-ie support settings
107
98
@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 ;
111
100
}
112
101
113
102
// Capture and store support
@@ -128,144 +117,73 @@ $legacy-ie-matrix: capture-legacy-ie-matrix();
128
117
}
129
118
130
119
// 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 ;
143
126
}
144
127
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) {
152
129
@include capture-experimental-matrix ;
153
130
@include set-experimental-support ($moz , $webkit , $o , $ms , $khtml );
154
131
}
155
132
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 ) {
163
134
@include capture-experimental-matrix ;
164
135
@include set-experimental-support ($moz , $webkit , $o , $ms , $khtml );
165
136
}
166
137
167
138
// 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) {
173
140
$legacy-support-for-ie6 : $ie6 ;
174
141
$legacy-support-for-ie7 : $ie7 ;
175
142
$legacy-support-for-ie8 : $ie8 ;
176
143
}
177
144
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) {
183
146
@include capture-legacy-ie-matrix ;
184
147
@include set-legacy-ie-support ($ie6 , $ie7 , $ie8 );
185
148
}
186
149
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 ) {
192
151
@include capture-and-set-legacy-ie ($ie6 , $ie7 , $ie8 );
193
152
}
194
153
195
154
// 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) {
206
156
// Capture the current state
207
157
@include capture-support-matrix ;
208
-
209
158
// Change support settings
210
159
@include set-experimental-support ($moz , $webkit , $o , $ms , $khtml );
211
160
@include set-legacy-ie-support ($ie6 , $ie7 , $ie8 );
212
161
}
213
162
214
163
// 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 ) {
225
165
@include capture-and-set-support ($moz , $webkit , $o , $ms , $khtml , $ie6 , $ie7 , $ie8 );
226
166
}
227
167
228
-
229
168
// This mixin allows you to change the experimental support settings for
230
169
// 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) {
241
171
// 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 ();
245
174
// Set new states
246
175
@include set-experimental-support ($moz , $webkit , $o , $ms , $khtml );
247
176
@include set-legacy-ie-support ($ie6 , $ie7 , $ie8 );
248
-
249
177
// Apply styles
250
178
@content ;
251
-
252
179
// Return to original support settings
253
180
@include set-experimental-support ($wo-experimental-matrix ...);
254
181
@include set-legacy-ie-support ($wo-legacy-ie-matrix ...);
255
182
}
256
183
257
184
// This mixin is a shortcut for making slight adjustments to browser support
258
185
// 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 ) {
269
187
@include with-only-support-for ($moz , $webkit , $o , $ms , $khtml , $ie6 , $ie7 , $ie8 ) {
270
188
@content ;
271
189
}
0 commit comments