bourbon 5.0.0.alpha.0 → 5.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.npmignore +1 -1
  4. data/.scss-lint.yml +223 -2
  5. data/Gemfile +1 -1
  6. data/LICENSE.md +1 -1
  7. data/NEWS.md +71 -0
  8. data/README.md +43 -24
  9. data/RELEASING.md +27 -0
  10. data/Rakefile +0 -2
  11. data/bin/bourbon +1 -2
  12. data/bourbon.gemspec +33 -24
  13. data/bower.json +3 -2
  14. data/circle.yml +7 -0
  15. data/core/_bourbon.scss +10 -11
  16. data/core/bourbon/addons/_border-color.scss +14 -15
  17. data/core/bourbon/addons/_border-radius.scss +17 -18
  18. data/core/bourbon/addons/_border-style.scss +13 -14
  19. data/core/bourbon/addons/_border-width.scss +13 -14
  20. data/core/bourbon/addons/_buttons.scss +48 -49
  21. data/core/bourbon/addons/_clearfix.scss +10 -10
  22. data/core/bourbon/addons/_contrast-switch.scss +47 -0
  23. data/core/bourbon/addons/_ellipsis.scss +22 -15
  24. data/core/bourbon/addons/_font-face.scss +60 -0
  25. data/core/bourbon/addons/_font-stacks.scss +77 -9
  26. data/core/bourbon/addons/_hide-text.scss +10 -9
  27. data/core/bourbon/addons/_hide-visually.scss +65 -0
  28. data/core/bourbon/addons/_margin.scss +14 -15
  29. data/core/bourbon/addons/_modular-scale.scss +113 -0
  30. data/core/bourbon/addons/_padding.scss +14 -15
  31. data/core/bourbon/addons/_position.scss +24 -19
  32. data/core/bourbon/addons/_prefixer.scss +20 -15
  33. data/core/bourbon/addons/_size.scss +24 -20
  34. data/core/bourbon/addons/_text-inputs.scss +106 -104
  35. data/core/bourbon/addons/_timing-functions.scss +2 -2
  36. data/core/bourbon/addons/_word-wrap.scss +10 -10
  37. data/core/bourbon/functions/_assign-inputs.scss +11 -7
  38. data/core/bourbon/functions/_collapse-directionals.scss +51 -0
  39. data/core/bourbon/functions/_contains-falsy.scss +5 -5
  40. data/core/bourbon/functions/_contains.scss +11 -7
  41. data/core/bourbon/{helpers → functions}/_font-source-declaration.scss +26 -17
  42. data/core/bourbon/functions/_is-length.scss +3 -3
  43. data/core/bourbon/functions/_is-light.scss +2 -2
  44. data/core/bourbon/functions/_is-number.scss +5 -5
  45. data/core/bourbon/functions/_is-size.scss +7 -7
  46. data/core/bourbon/functions/_shade.scss +14 -10
  47. data/core/bourbon/functions/_strip-unit.scss +3 -3
  48. data/core/bourbon/functions/_tint.scss +14 -10
  49. data/core/bourbon/functions/_unpack.scss +10 -10
  50. data/core/bourbon/helpers/_directional-values.scss +19 -59
  51. data/core/bourbon/settings/_bourbon-get-setting.scss +14 -0
  52. data/core/bourbon/settings/_scales.scss +1 -1
  53. data/core/bourbon/settings/_settings.scss +33 -0
  54. data/eyeglass-exports.js +7 -0
  55. data/features/step_definitions/bourbon_steps.rb +6 -1
  56. data/index.js +2 -2
  57. data/lib/bourbon.rb +2 -10
  58. data/lib/bourbon/generator.rb +8 -8
  59. data/lib/bourbon/version.rb +1 -1
  60. data/package.json +6 -1
  61. data/spec/bourbon/addons/border_color_spec.rb +7 -7
  62. data/spec/bourbon/addons/buttons_spec.rb +3 -3
  63. data/spec/bourbon/addons/clearfix_spec.rb +2 -2
  64. data/spec/bourbon/addons/contrast_switch_spec.rb +23 -0
  65. data/spec/bourbon/{css3 → addons}/font_face_spec_1.rb +0 -2
  66. data/spec/bourbon/addons/font_face_spec_2.rb +21 -0
  67. data/spec/bourbon/{css3 → addons}/font_face_spec_3.rb +2 -4
  68. data/spec/bourbon/{css3 → addons}/font_face_spec_4.rb +0 -2
  69. data/spec/bourbon/addons/font_stacks_spec.rb +6 -1
  70. data/spec/bourbon/addons/hide_visually_spec.rb +35 -0
  71. data/spec/bourbon/{functions → addons}/modular_scale_spec.rb +6 -6
  72. data/spec/bourbon/addons/text_inputs_spec.rb +24 -14
  73. data/spec/bourbon/functions/assign_inputs_spec.rb +6 -6
  74. data/spec/bourbon/functions/collapse_directionals.rb +25 -0
  75. data/spec/bourbon/{helpers → functions}/font_source_declaration_spec.rb +1 -1
  76. data/spec/bourbon/helpers/directional_values_spec.rb +1 -19
  77. data/spec/bourbon/settings/bourbon_get_setting_spec.rb +31 -0
  78. data/spec/fixtures/addons/border-color.scss +4 -4
  79. data/spec/fixtures/addons/contrast-switch.scss +9 -0
  80. data/spec/fixtures/addons/font-face-1.scss +6 -0
  81. data/spec/fixtures/addons/font-face-2.scss +10 -0
  82. data/spec/fixtures/addons/font-face-3.scss +8 -0
  83. data/spec/fixtures/addons/font-face-4.scss +7 -0
  84. data/spec/fixtures/addons/font-stacks.scss +13 -9
  85. data/spec/fixtures/addons/hide-visually.scss +9 -0
  86. data/spec/fixtures/{functions → addons}/modular-scale.scss +0 -0
  87. data/spec/fixtures/addons/text-inputs.scss +4 -0
  88. data/spec/fixtures/functions/assign-inputs.scss +8 -8
  89. data/spec/fixtures/functions/collapse-directionals.scss +17 -0
  90. data/spec/fixtures/functions/contains.scss +1 -1
  91. data/spec/fixtures/functions/font-source-declaration.scss +11 -0
  92. data/spec/fixtures/functions/is-length.scss +1 -1
  93. data/spec/fixtures/functions/is-light.scss +2 -2
  94. data/spec/fixtures/functions/is-number.scss +1 -1
  95. data/spec/fixtures/functions/is-size.scss +1 -1
  96. data/spec/fixtures/functions/shade.scss +1 -1
  97. data/spec/fixtures/functions/tint.scss +1 -1
  98. data/spec/fixtures/functions/unpack.scss +4 -4
  99. data/spec/fixtures/helpers/directional-values.scss +3 -19
  100. data/spec/fixtures/settings/bourbon-get-setting.scss +16 -0
  101. data/spec/support/matchers/have_value.rb +1 -1
  102. metadata +88 -78
  103. data/.travis.yml +0 -8
  104. data/core/bourbon/_bourbon-deprecated.scss +0 -1
  105. data/core/bourbon/css3/_font-face.scss +0 -50
  106. data/core/bourbon/functions/_modular-scale.scss +0 -101
  107. data/core/bourbon/settings/_asset-pipeline.scss +0 -7
  108. data/core/bourbon/settings/_global-font-file-formats.scss +0 -12
  109. data/core/bourbon/settings/_modular-scale.scss +0 -17
  110. data/spec/bourbon/css3/font_face_spec_2.rb +0 -19
  111. data/spec/fixtures/css3/font-face-1.scss +0 -3
  112. data/spec/fixtures/css3/font-face-2.scss +0 -3
  113. data/spec/fixtures/css3/font-face-3.scss +0 -3
  114. data/spec/fixtures/css3/font-face-4.scss +0 -3
  115. data/spec/fixtures/helpers/font-source-declaration.scss +0 -10
  116. data/spec/support/matchers/be_contained_in.rb +0 -10
@@ -5,20 +5,20 @@ describe "text-inputs" do
5
5
  ParserSupport.parse_file("addons/text-inputs")
6
6
 
7
7
  @inputs_list = %w(
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"]
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
@@ -4,8 +4,8 @@ describe "assign-inputs" do
4
4
  before(:all) do
5
5
  ParserSupport.parse_file("functions/assign-inputs")
6
6
  @text_inputs_list = [
7
- "[type=\"password\"]",
8
- "[type=\"text\"]",
7
+ "[type='password']",
8
+ "[type='text']",
9
9
  "textarea"
10
10
  ]
11
11
  end
@@ -13,7 +13,7 @@ describe "assign-inputs" do
13
13
  context "expands plain text inputs" do
14
14
  it "finds selectors" do
15
15
  @text_inputs_list.each do |input|
16
- expect(input).to have_rule("color: #ff0000")
16
+ expect(input).to have_rule("color: #f00")
17
17
  end
18
18
  end
19
19
  end
@@ -23,7 +23,7 @@ describe "assign-inputs" do
23
23
  list = @text_inputs_list.dup
24
24
  list.map! { |input| input + ":active" }
25
25
  list.each do |input|
26
- expect(input).to have_rule("color: #00ff00")
26
+ expect(input).to have_rule("color: #0f0")
27
27
  end
28
28
  end
29
29
  end
@@ -33,7 +33,7 @@ describe "assign-inputs" do
33
33
  list = @text_inputs_list.dup
34
34
  list.push "select"
35
35
  list.each do |input|
36
- expect(input).to have_rule("color: #0000ff")
36
+ expect(input).to have_rule("color: #00f")
37
37
  end
38
38
  end
39
39
  end
@@ -43,7 +43,7 @@ describe "assign-inputs" do
43
43
  list = @text_inputs_list.dup
44
44
  list.unshift "[type=\"file\"]"
45
45
  list.each do |input|
46
- expect(input).to have_rule("color: #ff00ff")
46
+ expect(input).to have_rule("color: #f0f")
47
47
  end
48
48
  end
49
49
  end
@@ -0,0 +1,25 @@
1
+ require "spec_helper"
2
+
3
+ describe "collapse-directionals" do
4
+ before(:all) do
5
+ ParserSupport.parse_file("functions/collapse-directionals")
6
+ end
7
+
8
+ context "collapse-directionals" do
9
+ it "returns four distinct lengths unaltered" do
10
+ expect(".four").to have_rule("padding: 10px 20px 30px 40px")
11
+ end
12
+
13
+ it "returns collapsed horizontal lengths" do
14
+ expect(".three").to have_rule("padding: 5px 10px 5px 20px")
15
+ end
16
+
17
+ it "returns collapsed vertical and horizontal lengths" do
18
+ expect(".two").to have_rule("padding: 50px 100px")
19
+ end
20
+
21
+ it "returns collapsed lengths when all match" do
22
+ expect(".one").to have_rule("padding: 10px")
23
+ end
24
+ end
25
+ end
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  describe "font-source-declaration" do
4
4
  before(:all) do
5
- ParserSupport.parse_file("helpers/font-source-declaration")
5
+ ParserSupport.parse_file("functions/font-source-declaration")
6
6
  end
7
7
 
8
8
  context "called with pipeline" do
@@ -5,24 +5,6 @@ describe "directional-values" do
5
5
  ParserSupport.parse_file("helpers/directional-values")
6
6
  end
7
7
 
8
- context "collapse-directionals" do
9
- it "returns four distinct lengths unaltered" do
10
- expect(".four").to have_rule("padding: 10px 20px 30px 40px")
11
- end
12
-
13
- it "returns collapsed horizontal lengths" do
14
- expect(".three").to have_rule("padding: 5px 10px 5px 20px")
15
- end
16
-
17
- it "returns collapsed vertical and horizontal lengths" do
18
- expect(".two").to have_rule("padding: 50px 100px")
19
- end
20
-
21
- it "returns collapsed lengths when all match" do
22
- expect(".one").to have_rule("padding: 10px")
23
- end
24
- end
25
-
26
8
  context "directional-property" do
27
9
  it "returns property and values with four distinct lengths" do
28
10
  expect(".border-all").to have_rule("border-width: 2px 5px 8px 12px")
@@ -33,7 +15,7 @@ describe "directional-values" do
33
15
  end
34
16
 
35
17
  it "returns property and value with vertical and horizontal values" do
36
- expect(".border-color").to have_rule("border-color: #ffffff #000000")
18
+ expect(".border-color").to have_rule("border-color: #fff #000")
37
19
  end
38
20
  end
39
21
  end
@@ -0,0 +1,31 @@
1
+ require "spec_helper"
2
+
3
+ describe "_bourbon-get-setting" do
4
+ before(:all) do
5
+ ParserSupport.parse_file("settings/bourbon-get-setting")
6
+ end
7
+
8
+ context "gets the modular-scale-base setting" do
9
+ it "and returns the default value" do
10
+ expect(".test-1").to have_rule("content: 1em")
11
+ end
12
+ end
13
+
14
+ context "gets the rails-asset-pipeline setting" do
15
+ it "and returns the user-overridden value" do
16
+ expect(".test-2").to have_rule("content: true")
17
+ end
18
+ end
19
+
20
+ context "called from the font-face mixin" do
21
+ it "outputs user-overridden font file formats" do
22
+ ruleset = 'font-family: "source-sans-pro"; ' +
23
+ 'src: font-url("source-sans-pro-regular.woff2") ' +
24
+ 'format("woff2"), ' +
25
+ 'font-url("source-sans-pro-regular.woff") ' +
26
+ 'format("woff");'
27
+
28
+ expect("@font-face").to have_ruleset(ruleset)
29
+ end
30
+ end
31
+ end
@@ -1,9 +1,9 @@
1
1
  @import "setup";
2
2
 
3
- $red: #ff0000;
4
- $blue: #00ff00;
5
- $green: #0000ff;
6
- $purple: #ffff00;
3
+ $red: #f00;
4
+ $blue: #0f0;
5
+ $green: #00f;
6
+ $purple: #ff0;
7
7
 
8
8
  .border-color-all {
9
9
  @include border-color($red);
@@ -0,0 +1,9 @@
1
+ @import "setup";
2
+
3
+ .contrast-switch-light-base {
4
+ color: contrast-switch(#bae6e6);
5
+ }
6
+
7
+ .contrast-switch-dark-base {
8
+ color: contrast-switch(#2d72d9, #222, #eee);
9
+ }
@@ -0,0 +1,6 @@
1
+ @import "setup";
2
+
3
+ @include font-face(
4
+ "source-sans-pro",
5
+ "/fonts/source-sans-pro/source-sans-pro-regular"
6
+ );
@@ -0,0 +1,10 @@
1
+ @import "setup";
2
+
3
+ @include font-face(
4
+ "calibre",
5
+ "fonts/calibre"
6
+ ) {
7
+ font-style: normal;
8
+ font-weight: 600;
9
+ unicode-range: U+26;
10
+ }
@@ -0,0 +1,8 @@
1
+ @import "setup";
2
+
3
+ @include font-face(
4
+ "pitch",
5
+ "/fonts/pitch",
6
+ true,
7
+ "woff2"
8
+ );
@@ -0,0 +1,7 @@
1
+ @import "setup";
2
+
3
+ @include font-face(
4
+ "circular",
5
+ "/circular",
6
+ $file-formats: ("woff2", "svg")
7
+ );
@@ -1,37 +1,41 @@
1
1
  @import "setup";
2
2
 
3
3
  .helvetica {
4
- content: $helvetica;
4
+ content: $font-stack-helvetica;
5
5
  }
6
6
 
7
7
  .lucida-grande {
8
- content: $lucida-grande;
8
+ content: $font-stack-lucida-grande;
9
9
  }
10
10
 
11
11
  .verdana {
12
- content: $verdana;
12
+ content: $font-stack-verdana;
13
13
  }
14
14
 
15
15
  .garamond {
16
- content: $garamond;
16
+ content: $font-stack-garamond;
17
17
  }
18
18
 
19
19
  .georgia {
20
- content: $georgia;
20
+ content: $font-stack-georgia;
21
21
  }
22
22
 
23
23
  .hoefler-text {
24
- content: $hoefler-text;
24
+ content: $font-stack-hoefler-text;
25
25
  }
26
26
 
27
27
  .consolas {
28
- content: $consolas;
28
+ content: $font-stack-consolas;
29
29
  }
30
30
 
31
31
  .courier-new {
32
- content: $courier-new;
32
+ content: $font-stack-courier-new;
33
33
  }
34
34
 
35
35
  .monaco {
36
- content: $monaco;
36
+ content: $font-stack-monaco;
37
+ }
38
+
39
+ .system {
40
+ content: $font-stack-system;
37
41
  }
@@ -0,0 +1,9 @@
1
+ @import "setup";
2
+
3
+ .hide-visually {
4
+ @include hide-visually;
5
+ }
6
+
7
+ .hide-visually--unhide {
8
+ @include hide-visually(unhide);
9
+ }
@@ -15,3 +15,7 @@
15
15
  .all-text-inputs-hover {
16
16
  content: $all-text-inputs-hover;
17
17
  }
18
+
19
+ .all-text-inputs-invalid {
20
+ content: $all-text-inputs-invalid;
21
+ }
@@ -1,19 +1,19 @@
1
1
  @import "setup";
2
2
 
3
- #{assign-inputs($text-inputs-list)} {
4
- color: #ff0000;
3
+ #{_assign-inputs($text-inputs-list)} {
4
+ color: #f00;
5
5
  }
6
6
 
7
- #{assign-inputs($text-inputs-list, active)} {
8
- color: #00ff00;
7
+ #{_assign-inputs($text-inputs-list, active)} {
8
+ color: #0f0;
9
9
  }
10
10
 
11
- #{assign-inputs($text-inputs-list)},
11
+ #{_assign-inputs($text-inputs-list)},
12
12
  select {
13
- color: #0000ff;
13
+ color: #00f;
14
14
  }
15
15
 
16
16
  [type="file"],
17
- #{assign-inputs($text-inputs-list)} {
18
- color: #ff00ff;
17
+ #{_assign-inputs($text-inputs-list)} {
18
+ color: #f0f;
19
19
  }
@@ -0,0 +1,17 @@
1
+ @import "setup";
2
+
3
+ .four {
4
+ padding: _collapse-directionals(10px 20px 30px 40px);
5
+ }
6
+
7
+ .three {
8
+ padding: _collapse-directionals(5px 10px 5px 20px);
9
+ }
10
+
11
+ .two {
12
+ padding: _collapse-directionals(50px 100px 50px 100px);
13
+ }
14
+
15
+ .one {
16
+ padding: _collapse-directionals(10px 10px 10px 10px);
17
+ }
@@ -4,7 +4,7 @@ $single: "apple";
4
4
  $multiple: "pineapple", "banana", "cumquat";
5
5
 
6
6
  @mixin color-contains($list, $values) {
7
- @if contains($list, $values) {
7
+ @if _contains($list, $values) {
8
8
  color: #fff;
9
9
  } @else {
10
10
  color: #000;
@@ -0,0 +1,11 @@
1
+ @import "setup";
2
+
3
+ $file-formats: ("eot", "woff2", "woff", "ttf", "svg");
4
+
5
+ .has-pipeline {
6
+ src: _font-source-declaration("a", "b", true, $file-formats);
7
+ }
8
+
9
+ .no-pipeline {
10
+ src: _font-source-declaration("a", "b", false, $file-formats);
11
+ }
@@ -1,7 +1,7 @@
1
1
  @import "setup";
2
2
 
3
3
  @mixin color-length($value) {
4
- @if is-length($value) {
4
+ @if _is-length($value) {
5
5
  color: #fff;
6
6
  }
7
7
  }
@@ -9,11 +9,11 @@
9
9
  }
10
10
 
11
11
  .pink {
12
- @include reverse-color(#ffcccc);
12
+ @include reverse-color(#fcc);
13
13
  }
14
14
 
15
15
  .sky {
16
- @include reverse-color(#aaeeff);
16
+ @include reverse-color(#aef);
17
17
  }
18
18
 
19
19
  .medium-gray {
@@ -1,7 +1,7 @@
1
1
  @import "setup";
2
2
 
3
3
  @mixin line-height($number) {
4
- @if is-number($number) {
4
+ @if _is-number($number) {
5
5
  line-height: $number;
6
6
  }
7
7
  }
@@ -1,7 +1,7 @@
1
1
  @import "setup";
2
2
 
3
3
  @mixin size-margin($size) {
4
- @if is-size($size) {
4
+ @if _is-size($size) {
5
5
  margin-top: $size;
6
6
  }
7
7
  }