compass-h5bp 0.0.2 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -2,4 +2,5 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
- .rvmrc
5
+ .rvmrc
6
+ test/project/css/*.css
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Compass H5bp
2
2
  =========================
3
3
 
4
- This is a Compass extension of Html5 mixins extracted from v2 on Html5 Boilerplate
4
+ This is a Compass extension of Html5 mixins extracted from v3 on Html5 Boilerplate
5
5
  by Paul Irish and Divya Manian. This gem provides only the CSS mixins and not the
6
6
  html or javascript templates. This makes sense because any implementation of
7
7
  Html5 Boilerplate should be specific to the language and framework it's built on.
@@ -37,6 +37,7 @@ Then include the mixins that make up the Normalize portion of Html5
37
37
  Boilerplate's styles. http://necolas.github.com/normalize.css
38
38
 
39
39
  @include h5bp-display;
40
+ @include h5bp-selection;
40
41
  @include h5bp-base;
41
42
  @include h5bp-links;
42
43
  @include h5bp-typography;
@@ -52,6 +53,10 @@ Then (optionally) let H5bp define some semantic helper classes. (e.g. `.clearfix
52
53
 
53
54
  @include h5bp-helpers;
54
55
 
56
+ You can include the default Html5 Boilerplate Chrome Frame notification styling:
57
+
58
+ @include h5bp-chromeframe;
59
+
55
60
  Finally, you can include H5bp's predefined print style media query:
56
61
 
57
62
  @include h5bp-media;
data/Rakefile CHANGED
@@ -1 +1,9 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new :test do |t|
5
+ t.libs << 'lib'
6
+ t.test_files = FileList['test/**/*_test.rb']
7
+ end
8
+
9
+ task :default => :test
@@ -1,6 +1,6 @@
1
1
  module Compass
2
2
  module H5bp
3
- VERSION = "0.0.2"
4
- HTML5_BOILERPLATE_VERSION = "2.0"
3
+ VERSION = "0.0.5"
4
+ HTML5_BOILERPLATE_VERSION = "3.0.2"
5
5
  end
6
6
  end
@@ -7,5 +7,6 @@
7
7
  // Detailed information about this CSS: h5bp.com/css
8
8
 
9
9
  @import "h5bp/normalize";
10
+ @import "h5bp/chromeframe";
10
11
  @import "h5bp/helpers";
11
- @import "h5bp/media";
12
+ @import "h5bp/media";
@@ -0,0 +1,7 @@
1
+ //
2
+ // Chrome Frame Prompt
3
+ //
4
+
5
+ @mixin h5bp-chromeframe {
6
+ .chromeframe { margin: 0.2em 0; background: #ccc; color: black; padding: 0.2em 0; }
7
+ }
@@ -9,6 +9,8 @@
9
9
  .hidden { @include hidden; }
10
10
 
11
11
  .visuallyhidden { @include visually-hidden; }
12
+
13
+ .invisible { @include invisible; }
12
14
 
13
15
  .clearfix { @include micro-clearfix; }
14
16
 
@@ -52,5 +54,5 @@
52
54
  @mixin micro-clearfix {
53
55
  &:before, &:after { content: ""; display: table; }
54
56
  &:after { clear: both; }
55
- *zoom: 1;
57
+ & { *zoom: 1; }
56
58
  }
@@ -4,11 +4,13 @@
4
4
 
5
5
  $line-height: 1.4 !default;
6
6
  $font-color: #222 !default;
7
+ $font-family: sans-serif !default;
8
+ $font-size: 1em !default;
7
9
  $link-color: #00e !default;
8
10
  $link-hover-color: #06e !default;
9
11
  $link-visited-color: #551a8b !default;
10
12
  $selected-font-color: #fff !default;
11
- $selected-background-color: #ff5e99 !default;
13
+ $selected-background-color: #fe57a1 !default;
12
14
  $invalid-background-color: #f0dddd !default;
13
15
 
14
16
 
@@ -41,14 +43,13 @@ $invalid-background-color: #f0dddd !default;
41
43
  @mixin h5bp-base {
42
44
 
43
45
  // 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units
44
- // 2. Force vertical scrollbar in non-IE
45
- // 3. Prevent iOS text size adjust on device orientation change, without disabling user zoom: h5bp.com/g
46
+ // 2. Prevent iOS text size adjust on device orientation change, without disabling user zoom: h5bp.com/g
46
47
 
47
- html { font-size: 100%; overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
48
+ html { font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
48
49
 
49
- body { margin: 0; font-size: 1em; line-height: $line-height; }
50
+ html, button, input, select, textarea { font-family: $font-family; color: $font-color; }
50
51
 
51
- body, button, input, select, textarea { font-family: sans-serif; color: $font-color; }
52
+ body { margin: 0; font-size: $font-size; line-height: $line-height; }
52
53
 
53
54
  }
54
55
 
@@ -128,7 +129,7 @@ $invalid-background-color: #f0dddd !default;
128
129
  @mixin h5bp-embeds {
129
130
 
130
131
  // 1. Improve image quality when scaled in IE7: h5bp.com/d
131
- // 2. Remove the gap between images and borders on image containers: h5bp.com/e
132
+ // 2. Remove the gap between images and borders on image containers: h5bp.com/i/440
132
133
 
133
134
  img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; }
134
135
 
@@ -159,7 +160,7 @@ $invalid-background-color: #f0dddd !default;
159
160
  // 1. Correct color not inheriting in IE6/7/8/9
160
161
  // 2. Correct alignment displayed oddly in IE6/7
161
162
 
162
- legend { border: 0; *margin-left: -7px; padding: 0; }
163
+ legend { border: 0; *margin-left: -7px; padding: 0; white-space: normal; }
163
164
 
164
165
  // 1. Correct font-size not inheriting in all browsers
165
166
  // 2. Remove margins in FF3/4 S5 Chrome
@@ -177,11 +178,15 @@ $invalid-background-color: #f0dddd !default;
177
178
 
178
179
  button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; *overflow: visible; }
179
180
 
181
+ // Re-set default cursor for disabled elements
182
+
183
+ button[disabled], input[disabled] { cursor: default; }
184
+
180
185
  // Consistent box sizing and appearance
181
186
 
182
- input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; }
187
+ input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; *width: 13px; *height: 13px; }
183
188
  input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
184
- input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
189
+ input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
185
190
 
186
191
  // Remove inner padding and border in FF3/4: h5bp.com/l
187
192
 
@@ -0,0 +1,42 @@
1
+ require 'test/unit'
2
+ require 'compass'
3
+ require 'compass-h5bp'
4
+ require 'sass/plugin'
5
+ require 'fileutils'
6
+
7
+ PROJECT_DIR = File.join(File.dirname(__FILE__), 'project')
8
+ ORIGINAL_OUTPUT_PATH = File.join(PROJECT_DIR, 'css', 'original.css')
9
+ TEST_OUTPUT_PATH = File.join(PROJECT_DIR, 'css', 'test.css')
10
+
11
+ class CompassH5bpTest < Test::Unit::TestCase
12
+
13
+ def test_compass_version_matches_original
14
+ FileUtils.rm_f ORIGINAL_OUTPUT_PATH
15
+ FileUtils.rm_f TEST_OUTPUT_PATH
16
+ Compass.reset_configuration!
17
+ Compass.configuration do |config|
18
+ config.environment = :production
19
+ config.project_path = PROJECT_DIR
20
+ config.sass_dir = 'sass'
21
+ config.css_dir = 'css'
22
+ config.cache = false
23
+ config.output_style = :compact
24
+ config.line_comments = false
25
+ end
26
+ args = Compass.configuration.to_compiler_arguments(:logger => Compass::NullLogger.new)
27
+ compiler = Compass::Compiler.new *args
28
+ compiler.run
29
+ original_css = read_and_normalize(ORIGINAL_OUTPUT_PATH)
30
+ test_css = read_and_normalize(TEST_OUTPUT_PATH)
31
+ assert_equal original_css, test_css
32
+ end
33
+
34
+ def read_and_normalize(file)
35
+ File.open(file).read.
36
+ gsub(/\/\*.+?\*\/\n/m, '').
37
+ gsub(/\n+/, "\n").
38
+ gsub(/\n +/, "\n").
39
+ gsub(/color: white;/, 'color: #ffffff;').
40
+ gsub(/#(.)(.)(.)\b/, '#\1\1\2\2\3\3')
41
+ end
42
+ end
File without changes
@@ -0,0 +1,295 @@
1
+ /*
2
+ * HTML5 Boilerplate
3
+ *
4
+ * What follows is the result of much research on cross-browser styling.
5
+ * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
6
+ * Kroc Camen, and the H5BP dev community and team.
7
+ *
8
+ * Detailed information about this CSS: h5bp.com/css
9
+ *
10
+ * ==|== normalize ==========================================================
11
+ */
12
+
13
+
14
+ /* =============================================================================
15
+ HTML5 display definitions
16
+ ========================================================================== */
17
+
18
+ article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; }
19
+ audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
20
+ audio:not([controls]) { display: none; }
21
+ [hidden] { display: none; }
22
+
23
+
24
+ /* =============================================================================
25
+ Base
26
+ ========================================================================== */
27
+
28
+ /*
29
+ * 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units
30
+ * 2. Prevent iOS text size adjust on device orientation change, without disabling user zoom: h5bp.com/g
31
+ */
32
+
33
+ html { font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
34
+
35
+ html, button, input, select, textarea { font-family: sans-serif; color: #222; }
36
+
37
+ body { margin: 0; font-size: 1em; line-height: 1.4; }
38
+
39
+ /*
40
+ * Remove text-shadow in selection highlight: h5bp.com/i
41
+ * These selection declarations have to be separate
42
+ * Also: hot pink! (or customize the background color to match your design)
43
+ */
44
+
45
+ ::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; }
46
+ ::selection { background: #fe57a1; color: #fff; text-shadow: none; }
47
+
48
+
49
+ /* =============================================================================
50
+ Links
51
+ ========================================================================== */
52
+
53
+ a { color: #00e; }
54
+ a:visited { color: #551a8b; }
55
+ a:hover { color: #06e; }
56
+ a:focus { outline: thin dotted; }
57
+
58
+ /* Improve readability when focused and hovered in all browsers: h5bp.com/h */
59
+ a:hover, a:active { outline: 0; }
60
+
61
+
62
+ /* =============================================================================
63
+ Typography
64
+ ========================================================================== */
65
+
66
+ abbr[title] { border-bottom: 1px dotted; }
67
+
68
+ b, strong { font-weight: bold; }
69
+
70
+ blockquote { margin: 1em 40px; }
71
+
72
+ dfn { font-style: italic; }
73
+
74
+ hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
75
+
76
+ ins { background: #ff9; color: #000; text-decoration: none; }
77
+
78
+ mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; }
79
+
80
+ /* Redeclare monospace font family: h5bp.com/j */
81
+ pre, code, kbd, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; }
82
+
83
+ /* Improve readability of pre-formatted text in all browsers */
84
+ pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
85
+
86
+ q { quotes: none; }
87
+ q:before, q:after { content: ""; content: none; }
88
+
89
+ small { font-size: 85%; }
90
+
91
+ /* Position subscript and superscript content without affecting line-height: h5bp.com/k */
92
+ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
93
+ sup { top: -0.5em; }
94
+ sub { bottom: -0.25em; }
95
+
96
+
97
+ /* =============================================================================
98
+ Lists
99
+ ========================================================================== */
100
+
101
+ ul, ol { margin: 1em 0; padding: 0 0 0 40px; }
102
+ dd { margin: 0 0 0 40px; }
103
+ nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; }
104
+
105
+
106
+ /* =============================================================================
107
+ Embedded content
108
+ ========================================================================== */
109
+
110
+ /*
111
+ * 1. Improve image quality when scaled in IE7: h5bp.com/d
112
+ * 2. Remove the gap between images and borders on image containers: h5bp.com/i/440
113
+ */
114
+
115
+ img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; }
116
+
117
+ /*
118
+ * Correct overflow not hidden in IE9
119
+ */
120
+
121
+ svg:not(:root) { overflow: hidden; }
122
+
123
+
124
+ /* =============================================================================
125
+ Figures
126
+ ========================================================================== */
127
+
128
+ figure { margin: 0; }
129
+
130
+
131
+ /* =============================================================================
132
+ Forms
133
+ ========================================================================== */
134
+
135
+ form { margin: 0; }
136
+ fieldset { border: 0; margin: 0; padding: 0; }
137
+
138
+ /* Indicate that 'label' will shift focus to the associated form element */
139
+ label { cursor: pointer; }
140
+
141
+ /*
142
+ * 1. Correct color not inheriting in IE6/7/8/9
143
+ * 2. Correct alignment displayed oddly in IE6/7
144
+ */
145
+
146
+ legend { border: 0; *margin-left: -7px; padding: 0; white-space: normal; }
147
+
148
+ /*
149
+ * 1. Correct font-size not inheriting in all browsers
150
+ * 2. Remove margins in FF3/4 S5 Chrome
151
+ * 3. Define consistent vertical alignment display in all browsers
152
+ */
153
+
154
+ button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; }
155
+
156
+ /*
157
+ * 1. Define line-height as normal to match FF3/4 (set using !important in the UA stylesheet)
158
+ */
159
+
160
+ button, input { line-height: normal; }
161
+
162
+ /*
163
+ * 1. Display hand cursor for clickable form elements
164
+ * 2. Allow styling of clickable form elements in iOS
165
+ * 3. Correct inner spacing displayed oddly in IE7 (doesn't effect IE6)
166
+ */
167
+
168
+ button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; *overflow: visible; }
169
+
170
+ /*
171
+ * Re-set default cursor for disabled elements
172
+ */
173
+
174
+ button[disabled], input[disabled] { cursor: default; }
175
+
176
+ /*
177
+ * Consistent box sizing and appearance
178
+ */
179
+
180
+ input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; *width: 13px; *height: 13px; }
181
+ input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
182
+ input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
183
+
184
+ /*
185
+ * Remove inner padding and border in FF3/4: h5bp.com/l
186
+ */
187
+
188
+ button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
189
+
190
+ /*
191
+ * 1. Remove default vertical scrollbar in IE6/7/8/9
192
+ * 2. Allow only vertical resizing
193
+ */
194
+
195
+ textarea { overflow: auto; vertical-align: top; resize: vertical; }
196
+
197
+ /* Colors for form validity */
198
+ input:valid, textarea:valid { }
199
+ input:invalid, textarea:invalid { background-color: #f0dddd; }
200
+
201
+
202
+ /* =============================================================================
203
+ Tables
204
+ ========================================================================== */
205
+
206
+ table { border-collapse: collapse; border-spacing: 0; }
207
+ td { vertical-align: top; }
208
+
209
+
210
+ /* =============================================================================
211
+ Chrome Frame Prompt
212
+ ========================================================================== */
213
+
214
+ .chromeframe { margin: 0.2em 0; background: #ccc; color: black; padding: 0.2em 0; }
215
+
216
+
217
+ /* ==|== primary styles =====================================================
218
+ Author:
219
+ ========================================================================== */
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+ /* ==|== media queries ======================================================
237
+ EXAMPLE Media Query for Responsive Design.
238
+ This example overrides the primary ('mobile first') styles
239
+ Modify as content requires.
240
+ ========================================================================== */
241
+
242
+ @media only screen and (min-width: 35em) {
243
+ /* Style adjustments for viewports that meet the condition */
244
+ /* HACK needed to make Sass compile correctly */
245
+ body { margin: 0; }
246
+ }
247
+
248
+
249
+
250
+ /* ==|== non-semantic helper classes ========================================
251
+ Please define your styles before this section.
252
+ ========================================================================== */
253
+
254
+ /* For image replacement */
255
+ .ir { display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; *line-height: 0; }
256
+ .ir br { display: none; }
257
+
258
+ /* Hide from both screenreaders and browsers: h5bp.com/u */
259
+ .hidden { display: none !important; visibility: hidden; }
260
+
261
+ /* Hide only visually, but have it available for screenreaders: h5bp.com/v */
262
+ .visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
263
+
264
+ /* Extends the .visuallyhidden class to allow the element to be focusable when navigated to via the keyboard: h5bp.com/p */
265
+ .visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
266
+
267
+ /* Hide visually and from screenreaders, but maintain layout */
268
+ .invisible { visibility: hidden; }
269
+
270
+ /* Contain floats: h5bp.com/q */
271
+ .clearfix:before, .clearfix:after { content: ""; display: table; }
272
+ .clearfix:after { clear: both; }
273
+ .clearfix { *zoom: 1; }
274
+
275
+
276
+
277
+ /* ==|== print styles =======================================================
278
+ Print styles.
279
+ Inlined to avoid required HTTP connection: h5bp.com/r
280
+ ========================================================================== */
281
+
282
+ @media print {
283
+ * { background: transparent !important; color: black !important; box-shadow:none !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Black prints faster: h5bp.com/s */
284
+ a, a:visited { text-decoration: underline; }
285
+ a[href]:after { content: " (" attr(href) ")"; }
286
+ abbr[title]:after { content: " (" attr(title) ")"; }
287
+ .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */
288
+ pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
289
+ thead { display: table-header-group; } /* h5bp.com/t */
290
+ tr, img { page-break-inside: avoid; }
291
+ img { max-width: 100% !important; }
292
+ @page { margin: 0.5cm; }
293
+ p, h2, h3 { orphans: 3; widows: 3; }
294
+ h2, h3 { page-break-after: avoid; }
295
+ }
@@ -0,0 +1,13 @@
1
+ @import "h5bp";
2
+
3
+ @include h5bp-normalize;
4
+ @include h5bp-chromeframe;
5
+
6
+ @media only screen and (min-width: 35em) {
7
+ /* Style adjustments for viewports that meet the condition */
8
+ /* HACK needed to make Sass compile correctly */
9
+ body { margin: 0; }
10
+ }
11
+
12
+ @include h5bp-helpers;
13
+ @include h5bp-media;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compass-h5bp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-11 00:00:00.000000000 -08:00
12
+ date: 2012-02-26 00:00:00.000000000 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: compass
17
- requirement: &2152723460 !ruby/object:Gem::Requirement
17
+ requirement: &2168545700 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2152723460
25
+ version_requirements: *2168545700
26
26
  description: ! ' Compass extension of Html5 mixins extracted from v2 of Paul Irish''s
27
27
  Html5 Boilerplate project '
28
28
  email:
@@ -41,9 +41,14 @@ files:
41
41
  - lib/compass/h5bp.rb
42
42
  - lib/compass/h5bp/version.rb
43
43
  - stylesheets/_h5bp.scss
44
+ - stylesheets/h5bp/_chromeframe.scss
44
45
  - stylesheets/h5bp/_helpers.scss
45
46
  - stylesheets/h5bp/_media.scss
46
47
  - stylesheets/h5bp/_normalize.scss
48
+ - test/compass_h5bp_test.rb
49
+ - test/project/css/.gitkeep
50
+ - test/project/sass/original.scss
51
+ - test/project/sass/test.scss
47
52
  has_rdoc: true
48
53
  homepage: http://rubygems.org/gems/compass-h5bp
49
54
  licenses: []
@@ -69,4 +74,8 @@ rubygems_version: 1.6.2
69
74
  signing_key:
70
75
  specification_version: 3
71
76
  summary: Compass extension for Html5 Boilerplate v2.0
72
- test_files: []
77
+ test_files:
78
+ - test/compass_h5bp_test.rb
79
+ - test/project/css/.gitkeep
80
+ - test/project/sass/original.scss
81
+ - test/project/sass/test.scss