compass 0.13.alpha.4 → 0.13.alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
}
|