codelation_assets 0.3.0 → 0.3.2

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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +3 -27
  3. data/app/assets/stylesheets/codelation/mixins/has_grid.scss +1 -0
  4. data/app/assets/stylesheets/codelation.scss +1 -1
  5. data/lib/codelation_assets/version.rb +1 -1
  6. data/lib/codelation_assets.rb +0 -1
  7. data/lib/tasks/compile.rake +20 -0
  8. data/{app/assets → vendor}/stylesheets/_normalize.scss +0 -0
  9. data/vendor/stylesheets/bourbon/_bourbon-deprecated-upcoming.scss +411 -0
  10. data/vendor/stylesheets/bourbon/_bourbon.scss +87 -0
  11. data/vendor/stylesheets/bourbon/addons/_border-color.scss +26 -0
  12. data/vendor/stylesheets/bourbon/addons/_border-radius.scss +48 -0
  13. data/vendor/stylesheets/bourbon/addons/_border-style.scss +25 -0
  14. data/vendor/stylesheets/bourbon/addons/_border-width.scss +25 -0
  15. data/vendor/stylesheets/bourbon/addons/_buttons.scss +64 -0
  16. data/vendor/stylesheets/bourbon/addons/_clearfix.scss +25 -0
  17. data/vendor/stylesheets/bourbon/addons/_ellipsis.scss +30 -0
  18. data/vendor/stylesheets/bourbon/addons/_font-stacks.scss +31 -0
  19. data/vendor/stylesheets/bourbon/addons/_hide-text.scss +27 -0
  20. data/vendor/stylesheets/bourbon/addons/_margin.scss +26 -0
  21. data/vendor/stylesheets/bourbon/addons/_padding.scss +26 -0
  22. data/vendor/stylesheets/bourbon/addons/_position.scss +48 -0
  23. data/vendor/stylesheets/bourbon/addons/_prefixer.scss +66 -0
  24. data/vendor/stylesheets/bourbon/addons/_retina-image.scss +25 -0
  25. data/vendor/stylesheets/bourbon/addons/_size.scss +51 -0
  26. data/vendor/stylesheets/bourbon/addons/_text-inputs.scss +113 -0
  27. data/vendor/stylesheets/bourbon/addons/_timing-functions.scss +34 -0
  28. data/vendor/stylesheets/bourbon/addons/_triangle.scss +63 -0
  29. data/vendor/stylesheets/bourbon/addons/_word-wrap.scss +29 -0
  30. data/vendor/stylesheets/bourbon/css3/_animation.scss +43 -0
  31. data/vendor/stylesheets/bourbon/css3/_appearance.scss +3 -0
  32. data/vendor/stylesheets/bourbon/css3/_backface-visibility.scss +3 -0
  33. data/vendor/stylesheets/bourbon/css3/_background-image.scss +42 -0
  34. data/vendor/stylesheets/bourbon/css3/_background.scss +55 -0
  35. data/vendor/stylesheets/bourbon/css3/_border-image.scss +59 -0
  36. data/vendor/stylesheets/bourbon/css3/_calc.scss +4 -0
  37. data/vendor/stylesheets/bourbon/css3/_columns.scss +47 -0
  38. data/vendor/stylesheets/bourbon/css3/_filter.scss +4 -0
  39. data/vendor/stylesheets/bourbon/css3/_flex-box.scss +287 -0
  40. data/vendor/stylesheets/bourbon/css3/_font-face.scss +24 -0
  41. data/vendor/stylesheets/bourbon/css3/_font-feature-settings.scss +4 -0
  42. data/vendor/stylesheets/bourbon/css3/_hidpi-media-query.scss +10 -0
  43. data/vendor/stylesheets/bourbon/css3/_hyphens.scss +4 -0
  44. data/vendor/stylesheets/bourbon/css3/_image-rendering.scss +14 -0
  45. data/vendor/stylesheets/bourbon/css3/_keyframes.scss +36 -0
  46. data/vendor/stylesheets/bourbon/css3/_linear-gradient.scss +38 -0
  47. data/vendor/stylesheets/bourbon/css3/_perspective.scss +8 -0
  48. data/vendor/stylesheets/bourbon/css3/_placeholder.scss +8 -0
  49. data/vendor/stylesheets/bourbon/css3/_radial-gradient.scss +39 -0
  50. data/vendor/stylesheets/bourbon/css3/_selection.scss +42 -0
  51. data/vendor/stylesheets/bourbon/css3/_text-decoration.scss +19 -0
  52. data/vendor/stylesheets/bourbon/css3/_transform.scss +15 -0
  53. data/vendor/stylesheets/bourbon/css3/_transition.scss +71 -0
  54. data/vendor/stylesheets/bourbon/css3/_user-select.scss +3 -0
  55. data/vendor/stylesheets/bourbon/functions/_assign-inputs.scss +11 -0
  56. data/vendor/stylesheets/bourbon/functions/_contains-falsy.scss +20 -0
  57. data/vendor/stylesheets/bourbon/functions/_contains.scss +26 -0
  58. data/vendor/stylesheets/bourbon/functions/_is-length.scss +11 -0
  59. data/vendor/stylesheets/bourbon/functions/_is-light.scss +21 -0
  60. data/vendor/stylesheets/bourbon/functions/_is-number.scss +11 -0
  61. data/vendor/stylesheets/bourbon/functions/_is-size.scss +13 -0
  62. data/vendor/stylesheets/bourbon/functions/_modular-scale.scss +69 -0
  63. data/vendor/stylesheets/bourbon/functions/_px-to-em.scss +13 -0
  64. data/vendor/stylesheets/bourbon/functions/_px-to-rem.scss +15 -0
  65. data/vendor/stylesheets/bourbon/functions/_shade.scss +24 -0
  66. data/vendor/stylesheets/bourbon/functions/_strip-units.scss +17 -0
  67. data/vendor/stylesheets/bourbon/functions/_tint.scss +24 -0
  68. data/vendor/stylesheets/bourbon/functions/_transition-property-name.scss +22 -0
  69. data/vendor/stylesheets/bourbon/functions/_unpack.scss +27 -0
  70. data/vendor/stylesheets/bourbon/helpers/_convert-units.scss +21 -0
  71. data/vendor/stylesheets/bourbon/helpers/_directional-values.scss +96 -0
  72. data/vendor/stylesheets/bourbon/helpers/_font-source-declaration.scss +43 -0
  73. data/vendor/stylesheets/bourbon/helpers/_gradient-positions-parser.scss +13 -0
  74. data/vendor/stylesheets/bourbon/helpers/_linear-angle-parser.scss +25 -0
  75. data/vendor/stylesheets/bourbon/helpers/_linear-gradient-parser.scss +41 -0
  76. data/vendor/stylesheets/bourbon/helpers/_linear-positions-parser.scss +61 -0
  77. data/vendor/stylesheets/bourbon/helpers/_linear-side-corner-parser.scss +31 -0
  78. data/vendor/stylesheets/bourbon/helpers/_radial-arg-parser.scss +69 -0
  79. data/vendor/stylesheets/bourbon/helpers/_radial-gradient-parser.scss +50 -0
  80. data/vendor/stylesheets/bourbon/helpers/_radial-positions-parser.scss +18 -0
  81. data/vendor/stylesheets/bourbon/helpers/_render-gradients.scss +26 -0
  82. data/vendor/stylesheets/bourbon/helpers/_shape-size-stripper.scss +10 -0
  83. data/vendor/stylesheets/bourbon/helpers/_str-to-num.scss +50 -0
  84. data/vendor/stylesheets/bourbon/settings/_asset-pipeline.scss +7 -0
  85. data/vendor/stylesheets/bourbon/settings/_prefixer.scss +9 -0
  86. data/vendor/stylesheets/bourbon/settings/_px-to-em.scss +1 -0
  87. metadata +96 -17
@@ -0,0 +1,21 @@
1
+ //************************************************************************//
2
+ // Helper function for str-to-num fn.
3
+ // Source: http://sassmeister.com/gist/9647408
4
+ //************************************************************************//
5
+ @function _convert-units($number, $unit) {
6
+ $strings: "px", "cm", "mm", "%", "ch", "pica", "in", "em", "rem", "pt", "pc", "ex", "vw", "vh", "vmin", "vmax", "deg", "rad", "grad", "turn";
7
+ $units: 1px, 1cm, 1mm, 1%, 1ch, 1pica, 1in, 1em, 1rem, 1pt, 1pc, 1ex, 1vw, 1vh, 1vmin, 1vmax, 1deg, 1rad, 1grad, 1turn;
8
+ $index: index($strings, $unit);
9
+
10
+ @if not $index {
11
+ @warn "Unknown unit `#{$unit}`.";
12
+ @return false;
13
+ }
14
+
15
+ @if type-of($number) != "number" {
16
+ @warn "`#{$number} is not a number`";
17
+ @return false;
18
+ }
19
+
20
+ @return $number * nth($units, $index);
21
+ }
@@ -0,0 +1,96 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Directional-property mixins are shorthands for writing properties like the following
4
+ ///
5
+ /// @ignore You can also use `false` instead of `null`.
6
+ ///
7
+ /// @param {List} $vals
8
+ /// List of directional values
9
+ ///
10
+ /// @example scss - Usage
11
+ /// .element {
12
+ /// @include border-style(dotted null);
13
+ /// @include margin(null 0 10px);
14
+ /// }
15
+ ///
16
+ /// @example css - CSS Output
17
+ /// .element {
18
+ /// border-bottom-style: dotted;
19
+ /// border-top-style: dotted;
20
+ /// margin-bottom: 10px;
21
+ /// margin-left: 0;
22
+ /// margin-right: 0;
23
+ /// }
24
+ ///
25
+ /// @require {function} contains-falsy
26
+ ///
27
+ /// @return {List}
28
+
29
+ @function collapse-directionals($vals) {
30
+ $output: null;
31
+
32
+ $a: nth($vals, 1);
33
+ $b: if(length($vals) < 2, $a, nth($vals, 2));
34
+ $c: if(length($vals) < 3, $a, nth($vals, 3));
35
+ $d: if(length($vals) < 2, $a, nth($vals, if(length($vals) < 4, 2, 4)));
36
+
37
+ @if $a == 0 { $a: 0; }
38
+ @if $b == 0 { $b: 0; }
39
+ @if $c == 0 { $c: 0; }
40
+ @if $d == 0 { $d: 0; }
41
+
42
+ @if $a == $b and $a == $c and $a == $d { $output: $a; }
43
+ @else if $a == $c and $b == $d { $output: $a $b; }
44
+ @else if $b == $d { $output: $a $b $c; }
45
+ @else { $output: $a $b $c $d; }
46
+
47
+ @return $output;
48
+ }
49
+
50
+ /// Output directional properties, for instance `margin`.
51
+ ///
52
+ /// @access private
53
+ ///
54
+ /// @param {String} $pre
55
+ /// Prefix to use
56
+ /// @param {String} $suf
57
+ /// Suffix to use
58
+ /// @param {List} $vals
59
+ /// List of values
60
+ ///
61
+ /// @require {function} collapse-directionals
62
+ /// @require {function} contains-falsy
63
+
64
+ @mixin directional-property($pre, $suf, $vals) {
65
+ // Property Names
66
+ $top: $pre + "-top" + if($suf, "-#{$suf}", "");
67
+ $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
68
+ $left: $pre + "-left" + if($suf, "-#{$suf}", "");
69
+ $right: $pre + "-right" + if($suf, "-#{$suf}", "");
70
+ $all: $pre + if($suf, "-#{$suf}", "");
71
+
72
+ $vals: collapse-directionals($vals);
73
+
74
+ @if contains-falsy($vals) {
75
+ @if nth($vals, 1) { #{$top}: nth($vals, 1); }
76
+
77
+ @if length($vals) == 1 {
78
+ @if nth($vals, 1) { #{$right}: nth($vals, 1); }
79
+ } @else {
80
+ @if nth($vals, 2) { #{$right}: nth($vals, 2); }
81
+ }
82
+
83
+ @if length($vals) == 2 {
84
+ @if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
85
+ @if nth($vals, 2) { #{$left}: nth($vals, 2); }
86
+ } @else if length($vals) == 3 {
87
+ @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
88
+ @if nth($vals, 2) { #{$left}: nth($vals, 2); }
89
+ } @else if length($vals) == 4 {
90
+ @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
91
+ @if nth($vals, 4) { #{$left}: nth($vals, 4); }
92
+ }
93
+ } @else {
94
+ #{$all}: $vals;
95
+ }
96
+ }
@@ -0,0 +1,43 @@
1
+ // Used for creating the source string for fonts using @font-face
2
+ // Reference: http://goo.gl/Ru1bKP
3
+
4
+ @function font-url-prefixer($asset-pipeline) {
5
+ @if $asset-pipeline == true {
6
+ @return font-url;
7
+ } @else {
8
+ @return url;
9
+ }
10
+ }
11
+
12
+ @function font-source-declaration(
13
+ $font-family,
14
+ $file-path,
15
+ $asset-pipeline,
16
+ $file-formats,
17
+ $font-url) {
18
+
19
+ $src: ();
20
+
21
+ $formats-map: (
22
+ eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"),
23
+ woff2: "#{$file-path}.woff2" format("woff2"),
24
+ woff: "#{$file-path}.woff" format("woff"),
25
+ ttf: "#{$file-path}.ttf" format("truetype"),
26
+ svg: "#{$file-path}.svg##{$font-family}" format("svg")
27
+ );
28
+
29
+ @each $key, $values in $formats-map {
30
+ @if contains($file-formats, $key) {
31
+ $file-path: nth($values, 1);
32
+ $font-format: nth($values, 2);
33
+
34
+ @if $asset-pipeline == true {
35
+ $src: append($src, font-url($file-path) $font-format, comma);
36
+ } @else {
37
+ $src: append($src, url($file-path) $font-format, comma);
38
+ }
39
+ }
40
+ }
41
+
42
+ @return $src;
43
+ }
@@ -0,0 +1,13 @@
1
+ @function _gradient-positions-parser($gradient-type, $gradient-positions) {
2
+ @if $gradient-positions
3
+ and ($gradient-type == linear)
4
+ and (type-of($gradient-positions) != color) {
5
+ $gradient-positions: _linear-positions-parser($gradient-positions);
6
+ }
7
+ @else if $gradient-positions
8
+ and ($gradient-type == radial)
9
+ and (type-of($gradient-positions) != color) {
10
+ $gradient-positions: _radial-positions-parser($gradient-positions);
11
+ }
12
+ @return $gradient-positions;
13
+ }
@@ -0,0 +1,25 @@
1
+ // Private function for linear-gradient-parser
2
+ @function _linear-angle-parser($image, $first-val, $prefix, $suffix) {
3
+ $offset: null;
4
+ $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val));
5
+ $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val));
6
+
7
+ @if ($unit-long == "grad") or
8
+ ($unit-long == "turn") {
9
+ $offset: if($unit-long == "grad", -100grad * 3, -0.75turn);
10
+ }
11
+
12
+ @else if ($unit-short == "deg") or
13
+ ($unit-short == "rad") {
14
+ $offset: if($unit-short == "deg", -90 * 3, 1.6rad);
15
+ }
16
+
17
+ @if $offset {
18
+ $num: _str-to-num($first-val);
19
+
20
+ @return (
21
+ webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix,
22
+ spec-image: $image
23
+ );
24
+ }
25
+ }
@@ -0,0 +1,41 @@
1
+ @function _linear-gradient-parser($image) {
2
+ $image: unquote($image);
3
+ $gradients: ();
4
+ $start: str-index($image, "(");
5
+ $end: str-index($image, ",");
6
+ $first-val: str-slice($image, $start + 1, $end - 1);
7
+
8
+ $prefix: str-slice($image, 1, $start);
9
+ $suffix: str-slice($image, $end, str-length($image));
10
+
11
+ $has-multiple-vals: str-index($first-val, " ");
12
+ $has-single-position: unquote(_position-flipper($first-val) + "");
13
+ $has-angle: is-number(str-slice($first-val, 1, 1));
14
+
15
+ @if $has-multiple-vals {
16
+ $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals);
17
+ }
18
+
19
+ @else if $has-single-position != "" {
20
+ $pos: unquote($has-single-position + "");
21
+
22
+ $gradients: (
23
+ webkit-image: -webkit- + $image,
24
+ spec-image: $prefix + "to " + $pos + $suffix
25
+ );
26
+ }
27
+
28
+ @else if $has-angle {
29
+ // Rotate degree for webkit
30
+ $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix);
31
+ }
32
+
33
+ @else {
34
+ $gradients: (
35
+ webkit-image: -webkit- + $image,
36
+ spec-image: $image
37
+ );
38
+ }
39
+
40
+ @return $gradients;
41
+ }
@@ -0,0 +1,61 @@
1
+ @function _linear-positions-parser($pos) {
2
+ $type: type-of(nth($pos, 1));
3
+ $spec: null;
4
+ $degree: null;
5
+ $side: null;
6
+ $corner: null;
7
+ $length: length($pos);
8
+ // Parse Side and corner positions
9
+ @if ($length > 1) {
10
+ @if nth($pos, 1) == "to" { // Newer syntax
11
+ $side: nth($pos, 2);
12
+
13
+ @if $length == 2 { // eg. to top
14
+ // Swap for backwards compatibility
15
+ $degree: _position-flipper(nth($pos, 2));
16
+ }
17
+ @else if $length == 3 { // eg. to top left
18
+ $corner: nth($pos, 3);
19
+ }
20
+ }
21
+ @else if $length == 2 { // Older syntax ("top left")
22
+ $side: _position-flipper(nth($pos, 1));
23
+ $corner: _position-flipper(nth($pos, 2));
24
+ }
25
+
26
+ @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
27
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
28
+ }
29
+ @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
30
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
31
+ }
32
+ @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
33
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
34
+ }
35
+ @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
36
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
37
+ }
38
+ $spec: to $side $corner;
39
+ }
40
+ @else if $length == 1 {
41
+ // Swap for backwards compatibility
42
+ @if $type == string {
43
+ $degree: $pos;
44
+ $spec: to _position-flipper($pos);
45
+ }
46
+ @else {
47
+ $degree: -270 - $pos; //rotate the gradient opposite from spec
48
+ $spec: $pos;
49
+ }
50
+ }
51
+ $degree: unquote($degree + ",");
52
+ $spec: unquote($spec + ",");
53
+ @return $degree $spec;
54
+ }
55
+
56
+ @function _position-flipper($pos) {
57
+ @return if($pos == left, right, null)
58
+ if($pos == right, left, null)
59
+ if($pos == top, bottom, null)
60
+ if($pos == bottom, top, null);
61
+ }
@@ -0,0 +1,31 @@
1
+ // Private function for linear-gradient-parser
2
+ @function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) {
3
+ $val-1: str-slice($first-val, 1, $has-multiple-vals - 1);
4
+ $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val));
5
+ $val-3: null;
6
+ $has-val-3: str-index($val-2, " ");
7
+
8
+ @if $has-val-3 {
9
+ $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2));
10
+ $val-2: str-slice($val-2, 1, $has-val-3 - 1);
11
+ }
12
+
13
+ $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3);
14
+ $pos: unquote($pos + "");
15
+
16
+ // Use old spec for webkit
17
+ @if $val-1 == "to" {
18
+ @return (
19
+ webkit-image: -webkit- + $prefix + $pos + $suffix,
20
+ spec-image: $image
21
+ );
22
+ }
23
+
24
+ // Bring the code up to spec
25
+ @else {
26
+ @return (
27
+ webkit-image: -webkit- + $image,
28
+ spec-image: $prefix + "to " + $pos + $suffix
29
+ );
30
+ }
31
+ }
@@ -0,0 +1,69 @@
1
+ @function _radial-arg-parser($g1, $g2, $pos, $shape-size) {
2
+ @each $value in $g1, $g2 {
3
+ $first-val: nth($value, 1);
4
+ $pos-type: type-of($first-val);
5
+ $spec-at-index: null;
6
+
7
+ // Determine if spec was passed to mixin
8
+ @if type-of($value) == list {
9
+ $spec-at-index: if(index($value, at), index($value, at), false);
10
+ }
11
+ @if $spec-at-index {
12
+ @if $spec-at-index > 1 {
13
+ @for $i from 1 through ($spec-at-index - 1) {
14
+ $shape-size: $shape-size nth($value, $i);
15
+ }
16
+ @for $i from ($spec-at-index + 1) through length($value) {
17
+ $pos: $pos nth($value, $i);
18
+ }
19
+ }
20
+ @else if $spec-at-index == 1 {
21
+ @for $i from ($spec-at-index + 1) through length($value) {
22
+ $pos: $pos nth($value, $i);
23
+ }
24
+ }
25
+ $g1: null;
26
+ }
27
+
28
+ // If not spec calculate correct values
29
+ @else {
30
+ @if ($pos-type != color) or ($first-val != "transparent") {
31
+ @if ($pos-type == number)
32
+ or ($first-val == "center")
33
+ or ($first-val == "top")
34
+ or ($first-val == "right")
35
+ or ($first-val == "bottom")
36
+ or ($first-val == "left") {
37
+
38
+ $pos: $value;
39
+
40
+ @if $pos == $g1 {
41
+ $g1: null;
42
+ }
43
+ }
44
+
45
+ @else if
46
+ ($first-val == "ellipse")
47
+ or ($first-val == "circle")
48
+ or ($first-val == "closest-side")
49
+ or ($first-val == "closest-corner")
50
+ or ($first-val == "farthest-side")
51
+ or ($first-val == "farthest-corner")
52
+ or ($first-val == "contain")
53
+ or ($first-val == "cover") {
54
+
55
+ $shape-size: $value;
56
+
57
+ @if $value == $g1 {
58
+ $g1: null;
59
+ }
60
+
61
+ @else if $value == $g2 {
62
+ $g2: null;
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ @return $g1, $g2, $pos, $shape-size;
69
+ }
@@ -0,0 +1,50 @@
1
+ @function _radial-gradient-parser($image) {
2
+ $image: unquote($image);
3
+ $gradients: ();
4
+ $start: str-index($image, "(");
5
+ $end: str-index($image, ",");
6
+ $first-val: str-slice($image, $start + 1, $end - 1);
7
+
8
+ $prefix: str-slice($image, 1, $start);
9
+ $suffix: str-slice($image, $end, str-length($image));
10
+
11
+ $is-spec-syntax: str-index($first-val, "at");
12
+
13
+ @if $is-spec-syntax and $is-spec-syntax > 1 {
14
+ $keyword: str-slice($first-val, 1, $is-spec-syntax - 2);
15
+ $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
16
+ $pos: append($pos, $keyword, comma);
17
+
18
+ $gradients: (
19
+ webkit-image: -webkit- + $prefix + $pos + $suffix,
20
+ spec-image: $image
21
+ );
22
+ }
23
+
24
+ @else if $is-spec-syntax == 1 {
25
+ $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
26
+
27
+ $gradients: (
28
+ webkit-image: -webkit- + $prefix + $pos + $suffix,
29
+ spec-image: $image
30
+ );
31
+ }
32
+
33
+ @else if str-index($image, "cover") or str-index($image, "contain") {
34
+ @warn "Radial-gradient needs to be updated to conform to latest spec.";
35
+
36
+ $gradients: (
37
+ webkit-image: null,
38
+ spec-image: $image
39
+ );
40
+ }
41
+
42
+ @else {
43
+ $gradients: (
44
+ webkit-image: -webkit- + $image,
45
+ spec-image: $image
46
+ );
47
+ }
48
+
49
+ @return $gradients;
50
+ }
@@ -0,0 +1,18 @@
1
+ @function _radial-positions-parser($gradient-pos) {
2
+ $shape-size: nth($gradient-pos, 1);
3
+ $pos: nth($gradient-pos, 2);
4
+ $shape-size-spec: _shape-size-stripper($shape-size);
5
+
6
+ $pre-spec: unquote(if($pos, "#{$pos}, ", null))
7
+ unquote(if($shape-size, "#{$shape-size},", null));
8
+ $pos-spec: if($pos, "at #{$pos}", null);
9
+
10
+ $spec: "#{$shape-size-spec} #{$pos-spec}";
11
+
12
+ // Add comma
13
+ @if ($spec != " ") {
14
+ $spec: "#{$spec},";
15
+ }
16
+
17
+ @return $pre-spec $spec;
18
+ }
@@ -0,0 +1,26 @@
1
+ // User for linear and radial gradients within background-image or border-image properties
2
+
3
+ @function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) {
4
+ $pre-spec: null;
5
+ $spec: null;
6
+ $vendor-gradients: null;
7
+ @if $gradient-type == linear {
8
+ @if $gradient-positions {
9
+ $pre-spec: nth($gradient-positions, 1);
10
+ $spec: nth($gradient-positions, 2);
11
+ }
12
+ }
13
+ @else if $gradient-type == radial {
14
+ $pre-spec: nth($gradient-positions, 1);
15
+ $spec: nth($gradient-positions, 2);
16
+ }
17
+
18
+ @if $vendor {
19
+ $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients);
20
+ }
21
+ @else if $vendor == false {
22
+ $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})";
23
+ $vendor-gradients: unquote($vendor-gradients);
24
+ }
25
+ @return $vendor-gradients;
26
+ }
@@ -0,0 +1,10 @@
1
+ @function _shape-size-stripper($shape-size) {
2
+ $shape-size-spec: null;
3
+ @each $value in $shape-size {
4
+ @if ($value == "cover") or ($value == "contain") {
5
+ $value: null;
6
+ }
7
+ $shape-size-spec: "#{$shape-size-spec} #{$value}";
8
+ }
9
+ @return $shape-size-spec;
10
+ }
@@ -0,0 +1,50 @@
1
+ //************************************************************************//
2
+ // Helper function for linear/radial-gradient-parsers.
3
+ // Source: http://sassmeister.com/gist/9647408
4
+ //************************************************************************//
5
+ @function _str-to-num($string) {
6
+ // Matrices
7
+ $strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
8
+ $numbers: 0 1 2 3 4 5 6 7 8 9;
9
+
10
+ // Result
11
+ $result: 0;
12
+ $divider: 0;
13
+ $minus: false;
14
+
15
+ // Looping through all characters
16
+ @for $i from 1 through str-length($string) {
17
+ $character: str-slice($string, $i, $i);
18
+ $index: index($strings, $character);
19
+
20
+ @if $character == "-" {
21
+ $minus: true;
22
+ }
23
+
24
+ @else if $character == "." {
25
+ $divider: 1;
26
+ }
27
+
28
+ @else {
29
+ @if not $index {
30
+ $result: if($minus, $result * -1, $result);
31
+ @return _convert-units($result, str-slice($string, $i));
32
+ }
33
+
34
+ $number: nth($numbers, $index);
35
+
36
+ @if $divider == 0 {
37
+ $result: $result * 10;
38
+ }
39
+
40
+ @else {
41
+ // Move the decimal dot to the left
42
+ $divider: $divider * 10;
43
+ $number: $number / $divider;
44
+ }
45
+
46
+ $result: $result + $number;
47
+ }
48
+ }
49
+ @return if($minus, $result * -1, $result);
50
+ }
@@ -0,0 +1,7 @@
1
+ @charset "UTF-8";
2
+
3
+ /// A global setting to enable or disable the `$asset-pipeline` variable for all functions that accept it.
4
+ ///
5
+ /// @type Bool
6
+
7
+ $asset-pipeline: false !default;
@@ -0,0 +1,9 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Global variables to enable or disable vendor prefixes
4
+
5
+ $prefix-for-webkit: true !default;
6
+ $prefix-for-mozilla: true !default;
7
+ $prefix-for-microsoft: true !default;
8
+ $prefix-for-opera: true !default;
9
+ $prefix-for-spec: true !default;
@@ -0,0 +1 @@
1
+ $em-base: 16px !default;