bourbon 4.2.4 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.circleci/config.yml +34 -0
- data/.github/ISSUE_TEMPLATE.md +22 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +10 -0
- data/.gitignore +1 -1
- data/.hound.yml +3 -1
- data/.npmignore +7 -4
- data/.stylelintrc.json +3 -0
- data/.tool-versions +2 -0
- data/CHANGELOG.md +415 -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 +164 -86
- data/RELEASING.md +33 -0
- data/Rakefile +0 -2
- data/bin/bourbon +1 -2
- data/bourbon.gemspec +30 -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 +28 -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/{app/assets/stylesheets/helpers → core/bourbon/utilities}/_font-source-declaration.scss +23 -15
- 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/{app/assets/stylesheets/functions → core/bourbon/validators}/_is-length.scss +6 -2
- 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 +6 -19
- data/package-lock.json +3449 -0
- data/package.json +24 -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 +21 -0
- data/spec/bourbon/library/font_face_spec_3.rb +16 -0
- data/spec/bourbon/library/font_face_spec_4.rb +17 -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/{helpers → utilities}/font_source_declaration_spec.rb +1 -1
- 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 +1 -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/{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/library/contrast-switch.scss +9 -0
- data/spec/fixtures/{addons → library}/ellipsis.scss +0 -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-face-4.scss +7 -0
- data/spec/fixtures/library/font-stacks.scss +41 -0
- data/spec/fixtures/{addons → library}/hide-text.scss +0 -0
- data/spec/fixtures/library/hide-visually.scss +9 -0
- data/spec/fixtures/{addons → library}/margin.scss +0 -0
- data/spec/fixtures/{functions → library}/modular-scale.scss +0 -0
- data/spec/fixtures/library/overflow-wrap.scss +9 -0
- data/spec/fixtures/{addons → library}/padding.scss +0 -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 +1 -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
- metadata +246 -282
- 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-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/_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/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/package.json
CHANGED
@@ -1,28 +1,39 @@
|
|
1
1
|
{
|
2
|
-
"
|
3
|
-
|
4
|
-
|
2
|
+
"author": {
|
3
|
+
"name": "thoughtbot",
|
4
|
+
"url": "http://thoughtbot.com"
|
5
|
+
},
|
6
|
+
"bugs": {
|
7
|
+
"url": "https://github.com/thoughtbot/bourbon/issues"
|
8
|
+
},
|
9
|
+
"description": "A lightweight Sass tool set.",
|
10
|
+
"devDependencies": {
|
11
|
+
"@thoughtbot/stylelint-config": "^1.0.0",
|
12
|
+
"stylelint": "^10.0.1"
|
13
|
+
},
|
14
|
+
"eyeglass": {
|
15
|
+
"needs": "*",
|
16
|
+
"exports": "eyeglass-exports.js"
|
17
|
+
},
|
18
|
+
"homepage": "https://www.bourbon.io/",
|
5
19
|
"keywords": [
|
6
20
|
"css",
|
21
|
+
"eyeglass-module",
|
7
22
|
"mixins",
|
8
23
|
"sass",
|
9
24
|
"scss"
|
10
25
|
],
|
11
|
-
"homepage": "http://bourbon.io",
|
12
|
-
"bugs": {
|
13
|
-
"url": "https://github.com/thoughtbot/bourbon/issues"
|
14
|
-
},
|
15
26
|
"license": "MIT",
|
16
|
-
"author": {
|
17
|
-
"name": "thoughtbot",
|
18
|
-
"url": "http://thoughtbot.com"
|
19
|
-
},
|
20
27
|
"main": "index.js",
|
28
|
+
"style": "core/_bourbon.scss",
|
29
|
+
"name": "bourbon",
|
21
30
|
"repository": {
|
22
31
|
"type": "git",
|
23
32
|
"url": "https://github.com/thoughtbot/bourbon.git"
|
24
33
|
},
|
25
34
|
"scripts": {
|
26
|
-
"
|
27
|
-
|
35
|
+
"stylelint": "npx stylelint 'core/**/*.scss'",
|
36
|
+
"test": "bundle exec rake"
|
37
|
+
},
|
38
|
+
"version": "6.0.0"
|
28
39
|
}
|
@@ -2,12 +2,12 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe "border-color" do
|
4
4
|
before(:all) do
|
5
|
-
ParserSupport.parse_file("
|
5
|
+
ParserSupport.parse_file("library/border-color")
|
6
6
|
end
|
7
7
|
|
8
8
|
context "called with one color" do
|
9
9
|
it "applies same color to all sides" do
|
10
|
-
rule = "border-color: #
|
10
|
+
rule = "border-color: #f00"
|
11
11
|
|
12
12
|
expect(".border-color-all").to have_rule(rule)
|
13
13
|
end
|
@@ -15,7 +15,7 @@ describe "border-color" do
|
|
15
15
|
|
16
16
|
context "called with two colors" do
|
17
17
|
it "applies to alternating sides" do
|
18
|
-
rule = "border-color: #
|
18
|
+
rule = "border-color: #0f0 #00f"
|
19
19
|
|
20
20
|
expect(".border-color-alternate").to have_rule(rule)
|
21
21
|
end
|
@@ -23,7 +23,7 @@ describe "border-color" do
|
|
23
23
|
|
24
24
|
context "called with three colors" do
|
25
25
|
it "applies second color to left and right" do
|
26
|
-
rule = "border-color: #
|
26
|
+
rule = "border-color: #f00 #0f0 #00f"
|
27
27
|
|
28
28
|
expect(".border-color-implied-left").to have_rule(rule)
|
29
29
|
end
|
@@ -31,7 +31,7 @@ describe "border-color" do
|
|
31
31
|
|
32
32
|
context "called with four colors" do
|
33
33
|
it "applies different colors to all sides" do
|
34
|
-
rule = "border-color: #
|
34
|
+
rule = "border-color: #00f #0f0 #f00 #ff0"
|
35
35
|
|
36
36
|
expect(".border-color-explicit").to have_rule(rule)
|
37
37
|
end
|
@@ -39,9 +39,9 @@ describe "border-color" do
|
|
39
39
|
|
40
40
|
context "called with null values" do
|
41
41
|
it "writes rules for other three" do
|
42
|
-
ruleset = "border-top-color: #
|
43
|
-
"border-right-color: #
|
44
|
-
"border-left-color: #
|
42
|
+
ruleset = "border-top-color: #0f0; " +
|
43
|
+
"border-right-color: #ff0; " +
|
44
|
+
"border-left-color: #00f;"
|
45
45
|
bad_rule = "border-bottom-color: null;"
|
46
46
|
|
47
47
|
expect(".border-color-false-third").to have_ruleset(ruleset)
|
@@ -2,13 +2,13 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe "buttons" do
|
4
4
|
before(:all) do
|
5
|
-
ParserSupport.parse_file("
|
5
|
+
ParserSupport.parse_file("library/buttons")
|
6
6
|
|
7
7
|
@buttons_list = %w(
|
8
8
|
button
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
[type='button']
|
10
|
+
[type='reset']
|
11
|
+
[type='submit']
|
12
12
|
)
|
13
13
|
end
|
14
14
|
|
@@ -2,15 +2,15 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe "clearfix" do
|
4
4
|
before(:all) do
|
5
|
-
ParserSupport.parse_file("
|
5
|
+
ParserSupport.parse_file("library/clearfix")
|
6
6
|
end
|
7
7
|
|
8
8
|
context "called on element" do
|
9
9
|
it "adds clearfix" do
|
10
10
|
input = ".clearfix::after"
|
11
11
|
ruleset = "clear: both; " +
|
12
|
-
|
13
|
-
"display:
|
12
|
+
'content: ""; ' +
|
13
|
+
"display: block;"
|
14
14
|
|
15
15
|
expect(input).to have_ruleset(ruleset)
|
16
16
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "contrast-switch" do
|
4
|
+
before(:all) do
|
5
|
+
ParserSupport.parse_file("library/contrast-switch")
|
6
|
+
end
|
7
|
+
|
8
|
+
context "called with a light base color" do
|
9
|
+
it "outputs the dark color" do
|
10
|
+
rule = "color: #000;"
|
11
|
+
|
12
|
+
expect(".contrast-switch-light-base").to have_ruleset(rule)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "called with a dark base color" do
|
17
|
+
it "outputs the light color" do
|
18
|
+
rule = "color: #eee;"
|
19
|
+
|
20
|
+
expect(".contrast-switch-dark-base").to have_ruleset(rule)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "font-face" do
|
4
|
+
before(:all) do
|
5
|
+
ParserSupport.parse_file("css3/font-face-1")
|
6
|
+
end
|
7
|
+
|
8
|
+
context "called with defaults" do
|
9
|
+
it "outputs defaults" do
|
10
|
+
ruleset = 'font-family: "source-sans-pro"; ' +
|
11
|
+
'src: url("/fonts/source-sans-pro/source-sans-pro-regular.woff2") format("woff2"), url("/fonts/source-sans-pro/source-sans-pro-regular.woff") format("woff"), url("/fonts/source-sans-pro/source-sans-pro-regular.ttf") format("truetype");'
|
12
|
+
|
13
|
+
expect("@font-face").to have_ruleset(ruleset)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "font-face" do
|
4
|
+
before(:all) do
|
5
|
+
ParserSupport.parse_file("css3/font-face-5")
|
6
|
+
end
|
7
|
+
|
8
|
+
context "called with additional CSS rules" do
|
9
|
+
it "outputs defaults with additional content" do
|
10
|
+
ruleset = 'font-family: "calibre"; ' +
|
11
|
+
'src: url("fonts/calibre.woff2") format("woff2"), ' +
|
12
|
+
'url("fonts/calibre.woff") format("woff"), ' +
|
13
|
+
'url("fonts/calibre.ttf") format("truetype"); ' +
|
14
|
+
"font-style: normal;" +
|
15
|
+
"font-weight: 600;" +
|
16
|
+
"unicode-range: U+26;"
|
17
|
+
|
18
|
+
expect("@font-face").to have_ruleset(ruleset)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "font-face" do
|
4
|
+
before(:all) do
|
5
|
+
ParserSupport.parse_file("css3/font-face-3")
|
6
|
+
end
|
7
|
+
|
8
|
+
context "called with defaults" do
|
9
|
+
it "outputs defaults" do
|
10
|
+
ruleset = 'font-family: "pitch";' +
|
11
|
+
'src: font-url("/fonts/pitch.woff2") format("woff2");'
|
12
|
+
|
13
|
+
expect("@font-face").to have_ruleset(ruleset)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "font-face" do
|
4
|
+
before(:all) do
|
5
|
+
ParserSupport.parse_file("css3/font-face-4")
|
6
|
+
end
|
7
|
+
|
8
|
+
context "called with defaults" do
|
9
|
+
it "outputs defaults" do
|
10
|
+
ruleset = 'font-family: "circular"; ' +
|
11
|
+
'src: url("/circular.woff2") format("woff2"), ' +
|
12
|
+
'url("/circular.svg#circular") format("svg");'
|
13
|
+
|
14
|
+
expect("@font-face").to have_ruleset(ruleset)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "font-stacks" do
|
4
|
+
before(:all) do
|
5
|
+
ParserSupport.parse_file("library/font-stacks")
|
6
|
+
end
|
7
|
+
|
8
|
+
context "stacks used in variable" do
|
9
|
+
it "output stacks" do
|
10
|
+
helvetica = '"Helvetica Neue", "Helvetica", "Arial", sans-serif'
|
11
|
+
lucida_grande = '"Lucida Grande", "Lucida Sans Unicode", ' +
|
12
|
+
'"Geneva", "Verdana", sans-serif'
|
13
|
+
verdana = '"Verdana", "Geneva", sans-serif'
|
14
|
+
garamond = '"Garamond", "Baskerville", "Baskerville Old Face", ' +
|
15
|
+
'"Hoefler Text", "Times New Roman", serif'
|
16
|
+
georgia = '"Georgia", "Times", "Times New Roman", serif'
|
17
|
+
hoefler_text = '"Hoefler Text", "Baskerville Old Face", ' +
|
18
|
+
'"Garamond", "Times New Roman", serif'
|
19
|
+
consolas = '"Consolas", "monaco", monospace'
|
20
|
+
courier_new = '"Courier New", "Courier", "Lucida Sans Typewriter", ' +
|
21
|
+
'"Lucida Typewriter", monospace'
|
22
|
+
monaco = '"Monaco", "Consolas", "Lucida Console", monospace'
|
23
|
+
|
24
|
+
system = 'system-ui, -apple-system, BlinkMacSystemFont, "Avenir Next", ' +
|
25
|
+
'"Avenir", "Segoe UI", "Lucida Grande", "Helvetica Neue", ' +
|
26
|
+
'"Helvetica", "Fira Sans", "Roboto", "Noto", "Droid Sans", ' +
|
27
|
+
'"Cantarell", "Oxygen", "Ubuntu", "Franklin Gothic Medium", ' +
|
28
|
+
'"Century Gothic", "Liberation Sans", sans-serif'
|
29
|
+
|
30
|
+
expect(".helvetica").to have_value(helvetica)
|
31
|
+
expect(".lucida-grande").to have_value(lucida_grande)
|
32
|
+
expect(".verdana").to have_value(verdana)
|
33
|
+
expect(".garamond").to have_value(garamond)
|
34
|
+
expect(".georgia").to have_value(georgia)
|
35
|
+
expect(".hoefler-text").to have_value(hoefler_text)
|
36
|
+
expect(".consolas").to have_value(consolas)
|
37
|
+
expect(".courier-new").to have_value(courier_new)
|
38
|
+
expect(".monaco").to have_value(monaco)
|
39
|
+
expect(".system").to have_value(system)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "hide-visually" do
|
4
|
+
before(:all) do
|
5
|
+
ParserSupport.parse_file("library/hide-visually")
|
6
|
+
end
|
7
|
+
|
8
|
+
context "called on element" do
|
9
|
+
it "adds properties to hide the element" do
|
10
|
+
ruleset = "border: 0; " +
|
11
|
+
"clip: rect(1px, 1px, 1px, 1px); " +
|
12
|
+
"clip-path: inset(100%); " +
|
13
|
+
"height: 1px; " +
|
14
|
+
"overflow: hidden; " +
|
15
|
+
"padding: 0; " +
|
16
|
+
"position: absolute; " +
|
17
|
+
"white-space: nowrap; " +
|
18
|
+
"width: 1px;"
|
19
|
+
|
20
|
+
expect(".hide-visually").to have_ruleset(ruleset)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context "called with unhide argument" do
|
25
|
+
it "adds properties to reverse the hiding of the element" do
|
26
|
+
ruleset = "clip: auto; " +
|
27
|
+
"clip-path: none; " +
|
28
|
+
"height: auto; " +
|
29
|
+
"overflow: visible; " +
|
30
|
+
"position: static; " +
|
31
|
+
"white-space: inherit; " +
|
32
|
+
"width: auto;"
|
33
|
+
|
34
|
+
expect(".hide-visually--unhide").to have_ruleset(ruleset)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -2,24 +2,24 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe "modular-scale" do
|
4
4
|
before(:all) do
|
5
|
-
ParserSupport.parse_file("
|
5
|
+
ParserSupport.parse_file("library/modular-scale")
|
6
6
|
end
|
7
7
|
|
8
8
|
context "called with arguments (1, $value: 2em)" do
|
9
9
|
it "outputs double the first value from the default scale" do
|
10
|
-
expect(".one-base-two").to have_rule("font-size: 2.
|
10
|
+
expect(".one-base-two").to have_rule("font-size: 2.5em")
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
context "called with arguments (1, $value: 3em)" do
|
15
15
|
it "outputs triple the first value from the default scale" do
|
16
|
-
expect(".one-base-three").to have_rule("font-size: 3.
|
16
|
+
expect(".one-base-three").to have_rule("font-size: 3.75em")
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
context "called with arguments (1, $value: 4em 6em)" do
|
21
21
|
it "outputs quadruple the first value from the default scale" do
|
22
|
-
expect(".one-double-value").to have_rule("font-size: 1.
|
22
|
+
expect(".one-double-value").to have_rule("font-size: 1.024em")
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -31,13 +31,13 @@ describe "modular-scale" do
|
|
31
31
|
|
32
32
|
context "called with argument (2)" do
|
33
33
|
it "outputs the second value from the default scale" do
|
34
|
-
expect(".two-base-one").to have_rule("font-size: 1.
|
34
|
+
expect(".two-base-one").to have_rule("font-size: 1.5625em")
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
context "called with arguments (2, $value: 4em 6em)" do
|
39
39
|
it "outputs sextuple the second value from the default scale" do
|
40
|
-
expect(".two-double-value").to have_rule("font-size: 3.
|
40
|
+
expect(".two-double-value").to have_rule("font-size: 3.125em")
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "overflow-wrap" do
|
4
|
+
before(:all) do
|
5
|
+
ParserSupport.parse_file("library/overflow-wrap")
|
6
|
+
end
|
7
|
+
|
8
|
+
context "called on element" do
|
9
|
+
it "adds overflow-wrap and word-wrap" do
|
10
|
+
input = ".overflow-wrap"
|
11
|
+
ruleset = "word-wrap: break-word; " +
|
12
|
+
"overflow-wrap: break-word;"
|
13
|
+
|
14
|
+
expect(input).to have_ruleset(ruleset)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context "called on element with normal" do
|
19
|
+
it "sets values as normal" do
|
20
|
+
input = ".overflow-wrap-normal"
|
21
|
+
ruleset = "word-wrap: normal; " +
|
22
|
+
"overflow-wrap: normal;"
|
23
|
+
|
24
|
+
expect(input).to have_ruleset(ruleset)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "prefixer" do
|
4
|
+
before(:all) do
|
5
|
+
ParserSupport.parse_file("library/prefixer")
|
6
|
+
end
|
7
|
+
|
8
|
+
context "called with no prefixes" do
|
9
|
+
it "outputs the spec" do
|
10
|
+
rule = "appearance: none;"
|
11
|
+
|
12
|
+
expect(".prefix").to have_ruleset(rule)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "called with one prefix" do
|
17
|
+
it "applies the prefix to the property" do
|
18
|
+
rule = "-webkit-appearance: none; " +
|
19
|
+
"appearance: none;"
|
20
|
+
|
21
|
+
expect(".prefix--webkit").to have_ruleset(rule)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "called with multiple prefixes" do
|
26
|
+
it "applies the prefixes to the property" do
|
27
|
+
rule = "-moz-appearance: none; " +
|
28
|
+
"-ms-appearance: none; " +
|
29
|
+
"appearance: none;"
|
30
|
+
|
31
|
+
expect(".prefix--moz-ms").to have_ruleset(rule)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -2,23 +2,23 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe "text-inputs" do
|
4
4
|
before(:all) do
|
5
|
-
ParserSupport.parse_file("
|
5
|
+
ParserSupport.parse_file("library/text-inputs")
|
6
6
|
|
7
7
|
@inputs_list = %w(
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
8
|
+
[type='color']
|
9
|
+
[type='date']
|
10
|
+
[type='datetime']
|
11
|
+
[type='datetime-local']
|
12
|
+
[type='email']
|
13
|
+
[type='month']
|
14
|
+
[type='number']
|
15
|
+
[type='password']
|
16
|
+
[type='search']
|
17
|
+
[type='tel']
|
18
|
+
[type='text']
|
19
|
+
[type='time']
|
20
|
+
[type='url']
|
21
|
+
[type='week']
|
22
22
|
input:not([type])
|
23
23
|
textarea
|
24
24
|
)
|
@@ -62,4 +62,14 @@ describe "text-inputs" do
|
|
62
62
|
expect(".all-text-inputs-hover").to have_ruleset(ruleset)
|
63
63
|
end
|
64
64
|
end
|
65
|
+
|
66
|
+
context "expands invalid text inputs" do
|
67
|
+
it "finds selectors" do
|
68
|
+
list = @inputs_list.map { |input| "#{input}:invalid" }
|
69
|
+
list = list.join(", ")
|
70
|
+
ruleset = "content: #{list};"
|
71
|
+
|
72
|
+
expect(".all-text-inputs-invalid").to have_ruleset(ruleset)
|
73
|
+
end
|
74
|
+
end
|
65
75
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "triangle" do
|
4
|
+
before(:all) do
|
5
|
+
ParserSupport.parse_file("library/triangle")
|
6
|
+
end
|
7
|
+
|
8
|
+
context "called with defaults" do
|
9
|
+
it "outputs the properties" do
|
10
|
+
ruleset = "border-style: solid; " +
|
11
|
+
"height: 0; " +
|
12
|
+
"width: 0; " +
|
13
|
+
"border-color: transparent transparent #b25c9c; " +
|
14
|
+
"border-width: 0 1rem 1rem;"
|
15
|
+
|
16
|
+
expect(".triangle--up").to have_ruleset(ruleset)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "called with arguments" do
|
21
|
+
it "outputs the properties" do
|
22
|
+
ruleset = "border-style: solid; " +
|
23
|
+
"height: 0; " +
|
24
|
+
"width: 0; " +
|
25
|
+
"border-color: transparent transparent transparent #aaa; " +
|
26
|
+
"border-width: 6px 0 6px 5px;"
|
27
|
+
|
28
|
+
expect(".triangle--right").to have_ruleset(ruleset)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|