gem_2345 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. data/lib/gem_2345/import-once.rb +28 -0
  2. data/lib/gem_2345/import-once/activate.rb +20 -0
  3. data/lib/gem_2345/import-once/engine.rb +36 -0
  4. data/lib/gem_2345/import-once/importer.rb +81 -0
  5. data/lib/gem_2345/import-once/version.rb +5 -0
  6. data/lib/gem_2345/version.rb +1 -1
  7. data/stylesheets/_compass.scss +3 -0
  8. data/stylesheets/_lemonade.scss +38 -0
  9. data/stylesheets/compass/_configuration.scss +54 -0
  10. data/stylesheets/compass/_css3.scss +21 -0
  11. data/stylesheets/compass/_layout.scss +3 -0
  12. data/stylesheets/compass/_reset-legacy.scss +3 -0
  13. data/stylesheets/compass/_reset.scss +3 -0
  14. data/stylesheets/compass/_support.scss +447 -0
  15. data/stylesheets/compass/_typography.scss +4 -0
  16. data/stylesheets/compass/_utilities.scss +9 -0
  17. data/stylesheets/compass/css3/_animation.scss +122 -0
  18. data/stylesheets/compass/css3/_appearance.scss +17 -0
  19. data/stylesheets/compass/css3/_background-clip.scss +35 -0
  20. data/stylesheets/compass/css3/_background-origin.scss +37 -0
  21. data/stylesheets/compass/css3/_background-size.scss +19 -0
  22. data/stylesheets/compass/css3/_border-radius.scss +107 -0
  23. data/stylesheets/compass/css3/_box-shadow.scss +88 -0
  24. data/stylesheets/compass/css3/_box-sizing.scss +21 -0
  25. data/stylesheets/compass/css3/_box.scss +85 -0
  26. data/stylesheets/compass/css3/_columns.scss +212 -0
  27. data/stylesheets/compass/css3/_deprecated-support.scss +272 -0
  28. data/stylesheets/compass/css3/_filter.scss +50 -0
  29. data/stylesheets/compass/css3/_flexbox.scss +156 -0
  30. data/stylesheets/compass/css3/_font-face.scss +48 -0
  31. data/stylesheets/compass/css3/_hyphenation.scss +71 -0
  32. data/stylesheets/compass/css3/_images.scss +152 -0
  33. data/stylesheets/compass/css3/_inline-block.scss +31 -0
  34. data/stylesheets/compass/css3/_opacity.scss +27 -0
  35. data/stylesheets/compass/css3/_pie.scss +1 -0
  36. data/stylesheets/compass/css3/_regions.scss +27 -0
  37. data/stylesheets/compass/css3/_selection.scss +59 -0
  38. data/stylesheets/compass/css3/_shared.scss +5 -0
  39. data/stylesheets/compass/css3/_text-shadow.scss +82 -0
  40. data/stylesheets/compass/css3/_transform.scss +590 -0
  41. data/stylesheets/compass/css3/_transition.scss +190 -0
  42. data/stylesheets/compass/css3/_user-interface.scss +71 -0
  43. data/stylesheets/compass/layout/_grid-background.scss +178 -0
  44. data/stylesheets/compass/layout/_sticky-footer.scss +23 -0
  45. data/stylesheets/compass/layout/_stretching.scss +24 -0
  46. data/stylesheets/compass/reset/_utilities-legacy.scss +135 -0
  47. data/stylesheets/compass/reset/_utilities.scss +142 -0
  48. data/stylesheets/compass/typography/_links.scss +3 -0
  49. data/stylesheets/compass/typography/_lists.scss +4 -0
  50. data/stylesheets/compass/typography/_text.scss +4 -0
  51. data/stylesheets/compass/typography/_units.scss +183 -0
  52. data/stylesheets/compass/typography/_vertical_rhythm.scss +300 -0
  53. data/stylesheets/compass/typography/links/_hover-link.scss +5 -0
  54. data/stylesheets/compass/typography/links/_link-colors.scss +28 -0
  55. data/stylesheets/compass/typography/links/_unstyled-link.scss +7 -0
  56. data/stylesheets/compass/typography/lists/_bullets.scss +34 -0
  57. data/stylesheets/compass/typography/lists/_horizontal-list.scss +63 -0
  58. data/stylesheets/compass/typography/lists/_inline-block-list.scss +50 -0
  59. data/stylesheets/compass/typography/lists/_inline-list.scss +47 -0
  60. data/stylesheets/compass/typography/text/_ellipsis.scss +25 -0
  61. data/stylesheets/compass/typography/text/_force-wrap.scss +12 -0
  62. data/stylesheets/compass/typography/text/_nowrap.scss +2 -0
  63. data/stylesheets/compass/typography/text/_replacement.scss +74 -0
  64. data/stylesheets/compass/utilities/_color.scss +1 -0
  65. data/stylesheets/compass/utilities/_general.scss +6 -0
  66. data/stylesheets/compass/utilities/_links.scss +5 -0
  67. data/stylesheets/compass/utilities/_lists.scss +6 -0
  68. data/stylesheets/compass/utilities/_print.scss +17 -0
  69. data/stylesheets/compass/utilities/_sass.scss +2 -0
  70. data/stylesheets/compass/utilities/_sprites.scss +2 -0
  71. data/stylesheets/compass/utilities/_tables.scss +3 -0
  72. data/stylesheets/compass/utilities/_text.scss +5 -0
  73. data/stylesheets/compass/utilities/color/_brightness.scss +20 -0
  74. data/stylesheets/compass/utilities/color/_contrast.scss +52 -0
  75. data/stylesheets/compass/utilities/general/_clearfix.scss +44 -0
  76. data/stylesheets/compass/utilities/general/_float.scss +38 -0
  77. data/stylesheets/compass/utilities/general/_hacks.scss +65 -0
  78. data/stylesheets/compass/utilities/general/_min.scss +16 -0
  79. data/stylesheets/compass/utilities/general/_reset.scss +2 -0
  80. data/stylesheets/compass/utilities/general/_tabs.scss +1 -0
  81. data/stylesheets/compass/utilities/general/_tag-cloud.scss +18 -0
  82. data/stylesheets/compass/utilities/links/_hover-link.scss +3 -0
  83. data/stylesheets/compass/utilities/links/_link-colors.scss +3 -0
  84. data/stylesheets/compass/utilities/links/_unstyled-link.scss +3 -0
  85. data/stylesheets/compass/utilities/lists/_bullets.scss +3 -0
  86. data/stylesheets/compass/utilities/lists/_horizontal-list.scss +3 -0
  87. data/stylesheets/compass/utilities/lists/_inline-block-list.scss +3 -0
  88. data/stylesheets/compass/utilities/lists/_inline-list.scss +3 -0
  89. data/stylesheets/compass/utilities/sass/_lists.scss +16 -0
  90. data/stylesheets/compass/utilities/sass/_maps.scss +19 -0
  91. data/stylesheets/compass/utilities/sprites/_base.scss +92 -0
  92. data/stylesheets/compass/utilities/sprites/_sprite-img.scss +81 -0
  93. data/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +22 -0
  94. data/stylesheets/compass/utilities/tables/_borders.scss +38 -0
  95. data/stylesheets/compass/utilities/tables/_scaffolding.scss +9 -0
  96. data/stylesheets/compass/utilities/text/_ellipsis.scss +3 -0
  97. data/stylesheets/compass/utilities/text/_nowrap.scss +3 -0
  98. data/stylesheets/compass/utilities/text/_replacement.scss +3 -0
  99. data/templates/ellipsis/ellipsis.sass +9 -0
  100. data/templates/ellipsis/manifest.rb +27 -0
  101. data/templates/ellipsis/xml/ellipsis.xml +14 -0
  102. data/templates/extension/manifest.rb +26 -0
  103. data/templates/extension/stylesheets/main.sass +1 -0
  104. data/templates/extension/templates/project/manifest.rb +2 -0
  105. data/templates/extension/templates/project/screen.sass +2 -0
  106. data/templates/project/USAGE.markdown +32 -0
  107. data/templates/project/ie.sass +6 -0
  108. data/templates/project/manifest.rb +4 -0
  109. data/templates/project/print.sass +6 -0
  110. data/templates/project/screen.sass +7 -0
  111. metadata +113 -10
  112. data/.gitignore +0 -14
  113. data/Gemfile +0 -4
  114. data/LICENSE.txt +0 -22
  115. data/README.md +0 -31
  116. data/Rakefile +0 -9
  117. data/gem_2345.gemspec +0 -25
@@ -0,0 +1,21 @@
1
+ // Box Sizing
2
+
3
+ @import "compass/support";
4
+
5
+ // The prefixed support threshold for box-sizing.
6
+ // Defaults to the $graceful-usage-threshold.
7
+ $box-sizing-support-threshold: $critical-usage-threshold !default;
8
+
9
+ // The default box-sizing model when no argument is provided to the box-sizing mixin: [ content-box | border-box | padding-box ]
10
+ //
11
+ // The browser default is content-box, compass defaults to border-box.
12
+ $default-box-sizing: border-box !default;
13
+
14
+
15
+ // Change the box model for Mozilla, Webkit, IE8 and the future
16
+ //
17
+ // $box-model: [ content-box | border-box | padding-box ]
18
+ @mixin box-sizing($box-model: $default-box-sizing) {
19
+ $box-model: unquote($box-model);
20
+ @include prefixed-properties(css3-boxsizing, $box-sizing-support-threshold, (box-sizing: $box-model));
21
+ }
@@ -0,0 +1,85 @@
1
+ // Flexible Box
2
+ @import "deprecated-support";
3
+
4
+ @warn "The compass/css3/box module is DEPRECATED and will be removed in the next release. Please use compass/css3/flexbox instead.";
5
+
6
+ // @private css3-feature-support variables must always include a list of five boolean values
7
+ $legacy-box-support: -moz, -webkit, not -o, -ms, not -khtml;
8
+
9
+ // Default box orientation, assuming that the user wants something less block-like
10
+ $default-box-orient : horizontal !default;
11
+
12
+ // Default box-align
13
+ $default-box-align : stretch !default;
14
+
15
+ // Default box flex
16
+ $default-box-flex : 0 !default;
17
+
18
+ // Default flex group
19
+ $default-box-flex-group : 1 !default;
20
+
21
+ // Box direction default value
22
+ $default-box-direction : normal !default;
23
+
24
+ // Default ordinal group
25
+ $default-box-ordinal-group : 1 !default;
26
+
27
+ // Default box lines
28
+ $default-box-lines : single !default;
29
+
30
+ // Default box pack
31
+ $default-box-pack : start !default;
32
+
33
+
34
+ // Apply 'display:box;' to an element.
35
+ // - must be used for any of the other flexbox mixins to work properly
36
+ @mixin display-box {
37
+ @include experimental-value(display, box, $legacy-box-support...);
38
+ }
39
+
40
+ // Box orientation [ horizontal | vertical | inline-axis | block-axis | inherit ]
41
+ @mixin box-orient($orientation: $default-box-orient) {
42
+ $orientation : unquote($orientation);
43
+ @include experimental(box-orient, $orientation, $legacy-box-support...);
44
+ }
45
+
46
+ // Box align [ start | end | center | baseline | stretch ]
47
+ @mixin box-align($alignment: $default-box-align) {
48
+ $alignment : unquote($alignment);
49
+ @include experimental(box-align, $alignment, $legacy-box-support...);
50
+ }
51
+
52
+ // Takes an int argument for box flex. Apply this to the children inside the box.
53
+ //
54
+ // For example: "div.display-box > div.child-box" would get the box flex mixin.
55
+ @mixin box-flex($flex: $default-box-flex) {
56
+ @include experimental(box-flex, $flex, $legacy-box-support...);
57
+ }
58
+
59
+ // Takes an int argument for flexible grouping
60
+ @mixin box-flex-group($group: $default-box-flex-group) {
61
+ @include experimental(box-flex-group, $group, $legacy-box-support...);
62
+ }
63
+
64
+ // Takes an int argument for ordinal grouping and rearranging the order
65
+ @mixin box-ordinal-group($group: $default-box-ordinal-group) {
66
+ @include experimental(box-ordinal-group, $group, $legacy-box-support...);
67
+ }
68
+
69
+ // Box direction [ normal | reverse | inherit ]
70
+ @mixin box-direction($direction: $default-box-direction) {
71
+ $direction: unquote($direction);
72
+ @include experimental(box-direction, $direction, $legacy-box-support...);
73
+ }
74
+
75
+ // Box lines [ single | multiple ]
76
+ @mixin box-lines($lines: $default-box-lines) {
77
+ $lines: unquote($lines);
78
+ @include experimental(box-lines, $lines, $legacy-box-support...);
79
+ }
80
+
81
+ // Box pack [ start | end | center | justify ]
82
+ @mixin box-pack($pack: $default-box-pack) {
83
+ $pack: unquote($pack);
84
+ @include experimental(box-pack, $pack, $legacy-box-support...);
85
+ }
@@ -0,0 +1,212 @@
1
+ // Columns
2
+ @import "compass/support";
3
+
4
+ // The prefixed support threshold for columns.
5
+ // Defaults to the $critical-usage-threshold.
6
+ $multicolumn-support-threshold: $critical-usage-threshold !default;
7
+
8
+
9
+ // Specify the shorthand `columns` property.
10
+ //
11
+ // Example:
12
+ //
13
+ // @include columns(20em 2);
14
+ @mixin columns($width-and-count) {
15
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
16
+ columns: $width-and-count
17
+ ));
18
+ }
19
+
20
+ // Specify the number of columns
21
+ @mixin column-count($count) {
22
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
23
+ column-count: $count
24
+ ));
25
+ }
26
+
27
+ // Specify the gap between columns e.g. `20px`
28
+ @mixin column-gap($width) {
29
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
30
+ column-gap: $width
31
+ ));
32
+ }
33
+
34
+ // Specify the width of columns e.g. `100px`
35
+ @mixin column-width($width) {
36
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
37
+ column-width: $width
38
+ ));
39
+ }
40
+
41
+ // Specify how many columns an element should span across.
42
+ //
43
+ // * legal values are 1, all
44
+ @mixin column-span($columns) {
45
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
46
+ column-span: $columns
47
+ ));
48
+ }
49
+
50
+ // Specify the width of the rule between columns e.g. `1px`
51
+ @mixin column-rule-width($width) {
52
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
53
+ rule-width: $width
54
+ ));
55
+ }
56
+
57
+ // Specify the style of the rule between columns e.g. `dotted`.
58
+ // This works like border-style.
59
+ @mixin column-rule-style($style) {
60
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
61
+ rule-style: $style
62
+ ));
63
+ }
64
+
65
+ // Specify the color of the rule between columns e.g. `blue`.
66
+ // This works like border-color.
67
+ @mixin column-rule-color($color) {
68
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
69
+ rule-color: $color
70
+ ));
71
+ }
72
+
73
+ // Mixin encompassing all column rule properties
74
+ // For example:
75
+ //
76
+ // @include column-rule(1px, solid, #c00)
77
+ //
78
+ // Or the values can be space separated:
79
+ //
80
+ // @include column-rule(1px solid #c00)
81
+ @mixin column-rule($width, $style: null, $color: null) {
82
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
83
+ column-rule: $width $style $color
84
+ ));
85
+ }
86
+
87
+ // All-purpose mixin for setting column breaks.
88
+ //
89
+ // * legal values for $type : before, after, inside
90
+ // * legal values for '$value' are dependent on $type
91
+ // * when $type = before, legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
92
+ // * when $type = after, legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
93
+ // * when $type = inside, legal values are auto, avoid, avoid-page, avoid-column
94
+ //
95
+ // Examples:
96
+ // h2.before {@include column-break(before, always);}
97
+ // h2.after {@include column-break(after, always); }
98
+ // h2.inside {@include column-break(inside); }
99
+ //
100
+ // Which generates:
101
+ // h2.before {
102
+ // -webkit-column-break-before: always;
103
+ // break-before: always;}
104
+ //
105
+ // h2.after {
106
+ // -webkit-column-break-after: always;
107
+ // break-after: always; }
108
+ //
109
+ // h2.inside {
110
+ // -webkit-column-break-inside: auto;
111
+ // break-inside: auto;}
112
+
113
+ @mixin column-break($type: before, $value: auto){
114
+ @include with-each-prefix(multicolumn, $multicolumn-support-threshold) {
115
+ @if $current-prefix == -webkit {
116
+ // Webkit uses non-standard syntax
117
+ -webkit-column-break-#{$type}: $value;
118
+ } @else if $current-prefix == -moz {
119
+ // Moz uses a different non-standard syntax
120
+ -moz-page-break-#{$type}: $value;
121
+ } @else {
122
+ @include prefix-prop(break-#{$type}, $value);
123
+ }
124
+ }
125
+ }
126
+
127
+ // Mixin for setting break-before
128
+ //
129
+ // * legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
130
+ //
131
+ // Example:
132
+ // h2.before {@include break-before(always);}
133
+ //
134
+ // Which generates:
135
+ //
136
+ // h2.before {
137
+ // -webkit-column-break-before: always;
138
+ // break-before: always;}
139
+ @mixin break-before($value: auto){
140
+ @include column-break(before, $value);
141
+ }
142
+
143
+ @mixin column-break-before($value: auto){
144
+ @include column-break(before, $value);
145
+ @warn '"column-break-before" has been deprecated in favor of the official syntax: "break-before".';
146
+ }
147
+
148
+ // Mixin for setting break-after
149
+ //
150
+ // * legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
151
+ //
152
+ // Example:
153
+ // h2.after {@include break-after(always); }
154
+ //
155
+ // Which generates:
156
+ //
157
+ // h2.after {
158
+ // -webkit-column-break-after: always;
159
+ // break-after: always; }
160
+ @mixin break-after($value: auto){
161
+ @include column-break(after, $value);
162
+ }
163
+
164
+ @mixin column-break-after($value: auto){
165
+ @include column-break(after, $value);
166
+ @warn '"column-break-after" has been deprecated in favor of the official syntax: "break-after".';
167
+ }
168
+
169
+ // Mixin for setting break-inside
170
+ //
171
+ // * legal values are auto, avoid, avoid-page, avoid-column
172
+ //
173
+ // Example:
174
+ // h2.inside {@include break-inside();}
175
+ //
176
+ // Which generates:
177
+ //
178
+ // h2.inside {
179
+ // -webkit-column-break-inside: auto;
180
+ // break-inside: auto;}
181
+ @mixin break-inside($value: auto){
182
+ @include column-break(inside, $value);
183
+ }
184
+
185
+ @mixin column-break-inside($value: auto){
186
+ @include column-break(inside, $value);
187
+ @warn '"column-break-inside" has been deprecated in favor of the official syntax: "break-inside".';
188
+ }
189
+
190
+ // Mixin for setting column-span
191
+ //
192
+ // * legal values: none, all
193
+ //
194
+ // Example:
195
+ // h2.span {@include column-span();}
196
+ @mixin column-span($span: all){
197
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
198
+ column-span: $span
199
+ ));
200
+ }
201
+
202
+ // Mixin for setting column-fill
203
+ //
204
+ // * legal values: auto, balance
205
+ //
206
+ // Example:
207
+ // h2.fill {@include column-fill();}
208
+ @mixin column-fill($fill: balance){
209
+ @include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
210
+ column-fill: $fill
211
+ ));
212
+ }
@@ -0,0 +1,272 @@
1
+ @import "compass/support";
2
+
3
+ // XXX Remove these
4
+ $experimental-support-for-mozilla: true !default;
5
+ $experimental-support-for-webkit: true !default;
6
+ $experimental-support-for-opera: true !default;
7
+ $experimental-support-for-microsoft: true !default;
8
+ $experimental-support-for-khtml: false !default;
9
+ $experimental-support-for-svg: false !default;
10
+ $legacy-support-for-ie6: true !default;
11
+ $legacy-support-for-ie7: true !default;
12
+ $legacy-support-for-ie8: true !default;
13
+ $legacy-support-for-mozilla: true !default;
14
+ $legacy-support-for-webkit: true !default;
15
+
16
+ // This mixin provides basic support for CSS3 properties and
17
+ // their corresponding experimental CSS2 properties when
18
+ // the implementations are identical except for the property
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; }
34
+ }
35
+
36
+ // 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
+ ) {
45
+ @include experimental($property, $value, $moz, $webkit, $o, $ms, $khtml, $official);
46
+ }
47
+
48
+ // 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}; }
63
+ }
64
+
65
+ // @private
66
+ // Check a given support list for support of a particular browser
67
+ @function supported(
68
+ $prefix,
69
+ $support-list
70
+ ) {
71
+ $keys: moz, webkit, o, ms, khtml, official;
72
+ $index: index($keys, $prefix);
73
+
74
+ @if $index {
75
+ @if $index == 6 and length($support-list) == 5 {
76
+ @return official;
77
+ } @else {
78
+ @return nth($support-list, $index);
79
+ }
80
+ } @else {
81
+ @warn 'Please pass a valid browser for $prefix: moz, webkit, o, ms, khtml, or official.';
82
+ }
83
+ }
84
+
85
+ // A debug tool for checking browser support
86
+ @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;
95
+ }
96
+
97
+ // Capture the current exerimental support settings
98
+ @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;
104
+ }
105
+
106
+ // Capture the current legacy-ie support settings
107
+ @function capture-legacy-ie-matrix() {
108
+ @return $legacy-support-for-ie6
109
+ $legacy-support-for-ie7
110
+ $legacy-support-for-ie8;
111
+ }
112
+
113
+ // Capture and store support
114
+ $experimental-matrix: capture-experimental-matrix();
115
+ $legacy-ie-matrix: capture-legacy-ie-matrix();
116
+
117
+ @mixin capture-experimental-matrix {
118
+ $experimental-matrix: capture-experimental-matrix();
119
+ }
120
+
121
+ @mixin capture-legacy-ie-matrix {
122
+ $legacy-ie-matrix: capture-legacy-ie-matrix();
123
+ }
124
+
125
+ @mixin capture-support-matrix {
126
+ @include capture-experimental-matrix;
127
+ @include capture-legacy-ie-matrix;
128
+ }
129
+
130
+ // 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;
143
+ }
144
+
145
+ @mixin capture-and-set-experimental(
146
+ $moz : false,
147
+ $webkit : false,
148
+ $o : false,
149
+ $ms : false,
150
+ $khtml : false
151
+ ) {
152
+ @include capture-experimental-matrix;
153
+ @include set-experimental-support($moz, $webkit, $o, $ms, $khtml);
154
+ }
155
+
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
+ ) {
163
+ @include capture-experimental-matrix;
164
+ @include set-experimental-support($moz, $webkit, $o, $ms, $khtml);
165
+ }
166
+
167
+ // 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
+ ) {
173
+ $legacy-support-for-ie6: $ie6;
174
+ $legacy-support-for-ie7: $ie7;
175
+ $legacy-support-for-ie8: $ie8;
176
+ }
177
+
178
+ @mixin capture-and-set-legacy-ie(
179
+ $ie6: false,
180
+ $ie7: false,
181
+ $ie8: false
182
+ ) {
183
+ @include capture-legacy-ie-matrix;
184
+ @include set-legacy-ie-support($ie6, $ie7, $ie8);
185
+ }
186
+
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
+ ) {
192
+ @include capture-and-set-legacy-ie($ie6, $ie7, $ie8);
193
+ }
194
+
195
+ // 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
+ ) {
206
+ // Capture the current state
207
+ @include capture-support-matrix;
208
+
209
+ // Change support settings
210
+ @include set-experimental-support($moz, $webkit, $o, $ms, $khtml);
211
+ @include set-legacy-ie-support($ie6, $ie7, $ie8);
212
+ }
213
+
214
+ // 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
+ ) {
225
+ @include capture-and-set-support($moz, $webkit, $o, $ms, $khtml, $ie6, $ie7, $ie8);
226
+ }
227
+
228
+
229
+ // This mixin allows you to change the experimental support settings for
230
+ // 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
+ ) {
241
+ // Capture current state
242
+ $wo-experimental-matrix : capture-experimental-matrix();
243
+ $wo-legacy-ie-matrix : capture-legacy-ie-matrix();
244
+
245
+ // Set new states
246
+ @include set-experimental-support($moz, $webkit, $o, $ms, $khtml);
247
+ @include set-legacy-ie-support($ie6, $ie7, $ie8);
248
+
249
+ // Apply styles
250
+ @content;
251
+
252
+ // Return to original support settings
253
+ @include set-experimental-support($wo-experimental-matrix...);
254
+ @include set-legacy-ie-support($wo-legacy-ie-matrix...);
255
+ }
256
+
257
+ // This mixin is a shortcut for making slight adjustments to browser support
258
+ // 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
+ ) {
269
+ @include with-only-support-for($moz, $webkit, $o, $ms, $khtml, $ie6, $ie7, $ie8) {
270
+ @content;
271
+ }
272
+ }