compass 0.13.alpha.4 → 0.13.alpha.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.markdown +2 -3
- data/Rakefile +91 -5
- data/VERSION.yml +1 -1
- data/examples/compass/images/emblem-a043c4f148.png +0 -0
- data/examples/compass/images/flag-03c3b29b35.png +0 -0
- data/examples/compass/images/flag-21cfbfbfc8.png +0 -0
- data/examples/css3/extensions/fancy-fonts/templates/project/Prociono.otf +0 -0
- data/features/command_line.feature +2 -6
- data/features/step_definitions/command_line_steps.rb +1 -0
- data/frameworks/compass/stylesheets/compass/_css3.scss +0 -1
- data/frameworks/compass/stylesheets/compass/_support.scss +353 -35
- data/frameworks/compass/stylesheets/compass/css3/_animation.scss +49 -48
- data/frameworks/compass/stylesheets/compass/css3/_appearance.scss +4 -8
- data/frameworks/compass/stylesheets/compass/css3/_background-clip.scss +15 -19
- data/frameworks/compass/stylesheets/compass/css3/_background-origin.scss +17 -19
- data/frameworks/compass/stylesheets/compass/css3/_background-size.scss +4 -8
- data/frameworks/compass/stylesheets/compass/css3/_border-radius.scss +37 -39
- data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +45 -20
- data/frameworks/compass/stylesheets/compass/css3/_box-sizing.scss +6 -8
- data/frameworks/compass/stylesheets/compass/css3/_box.scss +12 -13
- data/frameworks/compass/stylesheets/compass/css3/_columns.scss +46 -26
- data/frameworks/compass/stylesheets/compass/css3/_deprecated-support.scss +272 -0
- data/frameworks/compass/stylesheets/compass/css3/_filter.scss +17 -10
- data/frameworks/compass/stylesheets/compass/css3/_flexbox.scss +134 -281
- data/frameworks/compass/stylesheets/compass/css3/_font-face.scss +5 -5
- data/frameworks/compass/stylesheets/compass/css3/_hyphenation.scss +14 -11
- data/frameworks/compass/stylesheets/compass/css3/_images.scss +77 -67
- data/frameworks/compass/stylesheets/compass/css3/_inline-block.scss +15 -6
- data/frameworks/compass/stylesheets/compass/css3/_opacity.scss +6 -2
- data/frameworks/compass/stylesheets/compass/css3/_pie.scss +1 -73
- data/frameworks/compass/stylesheets/compass/css3/_regions.scss +7 -6
- data/frameworks/compass/stylesheets/compass/css3/_selection.scss +45 -17
- data/frameworks/compass/stylesheets/compass/css3/_shared.scss +4 -261
- data/frameworks/compass/stylesheets/compass/css3/_text-shadow.scss +1 -1
- data/frameworks/compass/stylesheets/compass/css3/_transform.scss +24 -32
- data/frameworks/compass/stylesheets/compass/css3/_transition.scss +102 -152
- data/frameworks/compass/stylesheets/compass/css3/_user-interface.scss +42 -27
- data/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss +2 -1
- data/frameworks/compass/stylesheets/compass/typography/links/_hover-link.scss +1 -1
- data/frameworks/compass/stylesheets/compass/typography/lists/_horizontal-list.scss +2 -2
- data/frameworks/compass/stylesheets/compass/typography/lists/_inline-list.scss +1 -1
- data/frameworks/compass/stylesheets/compass/typography/text/_ellipsis.scss +1 -1
- data/frameworks/compass/stylesheets/compass/utilities/_sass.scss +2 -0
- data/frameworks/compass/stylesheets/compass/utilities/color/_brightness.scss +12 -0
- data/frameworks/compass/stylesheets/compass/utilities/color/_contrast.scss +36 -12
- data/frameworks/compass/stylesheets/compass/utilities/general/_float.scss +6 -2
- data/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +23 -4
- data/frameworks/compass/stylesheets/compass/utilities/general/_min.scss +1 -1
- data/frameworks/compass/stylesheets/compass/utilities/sass/_lists.scss +16 -0
- data/frameworks/compass/stylesheets/compass/utilities/sass/_maps.scss +19 -0
- data/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss +25 -18
- data/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite-img.scss +3 -1
- data/frameworks/compass/stylesheets/compass/utilities/tables/_borders.scss +3 -3
- data/lib/compass.rb +1 -1
- data/lib/compass/browser_support.rb +1 -1
- data/lib/compass/caniuse.rb +247 -0
- data/lib/compass/configuration/adapters.rb +7 -1
- data/lib/compass/sass_extensions/functions.rb +5 -0
- data/lib/compass/sass_extensions/functions/constants.rb +2 -2
- data/lib/compass/sass_extensions/functions/cross_browser_support.rb +176 -1
- data/lib/compass/sass_extensions/functions/display.rb +24 -19
- data/lib/compass/sass_extensions/functions/env.rb +37 -8
- data/lib/compass/sass_extensions/functions/gradient_support.rb +10 -13
- data/lib/compass/sass_extensions/functions/math.rb +31 -13
- data/lib/compass/sass_extensions/functions/sprites.rb +48 -25
- data/lib/compass/sass_extensions/monkey_patches/browser_support.rb +42 -13
- data/lib/compass/sass_extensions/sprites/image.rb +14 -4
- data/lib/compass/sass_extensions/sprites/image_methods.rb +19 -3
- data/lib/compass/sprite_importer/content.erb +8 -7
- data/lib/compass/watcher/project_watcher.rb +75 -42
- data/lib/compass/watcher/watch.rb +35 -17
- data/test/fixtures/sprites/public/images/focus/ten-by-ten.png +0 -0
- data/test/fixtures/sprites/public/images/focus/ten-by-ten_active.png +0 -0
- data/test/fixtures/sprites/public/images/focus/ten-by-ten_focus.png +0 -0
- data/test/fixtures/sprites/public/images/focus/ten-by-ten_hover.png +0 -0
- data/test/fixtures/sprites/public/images/focus/ten-by-ten_target.png +0 -0
- data/test/fixtures/stylesheets/compass/config.rb +1 -0
- data/test/fixtures/stylesheets/compass/css/animation-with-legacy-ie.css +1 -9
- data/test/fixtures/stylesheets/compass/css/animation.css +1 -9
- data/test/fixtures/stylesheets/compass/css/appearance.css +3 -0
- data/test/fixtures/stylesheets/compass/css/background-clip.css +4 -8
- data/test/fixtures/stylesheets/compass/css/background-origin.css +4 -8
- data/test/fixtures/stylesheets/compass/css/background-size.css +3 -10
- data/test/fixtures/stylesheets/compass/css/border_radius.css +3 -3
- data/test/fixtures/stylesheets/compass/css/{box-sizeing.css → box-sizing.css} +2 -2
- data/test/fixtures/stylesheets/compass/css/box_shadow.css +15 -5
- data/test/fixtures/stylesheets/compass/css/brightness.css +14 -0
- data/test/fixtures/stylesheets/compass/css/browser-support.css +306 -0
- data/test/fixtures/stylesheets/compass/css/color.css +18 -0
- data/test/fixtures/stylesheets/compass/css/columns.css +27 -18
- data/test/fixtures/stylesheets/compass/css/filters.css +6 -6
- data/test/fixtures/stylesheets/compass/css/flexbox.css +84 -111
- data/test/fixtures/stylesheets/compass/css/fonts.css +1 -1
- data/test/fixtures/stylesheets/compass/css/gradients.css +53 -53
- data/test/fixtures/stylesheets/compass/css/grid_background.css +11 -11
- data/test/fixtures/stylesheets/compass/css/hyphenation.css +2 -4
- data/test/fixtures/stylesheets/compass/css/lists.css +6 -12
- data/test/fixtures/stylesheets/compass/css/regions.css +2 -2
- data/test/fixtures/stylesheets/compass/css/selection.css +41 -4
- data/test/fixtures/stylesheets/compass/css/sprites_with_explicit_separator.css +16 -0
- data/test/fixtures/stylesheets/compass/css/support.css +62 -0
- data/test/fixtures/stylesheets/compass/css/transform.css +64 -136
- data/test/fixtures/stylesheets/compass/css/transition.css +27 -45
- data/test/fixtures/stylesheets/compass/css/typography/links/hover-link.css +4 -0
- data/test/fixtures/stylesheets/compass/css/user-interface.css +34 -7
- data/test/fixtures/stylesheets/compass/css/utilities.css +7 -7
- data/test/fixtures/stylesheets/compass/css/vertical_rhythm.css +6 -9
- data/test/fixtures/stylesheets/compass/images/flag_states-sc42d7bf926.png +0 -0
- data/test/fixtures/stylesheets/compass/images/flag_states/foo.png +0 -0
- data/test/fixtures/stylesheets/compass/images/flag_states/foo_active.png +0 -0
- data/test/fixtures/stylesheets/compass/images/flag_states/foo_focus.png +0 -0
- data/test/fixtures/stylesheets/compass/images/flag_states/foo_hover.png +0 -0
- data/test/fixtures/stylesheets/compass/images/flag_states/foo_target.png +0 -0
- data/test/fixtures/stylesheets/compass/sass/animation-with-legacy-ie.scss +1 -3
- data/test/fixtures/stylesheets/compass/sass/appearance.scss +5 -0
- data/test/fixtures/stylesheets/compass/sass/background-clip.scss +0 -5
- data/test/fixtures/stylesheets/compass/sass/background-origin.scss +0 -5
- data/test/fixtures/stylesheets/compass/sass/background-size.scss +0 -5
- data/test/fixtures/stylesheets/compass/sass/{box-sizeing.scss → box-sizing.scss} +1 -1
- data/test/fixtures/stylesheets/compass/sass/box_shadow.scss +2 -0
- data/test/fixtures/stylesheets/compass/sass/brightness.scss +12 -0
- data/test/fixtures/stylesheets/compass/sass/browser-support.scss +30 -0
- data/test/fixtures/stylesheets/compass/sass/color.scss +22 -0
- data/test/fixtures/stylesheets/compass/sass/filters.scss +1 -0
- data/test/fixtures/stylesheets/compass/sass/flexbox.scss +84 -40
- data/test/fixtures/stylesheets/compass/sass/gradients.sass +3 -2
- data/test/fixtures/stylesheets/compass/sass/selection.scss +29 -4
- data/test/fixtures/stylesheets/compass/sass/sprites_with_explicit_separator.scss +7 -0
- data/test/fixtures/stylesheets/compass/sass/support.scss +137 -0
- data/test/fixtures/stylesheets/compass/sass/transition.scss +0 -3
- data/test/fixtures/stylesheets/compass/sass/typography/links/hover-link.scss +3 -0
- data/test/fixtures/stylesheets/compass/sass/user-interface.scss +16 -5
- data/test/fixtures/stylesheets/compass/sass/utilities.scss +4 -4
- data/test/fixtures/stylesheets/envtest/css/env.css +4 -4
- data/test/fixtures/stylesheets/envtest/tmp/env.css +4 -4
- data/test/integrations/sprites_test.rb +30 -1
- data/test/test_helper.rb +2 -2
- data/test/units/caniuse_test.rb +115 -0
- data/test/units/command_line_test.rb +1 -0
- data/test/units/sass_extensions_test.rb +5 -0
- data/test/units/sprites/image_test.rb +12 -0
- data/test/units/sprites/sprite_map_test.rb +11 -0
- data/test/units/watcher/project_watcher_test.rb +26 -18
- metadata +96 -42
- data/examples/compass/src/pie.scss +0 -110
- data/frameworks/compass/stylesheets/compass/css3/_transform-legacy.scss +0 -87
- data/frameworks/compass/templates/pie/LICENSE +0 -12
- data/frameworks/compass/templates/pie/LICENSE-APACHE2.txt +0 -13
- data/frameworks/compass/templates/pie/LICENSE-GPL2.txt +0 -278
- data/frameworks/compass/templates/pie/PIE.htc +0 -96
- data/frameworks/compass/templates/pie/manifest.rb +0 -39
- data/frameworks/compass/templates/pie/pie.scss +0 -74
- data/lib/compass/sass_extensions/functions/utility.rb +0 -10
- data/test/fixtures/stylesheets/compass/css/pie.css +0 -23
- data/test/fixtures/stylesheets/compass/sass/pie.scss +0 -47
@@ -1,262 +1,5 @@
|
|
1
|
-
@
|
1
|
+
@warn "The compass/css3/shared module has been deprecated.
|
2
|
+
You can silence this warning by importing compass/css3/deprecated-support instead.
|
3
|
+
Please be aware that module will be removed in the next release.";
|
2
4
|
|
3
|
-
|
4
|
-
// their corresponding experimental CSS2 properties when
|
5
|
-
// the implementations are identical except for the property
|
6
|
-
// prefix.
|
7
|
-
@mixin experimental($property, $value,
|
8
|
-
$moz : $experimental-support-for-mozilla,
|
9
|
-
$webkit : $experimental-support-for-webkit,
|
10
|
-
$ms : $experimental-support-for-microsoft,
|
11
|
-
$o : $experimental-support-for-opera,
|
12
|
-
$khtml : $experimental-support-for-khtml,
|
13
|
-
$official : true
|
14
|
-
) {
|
15
|
-
@if $webkit and $experimental-support-for-webkit { -webkit-#{$property} : $value; }
|
16
|
-
@if $khtml and $experimental-support-for-khtml { -khtml-#{$property} : $value; }
|
17
|
-
@if $moz and $experimental-support-for-mozilla { -moz-#{$property} : $value; }
|
18
|
-
@if $ms and $experimental-support-for-microsoft { -ms-#{$property} : $value; }
|
19
|
-
@if $o and $experimental-support-for-opera { -o-#{$property} : $value; }
|
20
|
-
@if $official { #{$property} : $value; }
|
21
|
-
}
|
22
|
-
|
23
|
-
// This mixin is a shortcut for applying only a single experimental value
|
24
|
-
@mixin experimental-only-for($property, $value,
|
25
|
-
$moz : false,
|
26
|
-
$webkit : false,
|
27
|
-
$ms : false,
|
28
|
-
$o : false,
|
29
|
-
$khtml : false,
|
30
|
-
$official : false
|
31
|
-
) {
|
32
|
-
@include experimental($property, $value, $moz, $webkit, $o, $ms, $khtml, $official);
|
33
|
-
}
|
34
|
-
|
35
|
-
// Same as experimental(), but for cases when the property is the same and the value is vendorized
|
36
|
-
@mixin experimental-value($property, $value,
|
37
|
-
$moz : $experimental-support-for-mozilla,
|
38
|
-
$webkit : $experimental-support-for-webkit,
|
39
|
-
$ms : $experimental-support-for-microsoft,
|
40
|
-
$o : $experimental-support-for-opera,
|
41
|
-
$khtml : $experimental-support-for-khtml,
|
42
|
-
$official : true
|
43
|
-
) {
|
44
|
-
@if $webkit and $experimental-support-for-webkit { #{$property} : -webkit-#{$value}; }
|
45
|
-
@if $khtml and $experimental-support-for-khtml { #{$property} : -khtml-#{$value}; }
|
46
|
-
@if $moz and $experimental-support-for-mozilla { #{$property} : -moz-#{$value}; }
|
47
|
-
@if $ms and $experimental-support-for-microsoft { #{$property} : -ms-#{$value}; }
|
48
|
-
@if $o and $experimental-support-for-opera { #{$property} : -o-#{$value}; }
|
49
|
-
@if $official { #{$property} : #{$value}; }
|
50
|
-
}
|
51
|
-
|
52
|
-
// A debug tool for checking browser support
|
53
|
-
@mixin debug-support-matrix($experimental: true, $ie: true) {
|
54
|
-
@debug #{'$moz-'}$experimental-support-for-mozilla
|
55
|
-
#{'$webkit-'}$experimental-support-for-webkit
|
56
|
-
#{'$microsoft-'}$experimental-support-for-microsoft
|
57
|
-
#{'$opera-'}$experimental-support-for-opera
|
58
|
-
#{'$khtml-'}$experimental-support-for-khtml;
|
59
|
-
@debug #{'$ie6-'}$legacy-support-for-ie6
|
60
|
-
#{'$ie7-'}$legacy-support-for-ie7
|
61
|
-
#{'$ie8-'}$legacy-support-for-ie8;
|
62
|
-
}
|
63
|
-
|
64
|
-
// Capture the current exerimental support settings
|
65
|
-
@function capture-experimental-matrix() {
|
66
|
-
@return $experimental-support-for-mozilla
|
67
|
-
$experimental-support-for-webkit
|
68
|
-
$experimental-support-for-microsoft
|
69
|
-
$experimental-support-for-opera
|
70
|
-
$experimental-support-for-khtml;
|
71
|
-
}
|
72
|
-
|
73
|
-
// Capture the current legacy-ie support settings
|
74
|
-
@function capture-legacy-ie-matrix() {
|
75
|
-
@return $legacy-support-for-ie6
|
76
|
-
$legacy-support-for-ie7
|
77
|
-
$legacy-support-for-ie8;
|
78
|
-
}
|
79
|
-
|
80
|
-
// Capture and store support
|
81
|
-
$experimental-matrix: capture-experimental-matrix();
|
82
|
-
$legacy-ie-matrix: capture-legacy-ie-matrix();
|
83
|
-
|
84
|
-
@mixin capture-experimental-matrix {
|
85
|
-
$experimental-matrix: capture-experimental-matrix();
|
86
|
-
}
|
87
|
-
|
88
|
-
@mixin capture-legacy-ie-matrix {
|
89
|
-
$legacy-ie-matrix: capture-legacy-ie-matrix();
|
90
|
-
}
|
91
|
-
|
92
|
-
@mixin capture-support-matrix {
|
93
|
-
@include capture-experimental-matrix;
|
94
|
-
@include capture-legacy-ie-matrix;
|
95
|
-
}
|
96
|
-
|
97
|
-
// Change the experimental-support settings in specific contexts.
|
98
|
-
@mixin set-experimental-support(
|
99
|
-
$moz : false,
|
100
|
-
$webkit : false,
|
101
|
-
$ms : false,
|
102
|
-
$o : false,
|
103
|
-
$khtml : false
|
104
|
-
) {
|
105
|
-
$experimental-support-for-mozilla : $moz;
|
106
|
-
$experimental-support-for-webkit : $webkit;
|
107
|
-
$experimental-support-for-microsoft : $ms;
|
108
|
-
$experimental-support-for-opera : $o;
|
109
|
-
$experimental-support-for-khtml : $khtml;
|
110
|
-
}
|
111
|
-
|
112
|
-
@mixin capture-and-set-experimental(
|
113
|
-
$moz : false,
|
114
|
-
$webkit : false,
|
115
|
-
$ms : false,
|
116
|
-
$o : false,
|
117
|
-
$khtml : false
|
118
|
-
) {
|
119
|
-
@include capture-experimental-matrix;
|
120
|
-
@include set-experimental-support($moz, $webkit, $ms, $o, $khtml);
|
121
|
-
}
|
122
|
-
|
123
|
-
@mixin capture-and-adjust-experimental(
|
124
|
-
$moz : $experimental-support-for-mozilla,
|
125
|
-
$webkit : $experimental-support-for-webkit,
|
126
|
-
$ms : $experimental-support-for-microsoft,
|
127
|
-
$o : $experimental-support-for-opera,
|
128
|
-
$khtml : $experimental-support-for-khtml
|
129
|
-
) {
|
130
|
-
@include capture-experimental-matrix;
|
131
|
-
@include set-experimental-support($moz, $webkit, $ms, $o, $khtml);
|
132
|
-
}
|
133
|
-
|
134
|
-
// Change the legacy-support-for-ie* settings in specific contexts.
|
135
|
-
@mixin set-legacy-ie-support(
|
136
|
-
$ie6: false,
|
137
|
-
$ie7: false,
|
138
|
-
$ie8: false
|
139
|
-
) {
|
140
|
-
$legacy-support-for-ie6: $ie6;
|
141
|
-
$legacy-support-for-ie7: $ie7;
|
142
|
-
$legacy-support-for-ie8: $ie8;
|
143
|
-
}
|
144
|
-
|
145
|
-
@mixin capture-and-set-legacy-ie(
|
146
|
-
$ie6: false,
|
147
|
-
$ie7: false,
|
148
|
-
$ie8: false
|
149
|
-
) {
|
150
|
-
@include capture-legacy-ie-matrix;
|
151
|
-
@include set-legacy-ie-support($ie6, $ie7, $ie8);
|
152
|
-
}
|
153
|
-
|
154
|
-
@mixin capture-and-adjust-legacy-ie(
|
155
|
-
$ie6: $legacy-support-for-ie6,
|
156
|
-
$ie7: $legacy-support-for-ie7,
|
157
|
-
$ie8: $legacy-support-for-ie8
|
158
|
-
) {
|
159
|
-
@include capture-and-set-legacy-ie($ie6, $ie7, $ie8);
|
160
|
-
}
|
161
|
-
|
162
|
-
// Capture current browser support matrix, and set a new matrix of support.
|
163
|
-
@mixin capture-and-set-support(
|
164
|
-
$moz : false,
|
165
|
-
$webkit : false,
|
166
|
-
$ms : false,
|
167
|
-
$o : false,
|
168
|
-
$khtml : false,
|
169
|
-
$ie6 : false,
|
170
|
-
$ie7 : false,
|
171
|
-
$ie8 : false
|
172
|
-
) {
|
173
|
-
// Capture the current state
|
174
|
-
@include capture-support-matrix;
|
175
|
-
|
176
|
-
// Change support settings
|
177
|
-
@include set-experimental-support($moz, $webkit, $ms, $o, $khtml);
|
178
|
-
@include set-legacy-ie-support($ie6, $ie7, $ie8);
|
179
|
-
}
|
180
|
-
|
181
|
-
// Capture current browser support matrix, and set a new matrix of support.
|
182
|
-
@mixin capture-and-adjust-support(
|
183
|
-
$moz : $experimental-support-for-mozilla,
|
184
|
-
$webkit : $experimental-support-for-webkit,
|
185
|
-
$ms : $experimental-support-for-microsoft,
|
186
|
-
$o : $experimental-support-for-opera,
|
187
|
-
$khtml : $experimental-support-for-khtml,
|
188
|
-
$ie6 : $legacy-support-for-ie6,
|
189
|
-
$ie7 : $legacy-support-for-ie7,
|
190
|
-
$ie8 : $legacy-support-for-ie8
|
191
|
-
) {
|
192
|
-
@include capture-and-set-support($moz, $webkit, $ms, $o, $khtml, $ie6, $ie7, $ie8);
|
193
|
-
}
|
194
|
-
|
195
|
-
|
196
|
-
// This mixin allows you to change the experimental support settings for
|
197
|
-
// child (@content) styles.
|
198
|
-
@mixin with-only-support-for(
|
199
|
-
$moz : false,
|
200
|
-
$webkit : false,
|
201
|
-
$ms : false,
|
202
|
-
$o : false,
|
203
|
-
$khtml : false,
|
204
|
-
$ie6 : false,
|
205
|
-
$ie7 : false,
|
206
|
-
$ie8 : false
|
207
|
-
) {
|
208
|
-
// Capture current state
|
209
|
-
$wo-experimental-matrix : capture-experimental-matrix();
|
210
|
-
$wo-legacy-ie-matrix : capture-legacy-ie-matrix();
|
211
|
-
|
212
|
-
// Set new states
|
213
|
-
@include set-experimental-support($moz, $webkit, $ms, $o, $khtml);
|
214
|
-
@include set-legacy-ie-support($ie6, $ie7, $ie8);
|
215
|
-
|
216
|
-
// Apply styles
|
217
|
-
@content;
|
218
|
-
|
219
|
-
// Return to original support settings
|
220
|
-
@include set-experimental-support($wo-experimental-matrix...);
|
221
|
-
@include set-legacy-ie-support($wo-legacy-ie-matrix...);
|
222
|
-
}
|
223
|
-
|
224
|
-
// This mixin is a shortcut for making slight adjustments to browser support
|
225
|
-
// for child (@content) styles
|
226
|
-
@mixin adjust-support-for(
|
227
|
-
$moz : $experimental-support-for-mozilla,
|
228
|
-
$webkit : $experimental-support-for-webkit,
|
229
|
-
$ms : $experimental-support-for-microsoft,
|
230
|
-
$o : $experimental-support-for-opera,
|
231
|
-
$khtml : $experimental-support-for-khtml,
|
232
|
-
$ie6 : $legacy-support-for-ie6,
|
233
|
-
$ie7 : $legacy-support-for-ie7,
|
234
|
-
$ie8 : $legacy-support-for-ie8
|
235
|
-
) {
|
236
|
-
@include with-only-support-for($moz, $webkit, $ms, $o, $khtml, $ie6, $ie7, $ie8) {
|
237
|
-
@content;
|
238
|
-
}
|
239
|
-
}
|
240
|
-
|
241
|
-
// Set a default value if the given arglist is empty
|
242
|
-
@function set-arglist-default(
|
243
|
-
$arglist,
|
244
|
-
$default
|
245
|
-
) {
|
246
|
-
$default: if(length($default) > 0, $default, null);
|
247
|
-
$output: compact();
|
248
|
-
@each $layer in $arglist {
|
249
|
-
$output: append($output, if($layer == 'default', $default, $layer));
|
250
|
-
}
|
251
|
-
@return if(length($output) > 0, $output, $default);
|
252
|
-
}
|
253
|
-
|
254
|
-
// @private Returns the legacy value for a given box-model
|
255
|
-
// - Used by background-clip and -origin.
|
256
|
-
@function legacy-box($box) {
|
257
|
-
$box: unquote($box);
|
258
|
-
@if $box == padding-box { $box: padding; }
|
259
|
-
@if $box == border-box { $box: border; }
|
260
|
-
@if $box == content-box { $box: content; }
|
261
|
-
@return $box;
|
262
|
-
}
|
5
|
+
@import "deprecated-support";
|
@@ -1,4 +1,7 @@
|
|
1
|
-
@import "
|
1
|
+
@import "compass/support";
|
2
|
+
|
3
|
+
// The the user threshold for transform support. Defaults to `$graceful-usage-threshold`
|
4
|
+
$transform-support-threshold: $graceful-usage-threshold;
|
2
5
|
|
3
6
|
// @doc off
|
4
7
|
// Note ----------------------------------------------------------------------
|
@@ -101,16 +104,10 @@ $default-skew-y : 5deg !default;
|
|
101
104
|
// @param only3d Set this to true to only apply this
|
102
105
|
// mixin where browsers have 3D support.
|
103
106
|
@mixin apply-origin($origin, $only3d) {
|
104
|
-
$
|
105
|
-
@
|
106
|
-
|
107
|
-
|
108
|
-
);
|
109
|
-
} @else {
|
110
|
-
@include experimental(transform-origin, $origin,
|
111
|
-
-moz, -webkit, -ms, -o, not -khtml, official
|
112
|
-
);
|
113
|
-
}
|
107
|
+
$capability: if($only3d or length($origin) > 2, transforms3d, transforms2d);
|
108
|
+
@include prefixed-properties($capability, $transform-support-threshold, (
|
109
|
+
transform-origin: $origin
|
110
|
+
));
|
114
111
|
}
|
115
112
|
|
116
113
|
// Transform-origin sent as individual arguments:
|
@@ -145,15 +142,10 @@ $default-skew-y : 5deg !default;
|
|
145
142
|
$transform,
|
146
143
|
$only3d: false
|
147
144
|
) {
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
} @else {
|
153
|
-
@include experimental(transform, $transform,
|
154
|
-
-moz, -webkit, -ms, -o, not -khtml, official
|
155
|
-
);
|
156
|
-
}
|
145
|
+
$capability: if($only3d, transforms3d, transforms2d);
|
146
|
+
@include prefixed-properties($capability, $transform-support-threshold, (
|
147
|
+
transform: $transform
|
148
|
+
));
|
157
149
|
}
|
158
150
|
|
159
151
|
// Shortcut to target all browsers with 2D transform support
|
@@ -178,9 +170,9 @@ $default-skew-y : 5deg !default;
|
|
178
170
|
// z-axis. The higher the perspective, the more exaggerated the foreshortening.
|
179
171
|
// values from 500 to 1000 are more-or-less "normal" - a good starting-point.
|
180
172
|
@mixin perspective($p) {
|
181
|
-
@include
|
182
|
-
|
183
|
-
);
|
173
|
+
@include prefixed-properties(transforms3d, $transform-support-threshold, (
|
174
|
+
perspective: $p
|
175
|
+
));
|
184
176
|
}
|
185
177
|
|
186
178
|
// Set the origin position for the perspective
|
@@ -189,9 +181,9 @@ $default-skew-y : 5deg !default;
|
|
189
181
|
//
|
190
182
|
// where the two arguments represent x/y coordinates
|
191
183
|
@mixin perspective-origin($origin: 50%) {
|
192
|
-
@include
|
193
|
-
-
|
194
|
-
);
|
184
|
+
@include prefixed-properties(transforms3d, $transform-support-threshold, (
|
185
|
+
perspective-origin: $origin
|
186
|
+
));
|
195
187
|
}
|
196
188
|
|
197
189
|
// Determine whether a 3D objects children also live in the given 3D space
|
@@ -201,9 +193,9 @@ $default-skew-y : 5deg !default;
|
|
201
193
|
// where `style` can be either `flat` or `preserve-3d`.
|
202
194
|
// Browsers default to `flat`, mixin defaults to `preserve-3d`.
|
203
195
|
@mixin transform-style($style: preserve-3d) {
|
204
|
-
@include
|
205
|
-
-
|
206
|
-
);
|
196
|
+
@include prefixed-properties(transforms3d, $transform-support-threshold, (
|
197
|
+
transform-style: $style
|
198
|
+
));
|
207
199
|
}
|
208
200
|
|
209
201
|
// Determine the visibility of an element when it's back is turned
|
@@ -213,9 +205,9 @@ $default-skew-y : 5deg !default;
|
|
213
205
|
// where `visibility` can be either `visible` or `hidden`.
|
214
206
|
// Browsers default to visible, mixin defaults to hidden
|
215
207
|
@mixin backface-visibility($visibility: hidden) {
|
216
|
-
@include
|
217
|
-
-
|
218
|
-
);
|
208
|
+
@include prefixed-properties(transforms3d, $transform-support-threshold, (
|
209
|
+
backface-visibility: $visibility
|
210
|
+
));
|
219
211
|
}
|
220
212
|
|
221
213
|
// @doc off
|
@@ -1,4 +1,8 @@
|
|
1
|
-
@import "
|
1
|
+
@import "compass/support";
|
2
|
+
|
3
|
+
// The the user threshold for transition support. Defaults to `$graceful-usage-threshold`
|
4
|
+
$transition-support-threshold: $graceful-usage-threshold !default;
|
5
|
+
|
2
6
|
|
3
7
|
// CSS Transitions
|
4
8
|
// Currently only works in Webkit.
|
@@ -19,34 +23,50 @@ $default-transition-property: all !default;
|
|
19
23
|
|
20
24
|
$default-transition-duration: 1s !default;
|
21
25
|
|
22
|
-
$default-transition-function:
|
26
|
+
$default-transition-function: null !default;
|
23
27
|
|
24
|
-
$default-transition-delay:
|
28
|
+
$default-transition-delay: null !default;
|
25
29
|
|
26
30
|
$transitionable-prefixed-values: transform, transform-origin !default;
|
27
31
|
|
32
|
+
|
33
|
+
|
34
|
+
// Checks if the value given is a unit of time.
|
35
|
+
@function is-time($value) {
|
36
|
+
@return if(type-of($value) == number, not not index(s ms, unit($value)), false);
|
37
|
+
}
|
38
|
+
|
39
|
+
// Returns `$property` with the given prefix if it is found in `$transitionable-prefixed-values`.
|
40
|
+
@function prefixed-for-transition($prefix, $property) {
|
41
|
+
@if not $prefix {
|
42
|
+
@return $property;
|
43
|
+
}
|
44
|
+
@if type-of($property) == list or type-of($property) == arglist {
|
45
|
+
$new-list: comma-list();
|
46
|
+
@each $v in $property {
|
47
|
+
$new-list: append($new-list, prefixed-for-transition($prefix, $v));
|
48
|
+
}
|
49
|
+
@return $new-list;
|
50
|
+
} @else {
|
51
|
+
@if index($transitionable-prefixed-values, $property) {
|
52
|
+
@return #{$prefix}-#{$property};
|
53
|
+
} @else {
|
54
|
+
@return $property;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
28
59
|
// One or more properties to transition
|
29
60
|
//
|
30
61
|
// * for multiple, use a comma-delimited list
|
31
62
|
// * also accepts "all" or "none"
|
32
63
|
|
33
|
-
@mixin transition-property($
|
34
|
-
$
|
35
|
-
$
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
$property-7 : false,
|
40
|
-
$property-8 : false,
|
41
|
-
$property-9 : false,
|
42
|
-
$property-10: false
|
43
|
-
) {
|
44
|
-
@if type-of($property-1) == string { $property-1: unquote($property-1); }
|
45
|
-
$properties: compact($property-1, $property-2, $property-3, $property-4, $property-5, $property-6, $property-7, $property-8, $property-9, $property-10);
|
46
|
-
@if $experimental-support-for-webkit { -webkit-transition-property : prefixed-for-transition(-webkit, $properties); }
|
47
|
-
@if $experimental-support-for-mozilla { -moz-transition-property : prefixed-for-transition(-moz, $properties); }
|
48
|
-
@if $experimental-support-for-opera { -o-transition-property : prefixed-for-transition(-o, $properties); }
|
49
|
-
transition-property : $properties;
|
64
|
+
@mixin transition-property($properties...) {
|
65
|
+
$properties: set-arglist-default($properties, $default-transition-property);
|
66
|
+
@include with-each-prefix(css-transitions, $transition-support-threshold) {
|
67
|
+
$props: if($current-prefix, prefixed-for-transition($current-prefix, $properties), $properties);
|
68
|
+
@include prefix-prop(transition-property, $props);
|
69
|
+
}
|
50
70
|
}
|
51
71
|
|
52
72
|
// One or more durations in seconds
|
@@ -54,22 +74,11 @@ $transitionable-prefixed-values: transform, transform-origin !default;
|
|
54
74
|
// * for multiple, use a comma-delimited list
|
55
75
|
// * these durations will affect the properties in the same list position
|
56
76
|
|
57
|
-
@mixin transition-duration($
|
58
|
-
$
|
59
|
-
$
|
60
|
-
|
61
|
-
|
62
|
-
$duration-6 : false,
|
63
|
-
$duration-7 : false,
|
64
|
-
$duration-8 : false,
|
65
|
-
$duration-9 : false,
|
66
|
-
$duration-10: false
|
67
|
-
) {
|
68
|
-
@if type-of($duration-1) == string { $duration-1: unquote($duration-1); }
|
69
|
-
$durations: compact($duration-1, $duration-2, $duration-3, $duration-4, $duration-5, $duration-6, $duration-7, $duration-8, $duration-9, $duration-10);
|
70
|
-
@include experimental(transition-duration, $durations,
|
71
|
-
-moz, -webkit, not -ms, -o, not -khtml, official
|
72
|
-
);
|
77
|
+
@mixin transition-duration($durations...) {
|
78
|
+
$durations: set-arglist-default($durations, $default-transition-duration);
|
79
|
+
@include prefixed-properties(css-transitions, $transition-support-threshold, (
|
80
|
+
transition-duration: $durations
|
81
|
+
));
|
73
82
|
}
|
74
83
|
|
75
84
|
// One or more timing functions
|
@@ -78,22 +87,11 @@ $transitionable-prefixed-values: transform, transform-origin !default;
|
|
78
87
|
// * For multiple, use a comma-delimited list
|
79
88
|
// * These functions will effect the properties in the same list position
|
80
89
|
|
81
|
-
@mixin transition-timing-function($
|
82
|
-
$
|
83
|
-
$
|
84
|
-
|
85
|
-
|
86
|
-
$function-6 : false,
|
87
|
-
$function-7 : false,
|
88
|
-
$function-8 : false,
|
89
|
-
$function-9 : false,
|
90
|
-
$function-10: false
|
91
|
-
) {
|
92
|
-
$function-1: unquote($function-1);
|
93
|
-
$functions: compact($function-1, $function-2, $function-3, $function-4, $function-5, $function-6, $function-7, $function-8, $function-9, $function-10);
|
94
|
-
@include experimental(transition-timing-function, $functions,
|
95
|
-
-moz, -webkit, not -ms, -o, not -khtml, official
|
96
|
-
);
|
90
|
+
@mixin transition-timing-function($functions...) {
|
91
|
+
$functions: set-arglist-default($functions, $default-transition-function);
|
92
|
+
@include prefixed-properties(css-transitions, $transition-support-threshold, (
|
93
|
+
transition-timing-function: $functions
|
94
|
+
));
|
97
95
|
}
|
98
96
|
|
99
97
|
// One or more transition-delays in seconds
|
@@ -101,22 +99,11 @@ $transitionable-prefixed-values: transform, transform-origin !default;
|
|
101
99
|
// * for multiple, use a comma-delimited list
|
102
100
|
// * these delays will effect the properties in the same list position
|
103
101
|
|
104
|
-
@mixin transition-delay($
|
105
|
-
$
|
106
|
-
$
|
107
|
-
|
108
|
-
|
109
|
-
$delay-6 : false,
|
110
|
-
$delay-7 : false,
|
111
|
-
$delay-8 : false,
|
112
|
-
$delay-9 : false,
|
113
|
-
$delay-10: false
|
114
|
-
) {
|
115
|
-
@if type-of($delay-1) == string { $delay-1: unquote($delay-1); }
|
116
|
-
$delays: compact($delay-1, $delay-2, $delay-3, $delay-4, $delay-5, $delay-6, $delay-7, $delay-8, $delay-9, $delay-10);
|
117
|
-
@include experimental(transition-delay, $delays,
|
118
|
-
-moz, -webkit, not -ms, -o, not -khtml, official
|
119
|
-
);
|
102
|
+
@mixin transition-delay($delays...) {
|
103
|
+
$delays: set-arglist-default($delays, $default-transition-delay);
|
104
|
+
@include prefixed-properties(css-transitions, $transition-support-threshold, (
|
105
|
+
transition-delay: $delays
|
106
|
+
));
|
120
107
|
}
|
121
108
|
|
122
109
|
// Transition all-in-one shorthand
|
@@ -130,92 +117,55 @@ $transitionable-prefixed-values: transform, transform-origin !default;
|
|
130
117
|
@include transition(compact($property $duration $function $delay));
|
131
118
|
}
|
132
119
|
|
133
|
-
@mixin transition(
|
134
|
-
$transition-
|
135
|
-
$
|
136
|
-
|
137
|
-
$transition-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
@if length($transition) > 3 { $delay: nth($transition, 4); $has-delays: true; }
|
172
|
-
|
173
|
-
// If a delay is provided without a timing function
|
174
|
-
@if is-time($timing-function) and not $delay { $delay: $timing-function; $timing-function: false; $has-delays: true; }
|
175
|
-
|
176
|
-
// Keep a list of delays in case one is specified
|
177
|
-
$delays: append($delays, if($delay, $delay, 0s));
|
178
|
-
|
179
|
-
$webkit-value: append($webkit-value, compact(prefixed-for-transition(-webkit, $property) $duration $timing-function));
|
180
|
-
$moz-value: append( $moz-value, compact(prefixed-for-transition( -moz, $property) $duration $timing-function $delay));
|
181
|
-
$o-value: append( $o-value, compact(prefixed-for-transition( -o, $property) $duration $timing-function $delay));
|
182
|
-
}
|
183
|
-
|
184
|
-
@if $experimental-support-for-webkit { -webkit-transition : $webkit-value;
|
185
|
-
// old webkit doesn't support the delay parameter in the shorthand so we progressively enhance it.
|
186
|
-
@if $has-delays { -webkit-transition-delay : $delays; } }
|
187
|
-
@if $experimental-support-for-mozilla { -moz-transition : $moz-value; }
|
188
|
-
@if $experimental-support-for-opera { -o-transition : $o-value; }
|
189
|
-
transition : $transitions;
|
190
|
-
}
|
191
|
-
|
192
|
-
// coerce a list to be comma delimited or make a new, empty comma delimited list.
|
193
|
-
@function comma-list($list: ()) {
|
194
|
-
@return join((), $list, comma);
|
195
|
-
}
|
196
|
-
|
197
|
-
// Returns `$property` with the given prefix if it is found in `$transitionable-prefixed-values`.
|
198
|
-
@function prefixed-for-transition($prefix, $property) {
|
199
|
-
@if type-of($property) == list {
|
200
|
-
$new-list: comma-list();
|
201
|
-
@each $v in $property {
|
202
|
-
$new-list: append($new-list, prefixed-for-transition($prefix, $v));
|
120
|
+
@mixin transition($transitions...) {
|
121
|
+
$default: compact($default-transition-property $default-transition-duration $default-transition-function $default-transition-delay);
|
122
|
+
$transitions: set-arglist-default($transitions, $default);
|
123
|
+
|
124
|
+
@include with-each-prefix(css-transitions, $transition-support-threshold) {
|
125
|
+
$delays: ();
|
126
|
+
$transitions-without-delays: ();
|
127
|
+
$transitions-with-delays: ();
|
128
|
+
$has-delays: false;
|
129
|
+
|
130
|
+
|
131
|
+
// This block can be made considerably simpler at the point in time that
|
132
|
+
// we no longer need to deal with the differences in how delays are treated.
|
133
|
+
@each $transition in $transitions {
|
134
|
+
// Extract the values from the list
|
135
|
+
// (this would be cleaner if nth took a 3rd argument to provide a default value).
|
136
|
+
$property: nth($transition, 1);
|
137
|
+
$duration: if(length($transition) >= 2, nth($transition, 2), null);
|
138
|
+
$timing-function: if(length($transition) >= 3, nth($transition, 3), null);
|
139
|
+
$delay: if(length($transition) >= 4, nth($transition, 4), null);
|
140
|
+
$has-delays: $has-delays or $delay;
|
141
|
+
|
142
|
+
// If a delay is provided without a timing function
|
143
|
+
@if is-time($timing-function) and not $delay {
|
144
|
+
$delay: $timing-function;
|
145
|
+
$timing-function: null;
|
146
|
+
$has-delays: true;
|
147
|
+
}
|
148
|
+
|
149
|
+
@if $current-prefix == -webkit {
|
150
|
+
// Keep a list of delays in case one is specified
|
151
|
+
$delays: append($delays, if($delay, $delay, 0s));
|
152
|
+
$transitions-without-delays: append($transitions-without-delays,
|
153
|
+
prefixed-for-transition($current-prefix, $property) $duration $timing-function);
|
154
|
+
} @else {
|
155
|
+
$transitions-with-delays: append($transitions-with-delays,
|
156
|
+
prefixed-for-transition($current-prefix, $property) $duration $timing-function $delay);
|
157
|
+
}
|
203
158
|
}
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
@
|
159
|
+
|
160
|
+
@if $current-prefix == -webkit {
|
161
|
+
@include prefix-prop(transition, $transitions-without-delays);
|
162
|
+
@if $has-delays {
|
163
|
+
@include prefix-prop(transition-delay, $delays);
|
164
|
+
}
|
165
|
+
} @else if $current-prefix {
|
166
|
+
@include prefix-prop(transition, $transitions-with-delays);
|
208
167
|
} @else {
|
209
|
-
|
168
|
+
transition: $transitions-with-delays;
|
210
169
|
}
|
211
170
|
}
|
212
171
|
}
|
213
|
-
|
214
|
-
// Checks if the value given is a unit of time.
|
215
|
-
@function is-time($value) {
|
216
|
-
@if type-of($value) == number {
|
217
|
-
@return not not index(s ms, unit($value));
|
218
|
-
} @else {
|
219
|
-
@return false;
|
220
|
-
}
|
221
|
-
}
|