bourbon 4.2.6 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +34 -0
  3. data/.github/ISSUE_TEMPLATE.md +22 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  5. data/.npmignore +6 -1
  6. data/.ruby-version +1 -0
  7. data/.scss-lint.yml +100 -8
  8. data/.tool-versions +1 -0
  9. data/CHANGELOG.md +406 -0
  10. data/CODE_OF_CONDUCT.md +6 -0
  11. data/CONTRIBUTING.md +77 -28
  12. data/Gemfile +1 -1
  13. data/LICENSE.md +1 -1
  14. data/README.md +161 -92
  15. data/RELEASING.md +34 -0
  16. data/Rakefile +0 -2
  17. data/bin/bourbon +1 -2
  18. data/bourbon.gemspec +32 -24
  19. data/bower.json +22 -19
  20. data/core/_bourbon.scss +54 -0
  21. data/core/bourbon/helpers/_buttons-list.scss +14 -0
  22. data/core/bourbon/helpers/_scales.scss +27 -0
  23. data/core/bourbon/helpers/_text-inputs-list.scss +26 -0
  24. data/core/bourbon/library/_border-color.scss +26 -0
  25. data/core/bourbon/library/_border-radius.scss +85 -0
  26. data/core/bourbon/library/_border-style.scss +25 -0
  27. data/core/bourbon/library/_border-width.scss +25 -0
  28. data/core/bourbon/library/_buttons.scss +84 -0
  29. data/{app/assets/stylesheets/addons → core/bourbon/library}/_clearfix.scss +5 -5
  30. data/core/bourbon/library/_contrast-switch.scss +81 -0
  31. data/{app/assets/stylesheets/addons → core/bourbon/library}/_ellipsis.scss +12 -6
  32. data/core/bourbon/library/_font-face.scss +65 -0
  33. data/core/bourbon/library/_font-stacks.scss +248 -0
  34. data/core/bourbon/library/_hide-text.scss +24 -0
  35. data/core/bourbon/library/_hide-visually.scss +70 -0
  36. data/core/bourbon/library/_margin.scss +37 -0
  37. data/core/bourbon/library/_modular-scale.scss +120 -0
  38. data/core/bourbon/library/_overflow-wrap.scss +24 -0
  39. data/core/bourbon/library/_padding.scss +36 -0
  40. data/core/bourbon/library/_position.scss +62 -0
  41. data/core/bourbon/library/_prefixer.scss +37 -0
  42. data/core/bourbon/library/_shade.scss +32 -0
  43. data/core/bourbon/library/_size.scss +50 -0
  44. data/core/bourbon/library/_strip-unit.scss +17 -0
  45. data/core/bourbon/library/_text-inputs.scss +163 -0
  46. data/{app/assets/stylesheets/addons → core/bourbon/library}/_timing-functions.scss +7 -3
  47. data/core/bourbon/library/_tint.scss +32 -0
  48. data/core/bourbon/library/_triangle.scss +82 -0
  49. data/core/bourbon/library/_value-prefixer.scss +37 -0
  50. data/core/bourbon/settings/_settings.scss +75 -0
  51. data/core/bourbon/utilities/_assign-inputs.scss +28 -0
  52. data/core/bourbon/utilities/_compact-shorthand.scss +39 -0
  53. data/core/bourbon/utilities/_contrast-ratio.scss +31 -0
  54. data/core/bourbon/utilities/_directional-property.scss +70 -0
  55. data/core/bourbon/utilities/_fetch-bourbon-setting.scss +16 -0
  56. data/{app/assets/stylesheets/helpers → core/bourbon/utilities}/_font-source-declaration.scss +23 -15
  57. data/core/bourbon/utilities/_gamma.scss +24 -0
  58. data/core/bourbon/utilities/_lightness.scss +24 -0
  59. data/{app/assets/stylesheets/functions/_unpack.scss → core/bourbon/utilities/_unpack-shorthand.scss} +8 -6
  60. data/{app/assets/stylesheets/functions → core/bourbon/validators}/_contains-falsy.scss +6 -6
  61. data/{app/assets/stylesheets/functions → core/bourbon/validators}/_contains.scss +8 -8
  62. data/core/bourbon/validators/_is-color.scss +13 -0
  63. data/{app/assets/stylesheets/functions → core/bourbon/validators}/_is-length.scss +6 -2
  64. data/core/bourbon/validators/_is-number.scss +15 -0
  65. data/core/bourbon/validators/_is-size.scss +18 -0
  66. data/features/install.feature +0 -1
  67. data/features/step_definitions/bourbon_steps.rb +13 -5
  68. data/features/update.feature +0 -1
  69. data/features/version.feature +0 -2
  70. data/index.js +2 -2
  71. data/lib/bourbon/generator.rb +11 -10
  72. data/lib/bourbon/version.rb +1 -1
  73. data/lib/bourbon.rb +3 -19
  74. data/package.json +18 -17
  75. data/spec/bourbon/{addons → library}/border_color_spec.rb +8 -8
  76. data/spec/bourbon/{addons → library}/border_radius_spec.rb +1 -1
  77. data/spec/bourbon/{addons → library}/border_style_spec.rb +1 -1
  78. data/spec/bourbon/{addons → library}/border_width_spec.rb +1 -1
  79. data/spec/bourbon/{addons → library}/buttons_spec.rb +4 -4
  80. data/spec/bourbon/{addons → library}/clearfix_spec.rb +3 -3
  81. data/spec/bourbon/library/contrast_switch_spec.rb +23 -0
  82. data/spec/bourbon/{addons → library}/ellipsis_spec.rb +1 -1
  83. data/spec/bourbon/library/font_face_spec_1.rb +16 -0
  84. data/spec/bourbon/library/font_face_spec_2.rb +21 -0
  85. data/spec/bourbon/library/font_face_spec_3.rb +16 -0
  86. data/spec/bourbon/library/font_face_spec_4.rb +17 -0
  87. data/spec/bourbon/library/font_stacks_spec.rb +42 -0
  88. data/spec/bourbon/{addons → library}/hide_text_spec.rb +1 -1
  89. data/spec/bourbon/library/hide_visually_spec.rb +37 -0
  90. data/spec/bourbon/{addons → library}/margin_spec.rb +1 -1
  91. data/spec/bourbon/{functions → library}/modular_scale_spec.rb +6 -6
  92. data/spec/bourbon/library/overflow_wrap_spec.rb +27 -0
  93. data/spec/bourbon/{addons → library}/padding_spec.rb +1 -1
  94. data/spec/bourbon/{addons → library}/position_spec.rb +1 -1
  95. data/spec/bourbon/library/prefixer_spec.rb +34 -0
  96. data/spec/bourbon/{functions → library}/shade_spec.rb +1 -1
  97. data/spec/bourbon/{addons → library}/size_spec.rb +1 -1
  98. data/spec/bourbon/{functions/strip_units_spec.rb → library/strip_unit_spec.rb} +2 -2
  99. data/spec/bourbon/{addons → library}/text_inputs_spec.rb +25 -15
  100. data/spec/bourbon/{functions → library}/tint_spec.rb +1 -1
  101. data/spec/bourbon/library/triangle_spec.rb +31 -0
  102. data/spec/bourbon/{functions → utilities}/assign_inputs_spec.rb +8 -8
  103. data/spec/bourbon/utilities/compact_shorthand_spec.rb +30 -0
  104. data/spec/bourbon/utilities/contrast_ratio_spec.rb +23 -0
  105. data/spec/bourbon/utilities/directional_property_spec.rb +28 -0
  106. data/spec/bourbon/utilities/fetch_bourbon_setting_spec.rb +31 -0
  107. data/spec/bourbon/{helpers → utilities}/font_source_declaration_spec.rb +1 -1
  108. data/spec/bourbon/utilities/gamma_spec.rb +23 -0
  109. data/spec/bourbon/utilities/lightness_spec.rb +31 -0
  110. data/spec/bourbon/{functions → utilities}/unpack_spec.rb +1 -1
  111. data/spec/bourbon/{functions → validators}/contains_spec.rb +1 -1
  112. data/spec/bourbon/{functions → validators}/is_length_spec.rb +1 -1
  113. data/spec/bourbon/{functions → validators}/is_number_spec.rb +1 -1
  114. data/spec/bourbon/{functions → validators}/is_size_spec.rb +1 -1
  115. data/spec/fixtures/_setup.scss +1 -1
  116. data/spec/fixtures/{addons → library}/border-color.scss +4 -4
  117. data/spec/fixtures/{addons → library}/border-radius.scss +0 -0
  118. data/spec/fixtures/{addons → library}/border-style.scss +0 -0
  119. data/spec/fixtures/{addons → library}/border-width.scss +0 -0
  120. data/spec/fixtures/{addons → library}/buttons.scss +0 -0
  121. data/spec/fixtures/{addons → library}/clearfix.scss +0 -0
  122. data/spec/fixtures/library/contrast-switch.scss +9 -0
  123. data/spec/fixtures/{addons → library}/ellipsis.scss +0 -0
  124. data/spec/fixtures/library/font-face-1.scss +6 -0
  125. data/spec/fixtures/library/font-face-2.scss +10 -0
  126. data/spec/fixtures/library/font-face-3.scss +8 -0
  127. data/spec/fixtures/library/font-face-4.scss +7 -0
  128. data/spec/fixtures/library/font-stacks.scss +41 -0
  129. data/spec/fixtures/{addons → library}/hide-text.scss +0 -0
  130. data/spec/fixtures/library/hide-visually.scss +9 -0
  131. data/spec/fixtures/{addons → library}/margin.scss +0 -0
  132. data/spec/fixtures/{functions → library}/modular-scale.scss +0 -0
  133. data/spec/fixtures/library/overflow-wrap.scss +9 -0
  134. data/spec/fixtures/{addons → library}/padding.scss +0 -0
  135. data/spec/fixtures/{addons → library}/position.scss +0 -4
  136. data/spec/fixtures/library/prefixer.scss +13 -0
  137. data/spec/fixtures/{functions → library}/shade.scss +1 -1
  138. data/spec/fixtures/{addons → library}/size.scss +2 -2
  139. data/spec/fixtures/library/strip-unit.scss +17 -0
  140. data/spec/fixtures/{addons → library}/text-inputs.scss +4 -0
  141. data/spec/fixtures/{functions → library}/tint.scss +1 -1
  142. data/spec/fixtures/library/triangle.scss +9 -0
  143. data/spec/fixtures/utilities/assign-inputs.scss +19 -0
  144. data/spec/fixtures/utilities/compact-shorthand.scss +21 -0
  145. data/spec/fixtures/utilities/contrast-ratio.scss +9 -0
  146. data/spec/fixtures/utilities/directional-property.scss +17 -0
  147. data/spec/fixtures/utilities/fetch-bourbon-setting.scss +16 -0
  148. data/spec/fixtures/utilities/font-source-declaration.scss +11 -0
  149. data/spec/fixtures/utilities/gamma.scss +9 -0
  150. data/spec/fixtures/utilities/lightness.scss +13 -0
  151. data/spec/fixtures/utilities/unpack.scss +17 -0
  152. data/spec/fixtures/{functions → validators}/contains.scss +1 -1
  153. data/spec/fixtures/{functions → validators}/is-length.scss +1 -1
  154. data/spec/fixtures/{functions → validators}/is-number.scss +1 -1
  155. data/spec/fixtures/{functions → validators}/is-size.scss +1 -1
  156. data/spec/support/matchers/have_value.rb +1 -1
  157. metadata +267 -272
  158. data/app/assets/stylesheets/_bourbon-deprecated-upcoming.scss +0 -411
  159. data/app/assets/stylesheets/_bourbon.scss +0 -87
  160. data/app/assets/stylesheets/addons/_border-color.scss +0 -26
  161. data/app/assets/stylesheets/addons/_border-radius.scss +0 -48
  162. data/app/assets/stylesheets/addons/_border-style.scss +0 -25
  163. data/app/assets/stylesheets/addons/_border-width.scss +0 -25
  164. data/app/assets/stylesheets/addons/_buttons.scss +0 -64
  165. data/app/assets/stylesheets/addons/_font-stacks.scss +0 -31
  166. data/app/assets/stylesheets/addons/_hide-text.scss +0 -27
  167. data/app/assets/stylesheets/addons/_margin.scss +0 -26
  168. data/app/assets/stylesheets/addons/_padding.scss +0 -26
  169. data/app/assets/stylesheets/addons/_position.scss +0 -48
  170. data/app/assets/stylesheets/addons/_prefixer.scss +0 -66
  171. data/app/assets/stylesheets/addons/_retina-image.scss +0 -25
  172. data/app/assets/stylesheets/addons/_size.scss +0 -51
  173. data/app/assets/stylesheets/addons/_text-inputs.scss +0 -113
  174. data/app/assets/stylesheets/addons/_triangle.scss +0 -63
  175. data/app/assets/stylesheets/addons/_word-wrap.scss +0 -29
  176. data/app/assets/stylesheets/css3/_animation.scss +0 -43
  177. data/app/assets/stylesheets/css3/_appearance.scss +0 -3
  178. data/app/assets/stylesheets/css3/_backface-visibility.scss +0 -3
  179. data/app/assets/stylesheets/css3/_background-image.scss +0 -42
  180. data/app/assets/stylesheets/css3/_background.scss +0 -55
  181. data/app/assets/stylesheets/css3/_border-image.scss +0 -59
  182. data/app/assets/stylesheets/css3/_calc.scss +0 -4
  183. data/app/assets/stylesheets/css3/_columns.scss +0 -47
  184. data/app/assets/stylesheets/css3/_filter.scss +0 -4
  185. data/app/assets/stylesheets/css3/_flex-box.scss +0 -287
  186. data/app/assets/stylesheets/css3/_font-face.scss +0 -24
  187. data/app/assets/stylesheets/css3/_font-feature-settings.scss +0 -4
  188. data/app/assets/stylesheets/css3/_hidpi-media-query.scss +0 -10
  189. data/app/assets/stylesheets/css3/_hyphens.scss +0 -4
  190. data/app/assets/stylesheets/css3/_image-rendering.scss +0 -14
  191. data/app/assets/stylesheets/css3/_keyframes.scss +0 -36
  192. data/app/assets/stylesheets/css3/_linear-gradient.scss +0 -38
  193. data/app/assets/stylesheets/css3/_perspective.scss +0 -8
  194. data/app/assets/stylesheets/css3/_placeholder.scss +0 -8
  195. data/app/assets/stylesheets/css3/_radial-gradient.scss +0 -39
  196. data/app/assets/stylesheets/css3/_selection.scss +0 -42
  197. data/app/assets/stylesheets/css3/_text-decoration.scss +0 -19
  198. data/app/assets/stylesheets/css3/_transform.scss +0 -15
  199. data/app/assets/stylesheets/css3/_transition.scss +0 -71
  200. data/app/assets/stylesheets/css3/_user-select.scss +0 -3
  201. data/app/assets/stylesheets/functions/_assign-inputs.scss +0 -11
  202. data/app/assets/stylesheets/functions/_is-light.scss +0 -21
  203. data/app/assets/stylesheets/functions/_is-number.scss +0 -11
  204. data/app/assets/stylesheets/functions/_is-size.scss +0 -13
  205. data/app/assets/stylesheets/functions/_modular-scale.scss +0 -69
  206. data/app/assets/stylesheets/functions/_px-to-em.scss +0 -13
  207. data/app/assets/stylesheets/functions/_px-to-rem.scss +0 -15
  208. data/app/assets/stylesheets/functions/_shade.scss +0 -24
  209. data/app/assets/stylesheets/functions/_strip-units.scss +0 -17
  210. data/app/assets/stylesheets/functions/_tint.scss +0 -24
  211. data/app/assets/stylesheets/functions/_transition-property-name.scss +0 -22
  212. data/app/assets/stylesheets/helpers/_convert-units.scss +0 -21
  213. data/app/assets/stylesheets/helpers/_directional-values.scss +0 -96
  214. data/app/assets/stylesheets/helpers/_gradient-positions-parser.scss +0 -13
  215. data/app/assets/stylesheets/helpers/_linear-angle-parser.scss +0 -25
  216. data/app/assets/stylesheets/helpers/_linear-gradient-parser.scss +0 -41
  217. data/app/assets/stylesheets/helpers/_linear-positions-parser.scss +0 -61
  218. data/app/assets/stylesheets/helpers/_linear-side-corner-parser.scss +0 -31
  219. data/app/assets/stylesheets/helpers/_radial-arg-parser.scss +0 -69
  220. data/app/assets/stylesheets/helpers/_radial-gradient-parser.scss +0 -50
  221. data/app/assets/stylesheets/helpers/_radial-positions-parser.scss +0 -18
  222. data/app/assets/stylesheets/helpers/_render-gradients.scss +0 -26
  223. data/app/assets/stylesheets/helpers/_shape-size-stripper.scss +0 -10
  224. data/app/assets/stylesheets/helpers/_str-to-num.scss +0 -50
  225. data/app/assets/stylesheets/settings/_asset-pipeline.scss +0 -7
  226. data/app/assets/stylesheets/settings/_prefixer.scss +0 -9
  227. data/app/assets/stylesheets/settings/_px-to-em.scss +0 -1
  228. data/lib/bourbon/engine.rb +0 -5
  229. data/lib/tasks/install.rake +0 -20
  230. data/sache.json +0 -5
  231. data/spec/bourbon/addons/font_stacks_spec.rb +0 -25
  232. data/spec/bourbon/addons/retina_image_spec.rb +0 -57
  233. data/spec/bourbon/addons/triangle_spec.rb +0 -32
  234. data/spec/bourbon/addons/word_wrap_spec.rb +0 -29
  235. data/spec/bourbon/css3/font_face_spec.rb +0 -45
  236. data/spec/bourbon/css3/hidpi_media_query_spec.rb +0 -23
  237. data/spec/bourbon/functions/is_light_spec.rb +0 -37
  238. data/spec/bourbon/functions/px_to_em_spec.rb +0 -31
  239. data/spec/bourbon/functions/px_to_rem_spec.rb +0 -25
  240. data/spec/bourbon/helpers/convert_units_spec.rb +0 -31
  241. data/spec/bourbon/helpers/directional_values_spec.rb +0 -39
  242. data/spec/bourbon/helpers/str_to_num_spec.rb +0 -25
  243. data/spec/fixtures/addons/font-stacks.scss +0 -21
  244. data/spec/fixtures/addons/retina-image.scss +0 -21
  245. data/spec/fixtures/addons/triangle.scss +0 -9
  246. data/spec/fixtures/addons/word-wrap.scss +0 -9
  247. data/spec/fixtures/css3/font-face.scss +0 -6
  248. data/spec/fixtures/css3/hidpi-media-query.scss +0 -13
  249. data/spec/fixtures/functions/assign-inputs.scss +0 -19
  250. data/spec/fixtures/functions/is-light.scss +0 -29
  251. data/spec/fixtures/functions/px-to-em.scss +0 -17
  252. data/spec/fixtures/functions/px-to-rem.scss +0 -15
  253. data/spec/fixtures/functions/strip-units.scss +0 -17
  254. data/spec/fixtures/functions/unpack.scss +0 -17
  255. data/spec/fixtures/helpers/convert-units.scss +0 -17
  256. data/spec/fixtures/helpers/directional-values.scss +0 -29
  257. data/spec/fixtures/helpers/font-source-declaration.scss +0 -10
  258. data/spec/fixtures/helpers/str-to-num.scss +0 -13
  259. data/spec/support/matchers/be_contained_in.rb +0 -10
@@ -1,71 +0,0 @@
1
- // Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.
2
- // Example: @include transition (all 2s ease-in-out);
3
- // @include transition (opacity 1s ease-in 2s, width 2s ease-out);
4
- // @include transition-property (transform, opacity);
5
-
6
- @mixin transition($properties...) {
7
- // Fix for vendor-prefix transform property
8
- $needs-prefixes: false;
9
- $webkit: ();
10
- $moz: ();
11
- $spec: ();
12
-
13
- // Create lists for vendor-prefixed transform
14
- @each $list in $properties {
15
- @if nth($list, 1) == "transform" {
16
- $needs-prefixes: true;
17
- $list1: -webkit-transform;
18
- $list2: -moz-transform;
19
- $list3: ();
20
-
21
- @each $var in $list {
22
- $list3: join($list3, $var);
23
-
24
- @if $var != "transform" {
25
- $list1: join($list1, $var);
26
- $list2: join($list2, $var);
27
- }
28
- }
29
-
30
- $webkit: append($webkit, $list1);
31
- $moz: append($moz, $list2);
32
- $spec: append($spec, $list3);
33
- } @else {
34
- $webkit: append($webkit, $list, comma);
35
- $moz: append($moz, $list, comma);
36
- $spec: append($spec, $list, comma);
37
- }
38
- }
39
-
40
- @if $needs-prefixes {
41
- -webkit-transition: $webkit;
42
- -moz-transition: $moz;
43
- transition: $spec;
44
- } @else {
45
- @if length($properties) >= 1 {
46
- @include prefixer(transition, $properties, webkit moz spec);
47
- } @else {
48
- $properties: all 0.15s ease-out 0s;
49
- @include prefixer(transition, $properties, webkit moz spec);
50
- }
51
- }
52
- }
53
-
54
- @mixin transition-property($properties...) {
55
- -webkit-transition-property: transition-property-names($properties, "webkit");
56
- -moz-transition-property: transition-property-names($properties, "moz");
57
- transition-property: transition-property-names($properties, false);
58
- }
59
-
60
- @mixin transition-duration($times...) {
61
- @include prefixer(transition-duration, $times, webkit moz spec);
62
- }
63
-
64
- @mixin transition-timing-function($motions...) {
65
- // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
66
- @include prefixer(transition-timing-function, $motions, webkit moz spec);
67
- }
68
-
69
- @mixin transition-delay($times...) {
70
- @include prefixer(transition-delay, $times, webkit moz spec);
71
- }
@@ -1,3 +0,0 @@
1
- @mixin user-select($value: none) {
2
- @include prefixer(user-select, $value, webkit moz ms spec);
3
- }
@@ -1,11 +0,0 @@
1
- @function assign-inputs($inputs, $pseudo: null) {
2
- $list: ();
3
-
4
- @each $input in $inputs {
5
- $input: unquote($input);
6
- $input: if($pseudo, $input + ":" + $pseudo, $input);
7
- $list: append($list, $input, comma);
8
- }
9
-
10
- @return $list;
11
- }
@@ -1,21 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Programatically determines whether a color is light or dark.
4
- ///
5
- /// @link http://robots.thoughtbot.com/closer-look-color-lightness
6
- ///
7
- /// @param {Color (Hex)} $color
8
- ///
9
- /// @example scss - Usage
10
- /// is-light($color)
11
- ///
12
- /// @return {Bool}
13
-
14
- @function is-light($hex-color) {
15
- $-local-red: red(rgba($hex-color, 1));
16
- $-local-green: green(rgba($hex-color, 1));
17
- $-local-blue: blue(rgba($hex-color, 1));
18
- $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255;
19
-
20
- @return $-local-lightness > 0.6;
21
- }
@@ -1,11 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Checks for a valid number.
4
- ///
5
- /// @param {Number} $value
6
- ///
7
- /// @require {function} contains
8
-
9
- @function is-number($value) {
10
- @return contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value);
11
- }
@@ -1,13 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Checks for a valid CSS size.
4
- ///
5
- /// @param {String} $value
6
- ///
7
- /// @require {function} contains
8
- /// @require {function} is-length
9
-
10
- @function is-size($value) {
11
- @return is-length($value)
12
- or contains("fill" "fit-content" "min-content" "max-content", $value);
13
- }
@@ -1,69 +0,0 @@
1
- // Scaling Variables
2
- $golden: 1.618;
3
- $minor-second: 1.067;
4
- $major-second: 1.125;
5
- $minor-third: 1.2;
6
- $major-third: 1.25;
7
- $perfect-fourth: 1.333;
8
- $augmented-fourth: 1.414;
9
- $perfect-fifth: 1.5;
10
- $minor-sixth: 1.6;
11
- $major-sixth: 1.667;
12
- $minor-seventh: 1.778;
13
- $major-seventh: 1.875;
14
- $octave: 2;
15
- $major-tenth: 2.5;
16
- $major-eleventh: 2.667;
17
- $major-twelfth: 3;
18
- $double-octave: 4;
19
-
20
- $modular-scale-ratio: $perfect-fourth !default;
21
- $modular-scale-base: em($em-base) !default;
22
-
23
- @function modular-scale($increment, $value: $modular-scale-base, $ratio: $modular-scale-ratio) {
24
- $v1: nth($value, 1);
25
- $v2: nth($value, length($value));
26
- $value: $v1;
27
-
28
- // scale $v2 to just above $v1
29
- @while $v2 > $v1 {
30
- $v2: ($v2 / $ratio); // will be off-by-1
31
- }
32
- @while $v2 < $v1 {
33
- $v2: ($v2 * $ratio); // will fix off-by-1
34
- }
35
-
36
- // check AFTER scaling $v2 to prevent double-counting corner-case
37
- $double-stranded: $v2 > $v1;
38
-
39
- @if $increment > 0 {
40
- @for $i from 1 through $increment {
41
- @if $double-stranded and ($v1 * $ratio) > $v2 {
42
- $value: $v2;
43
- $v2: ($v2 * $ratio);
44
- } @else {
45
- $v1: ($v1 * $ratio);
46
- $value: $v1;
47
- }
48
- }
49
- }
50
-
51
- @if $increment < 0 {
52
- // adjust $v2 to just below $v1
53
- @if $double-stranded {
54
- $v2: ($v2 / $ratio);
55
- }
56
-
57
- @for $i from $increment through -1 {
58
- @if $double-stranded and ($v1 / $ratio) < $v2 {
59
- $value: $v2;
60
- $v2: ($v2 / $ratio);
61
- } @else {
62
- $v1: ($v1 / $ratio);
63
- $value: $v1;
64
- }
65
- }
66
- }
67
-
68
- @return $value;
69
- }
@@ -1,13 +0,0 @@
1
- // Convert pixels to ems
2
- // eg. for a relational value of 12px write em(12) when the parent is 16px
3
- // if the parent is another value say 24px write em(12, 24)
4
-
5
- @function em($pxval, $base: $em-base) {
6
- @if not unitless($pxval) {
7
- $pxval: strip-units($pxval);
8
- }
9
- @if not unitless($base) {
10
- $base: strip-units($base);
11
- }
12
- @return ($pxval / $base) * 1em;
13
- }
@@ -1,15 +0,0 @@
1
- // Convert pixels to rems
2
- // eg. for a relational value of 12px write rem(12)
3
- // Assumes $em-base is the font-size of <html>
4
-
5
- @function rem($pxval) {
6
- @if not unitless($pxval) {
7
- $pxval: strip-units($pxval);
8
- }
9
-
10
- $base: $em-base;
11
- @if not unitless($base) {
12
- $base: strip-units($base);
13
- }
14
- @return ($pxval / $base) * 1rem;
15
- }
@@ -1,24 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Mixes a color with black.
4
- ///
5
- /// @param {Color} $color
6
- ///
7
- /// @param {Number (Percentage)} $percent
8
- /// The amount of black to be mixed in.
9
- ///
10
- /// @example scss - Usage
11
- /// .element {
12
- /// background-color: shade(#ffbb52, 60%);
13
- /// }
14
- ///
15
- /// @example css - CSS Output
16
- /// .element {
17
- /// background-color: #664a20;
18
- /// }
19
- ///
20
- /// @return {Color}
21
-
22
- @function shade($color, $percent) {
23
- @return mix(#000, $color, $percent);
24
- }
@@ -1,17 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Strips the unit from a number.
4
- ///
5
- /// @param {Number (With Unit)} $value
6
- ///
7
- /// @example scss - Usage
8
- /// $dimension: strip-units(10em);
9
- ///
10
- /// @example css - CSS Output
11
- /// $dimension: 10;
12
- ///
13
- /// @return {Number (Unitless)}
14
-
15
- @function strip-units($value) {
16
- @return ($value / ($value * 0 + 1));
17
- }
@@ -1,24 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Mixes a color with white.
4
- ///
5
- /// @param {Color} $color
6
- ///
7
- /// @param {Number (Percentage)} $percent
8
- /// The amount of white to be mixed in.
9
- ///
10
- /// @example scss - Usage
11
- /// .element {
12
- /// background-color: tint(#6ecaa6, 40%);
13
- /// }
14
- ///
15
- /// @example css - CSS Output
16
- /// .element {
17
- /// background-color: #a8dfc9;
18
- /// }
19
- ///
20
- /// @return {Color}
21
-
22
- @function tint($color, $percent) {
23
- @return mix(#fff, $color, $percent);
24
- }
@@ -1,22 +0,0 @@
1
- // Return vendor-prefixed property names if appropriate
2
- // Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background
3
- //************************************************************************//
4
- @function transition-property-names($props, $vendor: false) {
5
- $new-props: ();
6
-
7
- @each $prop in $props {
8
- $new-props: append($new-props, transition-property-name($prop, $vendor), comma);
9
- }
10
-
11
- @return $new-props;
12
- }
13
-
14
- @function transition-property-name($prop, $vendor: false) {
15
- // put other properties that need to be prefixed here aswell
16
- @if $vendor and $prop == transform {
17
- @return unquote('-'+$vendor+'-'+$prop);
18
- }
19
- @else {
20
- @return $prop;
21
- }
22
- }
@@ -1,21 +0,0 @@
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
- }
@@ -1,96 +0,0 @@
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
- }
@@ -1,13 +0,0 @@
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
- }
@@ -1,25 +0,0 @@
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
- }
@@ -1,41 +0,0 @@
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
- }
@@ -1,61 +0,0 @@
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
- }
@@ -1,31 +0,0 @@
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
- }