bourbon-compass 3.1.1 → 3.1.3

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 (27) hide show
  1. data/stylesheets/bourbon/_bourbon-deprecated-upcoming.scss +7 -2
  2. data/stylesheets/bourbon/_bourbon.scss +10 -3
  3. data/stylesheets/bourbon/addons/_button.scss +3 -3
  4. data/stylesheets/bourbon/addons/_hide-text.scss +0 -8
  5. data/stylesheets/bourbon/addons/_prefixer.scss +20 -11
  6. data/stylesheets/bourbon/css3/_backface-visibility.scss +6 -0
  7. data/stylesheets/bourbon/css3/_background-image.scss +18 -14
  8. data/stylesheets/bourbon/css3/_background.scss +26 -30
  9. data/stylesheets/bourbon/css3/_border-image.scss +7 -10
  10. data/stylesheets/bourbon/css3/_keyframes.scss +0 -10
  11. data/stylesheets/bourbon/css3/_linear-gradient.scss +12 -14
  12. data/stylesheets/bourbon/css3/_perspective.scss +2 -2
  13. data/stylesheets/bourbon/css3/_placeholder.scss +11 -0
  14. data/stylesheets/bourbon/css3/_radial-gradient.scss +19 -53
  15. data/stylesheets/bourbon/css3/_transition.scss +5 -7
  16. data/stylesheets/bourbon/functions/_linear-gradient.scss +9 -2
  17. data/stylesheets/bourbon/functions/_radial-gradient.scss +11 -45
  18. data/stylesheets/bourbon/{functions → helpers}/_deprecated-webkit-gradient.scss +1 -6
  19. data/stylesheets/bourbon/helpers/_gradient-positions-parser.scss +13 -0
  20. data/stylesheets/bourbon/helpers/_linear-positions-parser.scss +64 -0
  21. data/stylesheets/bourbon/helpers/_radial-arg-parser.scss +69 -0
  22. data/stylesheets/bourbon/helpers/_radial-positions-parser.scss +18 -0
  23. data/stylesheets/bourbon/helpers/_render-gradients.scss +26 -0
  24. data/stylesheets/bourbon/helpers/_shape-size-stripper.scss +10 -0
  25. metadata +10 -5
  26. data/stylesheets/bourbon/css3/_background-size.scss +0 -3
  27. data/stylesheets/bourbon/functions/_render-gradients.scss +0 -14
@@ -3,6 +3,11 @@
3
3
  // They will be removed in the next MAJOR version release
4
4
  //************************************************************************//
5
5
  @mixin box-shadow ($shadows...) {
6
- @include prefixer(box-shadow, $shadows, spec);
7
- @warn "box-shadow is deprecated and will be removed in the next major version release";
6
+ @include prefixer(box-shadow, $shadows, spec);
7
+ @warn "box-shadow is deprecated and will be removed in the next major version release";
8
+ }
9
+
10
+ @mixin background-size ($lengths...) {
11
+ @include prefixer(background-size, $lengths, spec);
12
+ @warn "background-size is deprecated and will be removed in the next major version release";
8
13
  }
@@ -1,22 +1,29 @@
1
+ // Custom Helpers
2
+ @import "helpers/deprecated-webkit-gradient";
3
+ @import "helpers/gradient-positions-parser";
4
+ @import "helpers/linear-positions-parser";
5
+ @import "helpers/radial-arg-parser";
6
+ @import "helpers/radial-positions-parser";
7
+ @import "helpers/render-gradients";
8
+ @import "helpers/shape-size-stripper";
9
+
1
10
  // Custom Functions
2
11
  @import "functions/compact";
3
- @import "functions/deprecated-webkit-gradient";
4
12
  @import "functions/flex-grid";
5
13
  @import "functions/grid-width";
6
14
  @import "functions/linear-gradient";
7
15
  @import "functions/modular-scale";
8
16
  @import "functions/px-to-em";
9
17
  @import "functions/radial-gradient";
10
- @import "functions/render-gradients";
11
18
  @import "functions/tint-shade";
12
19
  @import "functions/transition-property-name";
13
20
 
14
21
  // CSS3 Mixins
15
22
  @import "css3/animation";
16
23
  @import "css3/appearance";
24
+ @import "css3/backface-visibility";
17
25
  @import "css3/background";
18
26
  @import "css3/background-image";
19
- @import "css3/background-size";
20
27
  @import "css3/border-image";
21
28
  @import "css3/border-radius";
22
29
  @import "css3/box-sizing";
@@ -74,7 +74,7 @@
74
74
  padding: 7px 18px;
75
75
  text-decoration: none;
76
76
  text-shadow: 0 1px 0 $text-shadow;
77
- -webkit-background-clip: padding-box;
77
+ background-clip: padding-box;
78
78
 
79
79
  &:hover:not(:disabled) {
80
80
  $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
@@ -219,7 +219,7 @@
219
219
  text-align: center;
220
220
  text-decoration: none;
221
221
  text-shadow: 0 -1px 1px $text-shadow;
222
- -webkit-background-clip: padding-box;
222
+ background-clip: padding-box;
223
223
 
224
224
  &:hover:not(:disabled) {
225
225
  $base-color-hover: adjust-color($base-color, $lightness: -4.5%);
@@ -246,7 +246,7 @@
246
246
  cursor: pointer;
247
247
  @include linear-gradient ($base-color-hover, $stop-gradient-hover);
248
248
  text-shadow: 0 -1px 1px $text-shadow-hover;
249
- -webkit-background-clip: padding-box;
249
+ background-clip: padding-box;
250
250
  }
251
251
 
252
252
  &:active:not(:disabled) {
@@ -3,11 +3,3 @@
3
3
  font: 0/0 a;
4
4
  text-shadow: none;
5
5
  }
6
-
7
- // A CSS image replacement method that does not require the use of text-indent.
8
- //
9
- // Examples
10
- //
11
- // .ir {
12
- // @include hide-text;
13
- // }
@@ -9,21 +9,30 @@ $prefix-for-spec: true !default; // required for keyframe mixin
9
9
 
10
10
  @mixin prefixer ($property, $value, $prefixes) {
11
11
  @each $prefix in $prefixes {
12
-
13
- @if $prefix == webkit and $prefix-for-webkit == true {
14
- -webkit-#{$property}: $value;
12
+ @if $prefix == webkit {
13
+ @if $prefix-for-webkit {
14
+ -webkit-#{$property}: $value;
15
+ }
15
16
  }
16
- @else if $prefix == moz and $prefix-for-mozilla == true {
17
- -moz-#{$property}: $value;
17
+ @else if $prefix == moz {
18
+ @if $prefix-for-mozilla {
19
+ -moz-#{$property}: $value;
20
+ }
18
21
  }
19
- @else if $prefix == ms and $prefix-for-microsoft == true {
20
- -ms-#{$property}: $value;
22
+ @else if $prefix == ms {
23
+ @if $prefix-for-microsoft {
24
+ -ms-#{$property}: $value;
25
+ }
21
26
  }
22
- @else if $prefix == o and $prefix-for-opera == true {
23
- -o-#{$property}: $value;
27
+ @else if $prefix == o {
28
+ @if $prefix-for-opera {
29
+ -o-#{$property}: $value;
30
+ }
24
31
  }
25
- @else if $prefix == spec and $prefix-for-spec == true {
26
- #{$property}: $value;
32
+ @else if $prefix == spec {
33
+ @if $prefix-for-spec {
34
+ #{$property}: $value;
35
+ }
27
36
  }
28
37
  @else {
29
38
  @warn "Unrecognized prefix: #{$prefix}";
@@ -0,0 +1,6 @@
1
+ //************************************************************************//
2
+ // Backface-visibility mixin
3
+ //************************************************************************//
4
+ @mixin backface-visibility($visibility) {
5
+ @include prefixer(backface-visibility, $visibility, webkit spec);
6
+ }
@@ -4,29 +4,34 @@
4
4
  //************************************************************************//
5
5
 
6
6
  @mixin background-image($images...) {
7
- background-image: add-prefix($images, webkit);
8
- background-image: add-prefix($images, moz);
9
- background-image: add-prefix($images, ms);
10
- background-image: add-prefix($images, o);
11
- background-image: add-prefix($images);
7
+ background-image: _add-prefix($images, webkit);
8
+ background-image: _add-prefix($images);
12
9
  }
13
10
 
14
-
15
- @function add-prefix($images, $vendor: false) {
11
+ @function _add-prefix($images, $vendor: false) {
16
12
  $images-prefixed: ();
17
-
13
+ $gradient-positions: false;
18
14
  @for $i from 1 through length($images) {
19
15
  $type: type-of(nth($images, $i)); // Get type of variable - List or String
20
16
 
21
17
  // If variable is a list - Gradient
22
18
  @if $type == list {
23
- $gradient-type: nth(nth($images, $i), 1); // Get type of gradient (linear || radial)
24
- $gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue)
25
-
26
- $gradient: render-gradients($gradient-args, $gradient-type, $vendor);
19
+ $gradient-type: nth(nth($images, $i), 1); // linear or radial
20
+ $gradient-pos: null;
21
+ $gradient-args: null;
22
+
23
+ @if ($gradient-type == linear) or ($gradient-type == radial) {
24
+ $gradient-pos: nth(nth($images, $i), 2); // Get gradient position
25
+ $gradient-args: nth(nth($images, $i), 3); // Get actual gradient (red, blue)
26
+ }
27
+ @else {
28
+ $gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue)
29
+ }
30
+
31
+ $gradient-positions: _gradient-positions-parser($gradient-type, $gradient-pos);
32
+ $gradient: _render-gradients($gradient-positions, $gradient-args, $gradient-type, $vendor);
27
33
  $images-prefixed: append($images-prefixed, $gradient, comma);
28
34
  }
29
-
30
35
  // If variable is a string - Image
31
36
  @else if $type == string {
32
37
  $images-prefixed: join($images-prefixed, nth($images, $i), comma);
@@ -35,7 +40,6 @@
35
40
  @return $images-prefixed;
36
41
  }
37
42
 
38
-
39
43
  //Examples:
40
44
  //@include background-image(linear-gradient(top, orange, red));
41
45
  //@include background-image(radial-gradient(50% 50%, cover circle, orange, red));
@@ -22,20 +22,17 @@
22
22
  $fallback-color: $fallback;
23
23
  }
24
24
  @else {
25
- $fallback-color: extract-background-color($backgrounds);
25
+ $fallback-color: _extract-background-color($backgrounds);
26
26
  }
27
27
 
28
28
  @if $fallback-color {
29
29
  background-color: $fallback-color;
30
30
  }
31
- background: background-add-prefix($backgrounds, webkit);
32
- background: background-add-prefix($backgrounds, moz);
33
- background: background-add-prefix($backgrounds, ms);
34
- background: background-add-prefix($backgrounds, o);
35
- background: background-add-prefix($backgrounds);
31
+ background: _background-add-prefix($backgrounds, webkit);
32
+ background: _background-add-prefix($backgrounds);
36
33
  }
37
34
 
38
- @function extract-background-color($backgrounds) {
35
+ @function _extract-background-color($backgrounds) {
39
36
  $final-bg-layer: nth($backgrounds, length($backgrounds));
40
37
  @if type-of($final-bg-layer) == list {
41
38
  @for $i from 1 through length($final-bg-layer) {
@@ -48,51 +45,50 @@
48
45
  @return false;
49
46
  }
50
47
 
51
-
52
- @function background-add-prefix($backgrounds, $vendor: false) {
48
+ @function _background-add-prefix($backgrounds, $vendor: false) {
53
49
  $backgrounds-prefixed: ();
54
50
 
55
51
  @for $i from 1 through length($backgrounds) {
56
52
  $shorthand: nth($backgrounds, $i); // Get member for current index
57
- $type: type-of($shorthand); // Get type of variable - List or String
53
+ $type: type-of($shorthand); // Get type of variable - List (gradient) or String (image)
58
54
 
59
- // If shorthand is a list
55
+ // If shorthand is a list (gradient)
60
56
  @if $type == list {
61
57
  $first-member: nth($shorthand, 1); // Get first member of shorthand
62
58
 
63
59
  // Linear Gradient
64
60
  @if index(linear radial, nth($first-member, 1)) {
65
61
  $gradient-type: nth($first-member, 1); // linear || radial
66
-
67
- // Get actual gradient (red, blue)
68
- $gradient-args: false;
69
- $shorthand-start: false;
70
- // Linear gradient and positioning, repeat, etc. values
71
- @if type-of($first-member) == list {
72
- $gradient-args: nth($first-member, 2);
62
+ $gradient-args: false;
63
+ $gradient-positions: false;
64
+ $shorthand-start: false;
65
+ @if type-of($first-member) == list { // Linear gradient plus additional shorthand values — lg(red,orange)repeat,...
66
+ $gradient-positions: nth($first-member, 2);
67
+ $gradient-args: nth($first-member, 3);
73
68
  $shorthand-start: 2;
74
69
  }
75
- // Linear gradient only
76
- @else {
77
- $gradient-args: nth($shorthand, 2); // Get actual gradient (red, blue)
78
- $shorthand-start: 3;
70
+ @else { // Linear gradient only — lg(red,orange),...
71
+ $gradient-positions: nth($shorthand, 2);
72
+ $gradient-args: nth($shorthand, 3); // Get gradient (red, blue)
79
73
  }
80
74
 
81
- $gradient: render-gradients($gradient-args, $gradient-type, $vendor);
82
- @for $j from $shorthand-start through length($shorthand) {
83
- $gradient: join($gradient, nth($shorthand, $j), space);
75
+ $gradient-positions: _gradient-positions-parser($gradient-type, $gradient-positions);
76
+ $gradient: _render-gradients($gradient-positions, $gradient-args, $gradient-type, $vendor);
77
+
78
+ // Append any additional shorthand args to gradient
79
+ @if $shorthand-start {
80
+ @for $j from $shorthand-start through length($shorthand) {
81
+ $gradient: join($gradient, nth($shorthand, $j), space);
82
+ }
84
83
  }
85
84
  $backgrounds-prefixed: append($backgrounds-prefixed, $gradient, comma);
86
85
  }
87
-
88
86
  // Image with additional properties
89
87
  @else {
90
88
  $backgrounds-prefixed: append($backgrounds-prefixed, $shorthand, comma);
91
89
  }
92
-
93
90
  }
94
-
95
- // If shorthand is a simple string, color or image
91
+ // If shorthand is a simple string (color or image)
96
92
  @else if $type == string {
97
93
  $backgrounds-prefixed: join($backgrounds-prefixed, $shorthand, comma);
98
94
  }
@@ -102,6 +98,6 @@
102
98
 
103
99
  //Examples:
104
100
  //@include background(linear-gradient(top, orange, red));
105
- //@include background(radial-gradient(50% 50%, cover circle, orange, red));
101
+ //@include background(radial-gradient(circle at 40% 40%, orange, red));
106
102
  //@include background(url("/images/a.png") no-repeat, linear-gradient(orange, red));
107
103
  //@include background(url("image.png") center center, linear-gradient(orange, red), url("image.png"));
@@ -1,11 +1,11 @@
1
1
  @mixin border-image($images) {
2
- -webkit-border-image: border-add-prefix($images, webkit);
3
- -moz-border-image: border-add-prefix($images, moz);
4
- -o-border-image: border-add-prefix($images, o);
5
- border-image: border-add-prefix($images);
2
+ -webkit-border-image: _border-add-prefix($images, webkit);
3
+ -moz-border-image: _border-add-prefix($images, moz);
4
+ -o-border-image: _border-add-prefix($images, o);
5
+ border-image: _border-add-prefix($images);
6
6
  }
7
7
 
8
- @function border-add-prefix($images, $vendor: false) {
8
+ @function _border-add-prefix($images, $vendor: false) {
9
9
  $border-image: ();
10
10
  $images-type: type-of(nth($images, 1));
11
11
  $first-var: nth(nth($images, 1), 1); // Get type of Gradient (Linear || radial)
@@ -16,16 +16,14 @@
16
16
  @for $i from 2 through length($images) {
17
17
  $gradient-type: nth($images, 1); // Get type of gradient (linear || radial)
18
18
  $gradient-args: nth($images, $i); // Get actual gradient (red, blue)
19
- $border-image: render-gradients($gradient-args, $gradient-type, $vendor);
19
+ $border-image: _render-gradients($gradient-args, $gradient-type, $vendor);
20
20
  }
21
21
  }
22
-
23
22
  // If input is a URL
24
23
  @else {
25
24
  $border-image: $images;
26
25
  }
27
26
  }
28
-
29
27
  // If input is gradient or url + additional args
30
28
  @else if $images-type == list {
31
29
  @for $i from 1 through length($images) {
@@ -35,9 +33,8 @@
35
33
  @if $type == list {
36
34
  $gradient-type: nth(nth($images, $i), 1); // Get type of gradient (linear || radial)
37
35
  $gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue)
38
- $border-image: render-gradients($gradient-args, $gradient-type, $vendor);
36
+ $border-image: _render-gradients($gradient-args, $gradient-type, $vendor);
39
37
  }
40
-
41
38
  // If variable is a string - Image or number
42
39
  @else if ($type == string) or ($type == number) {
43
40
  $border-image: append($border-image, nth($images, $i));
@@ -2,7 +2,6 @@
2
2
  @mixin keyframes($name) {
3
3
  $original-prefix-for-webkit: $prefix-for-webkit;
4
4
  $original-prefix-for-mozilla: $prefix-for-mozilla;
5
- $original-prefix-for-microsoft: $prefix-for-microsoft;
6
5
  $original-prefix-for-opera: $prefix-for-opera;
7
6
  $original-prefix-for-spec: $prefix-for-spec;
8
7
 
@@ -20,13 +19,6 @@
20
19
  @content;
21
20
  }
22
21
  }
23
- @if $original-prefix-for-microsoft {
24
- @include disable-prefix-for-all();
25
- $prefix-for-microsoft: true;
26
- @-ms-keyframes #{$name} {
27
- @content;
28
- }
29
- }
30
22
  @if $original-prefix-for-opera {
31
23
  @include disable-prefix-for-all();
32
24
  $prefix-for-opera: true;
@@ -35,7 +27,6 @@
35
27
  }
36
28
  }
37
29
  @if $original-prefix-for-spec {
38
- $prefix-for-spec: true !default;
39
30
  @include disable-prefix-for-all();
40
31
  $prefix-for-spec: true;
41
32
  @keyframes #{$name} {
@@ -45,7 +36,6 @@
45
36
 
46
37
  $prefix-for-webkit: $original-prefix-for-webkit;
47
38
  $prefix-for-mozilla: $original-prefix-for-mozilla;
48
- $prefix-for-microsoft: $original-prefix-for-microsoft;
49
39
  $prefix-for-opera: $original-prefix-for-opera;
50
40
  $prefix-for-spec: $original-prefix-for-spec;
51
41
  }
@@ -8,12 +8,20 @@
8
8
  $fallback: false) {
9
9
  // Detect what type of value exists in $pos
10
10
  $pos-type: type-of(nth($pos, 1));
11
+ $pos-spec: null;
12
+ $pos-degree: null;
11
13
 
12
14
  // If $pos is missing from mixin, reassign vars and add default position
13
15
  @if ($pos-type == color) or (nth($pos, 1) == "transparent") {
14
16
  $G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;
15
17
  $G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;
16
- $pos: top; // Default position
18
+ $pos: null;
19
+ }
20
+
21
+ @if $pos {
22
+ $positions: _linear-positions-parser($pos);
23
+ $pos-degree: nth($positions, 1);
24
+ $pos-spec: nth($positions, 2);
17
25
  }
18
26
 
19
27
  $full: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
@@ -27,17 +35,7 @@
27
35
  }
28
36
 
29
37
  background-color: $fallback-color;
30
- background-image: deprecated-webkit-gradient(linear, $deprecated-pos1, $deprecated-pos2, $full); // Safari <= 5.0
31
- background-image: -webkit-linear-gradient($pos, $full); // Safari 5.1+, Chrome
32
- background-image: -moz-linear-gradient($pos, $full);
33
- background-image: -ms-linear-gradient($pos, $full);
34
- background-image: -o-linear-gradient($pos, $full);
35
- background-image: unquote("linear-gradient(#{$pos}, #{$full})");
38
+ background-image: _deprecated-webkit-gradient(linear, $deprecated-pos1, $deprecated-pos2, $full); // Safari <= 5.0
39
+ background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome
40
+ background-image: unquote("linear-gradient(#{$pos-spec}#{$full})");
36
41
  }
37
-
38
-
39
- // Usage: Gradient position is optional, default is top. Position can be a degree. Color stops are optional as well.
40
- // @include linear-gradient(#1e5799, #2989d8);
41
- // @include linear-gradient(#1e5799, #2989d8, $fallback:#2989d8);
42
- // @include linear-gradient(top, #1e5799 0%, #2989d8 50%);
43
- // @include linear-gradient(50deg, rgba(10, 10, 10, 0.5) 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);
@@ -1,8 +1,8 @@
1
1
  @mixin perspective($depth: none) {
2
2
  // none | <length>
3
- @include prefixer(perspective, $depth, webkit moz o spec);
3
+ @include prefixer(perspective, $depth, webkit moz spec);
4
4
  }
5
5
 
6
6
  @mixin perspective-origin($value: 50% 50%) {
7
- @include prefixer(perspective-origin, $value, webkit moz o spec);
7
+ @include prefixer(perspective-origin, $value, webkit moz spec);
8
8
  }
@@ -9,6 +9,17 @@ $placeholders: '-webkit-input-placeholder',
9
9
  @content;
10
10
  }
11
11
  }
12
+ @else if $placeholder == "-moz-placeholder" {
13
+ // FF 18-
14
+ &:#{$placeholder} {
15
+ @content;
16
+ }
17
+
18
+ // FF 19+
19
+ &::#{$placeholder} {
20
+ @content;
21
+ }
22
+ }
12
23
  @else {
13
24
  &:#{$placeholder} {
14
25
  @content;
@@ -4,58 +4,25 @@
4
4
  $G5: false, $G6: false,
5
5
  $G7: false, $G8: false,
6
6
  $G9: false, $G10: false,
7
- $pos: 50% 50%,
8
- $shape-size: ellipse cover,
7
+ $pos: null,
8
+ $shape-size: null,
9
9
  $deprecated-pos1: center center,
10
10
  $deprecated-pos2: center center,
11
11
  $deprecated-radius1: 0,
12
12
  $deprecated-radius2: 460,
13
13
  $fallback: false) {
14
14
 
15
- @each $value in $G1, $G2 {
16
- $first-val: nth($value, 1);
17
- $pos-type: type-of($first-val);
18
-
19
- @if ($pos-type != color) or ($first-val != "transparent") {
20
- @if ($pos-type == number)
21
- or ($first-val == "center")
22
- or ($first-val == "top")
23
- or ($first-val == "right")
24
- or ($first-val == "bottom")
25
- or ($first-val == "left") {
26
-
27
- $pos: $value;
28
-
29
- @if $pos == $G1 {
30
- $G1: false;
31
- }
32
- }
33
-
34
- @else if
35
- ($first-val == "ellipse")
36
- or ($first-val == "circle")
37
- or ($first-val == "closest-side")
38
- or ($first-val == "closest-corner")
39
- or ($first-val == "farthest-side")
40
- or ($first-val == "farthest-corner")
41
- or ($first-val == "contain")
42
- or ($first-val == "cover") {
43
-
44
- $shape-size: $value;
45
-
46
- @if $value == $G1 {
47
- $G1: false;
48
- }
49
-
50
- @else if $value == $G2 {
51
- $G2: false;
52
- }
53
- }
54
- }
55
- }
15
+ $data: _radial-arg-parser($G1, $G2, $pos, $shape-size);
16
+ $G1: nth($data, 1);
17
+ $G2: nth($data, 2);
18
+ $pos: nth($data, 3);
19
+ $shape-size: nth($data, 4);
56
20
 
57
21
  $full: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
58
22
 
23
+ // Strip deprecated cover/contain for spec
24
+ $shape-size-spec: _shape-size-stripper($shape-size);
25
+
59
26
  // Set $G1 as the default fallback color
60
27
  $first-color: nth($full, 1);
61
28
  $fallback-color: nth($first-color, 1);
@@ -64,15 +31,14 @@
64
31
  $fallback-color: $fallback;
65
32
  }
66
33
 
34
+ // Add Commas and spaces
35
+ $shape-size: if($shape-size, '#{$shape-size}, ', null);
36
+ $pos: if($pos, '#{$pos}, ', null);
37
+ $pos-spec: if($pos, 'at #{$pos}', null);
38
+ $shape-size-spec: if(($shape-size-spec != ' ') and ($pos == null), '#{$shape-size-spec}, ', '#{$shape-size-spec} ');
39
+
67
40
  background-color: $fallback-color;
68
- background-image: deprecated-webkit-gradient(radial, $deprecated-pos1, $deprecated-pos2, $full, $deprecated-radius1, $deprecated-radius2); // Safari <= 5.0
69
- background-image: -webkit-radial-gradient($pos, $shape-size, $full);
70
- background-image: -moz-radial-gradient($pos, $shape-size, $full);
71
- background-image: -ms-radial-gradient($pos, $shape-size, $full);
72
- background-image: -o-radial-gradient($pos, $shape-size, $full);
73
- background-image: unquote("radial-gradient(#{$pos}, #{$shape-size}, #{$full})");
41
+ background-image: _deprecated-webkit-gradient(radial, $deprecated-pos1, $deprecated-pos2, $full, $deprecated-radius1, $deprecated-radius2); // Safari <= 5.0 && IOS 4
42
+ background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full}));
43
+ background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})");
74
44
  }
75
-
76
- // Usage: Gradient position and shape-size are required. Color stops are optional.
77
- // @include radial-gradient(50% 50%, circle cover, #1e5799, #efefef);
78
- // @include radial-gradient(50% 50%, circle cover, #eee 10%, #1e5799 30%, #efefef);
@@ -5,32 +5,30 @@
5
5
 
6
6
  @mixin transition ($properties...) {
7
7
  @if length($properties) >= 1 {
8
- @include prefixer(transition, $properties, webkit moz ms o spec);
8
+ @include prefixer(transition, $properties, webkit moz spec);
9
9
  }
10
10
 
11
11
  @else {
12
12
  $properties: all 0.15s ease-out 0;
13
- @include prefixer(transition, $properties, webkit moz ms o spec);
13
+ @include prefixer(transition, $properties, webkit moz spec);
14
14
  }
15
15
  }
16
16
 
17
17
  @mixin transition-property ($properties...) {
18
18
  -webkit-transition-property: transition-property-names($properties, 'webkit');
19
19
  -moz-transition-property: transition-property-names($properties, 'moz');
20
- -ms-transition-property: transition-property-names($properties, 'ms');
21
- -o-transition-property: transition-property-names($properties, 'o');
22
20
  transition-property: transition-property-names($properties, false);
23
21
  }
24
22
 
25
23
  @mixin transition-duration ($times...) {
26
- @include prefixer(transition-duration, $times, webkit moz ms o spec);
24
+ @include prefixer(transition-duration, $times, webkit moz spec);
27
25
  }
28
26
 
29
27
  @mixin transition-timing-function ($motions...) {
30
28
  // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
31
- @include prefixer(transition-timing-function, $motions, webkit moz ms o spec);
29
+ @include prefixer(transition-timing-function, $motions, webkit moz spec);
32
30
  }
33
31
 
34
32
  @mixin transition-delay ($times...) {
35
- @include prefixer(transition-delay, $times, webkit moz ms o spec);
33
+ @include prefixer(transition-delay, $times, webkit moz spec);
36
34
  }
@@ -1,6 +1,13 @@
1
- @function linear-gradient($gradients...) {
1
+ @function linear-gradient($pos, $gradients...) {
2
2
  $type: linear;
3
- $type-gradient: append($type, $gradients, comma);
3
+ $pos-type: type-of(nth($pos, 1));
4
4
 
5
+ // if $pos doesn't exist, fix $gradient
6
+ @if ($pos-type == color) or (nth($pos, 1) == "transparent") {
7
+ $gradients: zip($pos $gradients);
8
+ $pos: false;
9
+ }
10
+
11
+ $type-gradient: $type, $pos, $gradients;
5
12
  @return $type-gradient;
6
13
  }
@@ -4,54 +4,20 @@
4
4
  $G5: false, $G6: false,
5
5
  $G7: false, $G8: false,
6
6
  $G9: false, $G10: false,
7
- $pos: 50% 50%,
8
- $shape-size: ellipse cover) {
7
+ $pos: null,
8
+ $shape-size: null) {
9
9
 
10
- @each $value in $G1, $G2 {
11
- $first-val: nth($value, 1);
12
- $pos-type: type-of($first-val);
13
-
14
- @if ($pos-type != color) or ($first-val != "transparent") {
15
- @if ($pos-type == number)
16
- or ($first-val == "center")
17
- or ($first-val == "top")
18
- or ($first-val == "right")
19
- or ($first-val == "bottom")
20
- or ($first-val == "left") {
21
-
22
- $pos: $value;
23
-
24
- @if $pos == $G1 {
25
- $G1: false;
26
- }
27
- }
28
-
29
- @else if
30
- ($first-val == "ellipse")
31
- or ($first-val == "circle")
32
- or ($first-val == "closest-side")
33
- or ($first-val == "closest-corner")
34
- or ($first-val == "farthest-side")
35
- or ($first-val == "farthest-corner")
36
- or ($first-val == "contain")
37
- or ($first-val == "cover") {
38
-
39
- $shape-size: $value;
40
-
41
- @if $value == $G1 {
42
- $G1: false;
43
- }
44
-
45
- @else if $value == $G2 {
46
- $G2: false;
47
- }
48
- }
49
- }
50
- }
10
+ $data: _radial-arg-parser($G1, $G2, $pos, $shape-size);
11
+ $G1: nth($data, 1);
12
+ $G2: nth($data, 2);
13
+ $pos: nth($data, 3);
14
+ $shape-size: nth($data, 4);
51
15
 
52
16
  $type: radial;
53
- $gradient: compact($pos, $shape-size, $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
54
- $type-gradient: append($type, $gradient, comma);
17
+ $gradient: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
55
18
 
19
+ $type-gradient: $type, $shape-size $pos, $gradient;
56
20
  @return $type-gradient;
57
21
  }
22
+
23
+
@@ -1,6 +1,6 @@
1
1
  // Render Deprecated Webkit Gradient - Linear || Radial
2
2
  //************************************************************************//
3
- @function deprecated-webkit-gradient($type,
3
+ @function _deprecated-webkit-gradient($type,
4
4
  $deprecated-pos1, $deprecated-pos2,
5
5
  $full,
6
6
  $deprecated-radius1: false, $deprecated-radius2: false) {
@@ -17,16 +17,13 @@
17
17
  $color-stop: color-stop(nth($gradient, 2), nth($gradient, 1));
18
18
  $gradient-list: join($gradient-list, $color-stop, comma);
19
19
  }
20
-
21
20
  @else if $gradient != null {
22
21
  @if $i == $full-length {
23
22
  $percentage: 100%;
24
23
  }
25
-
26
24
  @else {
27
25
  $percentage: ($i - 1) * (100 / ($full-length - 1)) + "%";
28
26
  }
29
-
30
27
  $color-stop: color-stop(unquote($percentage), $gradient);
31
28
  $gradient-list: join($gradient-list, $color-stop, comma);
32
29
  }
@@ -35,10 +32,8 @@
35
32
  @if $type == radial {
36
33
  $gradient: -webkit-gradient(radial, $deprecated-pos1, $deprecated-radius1, $deprecated-pos2, $deprecated-radius2, $gradient-list);
37
34
  }
38
-
39
35
  @else if $type == linear {
40
36
  $gradient: -webkit-gradient(linear, $deprecated-pos1, $deprecated-pos2, $gradient-list);
41
37
  }
42
-
43
38
  @return $gradient;
44
39
  }
@@ -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,64 @@
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 compatability
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
+ @else {
39
+ @warn "Incorrect gradient syntax";
40
+ }
41
+ $spec: to $side $corner;
42
+ }
43
+ @else if $length == 1 {
44
+ // Swap for backwards compatability
45
+ @if $type == string {
46
+ $degree: $pos;
47
+ $spec: to _position-flipper($pos);
48
+ }
49
+ @else {
50
+ $degree: -270 - $pos; //rotate the gradient opposite from spec
51
+ $spec: $pos;
52
+ }
53
+ }
54
+ $degree: unquote($degree + ",");
55
+ $spec: unquote($spec + ",");
56
+ @return $degree $spec;
57
+ }
58
+
59
+ @function _position-flipper($pos) {
60
+ @return if($pos == left, right, null)
61
+ if($pos == right, left, null)
62
+ if($pos == top, bottom, null)
63
+ if($pos == bottom, top, null);
64
+ }
@@ -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: false;
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: false;
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: false;
59
+ }
60
+
61
+ @else if $value == $G2 {
62
+ $G2: false;
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ @return $G1, $G2, $pos, $shape-size;
69
+ }
@@ -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
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bourbon-compass
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
4
+ version: 3.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-19 00:00:00.000000000 Z
12
+ date: 2013-04-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: compass
@@ -65,8 +65,8 @@ files:
65
65
  - stylesheets/bourbon/addons/_triangle.scss
66
66
  - stylesheets/bourbon/css3/_animation.scss
67
67
  - stylesheets/bourbon/css3/_appearance.scss
68
+ - stylesheets/bourbon/css3/_backface-visibility.scss
68
69
  - stylesheets/bourbon/css3/_background-image.scss
69
- - stylesheets/bourbon/css3/_background-size.scss
70
70
  - stylesheets/bourbon/css3/_background.scss
71
71
  - stylesheets/bourbon/css3/_border-image.scss
72
72
  - stylesheets/bourbon/css3/_border-radius.scss
@@ -86,16 +86,21 @@ files:
86
86
  - stylesheets/bourbon/css3/_transition.scss
87
87
  - stylesheets/bourbon/css3/_user-select.scss
88
88
  - stylesheets/bourbon/functions/_compact.scss
89
- - stylesheets/bourbon/functions/_deprecated-webkit-gradient.scss
90
89
  - stylesheets/bourbon/functions/_flex-grid.scss
91
90
  - stylesheets/bourbon/functions/_grid-width.scss
92
91
  - stylesheets/bourbon/functions/_linear-gradient.scss
93
92
  - stylesheets/bourbon/functions/_modular-scale.scss
94
93
  - stylesheets/bourbon/functions/_px-to-em.scss
95
94
  - stylesheets/bourbon/functions/_radial-gradient.scss
96
- - stylesheets/bourbon/functions/_render-gradients.scss
97
95
  - stylesheets/bourbon/functions/_tint-shade.scss
98
96
  - stylesheets/bourbon/functions/_transition-property-name.scss
97
+ - stylesheets/bourbon/helpers/_deprecated-webkit-gradient.scss
98
+ - stylesheets/bourbon/helpers/_gradient-positions-parser.scss
99
+ - stylesheets/bourbon/helpers/_linear-positions-parser.scss
100
+ - stylesheets/bourbon/helpers/_radial-arg-parser.scss
101
+ - stylesheets/bourbon/helpers/_radial-positions-parser.scss
102
+ - stylesheets/bourbon/helpers/_render-gradients.scss
103
+ - stylesheets/bourbon/helpers/_shape-size-stripper.scss
99
104
  homepage: https://github.com/thoughtbot/bourbon
100
105
  licenses: []
101
106
  post_install_message:
@@ -1,3 +0,0 @@
1
- @mixin background-size ($lengths...) {
2
- @include prefixer(background-size, $lengths, webkit moz ms o spec);
3
- }
@@ -1,14 +0,0 @@
1
- // User for linear and radial gradients within background-image or border-image properties
2
-
3
- @function render-gradients($gradients, $gradient-type, $vendor: false) {
4
- $vendor-gradients: false;
5
- @if $vendor {
6
- $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient($gradients);
7
- }
8
-
9
- @else if $vendor == false {
10
- $vendor-gradients: "#{$gradient-type}-gradient(#{$gradients})";
11
- $vendor-gradients: unquote($vendor-gradients);
12
- }
13
- @return $vendor-gradients;
14
- }