ad_particles 0.1.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 (47) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +25 -0
  3. data/.npmignore +11 -0
  4. data/.scss-lint.yml +243 -0
  5. data/Gemfile +3 -0
  6. data/README.md +7 -0
  7. data/Rakefile +15 -0
  8. data/ad_particles.gemspec +30 -0
  9. data/atomic/_particles.scss +3 -0
  10. data/atomic/particles/_mixins.scss +7 -0
  11. data/atomic/particles/_modifiers.scss +1 -0
  12. data/atomic/particles/_props.scss +7 -0
  13. data/atomic/particles/mixins/_box.scss +21 -0
  14. data/atomic/particles/mixins/_color.scss +9 -0
  15. data/atomic/particles/mixins/_form.scss +45 -0
  16. data/atomic/particles/mixins/_helper.scss +32 -0
  17. data/atomic/particles/mixins/_layout.scss +155 -0
  18. data/atomic/particles/mixins/_rwd.scss +29 -0
  19. data/atomic/particles/mixins/_type.scss +15 -0
  20. data/atomic/particles/modifiers/_rwd.scss +18 -0
  21. data/atomic/particles/modifiers/_string.scss +3 -0
  22. data/atomic/particles/props/_box.scss +6 -0
  23. data/atomic/particles/props/_color.scss +27 -0
  24. data/atomic/particles/props/_config.scss +4 -0
  25. data/atomic/particles/props/_icon.scss +1 -0
  26. data/atomic/particles/props/_image.scss +4 -0
  27. data/atomic/particles/props/_motion.scss +4 -0
  28. data/atomic/particles/props/_rwd.scss +3 -0
  29. data/atomic/particles/props/_type.scss +51 -0
  30. data/eyeglass-exports.js +7 -0
  31. data/index.js +7 -0
  32. data/lib/ad_particles.rb +8 -0
  33. data/lib/ad_particles/generator.rb +81 -0
  34. data/lib/ad_particles/version.rb +3 -0
  35. data/package.json +37 -0
  36. data/spec/fixtures/_setup.scss +1 -0
  37. data/spec/fixtures/mixins/box.scss +33 -0
  38. data/spec/fixtures/mixins/color.scss +6 -0
  39. data/spec/particles/mixins/box_spec.rb +61 -0
  40. data/spec/particles/mixins/color_spec.rb +20 -0
  41. data/spec/spec_helper.rb +24 -0
  42. data/spec/support/matchers/have_rule.rb +38 -0
  43. data/spec/support/matchers/have_ruleset.rb +23 -0
  44. data/spec/support/matchers/have_value.rb +20 -0
  45. data/spec/support/parser_support.rb +16 -0
  46. data/spec/support/sass_support.rb +12 -0
  47. metadata +201 -0
@@ -0,0 +1,3 @@
1
+ module AtomicDesignParticles
2
+ VERSION = "0.1.0"
3
+ end
data/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "author": {
3
+ "name": "Erik Isaksen",
4
+ "url": "https://github.com/Nevraeka"
5
+ },
6
+ "bugs": {
7
+ "url": "https://github.com/TheWebPlatform/ad-particles/issues"
8
+ },
9
+ "description": "A base set of variables & mixins built in SASS for Atomic Design.",
10
+ "eyeglass": {
11
+ "needs": "*",
12
+ "exports": "eyeglass-exports.js"
13
+ },
14
+ "homepage": "https://thewebplatform.github.io/ad-particles",
15
+ "keywords": [
16
+ "css",
17
+ "eyeglass-module",
18
+ "mixins",
19
+ "sass",
20
+ "scss",
21
+ "atomic",
22
+ "atom",
23
+ "atomic-design",
24
+ "particles"
25
+ ],
26
+ "license": "MIT",
27
+ "main": "index.js",
28
+ "name": "atomic-particles",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/TheWebPlatformPodcast/ad-particles.git"
32
+ },
33
+ "scripts": {
34
+ "test": "bundle exec rake"
35
+ },
36
+ "version": "0.1.0"
37
+ }
@@ -0,0 +1 @@
1
+ @import "atomic/particles";
@@ -0,0 +1,33 @@
1
+ @import "setup";
2
+
3
+ .box_border--rounded {
4
+ @include box-border-rounded;
5
+ }
6
+
7
+ .box_border--rounded-custom {
8
+ @include box-border-rounded(10px);
9
+ }
10
+
11
+ .box_border {
12
+ @include box-border(#000);
13
+ }
14
+
15
+ .box_border--default {
16
+ @include box-border;
17
+ }
18
+
19
+ .box_border--custom {
20
+ @include box-border(#ff0000);
21
+ }
22
+
23
+ .box_border--custom-with-radius {
24
+ @include box-border(#ff0000, 4px);
25
+ }
26
+
27
+ .box_border--brand-primary {
28
+ @include box-border--primary;
29
+ }
30
+
31
+ .box_border--brand-secondary {
32
+ @include box-border--secondary;
33
+ }
@@ -0,0 +1,6 @@
1
+ @import "setup";
2
+
3
+
4
+ .color_gray--gradient {
5
+ @include color-gray--fade;
6
+ }
@@ -0,0 +1,61 @@
1
+ require "spec_helper"
2
+
3
+ describe "box" do
4
+ before(:all) do
5
+ ParserSupport.parse_file("mixins/box")
6
+ end
7
+
8
+ context "box-border" do
9
+
10
+ it "should not render a border-radius rule if $radius equals 0" do
11
+ expect(".box_border--rounded-custom").to have_rule "border-radius: 10px"
12
+ end
13
+
14
+ it "should render a border-radius rule when $radius is not 0" do
15
+ expect(".box_border").to_not have_rule "border-radius: 3px"
16
+ expect(".box_border").to_not have_rule "border-radius: 0"
17
+ end
18
+
19
+ it "should render the default border color when $color is not explicitly set" do
20
+ expect(".box_border--default").to have_rule "border: 1px solid #999999"
21
+ end
22
+
23
+ it "should render the color border specified when $color is explicitly set" do
24
+ expect(".box_border--custom").to have_rule "border: 1px solid #ff0000"
25
+ end
26
+
27
+ it "should render the color border specified when $color is explicitly set" do
28
+ expect(".box_border--custom-with-radius").to have_ruleset("border: 1px solid #ff0000; border-radius: 4px;")
29
+ end
30
+
31
+ end
32
+
33
+ context "box-border--primary" do
34
+
35
+ it "should render a border rule with the $color-brand--primary value" do
36
+ expect(".box_border--brand-primary").to have_rule("border: 1px solid #007fb2")
37
+ end
38
+
39
+ end
40
+
41
+ context "box-border--secondary" do
42
+
43
+ it "should render a border rule with the $color-brand--secondary value" do
44
+ expect(".box_border--brand-secondary").to have_rule("border: 1px solid #e6b319")
45
+ end
46
+
47
+ end
48
+
49
+ context "box-border-rounded" do
50
+
51
+ it "should render a border-radius rule with the global border-radius value" do
52
+ expect(".box_border--rounded").to have_rule "border-radius: 3px"
53
+ end
54
+
55
+ it "should render a given border-radius rule when called with a specific value" do
56
+ expect(".box_border--rounded-custom").to have_rule "border-radius: 10px"
57
+ end
58
+
59
+ end
60
+
61
+ end
@@ -0,0 +1,20 @@
1
+ require "spec_helper"
2
+
3
+ describe "box" do
4
+ before(:all) do
5
+ ParserSupport.parse_file("mixins/color")
6
+ end
7
+
8
+ context "color-gray--fade" do
9
+
10
+ it "should provide cross browser vendor prefixed linear-gradients with a solid color fallback" do
11
+ fallback = "background: #555555"
12
+ standard = fallback + "; background-image: linear-gradient(top, transparent 0%, rgba(184, 184, 184, 0) 90%, rgba(204, 204, 204, 0.65) 100%);"
13
+
14
+ expect(".color_gray--gradient").to have_rule fallback
15
+ expect(".color_gray--gradient").to have_ruleset standard
16
+ end
17
+
18
+ end
19
+
20
+ end
@@ -0,0 +1,24 @@
1
+
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
+ require "rspec"
5
+ require "ad_particles"
6
+ require "css_parser"
7
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
8
+
9
+ RSpec.configure do |config|
10
+ config.include SassSupport
11
+ config.include CssParser
12
+ config.include ParserSupport
13
+ config.color = true
14
+ config.tty = true
15
+ config.formatter = :documentation # :progress, :html, :textmate
16
+
17
+ config.before(:all) do
18
+ generate_css
19
+ end
20
+
21
+ config.after(:all) do
22
+ clean_up
23
+ end
24
+ end
@@ -0,0 +1,38 @@
1
+ # Originally taken from Thoughtbot Bourbon (MIT -https://github.com/thoughtbot/bourbon/blob/master/LICENSE.md)
2
+ # https://github.com/thoughtbot/bourbon/blob/master/spec/support/matchers/have_rule.rb
3
+
4
+ RSpec::Matchers.define :have_rule do |expected|
5
+ match do |selector|
6
+ @rules = rules_from_selector(selector)
7
+ @rules.include? expected
8
+ end
9
+
10
+ failure_message do |selector|
11
+ if @rules.empty?
12
+ %{no CSS for selector #{selector} were found}
13
+ else
14
+ rules = @rules.join("; ")
15
+ %{Expected selector #{selector} to have CSS rule "#{expected}".
16
+ Had "#{rules}".}
17
+ end
18
+ end
19
+
20
+ def rules_from_selector(selector)
21
+ rulesets = ParserSupport.parser.find_by_selector(selector)
22
+ if rulesets.empty?
23
+ []
24
+ else
25
+ rules(rulesets)
26
+ end
27
+ end
28
+
29
+ def rules(rulesets)
30
+ rules = []
31
+ rulesets.map do |ruleset|
32
+ ruleset.split(";").each do |rule|
33
+ rules << rule.strip
34
+ end
35
+ end
36
+ rules
37
+ end
38
+ end
@@ -0,0 +1,23 @@
1
+ # Originally taken from Thoughtbot Bourbon (MIT -https://github.com/thoughtbot/bourbon/blob/master/LICENSE.md)
2
+ # https://github.com/thoughtbot/bourbon/blob/master/spec/support/matchers/have_ruleset.rb
3
+
4
+ RSpec::Matchers.define :have_ruleset do |expected|
5
+ match do |selector|
6
+ @ruleset = rules_from_selector(selector)
7
+ @ruleset.join("; ") == expected
8
+ end
9
+
10
+ failure_message do |selector|
11
+ if @ruleset.empty?
12
+ %{no CSS for selector #{selector} were found}
13
+ else
14
+ ruleset = @ruleset.join("; ")
15
+ %{Expected selector #{selector} to have CSS rule "#{expected}".
16
+ Had "#{ruleset}".}
17
+ end
18
+ end
19
+
20
+ def rules_from_selector(selector)
21
+ ParserSupport.parser.find_by_selector(selector)
22
+ end
23
+ end
@@ -0,0 +1,20 @@
1
+ # Originally taken from Thoughtbot Bourbon (MIT -https://github.com/thoughtbot/bourbon/blob/master/LICENSE.md)
2
+ # https://github.com/thoughtbot/bourbon/blob/master/spec/support/matchers/have_value.rb
3
+
4
+ RSpec::Matchers.define :have_value do |expected|
5
+ match do |variable|
6
+ selector_class = variable.sub("$", ".")
7
+ @value_attribute = ParserSupport.parser.find_by_selector(selector_class)[0]
8
+
9
+ unless @value_attribute.nil?
10
+ actual_value = @value_attribute.split(":")[1].strip.sub(";", "")
11
+ actual_value == expected
12
+ end
13
+ end
14
+
15
+ failure_message do |variable_name|
16
+ value_attribute = @value_attribute.to_s
17
+ %{Expected variable #{variable_name} to have value "#{expected}".
18
+ Had "#{value_attribute}".}
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ module ParserSupport
2
+ def self.parser
3
+ @parser ||= CssParser::Parser.new
4
+ end
5
+
6
+ def self.parse_file(identifier)
7
+ parser.load_file!("tmp/#{identifier}.css")
8
+ end
9
+
10
+ def self.show_contents(identifier)
11
+ css_file_contents = File.open("tmp/#{identifier}.css").read
12
+ css_file_contents.each_line do |line|
13
+ puts line
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ require "fileutils"
2
+
3
+ module SassSupport
4
+ def generate_css
5
+ FileUtils.mkdir_p "tmp"
6
+ `sass -I . --update spec/fixtures:tmp --quiet`
7
+ end
8
+
9
+ def clean_up
10
+ FileUtils.rm_rf("tmp")
11
+ end
12
+ end
metadata ADDED
@@ -0,0 +1,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ad_particles
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Erik Isaksen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-07-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: css_parser
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.4'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.4.1
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.4'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.4.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: rake
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '11.1'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 11.1.2
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '11.1'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 11.1.2
53
+ - !ruby/object:Gem::Dependency
54
+ name: rspec
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '3.4'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 3.4.0
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '3.4'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 3.4.0
73
+ - !ruby/object:Gem::Dependency
74
+ name: scss_lint
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - '='
78
+ - !ruby/object:Gem::Version
79
+ version: 0.48.0
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - '='
85
+ - !ruby/object:Gem::Version
86
+ version: 0.48.0
87
+ - !ruby/object:Gem::Dependency
88
+ name: sass
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '3.4'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 3.4.22
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.4'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 3.4.22
107
+ - !ruby/object:Gem::Dependency
108
+ name: thor
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: 0.19.1
114
+ type: :runtime
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 0.19.1
121
+ description: |2
122
+ ad_particles is SASS Module that defines a base set of variables that can used as a
123
+ standard in component styling & consistent theming. Particles, although not
124
+ originally discussed by Atomic Design creator Brad Frost, are the abstract &
125
+ configuration structures that shape the Atomic design structure from the ground
126
+ up.
127
+ email: nevraeka@gmail.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - ".gitignore"
133
+ - ".npmignore"
134
+ - ".scss-lint.yml"
135
+ - Gemfile
136
+ - README.md
137
+ - Rakefile
138
+ - ad_particles.gemspec
139
+ - atomic/_particles.scss
140
+ - atomic/particles/_mixins.scss
141
+ - atomic/particles/_modifiers.scss
142
+ - atomic/particles/_props.scss
143
+ - atomic/particles/mixins/_box.scss
144
+ - atomic/particles/mixins/_color.scss
145
+ - atomic/particles/mixins/_form.scss
146
+ - atomic/particles/mixins/_helper.scss
147
+ - atomic/particles/mixins/_layout.scss
148
+ - atomic/particles/mixins/_rwd.scss
149
+ - atomic/particles/mixins/_type.scss
150
+ - atomic/particles/modifiers/_rwd.scss
151
+ - atomic/particles/modifiers/_string.scss
152
+ - atomic/particles/props/_box.scss
153
+ - atomic/particles/props/_color.scss
154
+ - atomic/particles/props/_config.scss
155
+ - atomic/particles/props/_icon.scss
156
+ - atomic/particles/props/_image.scss
157
+ - atomic/particles/props/_motion.scss
158
+ - atomic/particles/props/_rwd.scss
159
+ - atomic/particles/props/_type.scss
160
+ - eyeglass-exports.js
161
+ - index.js
162
+ - lib/ad_particles.rb
163
+ - lib/ad_particles/generator.rb
164
+ - lib/ad_particles/version.rb
165
+ - package.json
166
+ - spec/fixtures/_setup.scss
167
+ - spec/fixtures/mixins/box.scss
168
+ - spec/fixtures/mixins/color.scss
169
+ - spec/particles/mixins/box_spec.rb
170
+ - spec/particles/mixins/color_spec.rb
171
+ - spec/spec_helper.rb
172
+ - spec/support/matchers/have_rule.rb
173
+ - spec/support/matchers/have_ruleset.rb
174
+ - spec/support/matchers/have_value.rb
175
+ - spec/support/parser_support.rb
176
+ - spec/support/sass_support.rb
177
+ homepage: https://github.com/thewebplatform/ad-particles
178
+ licenses:
179
+ - MIT
180
+ metadata: {}
181
+ post_install_message:
182
+ rdoc_options: []
183
+ require_paths:
184
+ - lib
185
+ required_ruby_version: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ required_rubygems_version: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ requirements: []
196
+ rubyforge_project:
197
+ rubygems_version: 2.5.1
198
+ signing_key:
199
+ specification_version: 4
200
+ summary: A SASS Module that defines a base set of variables
201
+ test_files: []