compass-core-sass37 1.1.0

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.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +22 -0
  3. data/VERSION +1 -0
  4. data/data/caniuse.json +1 -0
  5. data/data/caniuse_extras/css-placeholder.json +171 -0
  6. data/lib/compass/browser_support.rb +64 -0
  7. data/lib/compass/configuration/adapters.rb +109 -0
  8. data/lib/compass/configuration/data.rb +199 -0
  9. data/lib/compass/configuration/defaults.rb +207 -0
  10. data/lib/compass/configuration/inheritance.rb +307 -0
  11. data/lib/compass/configuration/paths.rb +19 -0
  12. data/lib/compass/configuration/watch.rb +38 -0
  13. data/lib/compass/configuration.rb +175 -0
  14. data/lib/compass/core/caniuse.rb +314 -0
  15. data/lib/compass/core/generated_version.rb +6 -0
  16. data/lib/compass/core/sass_extensions/functions/colors.rb +67 -0
  17. data/lib/compass/core/sass_extensions/functions/configuration.rb +173 -0
  18. data/lib/compass/core/sass_extensions/functions/constants.rb +56 -0
  19. data/lib/compass/core/sass_extensions/functions/cross_browser_support.rb +270 -0
  20. data/lib/compass/core/sass_extensions/functions/display.rb +32 -0
  21. data/lib/compass/core/sass_extensions/functions/enumerate.rb +7 -0
  22. data/lib/compass/core/sass_extensions/functions/env.rb +72 -0
  23. data/lib/compass/core/sass_extensions/functions/files.rb +33 -0
  24. data/lib/compass/core/sass_extensions/functions/font_files.rb +65 -0
  25. data/lib/compass/core/sass_extensions/functions/gradient_support.rb +859 -0
  26. data/lib/compass/core/sass_extensions/functions/image_size.rb +117 -0
  27. data/lib/compass/core/sass_extensions/functions/inline_image.rb +63 -0
  28. data/lib/compass/core/sass_extensions/functions/lists.rb +102 -0
  29. data/lib/compass/core/sass_extensions/functions/math.rb +105 -0
  30. data/lib/compass/core/sass_extensions/functions/selectors.rb +79 -0
  31. data/lib/compass/core/sass_extensions/functions/urls.rb +315 -0
  32. data/lib/compass/core/sass_extensions/functions.rb +41 -0
  33. data/lib/compass/core/sass_extensions/monkey_patches/browser_support.rb +119 -0
  34. data/lib/compass/core/sass_extensions/monkey_patches/traversal.rb +23 -0
  35. data/lib/compass/core/sass_extensions/monkey_patches.rb +3 -0
  36. data/lib/compass/core/sass_extensions.rb +10 -0
  37. data/lib/compass/core/version.rb +13 -0
  38. data/lib/compass/core.rb +78 -0
  39. data/lib/compass/error.rb +5 -0
  40. data/lib/compass/frameworks.rb +181 -0
  41. data/lib/compass/util.rb +19 -0
  42. data/lib/compass-core.rb +1 -0
  43. data/stylesheets/_compass.scss +3 -0
  44. data/stylesheets/_lemonade.scss +38 -0
  45. data/stylesheets/compass/_configuration.scss +54 -0
  46. data/stylesheets/compass/_css3.scss +21 -0
  47. data/stylesheets/compass/_layout.scss +3 -0
  48. data/stylesheets/compass/_reset-legacy.scss +3 -0
  49. data/stylesheets/compass/_reset.scss +3 -0
  50. data/stylesheets/compass/_support.scss +447 -0
  51. data/stylesheets/compass/_typography.scss +4 -0
  52. data/stylesheets/compass/_utilities.scss +9 -0
  53. data/stylesheets/compass/css3/_animation.scss +122 -0
  54. data/stylesheets/compass/css3/_appearance.scss +17 -0
  55. data/stylesheets/compass/css3/_background-clip.scss +35 -0
  56. data/stylesheets/compass/css3/_background-origin.scss +37 -0
  57. data/stylesheets/compass/css3/_background-size.scss +19 -0
  58. data/stylesheets/compass/css3/_border-radius.scss +107 -0
  59. data/stylesheets/compass/css3/_box-shadow.scss +88 -0
  60. data/stylesheets/compass/css3/_box-sizing.scss +21 -0
  61. data/stylesheets/compass/css3/_box.scss +85 -0
  62. data/stylesheets/compass/css3/_columns.scss +212 -0
  63. data/stylesheets/compass/css3/_deprecated-support.scss +272 -0
  64. data/stylesheets/compass/css3/_filter.scss +50 -0
  65. data/stylesheets/compass/css3/_flexbox.scss +156 -0
  66. data/stylesheets/compass/css3/_font-face.scss +48 -0
  67. data/stylesheets/compass/css3/_hyphenation.scss +71 -0
  68. data/stylesheets/compass/css3/_images.scss +152 -0
  69. data/stylesheets/compass/css3/_inline-block.scss +31 -0
  70. data/stylesheets/compass/css3/_opacity.scss +27 -0
  71. data/stylesheets/compass/css3/_pie.scss +1 -0
  72. data/stylesheets/compass/css3/_regions.scss +27 -0
  73. data/stylesheets/compass/css3/_selection.scss +59 -0
  74. data/stylesheets/compass/css3/_shared.scss +5 -0
  75. data/stylesheets/compass/css3/_text-shadow.scss +82 -0
  76. data/stylesheets/compass/css3/_transform.scss +590 -0
  77. data/stylesheets/compass/css3/_transition.scss +190 -0
  78. data/stylesheets/compass/css3/_user-interface.scss +71 -0
  79. data/stylesheets/compass/layout/_grid-background.scss +178 -0
  80. data/stylesheets/compass/layout/_sticky-footer.scss +23 -0
  81. data/stylesheets/compass/layout/_stretching.scss +24 -0
  82. data/stylesheets/compass/reset/_utilities-legacy.scss +135 -0
  83. data/stylesheets/compass/reset/_utilities.scss +142 -0
  84. data/stylesheets/compass/typography/_links.scss +3 -0
  85. data/stylesheets/compass/typography/_lists.scss +4 -0
  86. data/stylesheets/compass/typography/_text.scss +4 -0
  87. data/stylesheets/compass/typography/_units.scss +183 -0
  88. data/stylesheets/compass/typography/_vertical_rhythm.scss +300 -0
  89. data/stylesheets/compass/typography/links/_hover-link.scss +5 -0
  90. data/stylesheets/compass/typography/links/_link-colors.scss +28 -0
  91. data/stylesheets/compass/typography/links/_unstyled-link.scss +7 -0
  92. data/stylesheets/compass/typography/lists/_bullets.scss +34 -0
  93. data/stylesheets/compass/typography/lists/_horizontal-list.scss +63 -0
  94. data/stylesheets/compass/typography/lists/_inline-block-list.scss +50 -0
  95. data/stylesheets/compass/typography/lists/_inline-list.scss +47 -0
  96. data/stylesheets/compass/typography/text/_ellipsis.scss +25 -0
  97. data/stylesheets/compass/typography/text/_force-wrap.scss +12 -0
  98. data/stylesheets/compass/typography/text/_nowrap.scss +2 -0
  99. data/stylesheets/compass/typography/text/_replacement.scss +74 -0
  100. data/stylesheets/compass/utilities/_color.scss +1 -0
  101. data/stylesheets/compass/utilities/_general.scss +6 -0
  102. data/stylesheets/compass/utilities/_links.scss +5 -0
  103. data/stylesheets/compass/utilities/_lists.scss +6 -0
  104. data/stylesheets/compass/utilities/_print.scss +17 -0
  105. data/stylesheets/compass/utilities/_sass.scss +2 -0
  106. data/stylesheets/compass/utilities/_sprites.scss +2 -0
  107. data/stylesheets/compass/utilities/_tables.scss +3 -0
  108. data/stylesheets/compass/utilities/_text.scss +5 -0
  109. data/stylesheets/compass/utilities/color/_brightness.scss +20 -0
  110. data/stylesheets/compass/utilities/color/_contrast.scss +52 -0
  111. data/stylesheets/compass/utilities/general/_clearfix.scss +44 -0
  112. data/stylesheets/compass/utilities/general/_float.scss +38 -0
  113. data/stylesheets/compass/utilities/general/_hacks.scss +65 -0
  114. data/stylesheets/compass/utilities/general/_min.scss +16 -0
  115. data/stylesheets/compass/utilities/general/_reset.scss +2 -0
  116. data/stylesheets/compass/utilities/general/_tabs.scss +1 -0
  117. data/stylesheets/compass/utilities/general/_tag-cloud.scss +18 -0
  118. data/stylesheets/compass/utilities/links/_hover-link.scss +3 -0
  119. data/stylesheets/compass/utilities/links/_link-colors.scss +3 -0
  120. data/stylesheets/compass/utilities/links/_unstyled-link.scss +3 -0
  121. data/stylesheets/compass/utilities/lists/_bullets.scss +3 -0
  122. data/stylesheets/compass/utilities/lists/_horizontal-list.scss +3 -0
  123. data/stylesheets/compass/utilities/lists/_inline-block-list.scss +3 -0
  124. data/stylesheets/compass/utilities/lists/_inline-list.scss +3 -0
  125. data/stylesheets/compass/utilities/sass/_lists.scss +16 -0
  126. data/stylesheets/compass/utilities/sass/_maps.scss +19 -0
  127. data/stylesheets/compass/utilities/sprites/_base.scss +92 -0
  128. data/stylesheets/compass/utilities/sprites/_sprite-img.scss +81 -0
  129. data/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +22 -0
  130. data/stylesheets/compass/utilities/tables/_borders.scss +38 -0
  131. data/stylesheets/compass/utilities/tables/_scaffolding.scss +9 -0
  132. data/stylesheets/compass/utilities/text/_ellipsis.scss +3 -0
  133. data/stylesheets/compass/utilities/text/_nowrap.scss +3 -0
  134. data/stylesheets/compass/utilities/text/_replacement.scss +3 -0
  135. data/templates/ellipsis/ellipsis.sass +9 -0
  136. data/templates/ellipsis/manifest.rb +27 -0
  137. data/templates/ellipsis/xml/ellipsis.xml +14 -0
  138. data/templates/extension/manifest.rb +26 -0
  139. data/templates/extension/stylesheets/main.sass +1 -0
  140. data/templates/extension/templates/project/manifest.rb +2 -0
  141. data/templates/extension/templates/project/screen.sass +2 -0
  142. data/templates/project/USAGE.markdown +32 -0
  143. data/templates/project/ie.sass +6 -0
  144. data/templates/project/manifest.rb +4 -0
  145. data/templates/project/print.sass +6 -0
  146. data/templates/project/screen.sass +7 -0
  147. metadata +257 -0
@@ -0,0 +1,152 @@
1
+ @import "compass/support";
2
+ @import "compass/utilities/general/hacks";
3
+
4
+ $gradient-support-threshold: $graceful-usage-threshold !default;
5
+ $svg-gradient-shim-threshold: $graceful-usage-threshold !default;
6
+ $border-image-support-threshold: $graceful-usage-threshold !default;
7
+ $owg-threshold: $graceful-usage-threshold !default;
8
+
9
+ // Compass assumes you will use the official gradient syntax,
10
+ // unless otherwise instructed.
11
+ $use-legacy-gradient-syntax: false !default;
12
+
13
+ // Create a linear gradient using standard official or legacy syntax.
14
+ // This function must be included in one of the following
15
+ // image module mixins to work properly.
16
+ @function linear-gradient($angle, $details...) {
17
+ $legacy-syntax: $use-legacy-gradient-syntax;
18
+
19
+ @if type-of($angle) != 'number' {
20
+ $angle: compact($angle);
21
+ $legacy-syntax: if(index($angle, 'to'), false, true);
22
+ }
23
+
24
+ @if $legacy-syntax {
25
+ @return _linear-gradient_legacy($angle, $details...);
26
+ } @else {
27
+ @return _linear-gradient($angle, $details...);
28
+ }
29
+ }
30
+
31
+ // These browsers support svg but not gradients
32
+ // so we can shim the gradient with an inline svg file.
33
+ $browsers-supporting-svg-but-not-gradients: (ie: "9", opera: "9.5-9.6");
34
+
35
+ // These browsers require the old webkit gradient syntax
36
+ $browsers-supporting-old-webkit-gradients: (android: ("2.1", "3"));
37
+
38
+ @mixin each-gradient-prefix($values) {
39
+ @if prefixed(-svg, $values) {
40
+ @include for-legacy-browsers($browsers-supporting-svg-but-not-gradients,
41
+ $svg-gradient-shim-threshold)
42
+ {
43
+ @include with-prefix(-svg) {
44
+ @content;
45
+ }
46
+ }
47
+ }
48
+ @if prefixed(-owg, $values) {
49
+ @include for-legacy-browsers($browsers-supporting-old-webkit-gradients,
50
+ $owg-threshold)
51
+ {
52
+ @include with-prefix(-owg) {
53
+ @content;
54
+ }
55
+ }
56
+ }
57
+ @include with-each-prefix(css-gradients, $gradient-support-threshold) {
58
+ @if $current-prefix {
59
+ @if prefixed($current-prefix, $values) {
60
+ @content;
61
+ } @else if $debug-browser-support {
62
+ /* There is not a value that needs to be prefixed with #{$current-prefix} in: #{$values} */
63
+ }
64
+ } @else {
65
+ @content;
66
+ }
67
+ }
68
+ }
69
+
70
+ @mixin image-property($property, $values...) {
71
+ @include each-gradient-prefix($values) {
72
+ @if $current-prefix {
73
+ #{$property}: prefix($current-prefix, $values);
74
+ } @else {
75
+ #{$property}: $values;
76
+ }
77
+ @content;
78
+ }
79
+ }
80
+
81
+ // Background property support for vendor prefixing within values.
82
+ @mixin background($backgrounds...) {
83
+ @include image-property(background, $backgrounds...);
84
+ }
85
+
86
+ // Set any number of background layers, along with a fallback.
87
+ // The final argument will be output separately, first, as a css2 fallback.
88
+ @mixin background-with-css2-fallback($backgrounds...) {
89
+ @if length($backgrounds) > 1 or prefixed(-css2, $backgrounds) {
90
+ background: -css2(nth($backgrounds, -1));
91
+ }
92
+ @include background($backgrounds...);
93
+ }
94
+
95
+
96
+ // Background image property support for vendor prefixing within values.
97
+ @mixin background-image($images...) {
98
+ @include image-property(background-image, $images...) {
99
+ @if $current-prefix == -svg {
100
+ background-size: 100%;
101
+ }
102
+ }
103
+ }
104
+
105
+ // Emit a IE-Specific filters that renders a simple linear gradient.
106
+ // For use in IE 6 - 8. Best practice would have you apply this via a
107
+ // conditional IE stylesheet, but if you must, you should place this before
108
+ // any background-image properties that you have specified.
109
+ //
110
+ // For the `$orientation` parameter, you can pass `vertical` or `horizontal`.
111
+ @mixin filter-gradient(
112
+ $start-color,
113
+ $end-color,
114
+ $orientation: vertical
115
+ ) {
116
+ @include for-legacy-browsers((ie: "8"), $gradient-support-threshold) {
117
+ @include has-layout;
118
+ $gradient-type: if($orientation == vertical, 0, 1);
119
+ filter: progid:DXImageTransform.Microsoft.gradient(gradientType=#{$gradient-type}, startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}');
120
+ }
121
+ }
122
+
123
+
124
+ // Border image property support for vendor prefixing properties and values.
125
+ @mixin border-image($value) {
126
+ @include with-each-prefix(border-image, $border-image-support-threshold) {
127
+ $border-prefix: $current-prefix;
128
+ @include each-gradient-prefix($value) {
129
+ @if $current-prefix and prefixed($current-prefix, $value) {
130
+ $legacy-value: reject($value, fill);
131
+ @include prefix-prop(border-image, prefix($current-prefix, $legacy-value), $prefix: $border-prefix);
132
+ } @else {
133
+ @include prefix-prop(border-image, $value, $prefix: $border-prefix);
134
+ }
135
+ }
136
+ }
137
+ }
138
+
139
+ // List style image property support for vendor prefixing within values.
140
+ @mixin list-style-image($image) {
141
+ @include image-property(list-style-image, $image);
142
+ }
143
+
144
+ // List style property support for vendor prefixing within values.
145
+ @mixin list-style($value) {
146
+ @include image-property(list-style, $value);
147
+ }
148
+
149
+ // content property support for vendor prefixing within values.
150
+ @mixin content($value) {
151
+ @include image-property(content, $value);
152
+ }
@@ -0,0 +1,31 @@
1
+ @import "compass/support";
2
+
3
+ // The legacy support for inline-block.
4
+ // Defaults to the $graceful-usage-threshold.
5
+ $inline-block-support-threshold: $graceful-usage-threshold !default;
6
+
7
+ // Set `$inline-block-alignment` to `none` or `false` to disable the output
8
+ // of a vertical-align property in the inline-block mixin.
9
+ // Or set it to a legal value for `vertical-align` to change the default.
10
+ $inline-block-alignment: middle !default;
11
+
12
+ // Provides a cross-browser method to implement `display: inline-block;`
13
+ @mixin inline-block($alignment: $inline-block-alignment, $ie-alignment: auto) {
14
+ // legacy support for VERY old firefox
15
+ @if support-legacy-browser("firefox", "2", $threshold: $inline-block-support-threshold) {
16
+ display: -moz-inline-stack;
17
+ }
18
+ // standard
19
+ display: inline-block;
20
+ @if $alignment and $alignment != none {
21
+ vertical-align: $alignment;
22
+ }
23
+ // legacy IE support
24
+ @if support-legacy-browser("ie", "7", $threshold: $inline-block-support-threshold) {
25
+ @if $ie-alignment and $ie-alignment != none {
26
+ *vertical-align: $ie-alignment;
27
+ }
28
+ *zoom: 1;
29
+ *display: inline;
30
+ }
31
+ }
@@ -0,0 +1,27 @@
1
+ @import "compass/support";
2
+
3
+ // The support usage threshold for opacity. Defaults to the global
4
+ // threshold for graceful degradation.
5
+ $opacity-usage-threshold: $graceful-usage-threshold !default;
6
+
7
+ // Provides cross-browser CSS opacity. Takes a number between 0 and 1 as the argument, e.g. 0.5 for 50% opacity.
8
+ //
9
+ // @param $opacity
10
+ // A number between 0 and 1, where 0 is transparent and 1 is opaque.
11
+
12
+ @mixin opacity($opacity) {
13
+ @include for-legacy-browser("ie", "8", $threshold: $opacity-usage-threshold) {
14
+ @if $opacity == 1 {
15
+ filter: unquote("progid:DXImageTransform.Microsoft.Alpha(enabled=false)");
16
+ } @else {
17
+ filter: unquote("progid:DXImageTransform.Microsoft.Alpha(Opacity=#{round($opacity * 100)})");
18
+ }
19
+ }
20
+ opacity: $opacity;
21
+ }
22
+
23
+ // Make an element completely transparent.
24
+ @mixin transparent { @include opacity(0); }
25
+
26
+ // Make an element completely opaque.
27
+ @mixin opaque { @include opacity(1); }
@@ -0,0 +1 @@
1
+ @warn "Support for CSS3Pie has been removed.";
@@ -0,0 +1,27 @@
1
+ // Regions
2
+
3
+ @import "compass/support";
4
+
5
+ // The prefixed support threshold for css regions.
6
+ // Defaults to the $graceful-usage-threshold.
7
+ $regions-support-threshold: $graceful-usage-threshold !default;
8
+
9
+
10
+ // Webkit, IE10 and future support for [CSS Regions](http://dev.w3.org/csswg/css3-regions/)
11
+ //
12
+ // $target is a value you use to link two regions of your css.
13
+ // Give the source of your content the flow-into property,
14
+ // and give your target container the flow-from property.
15
+ //
16
+ // For a visual explanation, see the diagrams at Chris Coyier's
17
+ // [CSS-Tricks](http://css-tricks.com/content-folding/)
18
+
19
+ @mixin flow-into($target) {
20
+ $target: unquote($target);
21
+ @include prefixed-properties(css-regions, $regions-support-threshold, (flow-into: $target));
22
+ }
23
+
24
+ @mixin flow-from($target) {
25
+ $target: unquote($target);
26
+ @include prefixed-properties(css-regions, $regions-support-threshold, (flow-from: $target));
27
+ }
@@ -0,0 +1,59 @@
1
+ @import "compass/support";
2
+ @import "compass/utilities/color";
3
+
4
+ // The prefixed support threshold for ::selection.
5
+ // Defaults to the $graceful-usage-threshold.
6
+ $selection-support-threshold: $graceful-usage-threshold !default;
7
+
8
+ // Style selected text.
9
+ //
10
+ // At this time, only two CSS properties are supported in most browsers
11
+ // during selection: color and background-color. Firefox supports the
12
+ // text-shadow property.
13
+ //
14
+ // At the stylesheet root, include the mixin within the * selector.
15
+ //
16
+ // * {
17
+ // @include selection(#fe57a1, #fff)
18
+ // }
19
+ //
20
+ // If a specific element or selector's selection is being styled
21
+ // you can use that selector instead. For example:
22
+ //
23
+ // .hot-pink {
24
+ // @include selection(#fe57a1, #fff)
25
+ // }
26
+ //
27
+ // These properties can be passed as arguments or you can set them via mixin
28
+ // content.
29
+ //
30
+ // For future-forward compatibility with other properties and aesthetic freedom,
31
+ // a mixin content block can be passed to this mixin in addition to or in place of
32
+ // passing arguments.
33
+ //
34
+ // .hot-pink {
35
+ // @include selection {
36
+ // background: #fe57a1;
37
+ // color: #fff;
38
+ // }
39
+ // }
40
+ //
41
+ // When `$background-color` is specified, but `$color` is not, this mixin
42
+ // styles the foreground color like the [contrasted
43
+ // mixin](/reference/compass/utilities/color/contrast/#mixin-contrasted). To
44
+ // specify only the background-color, you should pass an explicit `null` value
45
+ // for `$color` or use mixin content.
46
+ @mixin selection($background-color: null, $color: contrast-color($background-color)) {
47
+ @include with-each-prefix(css-selection, $selection-support-threshold) {
48
+ $selector: '';
49
+ @if $current-prefix != null {
50
+ $selector: $current-prefix + '-';
51
+ }
52
+ $selector: "&::#{$selector}selection";
53
+ #{$selector} {
54
+ color: $color;
55
+ background-color: $background-color;
56
+ @content;
57
+ }
58
+ }
59
+ }
@@ -0,0 +1,5 @@
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.";
4
+
5
+ @import "deprecated-support";
@@ -0,0 +1,82 @@
1
+ // Text Shadow
2
+
3
+ @import "compass/support";
4
+
5
+
6
+ // These defaults make the arguments optional for this mixin
7
+ // If you like, set different defaults in your project
8
+
9
+ $default-text-shadow-color : #aaaaaa !default;
10
+ $default-text-shadow-h-offset : 0px !default;
11
+ $default-text-shadow-v-offset : 0px !default;
12
+ $default-text-shadow-blur : 1px !default;
13
+ $default-text-shadow-spread : false !default;
14
+
15
+
16
+ // Provides cross-browser text shadows when one or more shadows are needed.
17
+ // Each shadow argument should adhere to the standard css3 syntax for the
18
+ // text-shadow property.
19
+ //
20
+ // Note: if any shadow has a spread parameter, this will cause the mixin
21
+ // to emit the shadow declaration twice, first without the spread,
22
+ // then with the spread included. This allows you to progressively
23
+ // enhance the browsers that do support the spread parameter.
24
+ @mixin text-shadow(
25
+ $shadow...
26
+ ) {
27
+ $shadow: if(length($shadow) > 0, $shadow, default);
28
+ $default: -compass-space-list(compact($default-text-shadow-h-offset $default-text-shadow-v-offset $default-text-shadow-blur $default-text-shadow-spread $default-text-shadow-color));
29
+ $shadows-without-spread: join((),(),comma);
30
+ $shadows: join((),(),comma);
31
+ $has-spread: false;
32
+
33
+ @each $layer in $shadow {
34
+ $layer: if($layer == 'default', $default, $layer);
35
+ @if length($layer) > 4 {
36
+ $has-spread: true;
37
+ $shadows-without-spread: append($shadows-without-spread, nth($layer,1) nth($layer,2) nth($layer,3) nth($layer,5));
38
+ $shadows: append($shadows, $layer);
39
+ } @else {
40
+ $shadows-without-spread: append($shadows-without-spread, $layer);
41
+ $shadows: append($shadows, $layer);
42
+ }
43
+ }
44
+ @if $has-spread {
45
+ text-shadow: $shadows-without-spread;
46
+ }
47
+ text-shadow: $shadows;
48
+ }
49
+
50
+ // Provides a single cross-browser CSS text shadow.
51
+ //
52
+ // Provides sensible defaults for the color, horizontal offset, vertical offset, blur, and spread
53
+ // according to the configuration defaults above.
54
+ @mixin single-text-shadow(
55
+ $hoff: false,
56
+ $voff: false,
57
+ $blur: false,
58
+ $spread: false,
59
+ $color: false
60
+ ) {
61
+ // A lot of people think the color comes first. It doesn't.
62
+ @if type-of($hoff) == color {
63
+ $temp-color: $hoff;
64
+ $hoff: $voff;
65
+ $voff: $blur;
66
+ $blur: $spread;
67
+ $spread: $color;
68
+ $color: $temp-color;
69
+ }
70
+ // Can't rely on default assignment with multiple supported argument orders.
71
+ $hoff: if($hoff, $hoff, $default-text-shadow-h-offset);
72
+ $voff: if($voff, $voff, $default-text-shadow-v-offset);
73
+ $blur: if($blur, $blur, $default-text-shadow-blur );
74
+ $spread: if($spread, $spread, $default-text-shadow-spread );
75
+ $color: if($color, $color, $default-text-shadow-color );
76
+ // We don't need experimental support for this property.
77
+ @if $color == none or $hoff == none {
78
+ @include text-shadow(none);
79
+ } @else {
80
+ @include text-shadow(compact($hoff $voff $blur $spread $color));
81
+ }
82
+ }