bourbon 4.2.4 → 7.3.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 (266) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +42 -0
  3. data/.github/ISSUE_TEMPLATE.md +22 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  5. data/.gitignore +1 -1
  6. data/.hound.yml +4 -1
  7. data/.npmignore +7 -4
  8. data/.stylelintrc.json +3 -0
  9. data/CHANGELOG.md +450 -0
  10. data/CODE_OF_CONDUCT.md +6 -0
  11. data/CONTRIBUTING.md +81 -28
  12. data/Gemfile +1 -1
  13. data/LICENSE.md +1 -1
  14. data/README.md +153 -86
  15. data/RELEASING.md +32 -0
  16. data/Rakefile +0 -2
  17. data/bin/bourbon +1 -2
  18. data/bourbon.gemspec +31 -24
  19. data/core/_bourbon.scss +54 -0
  20. data/core/bourbon/helpers/_buttons-list.scss +14 -0
  21. data/core/bourbon/helpers/_scales.scss +27 -0
  22. data/core/bourbon/helpers/_text-inputs-list.scss +26 -0
  23. data/core/bourbon/library/_border-color.scss +26 -0
  24. data/core/bourbon/library/_border-radius.scss +85 -0
  25. data/core/bourbon/library/_border-style.scss +25 -0
  26. data/core/bourbon/library/_border-width.scss +25 -0
  27. data/core/bourbon/library/_buttons.scss +84 -0
  28. data/{app/assets/stylesheets/addons → core/bourbon/library}/_clearfix.scss +5 -5
  29. data/core/bourbon/library/_contrast-switch.scss +81 -0
  30. data/{app/assets/stylesheets/addons → core/bourbon/library}/_ellipsis.scss +12 -6
  31. data/core/bourbon/library/_font-face.scss +65 -0
  32. data/core/bourbon/library/_font-stacks.scss +248 -0
  33. data/core/bourbon/library/_hide-text.scss +24 -0
  34. data/core/bourbon/library/_hide-visually.scss +70 -0
  35. data/core/bourbon/library/_margin.scss +37 -0
  36. data/core/bourbon/library/_modular-scale.scss +120 -0
  37. data/core/bourbon/library/_overflow-wrap.scss +25 -0
  38. data/core/bourbon/library/_padding.scss +36 -0
  39. data/core/bourbon/library/_position.scss +62 -0
  40. data/core/bourbon/library/_prefixer.scss +37 -0
  41. data/core/bourbon/library/_shade.scss +32 -0
  42. data/core/bourbon/library/_size.scss +50 -0
  43. data/core/bourbon/library/_strip-unit.scss +17 -0
  44. data/core/bourbon/library/_text-inputs.scss +163 -0
  45. data/core/bourbon/library/_timing-functions.scss +36 -0
  46. data/core/bourbon/library/_tint.scss +32 -0
  47. data/core/bourbon/library/_triangle.scss +82 -0
  48. data/core/bourbon/library/_value-prefixer.scss +37 -0
  49. data/core/bourbon/settings/_settings.scss +75 -0
  50. data/core/bourbon/utilities/_assign-inputs.scss +28 -0
  51. data/core/bourbon/utilities/_compact-shorthand.scss +42 -0
  52. data/core/bourbon/utilities/_contrast-ratio.scss +31 -0
  53. data/core/bourbon/utilities/_directional-property.scss +68 -0
  54. data/core/bourbon/utilities/_fetch-bourbon-setting.scss +16 -0
  55. data/core/bourbon/utilities/_font-source-declaration.scss +52 -0
  56. data/core/bourbon/utilities/_gamma.scss +24 -0
  57. data/core/bourbon/utilities/_lightness.scss +24 -0
  58. data/{app/assets/stylesheets/functions/_unpack.scss → core/bourbon/utilities/_unpack-shorthand.scss} +8 -6
  59. data/{app/assets/stylesheets/functions → core/bourbon/validators}/_contains-falsy.scss +6 -6
  60. data/{app/assets/stylesheets/functions → core/bourbon/validators}/_contains.scss +8 -8
  61. data/core/bourbon/validators/_is-color.scss +13 -0
  62. data/core/bourbon/validators/_is-length.scss +20 -0
  63. data/core/bourbon/validators/_is-number.scss +15 -0
  64. data/core/bourbon/validators/_is-size.scss +18 -0
  65. data/eyeglass-exports.js +7 -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 +7 -18
  74. data/package-lock.json +6636 -0
  75. data/package.json +26 -13
  76. data/spec/bourbon/{addons → library}/border_color_spec.rb +8 -8
  77. data/spec/bourbon/{addons → library}/border_radius_spec.rb +1 -1
  78. data/spec/bourbon/{addons → library}/border_style_spec.rb +1 -1
  79. data/spec/bourbon/{addons → library}/border_width_spec.rb +1 -1
  80. data/spec/bourbon/{addons → library}/buttons_spec.rb +4 -4
  81. data/spec/bourbon/{addons → library}/clearfix_spec.rb +3 -3
  82. data/spec/bourbon/library/contrast_switch_spec.rb +23 -0
  83. data/spec/bourbon/{addons → library}/ellipsis_spec.rb +1 -1
  84. data/spec/bourbon/library/font_face_spec_1.rb +16 -0
  85. data/spec/bourbon/library/font_face_spec_2.rb +20 -0
  86. data/spec/bourbon/library/font_face_spec_3.rb +16 -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/utilities/font_source_declaration_spec.rb +23 -0
  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 +13 -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/library/contrast-switch.scss +9 -0
  118. data/spec/fixtures/library/font-face-1.scss +6 -0
  119. data/spec/fixtures/library/font-face-2.scss +10 -0
  120. data/spec/fixtures/library/font-face-3.scss +8 -0
  121. data/spec/fixtures/library/font-stacks.scss +41 -0
  122. data/spec/fixtures/library/hide-visually.scss +9 -0
  123. data/spec/fixtures/library/overflow-wrap.scss +9 -0
  124. data/spec/fixtures/{addons → library}/position.scss +0 -4
  125. data/spec/fixtures/library/prefixer.scss +13 -0
  126. data/spec/fixtures/{functions → library}/shade.scss +1 -1
  127. data/spec/fixtures/{addons → library}/size.scss +2 -2
  128. data/spec/fixtures/library/strip-unit.scss +17 -0
  129. data/spec/fixtures/{addons → library}/text-inputs.scss +4 -0
  130. data/spec/fixtures/{functions → library}/tint.scss +1 -1
  131. data/spec/fixtures/library/triangle.scss +9 -0
  132. data/spec/fixtures/utilities/assign-inputs.scss +19 -0
  133. data/spec/fixtures/utilities/compact-shorthand.scss +21 -0
  134. data/spec/fixtures/utilities/contrast-ratio.scss +9 -0
  135. data/spec/fixtures/utilities/directional-property.scss +17 -0
  136. data/spec/fixtures/utilities/fetch-bourbon-setting.scss +16 -0
  137. data/spec/fixtures/utilities/font-source-declaration.scss +11 -0
  138. data/spec/fixtures/utilities/gamma.scss +9 -0
  139. data/spec/fixtures/utilities/lightness.scss +13 -0
  140. data/spec/fixtures/utilities/unpack.scss +17 -0
  141. data/spec/fixtures/{functions → validators}/contains.scss +1 -1
  142. data/spec/fixtures/{functions → validators}/is-length.scss +9 -1
  143. data/spec/fixtures/{functions → validators}/is-number.scss +1 -1
  144. data/spec/fixtures/{functions → validators}/is-size.scss +1 -1
  145. data/spec/support/matchers/have_value.rb +1 -1
  146. data/spec/support/sass_support.rb +2 -2
  147. metadata +254 -281
  148. data/.scss-lint.yml +0 -14
  149. data/.travis.yml +0 -8
  150. data/app/assets/stylesheets/_bourbon-deprecated-upcoming.scss +0 -411
  151. data/app/assets/stylesheets/_bourbon.scss +0 -87
  152. data/app/assets/stylesheets/addons/_border-color.scss +0 -26
  153. data/app/assets/stylesheets/addons/_border-radius.scss +0 -48
  154. data/app/assets/stylesheets/addons/_border-style.scss +0 -25
  155. data/app/assets/stylesheets/addons/_border-width.scss +0 -25
  156. data/app/assets/stylesheets/addons/_buttons.scss +0 -64
  157. data/app/assets/stylesheets/addons/_font-stacks.scss +0 -31
  158. data/app/assets/stylesheets/addons/_hide-text.scss +0 -27
  159. data/app/assets/stylesheets/addons/_margin.scss +0 -26
  160. data/app/assets/stylesheets/addons/_padding.scss +0 -26
  161. data/app/assets/stylesheets/addons/_position.scss +0 -48
  162. data/app/assets/stylesheets/addons/_prefixer.scss +0 -66
  163. data/app/assets/stylesheets/addons/_retina-image.scss +0 -25
  164. data/app/assets/stylesheets/addons/_size.scss +0 -51
  165. data/app/assets/stylesheets/addons/_text-inputs.scss +0 -113
  166. data/app/assets/stylesheets/addons/_timing-functions.scss +0 -34
  167. data/app/assets/stylesheets/addons/_triangle.scss +0 -63
  168. data/app/assets/stylesheets/addons/_word-wrap.scss +0 -29
  169. data/app/assets/stylesheets/css3/_animation.scss +0 -43
  170. data/app/assets/stylesheets/css3/_appearance.scss +0 -3
  171. data/app/assets/stylesheets/css3/_backface-visibility.scss +0 -3
  172. data/app/assets/stylesheets/css3/_background-image.scss +0 -42
  173. data/app/assets/stylesheets/css3/_background.scss +0 -55
  174. data/app/assets/stylesheets/css3/_border-image.scss +0 -59
  175. data/app/assets/stylesheets/css3/_calc.scss +0 -4
  176. data/app/assets/stylesheets/css3/_columns.scss +0 -47
  177. data/app/assets/stylesheets/css3/_filter.scss +0 -4
  178. data/app/assets/stylesheets/css3/_flex-box.scss +0 -287
  179. data/app/assets/stylesheets/css3/_font-face.scss +0 -24
  180. data/app/assets/stylesheets/css3/_font-feature-settings.scss +0 -4
  181. data/app/assets/stylesheets/css3/_hidpi-media-query.scss +0 -10
  182. data/app/assets/stylesheets/css3/_hyphens.scss +0 -4
  183. data/app/assets/stylesheets/css3/_image-rendering.scss +0 -14
  184. data/app/assets/stylesheets/css3/_keyframes.scss +0 -36
  185. data/app/assets/stylesheets/css3/_linear-gradient.scss +0 -38
  186. data/app/assets/stylesheets/css3/_perspective.scss +0 -8
  187. data/app/assets/stylesheets/css3/_placeholder.scss +0 -8
  188. data/app/assets/stylesheets/css3/_radial-gradient.scss +0 -39
  189. data/app/assets/stylesheets/css3/_selection.scss +0 -42
  190. data/app/assets/stylesheets/css3/_text-decoration.scss +0 -19
  191. data/app/assets/stylesheets/css3/_transform.scss +0 -15
  192. data/app/assets/stylesheets/css3/_transition.scss +0 -71
  193. data/app/assets/stylesheets/css3/_user-select.scss +0 -3
  194. data/app/assets/stylesheets/functions/_assign-inputs.scss +0 -11
  195. data/app/assets/stylesheets/functions/_is-length.scss +0 -11
  196. data/app/assets/stylesheets/functions/_is-light.scss +0 -21
  197. data/app/assets/stylesheets/functions/_is-number.scss +0 -11
  198. data/app/assets/stylesheets/functions/_is-size.scss +0 -13
  199. data/app/assets/stylesheets/functions/_modular-scale.scss +0 -69
  200. data/app/assets/stylesheets/functions/_px-to-em.scss +0 -13
  201. data/app/assets/stylesheets/functions/_px-to-rem.scss +0 -15
  202. data/app/assets/stylesheets/functions/_shade.scss +0 -24
  203. data/app/assets/stylesheets/functions/_strip-units.scss +0 -17
  204. data/app/assets/stylesheets/functions/_tint.scss +0 -24
  205. data/app/assets/stylesheets/functions/_transition-property-name.scss +0 -22
  206. data/app/assets/stylesheets/helpers/_convert-units.scss +0 -21
  207. data/app/assets/stylesheets/helpers/_directional-values.scss +0 -96
  208. data/app/assets/stylesheets/helpers/_font-source-declaration.scss +0 -43
  209. data/app/assets/stylesheets/helpers/_gradient-positions-parser.scss +0 -13
  210. data/app/assets/stylesheets/helpers/_linear-angle-parser.scss +0 -25
  211. data/app/assets/stylesheets/helpers/_linear-gradient-parser.scss +0 -41
  212. data/app/assets/stylesheets/helpers/_linear-positions-parser.scss +0 -61
  213. data/app/assets/stylesheets/helpers/_linear-side-corner-parser.scss +0 -31
  214. data/app/assets/stylesheets/helpers/_radial-arg-parser.scss +0 -69
  215. data/app/assets/stylesheets/helpers/_radial-gradient-parser.scss +0 -50
  216. data/app/assets/stylesheets/helpers/_radial-positions-parser.scss +0 -18
  217. data/app/assets/stylesheets/helpers/_render-gradients.scss +0 -26
  218. data/app/assets/stylesheets/helpers/_shape-size-stripper.scss +0 -10
  219. data/app/assets/stylesheets/helpers/_str-to-num.scss +0 -50
  220. data/app/assets/stylesheets/settings/_asset-pipeline.scss +0 -7
  221. data/app/assets/stylesheets/settings/_prefixer.scss +0 -9
  222. data/app/assets/stylesheets/settings/_px-to-em.scss +0 -1
  223. data/bower.json +0 -36
  224. data/lib/bourbon/engine.rb +0 -5
  225. data/lib/tasks/install.rake +0 -20
  226. data/sache.json +0 -5
  227. data/spec/bourbon/addons/font_stacks_spec.rb +0 -25
  228. data/spec/bourbon/addons/retina_image_spec.rb +0 -57
  229. data/spec/bourbon/addons/triangle_spec.rb +0 -32
  230. data/spec/bourbon/addons/word_wrap_spec.rb +0 -29
  231. data/spec/bourbon/css3/font_face_spec.rb +0 -45
  232. data/spec/bourbon/css3/hidpi_media_query_spec.rb +0 -23
  233. data/spec/bourbon/functions/is_light_spec.rb +0 -37
  234. data/spec/bourbon/functions/px_to_em_spec.rb +0 -31
  235. data/spec/bourbon/functions/px_to_rem_spec.rb +0 -25
  236. data/spec/bourbon/helpers/convert_units_spec.rb +0 -31
  237. data/spec/bourbon/helpers/directional_values_spec.rb +0 -39
  238. data/spec/bourbon/helpers/font_source_declaration_spec.rb +0 -29
  239. data/spec/bourbon/helpers/str_to_num_spec.rb +0 -25
  240. data/spec/fixtures/addons/font-stacks.scss +0 -21
  241. data/spec/fixtures/addons/retina-image.scss +0 -21
  242. data/spec/fixtures/addons/triangle.scss +0 -9
  243. data/spec/fixtures/addons/word-wrap.scss +0 -9
  244. data/spec/fixtures/css3/font-face.scss +0 -6
  245. data/spec/fixtures/css3/hidpi-media-query.scss +0 -13
  246. data/spec/fixtures/functions/assign-inputs.scss +0 -19
  247. data/spec/fixtures/functions/is-light.scss +0 -29
  248. data/spec/fixtures/functions/px-to-em.scss +0 -17
  249. data/spec/fixtures/functions/px-to-rem.scss +0 -15
  250. data/spec/fixtures/functions/strip-units.scss +0 -17
  251. data/spec/fixtures/functions/unpack.scss +0 -17
  252. data/spec/fixtures/helpers/convert-units.scss +0 -17
  253. data/spec/fixtures/helpers/directional-values.scss +0 -29
  254. data/spec/fixtures/helpers/font-source-declaration.scss +0 -10
  255. data/spec/fixtures/helpers/str-to-num.scss +0 -13
  256. data/spec/support/matchers/be_contained_in.rb +0 -10
  257. /data/spec/fixtures/{addons → library}/border-radius.scss +0 -0
  258. /data/spec/fixtures/{addons → library}/border-style.scss +0 -0
  259. /data/spec/fixtures/{addons → library}/border-width.scss +0 -0
  260. /data/spec/fixtures/{addons → library}/buttons.scss +0 -0
  261. /data/spec/fixtures/{addons → library}/clearfix.scss +0 -0
  262. /data/spec/fixtures/{addons → library}/ellipsis.scss +0 -0
  263. /data/spec/fixtures/{addons → library}/hide-text.scss +0 -0
  264. /data/spec/fixtures/{addons → library}/margin.scss +0 -0
  265. /data/spec/fixtures/{functions → library}/modular-scale.scss +0 -0
  266. /data/spec/fixtures/{addons → library}/padding.scss +0 -0
@@ -0,0 +1,52 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Builds the `src` list for an `@font-face` declaration.
4
+ ///
5
+ /// @link https://goo.gl/Ru1bKP
6
+ ///
7
+ /// @argument {string} $font-family
8
+ ///
9
+ /// @argument {string} $file-path
10
+ ///
11
+ /// @argument {boolean} $asset-pipeline
12
+ ///
13
+ /// @argument {list} $file-formats
14
+ ///
15
+ /// @return {list}
16
+ ///
17
+ /// @require {function} _contains
18
+ ///
19
+ /// @access private
20
+
21
+ @function _font-source-declaration(
22
+ $font-family,
23
+ $file-path,
24
+ $asset-pipeline,
25
+ $file-formats
26
+ ) {
27
+ $src: ();
28
+
29
+ $formats-map: (
30
+ "woff2": "#{$file-path}.woff2" format("woff2"),
31
+ "woff": "#{$file-path}.woff" format("woff"),
32
+ );
33
+
34
+ @each $format in $file-formats {
35
+ @if _contains(map-keys($formats-map), $format) {
36
+ $value: map-get($formats-map, $format);
37
+ $file-path: nth($value, 1);
38
+ $font-format: nth($value, 2);
39
+
40
+ @if $asset-pipeline == true {
41
+ $src: append($src, font-url($file-path) $font-format, comma);
42
+ } @else {
43
+ $src: append($src, url($file-path) $font-format, comma);
44
+ }
45
+ } @else {
46
+ @error "`#{$file-formats}` contains an unsupported font file format. " +
47
+ "Must be `woff` and/or `woff2`.";
48
+ }
49
+ }
50
+
51
+ @return $src;
52
+ }
@@ -0,0 +1,24 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Performs gamma correction on a single color channel.
4
+ ///
5
+ /// Note that the calculation is approximate if a `pow()` is not available.
6
+ ///
7
+ /// @argument {number (0-1)} $channel
8
+ ///
9
+ /// @return {number (0-1)}
10
+ ///
11
+ /// @access private
12
+
13
+ @function _gamma($channel) {
14
+ @if $channel < 0.03928 {
15
+ @return $channel / 12.92;
16
+ } @else {
17
+ $c: ($channel + 0.055) / 1.055;
18
+ @if function-exists("pow") {
19
+ @return pow($c, 2.4);
20
+ } @else {
21
+ @return 0.56 * $c * $c * $c + 0.44 * $c * $c;
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,24 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Programatically determines the lightness of a color.
4
+ ///
5
+ /// @argument {color (hex)} $hex-color
6
+ ///
7
+ /// @return {number (0-1)}
8
+ ///
9
+ /// @example scss
10
+ /// _lightness($color)
11
+ ///
12
+ /// @access private
13
+
14
+ @function _lightness($hex-color) {
15
+ $-local-red-raw: red(rgba($hex-color, 1));
16
+ $-local-green-raw: green(rgba($hex-color, 1));
17
+ $-local-blue-raw: blue(rgba($hex-color, 1));
18
+
19
+ $-local-red: _gamma($-local-red-raw / 255);
20
+ $-local-green: _gamma($-local-green-raw / 255);
21
+ $-local-blue: _gamma($-local-blue-raw / 255);
22
+
23
+ @return $-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722;
24
+ }
@@ -1,20 +1,22 @@
1
1
  @charset "UTF-8";
2
2
 
3
- /// Converts shorthand to the 4-value syntax.
3
+ /// Transforms shorthand that can range from 1-to-4 values to be 4 values.
4
4
  ///
5
- /// @param {List} $shorthand
5
+ /// @argument {list} $shorthand
6
6
  ///
7
- /// @example scss - Usage
7
+ /// @example scss
8
8
  /// .element {
9
- /// margin: unpack(1em 2em);
9
+ /// margin: _unpack-shorthand(1em 2em);
10
10
  /// }
11
11
  ///
12
- /// @example css - CSS Output
12
+ /// // CSS Output
13
13
  /// .element {
14
14
  /// margin: 1em 2em 1em 2em;
15
15
  /// }
16
+ ///
17
+ /// @access private
16
18
 
17
- @function unpack($shorthand) {
19
+ @function _unpack-shorthand($shorthand) {
18
20
  @if length($shorthand) == 1 {
19
21
  @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1);
20
22
  } @else if length($shorthand) == 2 {
@@ -1,15 +1,15 @@
1
1
  @charset "UTF-8";
2
2
 
3
- /// Checks if a list does not contains a value.
3
+ /// Checks if a list does not contain any values.
4
4
  ///
5
- /// @access private
6
- ///
7
- /// @param {List} $list
5
+ /// @argument {list} $list
8
6
  /// The list to check against.
9
7
  ///
10
- /// @return {Bool}
8
+ /// @return {boolean}
9
+ ///
10
+ /// @access private
11
11
 
12
- @function contains-falsy($list) {
12
+ @function _contains-falsy($list) {
13
13
  @each $item in $list {
14
14
  @if not $item {
15
15
  @return true;
@@ -2,20 +2,20 @@
2
2
 
3
3
  /// Checks if a list contains a value(s).
4
4
  ///
5
- /// @access private
6
- ///
7
- /// @param {List} $list
5
+ /// @argument {list} $list
8
6
  /// The list to check against.
9
7
  ///
10
- /// @param {List} $values
8
+ /// @argument {list} $values
11
9
  /// A single value or list of values to check for.
12
10
  ///
13
- /// @example scss - Usage
14
- /// contains($list, $value)
11
+ /// @return {boolean}
15
12
  ///
16
- /// @return {Bool}
13
+ /// @access private
17
14
 
18
- @function contains($list, $values...) {
15
+ @function _contains(
16
+ $list,
17
+ $values...
18
+ ) {
19
19
  @each $value in $values {
20
20
  @if type-of(index($list, $value)) != "number" {
21
21
  @return false;
@@ -0,0 +1,13 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Checks for a valid CSS color.
4
+ ///
5
+ /// @argument {string} $color
6
+ ///
7
+ /// @return {boolean}
8
+ ///
9
+ /// @access private
10
+
11
+ @function _is-color($color) {
12
+ @return (type-of($color) == color) or ($color == "currentColor");
13
+ }
@@ -0,0 +1,20 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Checks for a valid CSS length.
4
+ ///
5
+ /// @argument {string} $value
6
+ ///
7
+ /// @return {boolean}
8
+ ///
9
+ /// @access private
10
+
11
+ @function _is-length($value) {
12
+ @return type-of($value) != "null"
13
+ and (
14
+ str-slice($value + "", 1, 4) == "calc"
15
+ or str-slice($value + "", 1, 3) == "var"
16
+ or str-slice($value + "", 1, 3) == "env"
17
+ or index(auto inherit initial 0, $value)
18
+ or (type-of($value) == "number" and not(unitless($value)))
19
+ );
20
+ }
@@ -0,0 +1,15 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Checks for a valid number.
4
+ ///
5
+ /// @argument {number} $value
6
+ ///
7
+ /// @require {function} _contains
8
+ ///
9
+ /// @return {boolean}
10
+ ///
11
+ /// @access private
12
+
13
+ @function _is-number($value) {
14
+ @return _contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value);
15
+ }
@@ -0,0 +1,18 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Checks for a valid CSS size.
4
+ ///
5
+ /// @argument {string} $value
6
+ ///
7
+ /// @return {boolean}
8
+ ///
9
+ /// @require {function} _contains
10
+ ///
11
+ /// @require {function} _is-length
12
+ ///
13
+ /// @access private
14
+
15
+ @function _is-size($value) {
16
+ @return _is-length($value)
17
+ or _contains("fill" "fit-content" "min-content" "max-content", $value);
18
+ }
@@ -0,0 +1,7 @@
1
+ var bourbon = require("./index");
2
+
3
+ module.exports = function(eyeglass, sass) {
4
+ return {
5
+ sassDir: bourbon.includePaths[0]
6
+ };
7
+ };
@@ -1,4 +1,3 @@
1
- @disable-bundler
2
1
  Feature: Install bourbon files
3
2
 
4
3
  Scenario: Bourbon generates a new bourbon installation
@@ -6,19 +6,27 @@ Given /^I install bourbon to "([^"]*)"$/ do |path|
6
6
  end
7
7
 
8
8
  Then /^the sass directories(?: with "([^"]+)" prefix)? should have been generated$/ do |prefix|
9
- sass_directories = ["addons", "css3", "functions"]
9
+ sass_directories = [
10
+ "bourbon/helpers",
11
+ "bourbon/library",
12
+ "bourbon/settings",
13
+ "bourbon/utilities",
14
+ "bourbon/validators",
15
+ ]
10
16
  sass_directories.map!{ |directory| bourbon_path(prefix, directory) }
11
- check_directory_presence(sass_directories, true)
17
+ sass_directories.each do |sass_directory|
18
+ expect(sass_directory).to be_an_existing_directory
19
+ end
12
20
  end
13
21
 
14
22
  Then /^the master bourbon partial should have been generated(?: within "([^"]+)" directory)?$/ do |prefix|
15
- check_file_presence([bourbon_path(prefix, '_bourbon.scss')], true)
23
+ expect(bourbon_path(prefix, "_bourbon.scss")).to be_an_existing_file
16
24
  end
17
25
 
18
26
  Then /^bourbon should not have been generated$/ do
19
- check_directory_presence(['bourbon'], false)
27
+ expect("bourbon").not_to be_an_existing_directory
20
28
  end
21
29
 
22
30
  Then /^the output should contain the current version of Bourbon$/ do
23
- assert_exact_output("Bourbon #{Bourbon::VERSION}\n", all_output)
31
+ expect(last_command_started).to have_output "Bourbon #{Bourbon::VERSION}"
24
32
  end
@@ -1,4 +1,3 @@
1
- @disable-bundler
2
1
  Feature: Update bourbon files
3
2
 
4
3
  Scenario: Updating updates an existing bourbon install
@@ -1,6 +1,4 @@
1
- @disable-bundler
2
1
  Feature: Show version
3
2
  Scenario: Viewing version
4
3
  When I successfully run `bundle exec bourbon --version`
5
4
  Then the output should contain the current version of Bourbon
6
-
data/index.js CHANGED
@@ -1,7 +1,7 @@
1
- var path = require('path');
1
+ var path = require("path");
2
2
 
3
3
  module.exports = {
4
4
  includePaths: [
5
- path.join(__dirname, 'app/assets/stylesheets')
5
+ path.join(__dirname, "core")
6
6
  ]
7
7
  };
@@ -1,12 +1,13 @@
1
- require 'bourbon/version'
1
+ require "bourbon/version"
2
2
  require "fileutils"
3
- require 'thor'
3
+ require "thor"
4
+ require "pathname"
4
5
 
5
6
  module Bourbon
6
7
  class Generator < Thor
7
- map ['-v', '--version'] => :version
8
+ map ["-v", "--version"] => :version
8
9
 
9
- desc 'install', 'Install Bourbon into your project'
10
+ desc "install", "Install Bourbon into your project"
10
11
  method_options :path => :string, :force => :boolean
11
12
  def install
12
13
  if bourbon_files_already_exist? && !options[:force]
@@ -17,7 +18,7 @@ module Bourbon
17
18
  end
18
19
  end
19
20
 
20
- desc 'update', 'Update Bourbon'
21
+ desc "update", "Update Bourbon"
21
22
  method_options :path => :string
22
23
  def update
23
24
  if bourbon_files_already_exist?
@@ -29,7 +30,7 @@ module Bourbon
29
30
  end
30
31
  end
31
32
 
32
- desc 'version', 'Show Bourbon version'
33
+ desc "version", "Show Bourbon version"
33
34
  def version
34
35
  say "Bourbon #{Bourbon::VERSION}"
35
36
  end
@@ -42,9 +43,9 @@ module Bourbon
42
43
 
43
44
  def install_path
44
45
  @install_path ||= if options[:path]
45
- Pathname.new(File.join(options[:path], 'bourbon'))
46
+ Pathname.new(File.join(options[:path], "bourbon"))
46
47
  else
47
- Pathname.new('bourbon')
48
+ Pathname.new("bourbon")
48
49
  end
49
50
  end
50
51
 
@@ -54,7 +55,7 @@ module Bourbon
54
55
  end
55
56
 
56
57
  def remove_bourbon_directory
57
- FileUtils.rm_rf("bourbon")
58
+ FileUtils.rm_rf(install_path)
58
59
  end
59
60
 
60
61
  def make_install_directory
@@ -70,7 +71,7 @@ module Bourbon
70
71
  end
71
72
 
72
73
  def stylesheets_directory
73
- File.join(top_level_directory, "app", "assets", "stylesheets")
74
+ File.join(top_level_directory, "core")
74
75
  end
75
76
 
76
77
  def top_level_directory
@@ -1,3 +1,3 @@
1
1
  module Bourbon
2
- VERSION = "4.2.4"
2
+ VERSION = "7.3.0".freeze
3
3
  end
data/lib/bourbon.rb CHANGED
@@ -1,28 +1,17 @@
1
- # CodeKit needs relative paths
2
- dir = File.dirname(__FILE__)
3
- $LOAD_PATH.unshift dir unless $LOAD_PATH.include?(dir)
4
-
5
1
  require "bourbon/generator"
6
2
 
7
- unless defined?(Sass)
8
- require 'sass'
9
- end
10
-
11
3
  module Bourbon
12
4
  if defined?(Rails) && defined?(Rails::Engine)
13
5
  class Engine < ::Rails::Engine
14
- require 'bourbon/engine'
15
- end
16
-
17
- module Rails
18
- class Railtie < ::Rails::Railtie
19
- rake_tasks do
20
- load "tasks/install.rake"
21
- end
6
+ initializer "bourbon.paths", group: :all do |app|
7
+ app.config.assets.paths << File.expand_path("../core", __dir__)
22
8
  end
23
9
  end
24
10
  else
25
- bourbon_path = File.expand_path("../../app/assets/stylesheets", __FILE__)
26
- ENV["SASS_PATH"] = [ENV["SASS_PATH"], bourbon_path].compact.join(File::PATH_SEPARATOR)
11
+ begin
12
+ require "sass"
13
+ Sass.load_paths << File.expand_path("../core", __dir__)
14
+ rescue LoadError
15
+ end
27
16
  end
28
17
  end