pure-sass 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Build Status](https://travis-ci.org/jamesotron/pure-sass.png?branch=master)](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
|
+
}
|