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.
- checksums.yaml +5 -5
- data/.circleci/config.yml +42 -0
- data/.github/ISSUE_TEMPLATE.md +22 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +10 -0
- data/.gitignore +1 -1
- data/.hound.yml +4 -1
- data/.npmignore +7 -4
- data/.stylelintrc.json +3 -0
- data/CHANGELOG.md +450 -0
- data/CODE_OF_CONDUCT.md +6 -0
- data/CONTRIBUTING.md +81 -28
- data/Gemfile +1 -1
- data/LICENSE.md +1 -1
- data/README.md +153 -86
- data/RELEASING.md +32 -0
- data/Rakefile +0 -2
- data/bin/bourbon +1 -2
- data/bourbon.gemspec +31 -24
- data/core/_bourbon.scss +54 -0
- data/core/bourbon/helpers/_buttons-list.scss +14 -0
- data/core/bourbon/helpers/_scales.scss +27 -0
- data/core/bourbon/helpers/_text-inputs-list.scss +26 -0
- data/core/bourbon/library/_border-color.scss +26 -0
- data/core/bourbon/library/_border-radius.scss +85 -0
- data/core/bourbon/library/_border-style.scss +25 -0
- data/core/bourbon/library/_border-width.scss +25 -0
- data/core/bourbon/library/_buttons.scss +84 -0
- data/{app/assets/stylesheets/addons → core/bourbon/library}/_clearfix.scss +5 -5
- data/core/bourbon/library/_contrast-switch.scss +81 -0
- data/{app/assets/stylesheets/addons → core/bourbon/library}/_ellipsis.scss +12 -6
- data/core/bourbon/library/_font-face.scss +65 -0
- data/core/bourbon/library/_font-stacks.scss +248 -0
- data/core/bourbon/library/_hide-text.scss +24 -0
- data/core/bourbon/library/_hide-visually.scss +70 -0
- data/core/bourbon/library/_margin.scss +37 -0
- data/core/bourbon/library/_modular-scale.scss +120 -0
- data/core/bourbon/library/_overflow-wrap.scss +25 -0
- data/core/bourbon/library/_padding.scss +36 -0
- data/core/bourbon/library/_position.scss +62 -0
- data/core/bourbon/library/_prefixer.scss +37 -0
- data/core/bourbon/library/_shade.scss +32 -0
- data/core/bourbon/library/_size.scss +50 -0
- data/core/bourbon/library/_strip-unit.scss +17 -0
- data/core/bourbon/library/_text-inputs.scss +163 -0
- data/core/bourbon/library/_timing-functions.scss +36 -0
- data/core/bourbon/library/_tint.scss +32 -0
- data/core/bourbon/library/_triangle.scss +82 -0
- data/core/bourbon/library/_value-prefixer.scss +37 -0
- data/core/bourbon/settings/_settings.scss +75 -0
- data/core/bourbon/utilities/_assign-inputs.scss +28 -0
- data/core/bourbon/utilities/_compact-shorthand.scss +42 -0
- data/core/bourbon/utilities/_contrast-ratio.scss +31 -0
- data/core/bourbon/utilities/_directional-property.scss +68 -0
- data/core/bourbon/utilities/_fetch-bourbon-setting.scss +16 -0
- data/core/bourbon/utilities/_font-source-declaration.scss +52 -0
- data/core/bourbon/utilities/_gamma.scss +24 -0
- data/core/bourbon/utilities/_lightness.scss +24 -0
- data/{app/assets/stylesheets/functions/_unpack.scss → core/bourbon/utilities/_unpack-shorthand.scss} +8 -6
- data/{app/assets/stylesheets/functions → core/bourbon/validators}/_contains-falsy.scss +6 -6
- data/{app/assets/stylesheets/functions → core/bourbon/validators}/_contains.scss +8 -8
- data/core/bourbon/validators/_is-color.scss +13 -0
- data/core/bourbon/validators/_is-length.scss +20 -0
- data/core/bourbon/validators/_is-number.scss +15 -0
- data/core/bourbon/validators/_is-size.scss +18 -0
- data/eyeglass-exports.js +7 -0
- data/features/install.feature +0 -1
- data/features/step_definitions/bourbon_steps.rb +13 -5
- data/features/update.feature +0 -1
- data/features/version.feature +0 -2
- data/index.js +2 -2
- data/lib/bourbon/generator.rb +11 -10
- data/lib/bourbon/version.rb +1 -1
- data/lib/bourbon.rb +7 -18
- data/package-lock.json +6636 -0
- data/package.json +26 -13
- data/spec/bourbon/{addons → library}/border_color_spec.rb +8 -8
- data/spec/bourbon/{addons → library}/border_radius_spec.rb +1 -1
- data/spec/bourbon/{addons → library}/border_style_spec.rb +1 -1
- data/spec/bourbon/{addons → library}/border_width_spec.rb +1 -1
- data/spec/bourbon/{addons → library}/buttons_spec.rb +4 -4
- data/spec/bourbon/{addons → library}/clearfix_spec.rb +3 -3
- data/spec/bourbon/library/contrast_switch_spec.rb +23 -0
- data/spec/bourbon/{addons → library}/ellipsis_spec.rb +1 -1
- data/spec/bourbon/library/font_face_spec_1.rb +16 -0
- data/spec/bourbon/library/font_face_spec_2.rb +20 -0
- data/spec/bourbon/library/font_face_spec_3.rb +16 -0
- data/spec/bourbon/library/font_stacks_spec.rb +42 -0
- data/spec/bourbon/{addons → library}/hide_text_spec.rb +1 -1
- data/spec/bourbon/library/hide_visually_spec.rb +37 -0
- data/spec/bourbon/{addons → library}/margin_spec.rb +1 -1
- data/spec/bourbon/{functions → library}/modular_scale_spec.rb +6 -6
- data/spec/bourbon/library/overflow_wrap_spec.rb +27 -0
- data/spec/bourbon/{addons → library}/padding_spec.rb +1 -1
- data/spec/bourbon/{addons → library}/position_spec.rb +1 -1
- data/spec/bourbon/library/prefixer_spec.rb +34 -0
- data/spec/bourbon/{functions → library}/shade_spec.rb +1 -1
- data/spec/bourbon/{addons → library}/size_spec.rb +1 -1
- data/spec/bourbon/{functions/strip_units_spec.rb → library/strip_unit_spec.rb} +2 -2
- data/spec/bourbon/{addons → library}/text_inputs_spec.rb +25 -15
- data/spec/bourbon/{functions → library}/tint_spec.rb +1 -1
- data/spec/bourbon/library/triangle_spec.rb +31 -0
- data/spec/bourbon/{functions → utilities}/assign_inputs_spec.rb +8 -8
- data/spec/bourbon/utilities/compact_shorthand_spec.rb +30 -0
- data/spec/bourbon/utilities/contrast_ratio_spec.rb +23 -0
- data/spec/bourbon/utilities/directional_property_spec.rb +28 -0
- data/spec/bourbon/utilities/fetch_bourbon_setting_spec.rb +31 -0
- data/spec/bourbon/utilities/font_source_declaration_spec.rb +23 -0
- data/spec/bourbon/utilities/gamma_spec.rb +23 -0
- data/spec/bourbon/utilities/lightness_spec.rb +31 -0
- data/spec/bourbon/{functions → utilities}/unpack_spec.rb +1 -1
- data/spec/bourbon/{functions → validators}/contains_spec.rb +1 -1
- data/spec/bourbon/{functions → validators}/is_length_spec.rb +13 -1
- data/spec/bourbon/{functions → validators}/is_number_spec.rb +1 -1
- data/spec/bourbon/{functions → validators}/is_size_spec.rb +1 -1
- data/spec/fixtures/_setup.scss +1 -1
- data/spec/fixtures/{addons → library}/border-color.scss +4 -4
- data/spec/fixtures/library/contrast-switch.scss +9 -0
- data/spec/fixtures/library/font-face-1.scss +6 -0
- data/spec/fixtures/library/font-face-2.scss +10 -0
- data/spec/fixtures/library/font-face-3.scss +8 -0
- data/spec/fixtures/library/font-stacks.scss +41 -0
- data/spec/fixtures/library/hide-visually.scss +9 -0
- data/spec/fixtures/library/overflow-wrap.scss +9 -0
- data/spec/fixtures/{addons → library}/position.scss +0 -4
- data/spec/fixtures/library/prefixer.scss +13 -0
- data/spec/fixtures/{functions → library}/shade.scss +1 -1
- data/spec/fixtures/{addons → library}/size.scss +2 -2
- data/spec/fixtures/library/strip-unit.scss +17 -0
- data/spec/fixtures/{addons → library}/text-inputs.scss +4 -0
- data/spec/fixtures/{functions → library}/tint.scss +1 -1
- data/spec/fixtures/library/triangle.scss +9 -0
- data/spec/fixtures/utilities/assign-inputs.scss +19 -0
- data/spec/fixtures/utilities/compact-shorthand.scss +21 -0
- data/spec/fixtures/utilities/contrast-ratio.scss +9 -0
- data/spec/fixtures/utilities/directional-property.scss +17 -0
- data/spec/fixtures/utilities/fetch-bourbon-setting.scss +16 -0
- data/spec/fixtures/utilities/font-source-declaration.scss +11 -0
- data/spec/fixtures/utilities/gamma.scss +9 -0
- data/spec/fixtures/utilities/lightness.scss +13 -0
- data/spec/fixtures/utilities/unpack.scss +17 -0
- data/spec/fixtures/{functions → validators}/contains.scss +1 -1
- data/spec/fixtures/{functions → validators}/is-length.scss +9 -1
- data/spec/fixtures/{functions → validators}/is-number.scss +1 -1
- data/spec/fixtures/{functions → validators}/is-size.scss +1 -1
- data/spec/support/matchers/have_value.rb +1 -1
- data/spec/support/sass_support.rb +2 -2
- metadata +254 -281
- data/.scss-lint.yml +0 -14
- data/.travis.yml +0 -8
- data/app/assets/stylesheets/_bourbon-deprecated-upcoming.scss +0 -411
- data/app/assets/stylesheets/_bourbon.scss +0 -87
- data/app/assets/stylesheets/addons/_border-color.scss +0 -26
- data/app/assets/stylesheets/addons/_border-radius.scss +0 -48
- data/app/assets/stylesheets/addons/_border-style.scss +0 -25
- data/app/assets/stylesheets/addons/_border-width.scss +0 -25
- data/app/assets/stylesheets/addons/_buttons.scss +0 -64
- data/app/assets/stylesheets/addons/_font-stacks.scss +0 -31
- data/app/assets/stylesheets/addons/_hide-text.scss +0 -27
- data/app/assets/stylesheets/addons/_margin.scss +0 -26
- data/app/assets/stylesheets/addons/_padding.scss +0 -26
- data/app/assets/stylesheets/addons/_position.scss +0 -48
- data/app/assets/stylesheets/addons/_prefixer.scss +0 -66
- data/app/assets/stylesheets/addons/_retina-image.scss +0 -25
- data/app/assets/stylesheets/addons/_size.scss +0 -51
- data/app/assets/stylesheets/addons/_text-inputs.scss +0 -113
- data/app/assets/stylesheets/addons/_timing-functions.scss +0 -34
- data/app/assets/stylesheets/addons/_triangle.scss +0 -63
- data/app/assets/stylesheets/addons/_word-wrap.scss +0 -29
- data/app/assets/stylesheets/css3/_animation.scss +0 -43
- data/app/assets/stylesheets/css3/_appearance.scss +0 -3
- data/app/assets/stylesheets/css3/_backface-visibility.scss +0 -3
- data/app/assets/stylesheets/css3/_background-image.scss +0 -42
- data/app/assets/stylesheets/css3/_background.scss +0 -55
- data/app/assets/stylesheets/css3/_border-image.scss +0 -59
- data/app/assets/stylesheets/css3/_calc.scss +0 -4
- data/app/assets/stylesheets/css3/_columns.scss +0 -47
- data/app/assets/stylesheets/css3/_filter.scss +0 -4
- data/app/assets/stylesheets/css3/_flex-box.scss +0 -287
- data/app/assets/stylesheets/css3/_font-face.scss +0 -24
- data/app/assets/stylesheets/css3/_font-feature-settings.scss +0 -4
- data/app/assets/stylesheets/css3/_hidpi-media-query.scss +0 -10
- data/app/assets/stylesheets/css3/_hyphens.scss +0 -4
- data/app/assets/stylesheets/css3/_image-rendering.scss +0 -14
- data/app/assets/stylesheets/css3/_keyframes.scss +0 -36
- data/app/assets/stylesheets/css3/_linear-gradient.scss +0 -38
- data/app/assets/stylesheets/css3/_perspective.scss +0 -8
- data/app/assets/stylesheets/css3/_placeholder.scss +0 -8
- data/app/assets/stylesheets/css3/_radial-gradient.scss +0 -39
- data/app/assets/stylesheets/css3/_selection.scss +0 -42
- data/app/assets/stylesheets/css3/_text-decoration.scss +0 -19
- data/app/assets/stylesheets/css3/_transform.scss +0 -15
- data/app/assets/stylesheets/css3/_transition.scss +0 -71
- data/app/assets/stylesheets/css3/_user-select.scss +0 -3
- data/app/assets/stylesheets/functions/_assign-inputs.scss +0 -11
- data/app/assets/stylesheets/functions/_is-length.scss +0 -11
- data/app/assets/stylesheets/functions/_is-light.scss +0 -21
- data/app/assets/stylesheets/functions/_is-number.scss +0 -11
- data/app/assets/stylesheets/functions/_is-size.scss +0 -13
- data/app/assets/stylesheets/functions/_modular-scale.scss +0 -69
- data/app/assets/stylesheets/functions/_px-to-em.scss +0 -13
- data/app/assets/stylesheets/functions/_px-to-rem.scss +0 -15
- data/app/assets/stylesheets/functions/_shade.scss +0 -24
- data/app/assets/stylesheets/functions/_strip-units.scss +0 -17
- data/app/assets/stylesheets/functions/_tint.scss +0 -24
- data/app/assets/stylesheets/functions/_transition-property-name.scss +0 -22
- data/app/assets/stylesheets/helpers/_convert-units.scss +0 -21
- data/app/assets/stylesheets/helpers/_directional-values.scss +0 -96
- data/app/assets/stylesheets/helpers/_font-source-declaration.scss +0 -43
- data/app/assets/stylesheets/helpers/_gradient-positions-parser.scss +0 -13
- data/app/assets/stylesheets/helpers/_linear-angle-parser.scss +0 -25
- data/app/assets/stylesheets/helpers/_linear-gradient-parser.scss +0 -41
- data/app/assets/stylesheets/helpers/_linear-positions-parser.scss +0 -61
- data/app/assets/stylesheets/helpers/_linear-side-corner-parser.scss +0 -31
- data/app/assets/stylesheets/helpers/_radial-arg-parser.scss +0 -69
- data/app/assets/stylesheets/helpers/_radial-gradient-parser.scss +0 -50
- data/app/assets/stylesheets/helpers/_radial-positions-parser.scss +0 -18
- data/app/assets/stylesheets/helpers/_render-gradients.scss +0 -26
- data/app/assets/stylesheets/helpers/_shape-size-stripper.scss +0 -10
- data/app/assets/stylesheets/helpers/_str-to-num.scss +0 -50
- data/app/assets/stylesheets/settings/_asset-pipeline.scss +0 -7
- data/app/assets/stylesheets/settings/_prefixer.scss +0 -9
- data/app/assets/stylesheets/settings/_px-to-em.scss +0 -1
- data/bower.json +0 -36
- data/lib/bourbon/engine.rb +0 -5
- data/lib/tasks/install.rake +0 -20
- data/sache.json +0 -5
- data/spec/bourbon/addons/font_stacks_spec.rb +0 -25
- data/spec/bourbon/addons/retina_image_spec.rb +0 -57
- data/spec/bourbon/addons/triangle_spec.rb +0 -32
- data/spec/bourbon/addons/word_wrap_spec.rb +0 -29
- data/spec/bourbon/css3/font_face_spec.rb +0 -45
- data/spec/bourbon/css3/hidpi_media_query_spec.rb +0 -23
- data/spec/bourbon/functions/is_light_spec.rb +0 -37
- data/spec/bourbon/functions/px_to_em_spec.rb +0 -31
- data/spec/bourbon/functions/px_to_rem_spec.rb +0 -25
- data/spec/bourbon/helpers/convert_units_spec.rb +0 -31
- data/spec/bourbon/helpers/directional_values_spec.rb +0 -39
- data/spec/bourbon/helpers/font_source_declaration_spec.rb +0 -29
- data/spec/bourbon/helpers/str_to_num_spec.rb +0 -25
- data/spec/fixtures/addons/font-stacks.scss +0 -21
- data/spec/fixtures/addons/retina-image.scss +0 -21
- data/spec/fixtures/addons/triangle.scss +0 -9
- data/spec/fixtures/addons/word-wrap.scss +0 -9
- data/spec/fixtures/css3/font-face.scss +0 -6
- data/spec/fixtures/css3/hidpi-media-query.scss +0 -13
- data/spec/fixtures/functions/assign-inputs.scss +0 -19
- data/spec/fixtures/functions/is-light.scss +0 -29
- data/spec/fixtures/functions/px-to-em.scss +0 -17
- data/spec/fixtures/functions/px-to-rem.scss +0 -15
- data/spec/fixtures/functions/strip-units.scss +0 -17
- data/spec/fixtures/functions/unpack.scss +0 -17
- data/spec/fixtures/helpers/convert-units.scss +0 -17
- data/spec/fixtures/helpers/directional-values.scss +0 -29
- data/spec/fixtures/helpers/font-source-declaration.scss +0 -10
- data/spec/fixtures/helpers/str-to-num.scss +0 -13
- data/spec/support/matchers/be_contained_in.rb +0 -10
- /data/spec/fixtures/{addons → library}/border-radius.scss +0 -0
- /data/spec/fixtures/{addons → library}/border-style.scss +0 -0
- /data/spec/fixtures/{addons → library}/border-width.scss +0 -0
- /data/spec/fixtures/{addons → library}/buttons.scss +0 -0
- /data/spec/fixtures/{addons → library}/clearfix.scss +0 -0
- /data/spec/fixtures/{addons → library}/ellipsis.scss +0 -0
- /data/spec/fixtures/{addons → library}/hide-text.scss +0 -0
- /data/spec/fixtures/{addons → library}/margin.scss +0 -0
- /data/spec/fixtures/{functions → library}/modular-scale.scss +0 -0
- /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
|
+
}
|
data/{app/assets/stylesheets/functions/_unpack.scss → core/bourbon/utilities/_unpack-shorthand.scss}
RENAMED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
@charset "UTF-8";
|
|
2
2
|
|
|
3
|
-
///
|
|
3
|
+
/// Transforms shorthand that can range from 1-to-4 values to be 4 values.
|
|
4
4
|
///
|
|
5
|
-
/// @
|
|
5
|
+
/// @argument {list} $shorthand
|
|
6
6
|
///
|
|
7
|
-
/// @example scss
|
|
7
|
+
/// @example scss
|
|
8
8
|
/// .element {
|
|
9
|
-
/// margin:
|
|
9
|
+
/// margin: _unpack-shorthand(1em 2em);
|
|
10
10
|
/// }
|
|
11
11
|
///
|
|
12
|
-
///
|
|
12
|
+
/// // CSS Output
|
|
13
13
|
/// .element {
|
|
14
14
|
/// margin: 1em 2em 1em 2em;
|
|
15
15
|
/// }
|
|
16
|
+
///
|
|
17
|
+
/// @access private
|
|
16
18
|
|
|
17
|
-
@function
|
|
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
|
|
3
|
+
/// Checks if a list does not contain any values.
|
|
4
4
|
///
|
|
5
|
-
/// @
|
|
6
|
-
///
|
|
7
|
-
/// @param {List} $list
|
|
5
|
+
/// @argument {list} $list
|
|
8
6
|
/// The list to check against.
|
|
9
7
|
///
|
|
10
|
-
/// @return {
|
|
8
|
+
/// @return {boolean}
|
|
9
|
+
///
|
|
10
|
+
/// @access private
|
|
11
11
|
|
|
12
|
-
@function
|
|
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
|
-
/// @
|
|
6
|
-
///
|
|
7
|
-
/// @param {List} $list
|
|
5
|
+
/// @argument {list} $list
|
|
8
6
|
/// The list to check against.
|
|
9
7
|
///
|
|
10
|
-
/// @
|
|
8
|
+
/// @argument {list} $values
|
|
11
9
|
/// A single value or list of values to check for.
|
|
12
10
|
///
|
|
13
|
-
/// @
|
|
14
|
-
/// contains($list, $value)
|
|
11
|
+
/// @return {boolean}
|
|
15
12
|
///
|
|
16
|
-
/// @
|
|
13
|
+
/// @access private
|
|
17
14
|
|
|
18
|
-
@function
|
|
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
|
+
}
|
data/eyeglass-exports.js
ADDED
data/features/install.feature
CHANGED
|
@@ -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 = [
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
31
|
+
expect(last_command_started).to have_output "Bourbon #{Bourbon::VERSION}"
|
|
24
32
|
end
|
data/features/update.feature
CHANGED
data/features/version.feature
CHANGED
data/index.js
CHANGED
data/lib/bourbon/generator.rb
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "bourbon/version"
|
|
2
2
|
require "fileutils"
|
|
3
|
-
require
|
|
3
|
+
require "thor"
|
|
4
|
+
require "pathname"
|
|
4
5
|
|
|
5
6
|
module Bourbon
|
|
6
7
|
class Generator < Thor
|
|
7
|
-
map [
|
|
8
|
+
map ["-v", "--version"] => :version
|
|
8
9
|
|
|
9
|
-
desc
|
|
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
|
|
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
|
|
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],
|
|
46
|
+
Pathname.new(File.join(options[:path], "bourbon"))
|
|
46
47
|
else
|
|
47
|
-
Pathname.new(
|
|
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(
|
|
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, "
|
|
74
|
+
File.join(top_level_directory, "core")
|
|
74
75
|
end
|
|
75
76
|
|
|
76
77
|
def top_level_directory
|
data/lib/bourbon/version.rb
CHANGED
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
|
-
|
|
15
|
-
|
|
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
|
-
|
|
26
|
-
|
|
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
|