bourbon-compass 2.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 (43) hide show
  1. data/lib/bourbon-compass.rb +4 -0
  2. data/readme.md +31 -0
  3. data/stylesheets/bourbon/_bourbon.scss +40 -0
  4. data/stylesheets/bourbon/addons/_button.scss +273 -0
  5. data/stylesheets/bourbon/addons/_clearfix.scss +29 -0
  6. data/stylesheets/bourbon/addons/_font-face.scss +12 -0
  7. data/stylesheets/bourbon/addons/_font-family.scss +5 -0
  8. data/stylesheets/bourbon/addons/_hide-text.scss +15 -0
  9. data/stylesheets/bourbon/addons/_html5-input-types.scss +36 -0
  10. data/stylesheets/bourbon/addons/_position.scss +42 -0
  11. data/stylesheets/bourbon/addons/_timing-functions.scss +32 -0
  12. data/stylesheets/bourbon/css3/_animation.scss +125 -0
  13. data/stylesheets/bourbon/css3/_appearance.scss +3 -0
  14. data/stylesheets/bourbon/css3/_background-image.scss +57 -0
  15. data/stylesheets/bourbon/css3/_background-size.scss +11 -0
  16. data/stylesheets/bourbon/css3/_background.scss +107 -0
  17. data/stylesheets/bourbon/css3/_border-image.scss +56 -0
  18. data/stylesheets/bourbon/css3/_border-radius.scss +44 -0
  19. data/stylesheets/bourbon/css3/_box-shadow.scss +12 -0
  20. data/stylesheets/bourbon/css3/_box-sizing.scss +4 -0
  21. data/stylesheets/bourbon/css3/_columns.scss +47 -0
  22. data/stylesheets/bourbon/css3/_flex-box.scss +52 -0
  23. data/stylesheets/bourbon/css3/_inline-block.scss +8 -0
  24. data/stylesheets/bourbon/css3/_linear-gradient.scss +43 -0
  25. data/stylesheets/bourbon/css3/_prefixer.scss +12 -0
  26. data/stylesheets/bourbon/css3/_radial-gradient.scss +76 -0
  27. data/stylesheets/bourbon/css3/_transform.scss +11 -0
  28. data/stylesheets/bourbon/css3/_transition.scss +72 -0
  29. data/stylesheets/bourbon/css3/_user-select.scss +3 -0
  30. data/stylesheets/bourbon/functions/_deprecated-webkit-gradient.scss +44 -0
  31. data/stylesheets/bourbon/functions/_flex-grid.scss +35 -0
  32. data/stylesheets/bourbon/functions/_grid-width.scss +13 -0
  33. data/stylesheets/bourbon/functions/_linear-gradient.scss +23 -0
  34. data/stylesheets/bourbon/functions/_modular-scale.scss +40 -0
  35. data/stylesheets/bourbon/functions/_radial-gradient.scss +62 -0
  36. data/stylesheets/bourbon/functions/_render-gradients.scss +14 -0
  37. data/stylesheets/bourbon/functions/_tint-shade.scss +9 -0
  38. data/stylesheets/bourbon/functions/_transition-property-name.scss +22 -0
  39. data/stylesheets/bourbon/lib/bourbon.rb +19 -0
  40. data/stylesheets/bourbon/lib/bourbon/sass_extensions.rb +6 -0
  41. data/stylesheets/bourbon/lib/bourbon/sass_extensions/functions.rb +13 -0
  42. data/stylesheets/bourbon/lib/bourbon/sass_extensions/functions/compact.rb +14 -0
  43. metadata +118 -0
@@ -0,0 +1,42 @@
1
+ @mixin position ($position: relative, $coordinates: 0 0 0 0) {
2
+
3
+ @if type-of($position) == list {
4
+ $coordinates: $position;
5
+ $position: relative;
6
+ }
7
+
8
+ $top: nth($coordinates, 1);
9
+ $right: nth($coordinates, 2);
10
+ $bottom: nth($coordinates, 3);
11
+ $left: nth($coordinates, 4);
12
+
13
+ position: $position;
14
+
15
+ @if $top == auto {
16
+ top: $top;
17
+ }
18
+ @else if not(unitless($top)) {
19
+ top: $top;
20
+ }
21
+
22
+ @if $right == auto {
23
+ right: $right;
24
+ }
25
+ @else if not(unitless($right)) {
26
+ right: $right;
27
+ }
28
+
29
+ @if $bottom == auto {
30
+ bottom: $bottom;
31
+ }
32
+ @else if not(unitless($bottom)) {
33
+ bottom: $bottom;
34
+ }
35
+
36
+ @if $left == auto {
37
+ left: $left;
38
+ }
39
+ @else if not(unitless($left)) {
40
+ left: $left;
41
+ }
42
+ }
@@ -0,0 +1,32 @@
1
+ // CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
2
+ // Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html
3
+
4
+ // EASE IN
5
+ $ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
6
+ $ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
7
+ $ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
8
+ $ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
9
+ $ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
10
+ $ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
11
+ $ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
12
+ $ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
13
+
14
+ // EASE OUT
15
+ $ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
16
+ $ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
17
+ $ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
18
+ $ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
19
+ $ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
20
+ $ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
21
+ $ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
22
+ $ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
23
+
24
+ // EASE IN OUT
25
+ $ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
26
+ $ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
27
+ $ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
28
+ $ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
29
+ $ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
30
+ $ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
31
+ $ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
32
+ $ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);
@@ -0,0 +1,125 @@
1
+ // http://www.w3.org/TR/css3-animations/#the-animation-name-property-
2
+ // Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties.
3
+
4
+ // Official animation shorthand property.
5
+ @mixin animation ($animation-1,
6
+ $animation-2: false, $animation-3: false,
7
+ $animation-4: false, $animation-5: false,
8
+ $animation-6: false, $animation-7: false,
9
+ $animation-8: false, $animation-9: false)
10
+ {
11
+ $full: compact($animation-1, $animation-2, $animation-3, $animation-4,
12
+ $animation-5, $animation-6, $animation-7, $animation-8, $animation-9);
13
+
14
+ @include prefixer(animation, $full);
15
+ }
16
+
17
+ // Individual Animation Properties
18
+ @mixin animation-name ($name-1,
19
+ $name-2: false, $name-3: false,
20
+ $name-4: false, $name-5: false,
21
+ $name-6: false, $name-7: false,
22
+ $name-8: false, $name-9: false)
23
+ {
24
+ $full: compact($name-1, $name-2, $name-3, $name-4,
25
+ $name-5, $name-6, $name-7, $name-8, $name-9);
26
+
27
+ @include prefixer(animation-name, $full);
28
+ }
29
+
30
+
31
+ @mixin animation-duration ($time-1: 0,
32
+ $time-2: false, $time-3: false,
33
+ $time-4: false, $time-5: false,
34
+ $time-6: false, $time-7: false,
35
+ $time-8: false, $time-9: false)
36
+ {
37
+ $full: compact($time-1, $time-2, $time-3, $time-4,
38
+ $time-5, $time-6, $time-7, $time-8, $time-9);
39
+
40
+ @include prefixer(animation-duration, $full);
41
+ }
42
+
43
+
44
+ @mixin animation-timing-function ($motion-1: ease,
45
+ // ease | linear | ease-in | ease-out | ease-in-out
46
+ $motion-2: false, $motion-3: false,
47
+ $motion-4: false, $motion-5: false,
48
+ $motion-6: false, $motion-7: false,
49
+ $motion-8: false, $motion-9: false)
50
+ {
51
+ $full: compact($motion-1, $motion-2, $motion-3, $motion-4,
52
+ $motion-5, $motion-6, $motion-7, $motion-8, $motion-9);
53
+
54
+ @include prefixer(animation-timing-function, $full);
55
+ }
56
+
57
+
58
+ @mixin animation-iteration-count ($value-1: 1,
59
+ // infinite | <number>
60
+ $value-2: false, $value-3: false,
61
+ $value-4: false, $value-5: false,
62
+ $value-6: false, $value-7: false,
63
+ $value-8: false, $value-9: false)
64
+ {
65
+ $full: compact($value-1, $value-2, $value-3, $value-4,
66
+ $value-5, $value-6, $value-7, $value-8, $value-9);
67
+
68
+ @include prefixer(animation-iteration-count, $full);
69
+ }
70
+
71
+
72
+ @mixin animation-direction ($direction-1: normal,
73
+ // normal | alternate
74
+ $direction-2: false, $direction-3: false,
75
+ $direction-4: false, $direction-5: false,
76
+ $direction-6: false, $direction-7: false,
77
+ $direction-8: false, $direction-9: false)
78
+ {
79
+ $full: compact($direction-1, $direction-2, $direction-3, $direction-4,
80
+ $direction-5, $direction-6, $direction-7, $direction-8, $direction-9);
81
+
82
+ @include prefixer(animation-direction, $full);
83
+ }
84
+
85
+
86
+ @mixin animation-play-state ($state-1: running,
87
+ // running | paused
88
+ $state-2: false, $state-3: false,
89
+ $state-4: false, $state-5: false,
90
+ $state-6: false, $state-7: false,
91
+ $state-8: false, $state-9: false)
92
+ {
93
+ $full: compact($state-1, $state-2, $state-3, $state-4,
94
+ $state-5, $state-6, $state-7, $state-8, $state-9);
95
+
96
+ @include prefixer(animation-play-state, $full);
97
+ }
98
+
99
+
100
+ @mixin animation-delay ($time-1: 0,
101
+ $time-2: false, $time-3: false,
102
+ $time-4: false, $time-5: false,
103
+ $time-6: false, $time-7: false,
104
+ $time-8: false, $time-9: false)
105
+ {
106
+ $full: compact($time-1, $time-2, $time-3, $time-4,
107
+ $time-5, $time-6, $time-7, $time-8, $time-9);
108
+
109
+ @include prefixer(animation-delay, $full);
110
+ }
111
+
112
+
113
+ @mixin animation-fill-mode ($mode-1: none,
114
+ // http://goo.gl/l6ckm
115
+ // none | forwards | backwards | both
116
+ $mode-2: false, $mode-3: false,
117
+ $mode-4: false, $mode-5: false,
118
+ $mode-6: false, $mode-7: false,
119
+ $mode-8: false, $mode-9: false)
120
+ {
121
+ $full: compact($mode-1, $mode-2, $mode-3, $mode-4,
122
+ $mode-5, $mode-6, $mode-7, $mode-8, $mode-9);
123
+
124
+ @include prefixer(animation-fill-mode, $full);
125
+ }
@@ -0,0 +1,3 @@
1
+ @mixin appearance ($value) {
2
+ @include prefixer(appearance, $value, webkit, moz, ms, o);
3
+ }
@@ -0,0 +1,57 @@
1
+ //************************************************************************//
2
+ // Background-image property for adding multiple background images with
3
+ // gradients, or for stringing multiple gradients together.
4
+ //************************************************************************//
5
+
6
+ @mixin background-image(
7
+ $image-1 , $image-2: false,
8
+ $image-3: false, $image-4: false,
9
+ $image-5: false, $image-6: false,
10
+ $image-7: false, $image-8: false,
11
+ $image-9: false, $image-10: false
12
+ ) {
13
+ $images: compact($image-1, $image-2,
14
+ $image-3, $image-4,
15
+ $image-5, $image-6,
16
+ $image-7, $image-8,
17
+ $image-9, $image-10);
18
+
19
+ background-image: add-prefix($images, webkit);
20
+ background-image: add-prefix($images, moz);
21
+ background-image: add-prefix($images, ms);
22
+ background-image: add-prefix($images, o);
23
+ background-image: add-prefix($images);
24
+ }
25
+
26
+
27
+ @function add-prefix($images, $vendor: false) {
28
+ $images-prefixed: ();
29
+
30
+ @for $i from 1 through length($images) {
31
+ $type: type-of(nth($images, $i)); // Get type of variable - List or String
32
+
33
+ // If variable is a list - Gradient
34
+ @if $type == list {
35
+ $gradient-type: nth(nth($images, $i), 1); // Get type of gradient (linear || radial)
36
+ $gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue)
37
+
38
+ $gradient: render-gradients($gradient-args, $gradient-type, $vendor);
39
+ $images-prefixed: append($images-prefixed, $gradient, comma);
40
+ }
41
+
42
+ // If variable is a string - Image
43
+ @else if $type == string {
44
+ $images-prefixed: join($images-prefixed, nth($images, $i), comma);
45
+ }
46
+ }
47
+ @return $images-prefixed;
48
+ }
49
+
50
+
51
+
52
+ //Examples:
53
+ //@include background-image(linear-gradient(top, orange, red));
54
+ //@include background-image(radial-gradient(50% 50%, cover circle, orange, red));
55
+ //@include background-image(url("/images/a.png"), linear-gradient(orange, red));
56
+ //@include background-image(url("image.png"), linear-gradient(orange, red), url("image.png"));
57
+ //@include background-image(linear-gradient(hsla(0, 100%, 100%, 0.25) 0%, hsla(0, 100%, 100%, 0.08) 50%, transparent 50%), linear-gradient(orange, red);
@@ -0,0 +1,11 @@
1
+ @mixin background-size ($length-1,
2
+ $length-2: false, $length-3: false,
3
+ $length-4: false, $length-5: false,
4
+ $length-6: false, $length-7: false,
5
+ $length-8: false, $length-9: false)
6
+ {
7
+ $full: compact($length-1, $length-2, $length-3, $length-4,
8
+ $length-5, $length-6, $length-7, $length-8, $length-9);
9
+
10
+ @include prefixer(background-size, $full, webkit, moz, ms, o);
11
+ }
@@ -0,0 +1,107 @@
1
+ //************************************************************************//
2
+ // Background property for adding multiple backgrounds using shorthand
3
+ // notation.
4
+ //************************************************************************//
5
+
6
+ @mixin background(
7
+ $background-1 , $background-2: false,
8
+ $background-3: false, $background-4: false,
9
+ $background-5: false, $background-6: false,
10
+ $background-7: false, $background-8: false,
11
+ $background-9: false, $background-10: false,
12
+ $fallback: false
13
+ ) {
14
+ $backgrounds: compact($background-1, $background-2,
15
+ $background-3, $background-4,
16
+ $background-5, $background-6,
17
+ $background-7, $background-8,
18
+ $background-9, $background-10);
19
+
20
+ $fallback-color: false;
21
+ @if (type-of($fallback) == color) or ($fallback == "transparent") {
22
+ $fallback-color: $fallback;
23
+ }
24
+ @else {
25
+ $fallback-color: extract-background-color($backgrounds);
26
+ }
27
+
28
+ @if $fallback-color {
29
+ background-color: $fallback-color;
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);
36
+ }
37
+
38
+ @function extract-background-color($backgrounds) {
39
+ $final-bg-layer: nth($backgrounds, length($backgrounds));
40
+ @if type-of($final-bg-layer) == list {
41
+ @for $i from 1 through length($final-bg-layer) {
42
+ $value: nth($final-bg-layer, $i);
43
+ @if type-of($value) == color {
44
+ @return $value;
45
+ }
46
+ }
47
+ }
48
+ @return false;
49
+ }
50
+
51
+
52
+ @function background-add-prefix($backgrounds, $vendor: false) {
53
+ $backgrounds-prefixed: ();
54
+
55
+ @for $i from 1 through length($backgrounds) {
56
+ $shorthand: nth($backgrounds, $i); // Get member for current index
57
+ $type: type-of($shorthand); // Get type of variable - List or String
58
+
59
+ // If shorthand is a list
60
+ @if $type == list {
61
+ $first-member: nth($shorthand, 1); // Get first member of shorthand
62
+
63
+ // Linear Gradient
64
+ @if index(linear radial, nth($first-member, 1)) {
65
+ $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);
73
+ $shorthand-start: 2;
74
+ }
75
+ // Linear gradient only
76
+ @else {
77
+ $gradient-args: nth($shorthand, 2); // Get actual gradient (red, blue)
78
+ $shorthand-start: 3;
79
+ }
80
+
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);
84
+ }
85
+ $backgrounds-prefixed: append($backgrounds-prefixed, $gradient, comma);
86
+ }
87
+
88
+ // Image with additional properties
89
+ @else {
90
+ $backgrounds-prefixed: append($backgrounds-prefixed, $shorthand, comma);
91
+ }
92
+
93
+ }
94
+
95
+ // If shorthand is a simple string, color or image
96
+ @else if $type == string {
97
+ $backgrounds-prefixed: join($backgrounds-prefixed, $shorthand, comma);
98
+ }
99
+ }
100
+ @return $backgrounds-prefixed;
101
+ }
102
+
103
+ //Examples:
104
+ //@include background(linear-gradient(top, orange, red));
105
+ //@include background(radial-gradient(50% 50%, cover circle, orange, red));
106
+ //@include background(url("/images/a.png") no-repeat, linear-gradient(orange, red));
107
+ //@include background(url("image.png") center center, linear-gradient(orange, red), url("image.png"));
@@ -0,0 +1,56 @@
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);
6
+ }
7
+
8
+ @function border-add-prefix($images, $vendor: false) {
9
+ $border-image: ();
10
+ $images-type: type-of(nth($images, 1));
11
+ $first-var: nth(nth($images, 1), 1); // Get type of Gradient (Linear || radial)
12
+
13
+ // If input is a gradient
14
+ @if $images-type == string {
15
+ @if ($first-var == "linear") or ($first-var == "radial") {
16
+ @for $i from 2 through length($images) {
17
+ $gradient-type: nth($images, 1); // Get type of gradient (linear || radial)
18
+ $gradient-args: nth($images, $i); // Get actual gradient (red, blue)
19
+ $border-image: render-gradients($gradient-args, $gradient-type, $vendor);
20
+ }
21
+ }
22
+
23
+ // If input is a URL
24
+ @else {
25
+ $border-image: $images;
26
+ }
27
+ }
28
+
29
+ // If input is gradient or url + additional args
30
+ @else if $images-type == list {
31
+ @for $i from 1 through length($images) {
32
+ $type: type-of(nth($images, $i)); // Get type of variable - List or String
33
+
34
+ // If variable is a list - Gradient
35
+ @if $type == list {
36
+ $gradient-type: nth(nth($images, $i), 1); // Get type of gradient (linear || radial)
37
+ $gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue)
38
+ $border-image: render-gradients($gradient-args, $gradient-type, $vendor);
39
+ }
40
+
41
+ // If variable is a string - Image or number
42
+ @else if ($type == string) or ($type == number) {
43
+ $border-image: append($border-image, nth($images, $i));
44
+ }
45
+ }
46
+ }
47
+ @return $border-image;
48
+ }
49
+
50
+ //Examples:
51
+ // @include border-image(url("image.png"));
52
+ // @include border-image(url("image.png") 20 stretch);
53
+ // @include border-image(linear-gradient(45deg, orange, yellow));
54
+ // @include border-image(linear-gradient(45deg, orange, yellow) stretch);
55
+ // @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round);
56
+ // @include border-image(radial-gradient(top, cover, orange, yellow, orange));
@@ -0,0 +1,44 @@
1
+ @mixin border-radius ($radii) {
2
+ @include prefixer(border-radius, $radii, webkit, not moz);
3
+ @warn "border-radius mixin is deprecated and will be removed in the next major version release.";
4
+ }
5
+
6
+ @mixin border-top-left-radius($radii) {
7
+ @include prefixer(border-top-left-radius, $radii, webkit, not moz);
8
+ @warn "border-top-left-radius mixin is deprecated and will be removed in the next major version release.";
9
+ }
10
+
11
+ @mixin border-top-right-radius($radii) {
12
+ @include prefixer(border-top-right-radius, $radii, webkit, not moz);
13
+ @warn "border-top-right-radius mixin is deprecated and will be removed in the next major version release.";
14
+ }
15
+
16
+ @mixin border-bottom-left-radius($radii) {
17
+ @include prefixer(border-bottom-left-radius, $radii, webkit, not moz);
18
+ @warn "border-bottom-left-radius mixin is deprecated and will be removed in the next major version release.";
19
+ }
20
+
21
+ @mixin border-bottom-right-radius($radii) {
22
+ @include prefixer(border-bottom-right-radius, $radii, webkit, not moz);
23
+ @warn "border-bottom-right-radius mixin is deprecated and will be removed in the next major version release.";
24
+ }
25
+
26
+ @mixin border-top-radius($radii) {
27
+ @include border-top-left-radius($radii);
28
+ @include border-top-right-radius($radii);
29
+ }
30
+
31
+ @mixin border-right-radius($radii) {
32
+ @include border-top-right-radius($radii);
33
+ @include border-bottom-right-radius($radii);
34
+ }
35
+
36
+ @mixin border-bottom-radius($radii) {
37
+ @include border-bottom-left-radius($radii);
38
+ @include border-bottom-right-radius($radii);
39
+ }
40
+
41
+ @mixin border-left-radius($radii) {
42
+ @include border-top-left-radius($radii);
43
+ @include border-bottom-left-radius($radii);
44
+ }