pure-sass 0.0.2 → 0.0.3
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 +4 -4
- data/.gitignore +4 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Guardfile +1 -0
- data/README.md +10 -1
- data/Rakefile +72 -10
- data/app/assets/stylesheets/pure/all.css.scss +7 -0
- data/app/assets/stylesheets/pure/base/normalize-context.css.scss +233 -0
- data/app/assets/stylesheets/pure/base/{normalize.css.sass → normalize.css.scss} +307 -204
- data/app/assets/stylesheets/pure/base.css.scss +2 -0
- data/app/assets/stylesheets/pure/buttons/buttons-core.css.scss +27 -0
- data/app/assets/stylesheets/pure/buttons/buttons-theme.css.scss +110 -0
- data/app/assets/stylesheets/pure/buttons/buttons.css.scss +83 -0
- data/app/assets/stylesheets/pure/buttons.css.scss +3 -0
- data/app/assets/stylesheets/pure/defaults.css.scss +44 -0
- data/app/assets/stylesheets/pure/forms/{forms-core.css.sass → forms-core.css.scss} +91 -74
- data/app/assets/stylesheets/pure/forms/forms-r.css.scss +31 -0
- data/app/assets/stylesheets/pure/forms/forms-theme.css.scss +362 -0
- data/app/assets/stylesheets/pure/forms/forms.css.scss +167 -0
- data/app/assets/stylesheets/pure/forms.css.scss +4 -0
- data/app/assets/stylesheets/pure/grids/grids-core.css.scss +24 -0
- data/app/assets/stylesheets/pure/grids/grids-r.css.scss +54 -0
- data/app/assets/stylesheets/pure/grids/grids-units.css.scss +147 -0
- data/app/assets/stylesheets/pure/grids.css.scss +3 -0
- data/app/assets/stylesheets/pure/lists/lists-theme.css.scss +241 -0
- data/app/assets/stylesheets/pure/menus/menus-core.css.scss +111 -0
- data/app/assets/stylesheets/pure/menus/menus-paginator.css.scss +31 -0
- data/app/assets/stylesheets/pure/menus/menus-r.css.scss +14 -0
- data/app/assets/stylesheets/pure/menus/menus.css.scss +78 -0
- data/app/assets/stylesheets/pure/menus.css.scss +4 -0
- data/app/assets/stylesheets/pure/tables/tables-theme.css.scss +72 -0
- data/app/assets/stylesheets/pure/tables/tables.css.scss +82 -0
- data/app/assets/stylesheets/pure/tables.css.scss +2 -0
- data/lib/pure/sass/default_translation.rb +28 -0
- data/lib/pure/sass/translation.rb +24 -0
- data/lib/pure/sass/version.rb +1 -1
- data/lib/pure/sass.rb +2 -0
- data/pure-sass.gemspec +2 -1
- data/spec/acceptance/sass_spec.rb +10 -0
- data/spec/fixtures/buttons.css.handlebars +110 -0
- data/spec/fixtures/form.css.handlebars +362 -0
- data/spec/fixtures/list.css.handlebars +241 -0
- data/spec/fixtures/table.css.handlebars +72 -0
- data/spec/lib/pure/sass/default_translation_spec.rb +18 -0
- data/spec/lib/pure/sass/translation_spec.rb +19 -0
- data/spec/sass_importer.rb +14 -0
- data/spec/spec_helper.rb +2 -1
- metadata +78 -28
- data/app/assets/stylesheets/pure/all.css.sass +0 -7
- data/app/assets/stylesheets/pure/base/normalize-context.css.sass +0 -152
- data/app/assets/stylesheets/pure/base.css.sass +0 -2
- data/app/assets/stylesheets/pure/buttons/buttons-core.css.sass +0 -23
- data/app/assets/stylesheets/pure/buttons/buttons.css.sass +0 -103
- data/app/assets/stylesheets/pure/buttons.css.sass +0 -2
- data/app/assets/stylesheets/pure/defaults.css.sass +0 -0
- data/app/assets/stylesheets/pure/forms/forms-r.css.sass +0 -22
- data/app/assets/stylesheets/pure/forms/forms.css.sass +0 -128
- data/app/assets/stylesheets/pure/forms.css.sass +0 -3
- data/app/assets/stylesheets/pure/grids/grids-core.css.sass +0 -26
- data/app/assets/stylesheets/pure/grids/grids-r.css.sass +0 -34
- data/app/assets/stylesheets/pure/grids/grids-units.css.sass +0 -93
- data/app/assets/stylesheets/pure/grids.css.sass +0 -3
- data/app/assets/stylesheets/pure/menus/menus-core.css.sass +0 -99
- data/app/assets/stylesheets/pure/menus/menus-paginator.css.sass +0 -24
- data/app/assets/stylesheets/pure/menus/menus-r.css.sass +0 -8
- data/app/assets/stylesheets/pure/menus/menus.css.sass +0 -65
- data/app/assets/stylesheets/pure/menus.css.sass +0 -4
- data/app/assets/stylesheets/pure/tables/tables.css.sass +0 -68
- data/app/assets/stylesheets/pure/tables.css.sass +0 -1
- data/spec/assets_spec.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2893dafd8b818ec3a9a53539a6d6e797c289b797
|
4
|
+
data.tar.gz: 2ccd5a285af89d8989aeee275cc1b410449d06d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 486c6484123e2a088caf6218e0a343b0c952c9fb9092e1d4892a9ea284bf786cd0cf60124ca71883161cc0803c089d7a1e0d1d0d12abc5a0b1b71683df1ce103
|
7
|
+
data.tar.gz: ee435a3b8d122322d8123290c28fca68a344d871f31d7befe39d992499586145af98e53d064a7c4ca3ec5f30272c7ca7d81a5998354a15ba3bbdc95e18f0cb2f
|
data/.gitignore
CHANGED
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
pure-sass
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.0.0
|
data/Guardfile
CHANGED
@@ -7,6 +7,7 @@ guard :rspec do
|
|
7
7
|
watch(%r{^spec/.+_spec\.rb$})
|
8
8
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
9
9
|
watch('spec/spec_helper.rb') { "spec" }
|
10
|
+
watch(%r{^app/assets/.+\.scss$}) { "spec/acceptance/sass_spec.rb"}
|
10
11
|
end
|
11
12
|
|
12
13
|
guard 'sass', :input => 'sass', :output => 'css'
|
data/README.md
CHANGED
@@ -4,6 +4,15 @@ pure-sass is a port of [Yahoo!'s Pure CSS](http://purecss.io/) framework to SASS
|
|
4
4
|
|
5
5
|
[](https://travis-ci.org/jamesotron/pure-sass)
|
6
6
|
|
7
|
+
## Plea
|
8
|
+
|
9
|
+
To be honest, I don't really know that much about CSS, I just wanted this Gem to exist so that I
|
10
|
+
could use it on a project. I will gladly accept almost any contribution to help with maintaining
|
11
|
+
this Gem and will give commit rights to anyone who asks for it.
|
12
|
+
|
13
|
+
In the long run, I expect that maintainership will be handed to someone else, but I'm happy to
|
14
|
+
incubate it here for now.
|
15
|
+
|
7
16
|
## Usage
|
8
17
|
|
9
18
|
Add pure-sass to your applications `Gemfile`
|
@@ -21,7 +30,7 @@ Then in your `app/assets/stylesheets/application.css` you can use
|
|
21
30
|
or in your SASS or SCSS files you can use
|
22
31
|
|
23
32
|
```sass
|
24
|
-
@
|
33
|
+
@import 'pure/all'
|
25
34
|
```
|
26
35
|
|
27
36
|
If you don't want all of Pure then you can manually include
|
data/Rakefile
CHANGED
@@ -1,13 +1,70 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require 'rspec/core/rake_task'
|
3
|
+
require 'nokogiri'
|
4
|
+
require 'pure/sass'
|
5
|
+
|
3
6
|
RSpec::Core::RakeTask.new(:spec)
|
4
7
|
|
8
|
+
namespace :website do
|
9
|
+
desc "Scrape the pure website for tempates"
|
10
|
+
task :scrape do
|
11
|
+
dir = Dir.mktmpdir
|
12
|
+
sh("wget -O #{dir}/index.html http://yui.github.io/skinbuilder/?mode=pure")
|
13
|
+
@outfile = "#{dir}/index.html"
|
14
|
+
end
|
15
|
+
|
16
|
+
def template_files
|
17
|
+
{
|
18
|
+
form: "forms",
|
19
|
+
buttons: "buttons",
|
20
|
+
table: "tables",
|
21
|
+
list: "lists"
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
template_files.each do |template_key, template_value|
|
26
|
+
file "app/assets/stylesheets/pure/#{template_value}/#{template_value}-theme.css.handlebars" => :scrape do |task|
|
27
|
+
sh("mkdir -p app/assets/stylesheets/pure/#{template_value}")
|
28
|
+
File.open(task.name, 'w') do |file|
|
29
|
+
file.write(extract_template(template_key))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
rule ".scss" => ".handlebars" do |task|
|
35
|
+
Pure::Sass::Translation.new(task.source).render(task.name)
|
36
|
+
end
|
37
|
+
|
38
|
+
def generate_dependencies(file_extension)
|
39
|
+
template_files.values.map { |f| "app/assets/stylesheets/pure/#{f}/#{f}-theme.css.#{file_extension}" }
|
40
|
+
end
|
41
|
+
|
42
|
+
def extract_template(name)
|
43
|
+
doc = Nokogiri::HTML(File.read(@outfile))
|
44
|
+
doc.css("##{name}-template").first.content
|
45
|
+
end
|
46
|
+
|
47
|
+
desc "Templates"
|
48
|
+
task :templates => generate_dependencies("handlebars")
|
49
|
+
|
50
|
+
desc "SCSS"
|
51
|
+
task :scss => generate_dependencies("scss")
|
52
|
+
|
53
|
+
desc "Clean handlebars and index file(s)"
|
54
|
+
task :clean do
|
55
|
+
generate_dependencies("handlebars").each do |file|
|
56
|
+
sh("rm #{file}")
|
57
|
+
end
|
58
|
+
sh("rm #{@outfile}")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
5
62
|
namespace :upstream do
|
6
63
|
|
7
64
|
def generate_sass_dependencies
|
8
65
|
find_upstream_css_files.map do |source|
|
9
66
|
mod, base = source.scan(/purecss\/src\/([a-z_]+)\/.+\/([a-z_-]+).css\Z/)[0]
|
10
|
-
"app/assets/stylesheets/pure/#{mod}/#{base}.css.
|
67
|
+
"app/assets/stylesheets/pure/#{mod}/#{base}.css.scss"
|
11
68
|
end
|
12
69
|
end
|
13
70
|
|
@@ -16,7 +73,7 @@ namespace :upstream do
|
|
16
73
|
end
|
17
74
|
|
18
75
|
def generate_top_level_dependencies
|
19
|
-
sass_files.map { |p| "app/assets/stylesheets/pure/#{p}.css.
|
76
|
+
sass_files.map { |p| "app/assets/stylesheets/pure/#{p}.css.scss" }
|
20
77
|
end
|
21
78
|
|
22
79
|
def find_upstream_css_files
|
@@ -24,7 +81,9 @@ namespace :upstream do
|
|
24
81
|
end
|
25
82
|
|
26
83
|
desc "Import CSS files from upstream and convert them to SASS"
|
27
|
-
task :import => generate_sass_dependencies
|
84
|
+
task :import => generate_sass_dependencies
|
85
|
+
|
86
|
+
task :combine => generate_top_level_dependencies
|
28
87
|
|
29
88
|
desc "Update upstream CSS files"
|
30
89
|
task :update do
|
@@ -33,24 +92,27 @@ namespace :upstream do
|
|
33
92
|
|
34
93
|
generate_top_level_dependencies.each do |path|
|
35
94
|
file path do
|
36
|
-
if File.basename(path) == 'all.css.
|
37
|
-
File.write(path, (sass_files - ['all']).map { |f| "@import \"#{f}\"
|
95
|
+
if File.basename(path) == 'all.css.scss'
|
96
|
+
File.write(path, (sass_files - ['all']).map { |f| "@import \"#{f}\";\n" }.join)
|
38
97
|
else
|
39
|
-
dir_path = path.gsub(/\.css\.
|
98
|
+
dir_path = path.gsub(/\.css\.scss\Z/, '')
|
40
99
|
mod = File.basename(dir_path)
|
41
100
|
File.open(path, "w") do |file|
|
42
|
-
Dir["#{dir_path}/*.
|
43
|
-
file.puts "@import \"#{mod}/#{File.basename(sass).gsub(/\.css\.
|
101
|
+
Dir["#{dir_path}/*.scss"].each do |sass|
|
102
|
+
file.puts "@import \"#{mod}/#{File.basename(sass).gsub(/\.css\.scss\Z/, '')}\";"
|
44
103
|
end
|
45
104
|
end
|
46
105
|
end
|
47
106
|
end
|
48
107
|
end
|
49
108
|
|
50
|
-
rule(/.*\.css\.
|
109
|
+
rule(/.*\.css\.scss\Z/ => [proc { |t| t.sub(/\A.*\/([a-z_-]+)\/([a-z_-]+)\.css\.scss\Z/, 'vendor/upstream/purecss/src/\1/css/\2.css') }]) do |t|
|
51
110
|
sh "mkdir -p #{File.dirname(t.name).inspect}"
|
52
|
-
sh "
|
111
|
+
sh "cp #{t.source.inspect} #{t.name.inspect}"
|
53
112
|
end
|
54
113
|
end
|
55
114
|
|
115
|
+
desc "Build the combined output from :website and :upstream"
|
116
|
+
task :generate => ["upstream:import", "website:scss", "upstream:combine", "website:clean"]
|
117
|
+
|
56
118
|
task :default => [ :spec ]
|
@@ -0,0 +1,233 @@
|
|
1
|
+
/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */
|
2
|
+
.pure article,
|
3
|
+
.pure aside,
|
4
|
+
.pure details,
|
5
|
+
.pure figcaption,
|
6
|
+
.pure figure,
|
7
|
+
.pure footer,
|
8
|
+
.pure header,
|
9
|
+
.pure hgroup,
|
10
|
+
.pure main,
|
11
|
+
.pure nav,
|
12
|
+
.pure section,
|
13
|
+
.pure summary {
|
14
|
+
display: block;
|
15
|
+
}
|
16
|
+
.pure audio,
|
17
|
+
.pure canvas,
|
18
|
+
.pure video {
|
19
|
+
display: inline-block;
|
20
|
+
}
|
21
|
+
.pure audio:not([controls]) {
|
22
|
+
display: none;
|
23
|
+
height: 0;
|
24
|
+
}
|
25
|
+
.pure [hidden] {
|
26
|
+
display: none;
|
27
|
+
}
|
28
|
+
.pure {
|
29
|
+
font-size: 100%;
|
30
|
+
-ms-text-size-adjust: 100%;
|
31
|
+
-webkit-text-size-adjust: 100%;
|
32
|
+
}
|
33
|
+
.pure,
|
34
|
+
.pure button,
|
35
|
+
.pure input,
|
36
|
+
.pure select,
|
37
|
+
.pure textarea {
|
38
|
+
font-family: sans-serif;
|
39
|
+
}
|
40
|
+
.pure body {
|
41
|
+
margin: 0;
|
42
|
+
}
|
43
|
+
.pure a:focus {
|
44
|
+
outline: thin dotted;
|
45
|
+
}
|
46
|
+
.pure a:active,
|
47
|
+
.pure a:hover {
|
48
|
+
outline: 0;
|
49
|
+
}
|
50
|
+
.pure h1 {
|
51
|
+
font-size: 2em;
|
52
|
+
margin: 0.67em 0;
|
53
|
+
}
|
54
|
+
.pure h2 {
|
55
|
+
font-size: 1.5em;
|
56
|
+
margin: 0.83em 0;
|
57
|
+
}
|
58
|
+
.pure h3 {
|
59
|
+
font-size: 1.17em;
|
60
|
+
margin: 1em 0;
|
61
|
+
}
|
62
|
+
.pure h4 {
|
63
|
+
font-size: 1em;
|
64
|
+
margin: 1.33em 0;
|
65
|
+
}
|
66
|
+
.pure h5 {
|
67
|
+
font-size: 0.83em;
|
68
|
+
margin: 1.67em 0;
|
69
|
+
}
|
70
|
+
.pure h6 {
|
71
|
+
font-size: 0.67em;
|
72
|
+
margin: 2.33em 0;
|
73
|
+
}
|
74
|
+
.pure abbr[title] {
|
75
|
+
border-bottom: 1px dotted;
|
76
|
+
}
|
77
|
+
.pure b,
|
78
|
+
.pure strong {
|
79
|
+
font-weight: bold;
|
80
|
+
}
|
81
|
+
.pure blockquote {
|
82
|
+
margin: 1em 40px;
|
83
|
+
}
|
84
|
+
.pure dfn {
|
85
|
+
font-style: italic;
|
86
|
+
}
|
87
|
+
.pure hr {
|
88
|
+
-moz-box-sizing: content-box;
|
89
|
+
box-sizing: content-box;
|
90
|
+
height: 0;
|
91
|
+
}
|
92
|
+
.pure mark {
|
93
|
+
background: #ff0;
|
94
|
+
color: #000;
|
95
|
+
}
|
96
|
+
.pure p,
|
97
|
+
.pure pre {
|
98
|
+
margin: 1em 0;
|
99
|
+
}
|
100
|
+
.pure code,
|
101
|
+
.pure kbd,
|
102
|
+
.pure pre,
|
103
|
+
.pure samp {
|
104
|
+
font-family: monospace , serif;
|
105
|
+
_font-family: 'courier new' , monospace;
|
106
|
+
font-size: 1em;
|
107
|
+
}
|
108
|
+
.pure pre {
|
109
|
+
white-space: pre;
|
110
|
+
white-space: pre-wrap;
|
111
|
+
word-wrap: break-word;
|
112
|
+
}
|
113
|
+
.pure q {
|
114
|
+
quotes: none;
|
115
|
+
}
|
116
|
+
.pure q:before,
|
117
|
+
.pure q:after {
|
118
|
+
content: '';
|
119
|
+
content: none;
|
120
|
+
}
|
121
|
+
.pure small {
|
122
|
+
font-size: 80%;
|
123
|
+
}
|
124
|
+
.pure sub,
|
125
|
+
.pure sup {
|
126
|
+
font-size: 75%;
|
127
|
+
line-height: 0;
|
128
|
+
position: relative;
|
129
|
+
vertical-align: baseline;
|
130
|
+
}
|
131
|
+
.pure sup {
|
132
|
+
top: -0.5em;
|
133
|
+
}
|
134
|
+
.pure sub {
|
135
|
+
bottom: -0.25em;
|
136
|
+
}
|
137
|
+
.pure dl,
|
138
|
+
.pure menu,
|
139
|
+
.pure ol,
|
140
|
+
.pure ul {
|
141
|
+
margin: 1em 0;
|
142
|
+
}
|
143
|
+
.pure dd {
|
144
|
+
margin: 0 0 0 40px;
|
145
|
+
}
|
146
|
+
.pure menu,
|
147
|
+
.pure ol,
|
148
|
+
.pure ul {
|
149
|
+
padding: 0 0 0 40px;
|
150
|
+
}
|
151
|
+
.pure nav ul,
|
152
|
+
.pure nav ol {
|
153
|
+
list-style: none;
|
154
|
+
list-style-image: none;
|
155
|
+
}
|
156
|
+
.pure img {
|
157
|
+
border: 0;
|
158
|
+
-ms-interpolation-mode: bicubic;
|
159
|
+
}
|
160
|
+
.pure svg:not(:root) {
|
161
|
+
overflow: hidden;
|
162
|
+
}
|
163
|
+
.pure figure {
|
164
|
+
margin: 0;
|
165
|
+
}
|
166
|
+
.pure form {
|
167
|
+
margin: 0;
|
168
|
+
}
|
169
|
+
.pure fieldset {
|
170
|
+
border: 1px solid #c0c0c0;
|
171
|
+
margin: 0 2px;
|
172
|
+
padding: 0.35em 0.625em 0.75em;
|
173
|
+
}
|
174
|
+
.pure legend {
|
175
|
+
border: 0;
|
176
|
+
padding: 0;
|
177
|
+
white-space: normal;
|
178
|
+
}
|
179
|
+
.pure button,
|
180
|
+
.pure input,
|
181
|
+
.pure select,
|
182
|
+
.pure textarea {
|
183
|
+
font-size: 100%;
|
184
|
+
margin: 0;
|
185
|
+
vertical-align: baseline;
|
186
|
+
}
|
187
|
+
.pure button,
|
188
|
+
.pure input {
|
189
|
+
line-height: normal;
|
190
|
+
}
|
191
|
+
.pure button,
|
192
|
+
.pure select {
|
193
|
+
text-transform: none;
|
194
|
+
}
|
195
|
+
.pure button,
|
196
|
+
.pure input[type="button"],
|
197
|
+
.pure input[type="reset"],
|
198
|
+
.pure input[type="submit"] {
|
199
|
+
-webkit-appearance: button;
|
200
|
+
cursor: pointer;
|
201
|
+
}
|
202
|
+
.pure button[disabled],
|
203
|
+
.pure input[disabled] {
|
204
|
+
cursor: default;
|
205
|
+
}
|
206
|
+
.pure input[type="checkbox"],
|
207
|
+
.pure input[type="radio"] {
|
208
|
+
box-sizing: border-box;
|
209
|
+
padding: 0;
|
210
|
+
}
|
211
|
+
.pure input[type="search"] {
|
212
|
+
-webkit-appearance: textfield;
|
213
|
+
-moz-box-sizing: content-box;
|
214
|
+
-webkit-box-sizing: content-box;
|
215
|
+
box-sizing: content-box;
|
216
|
+
}
|
217
|
+
.pure input[type="search"]::-webkit-search-cancel-button,
|
218
|
+
.pure input[type="search"]::-webkit-search-decoration {
|
219
|
+
-webkit-appearance: none;
|
220
|
+
}
|
221
|
+
.pure button::-moz-focus-inner,
|
222
|
+
.pure input::-moz-focus-inner {
|
223
|
+
border: 0;
|
224
|
+
padding: 0;
|
225
|
+
}
|
226
|
+
.pure textarea {
|
227
|
+
overflow: auto;
|
228
|
+
vertical-align: top;
|
229
|
+
}
|
230
|
+
.pure table {
|
231
|
+
border-collapse: collapse;
|
232
|
+
border-spacing: 0;
|
233
|
+
}
|