shoestrap-rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/Gemfile +3 -0
  4. data/LICENSE.md +22 -0
  5. data/README.md +3 -0
  6. data/Rakefile +80 -0
  7. data/assets/stylesheets/_shoestrap.scss +23 -0
  8. data/assets/stylesheets/shoestrap/_grid.scss +84 -0
  9. data/assets/stylesheets/shoestrap/_mixins.scss +18 -0
  10. data/assets/stylesheets/shoestrap/_normalize.scss +427 -0
  11. data/assets/stylesheets/shoestrap/_print.scss +90 -0
  12. data/assets/stylesheets/shoestrap/_scaffolding.scss +161 -0
  13. data/assets/stylesheets/shoestrap/_type.scss +299 -0
  14. data/assets/stylesheets/shoestrap/_utilities.scss +21 -0
  15. data/assets/stylesheets/shoestrap/_variables.scss +240 -0
  16. data/assets/stylesheets/shoestrap/mixins/_background-variant.scss +12 -0
  17. data/assets/stylesheets/shoestrap/mixins/_clearfix.scss +22 -0
  18. data/assets/stylesheets/shoestrap/mixins/_grid-framework.scss +81 -0
  19. data/assets/stylesheets/shoestrap/mixins/_grid.scss +122 -0
  20. data/assets/stylesheets/shoestrap/mixins/_image.scss +33 -0
  21. data/assets/stylesheets/shoestrap/mixins/_reset-text.scss +18 -0
  22. data/assets/stylesheets/shoestrap/mixins/_tab-focus.scss +9 -0
  23. data/assets/stylesheets/shoestrap/mixins/_text-emphasis.scss +12 -0
  24. data/assets/stylesheets/shoestrap/mixins/_text-overflow.scss +8 -0
  25. data/assets/stylesheets/shoestrap/mixins/_vendor-prefixes.scss +222 -0
  26. data/lib/shoestrap-rails.rb +57 -0
  27. data/lib/shoestrap-rails/engine.rb +9 -0
  28. data/lib/shoestrap-rails/version.rb +3 -0
  29. data/shoestrap-rails.gemspec +35 -0
  30. data/test/compilation_test.rb +18 -0
  31. data/test/dummy_rails/README.rdoc +3 -0
  32. data/test/dummy_rails/Rakefile +6 -0
  33. data/test/dummy_rails/app/assets/images/.keep +0 -0
  34. data/test/dummy_rails/app/assets/javascripts/application.js +1 -0
  35. data/test/dummy_rails/app/assets/stylesheets/application.sass +1 -0
  36. data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
  37. data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
  38. data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
  39. data/test/dummy_rails/app/views/layouts/application.html.erb +14 -0
  40. data/test/dummy_rails/app/views/pages/root.html.slim +84 -0
  41. data/test/dummy_rails/config.ru +4 -0
  42. data/test/dummy_rails/config/application.rb +30 -0
  43. data/test/dummy_rails/config/boot.rb +5 -0
  44. data/test/dummy_rails/config/environment.rb +5 -0
  45. data/test/dummy_rails/config/environments/development.rb +23 -0
  46. data/test/dummy_rails/config/environments/production.rb +82 -0
  47. data/test/dummy_rails/config/environments/test.rb +38 -0
  48. data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
  49. data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
  50. data/test/dummy_rails/config/initializers/inflections.rb +16 -0
  51. data/test/dummy_rails/config/initializers/mime_types.rb +5 -0
  52. data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
  53. data/test/dummy_rails/config/initializers/session_store.rb +3 -0
  54. data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
  55. data/test/dummy_rails/config/locales/en.yml +3 -0
  56. data/test/dummy_rails/config/locales/es.yml +3 -0
  57. data/test/dummy_rails/config/routes.rb +3 -0
  58. data/test/dummy_rails/log/.keep +0 -0
  59. data/test/dummy_rails/log/production.log +0 -0
  60. data/test/dummy_rails/log/test.log +264 -0
  61. data/test/dummy_sass_only/Gemfile +4 -0
  62. data/test/dummy_sass_only/compile.rb +13 -0
  63. data/test/dummy_sass_only/import_all.sass +1 -0
  64. data/test/gemfiles/rails_head.gemfile +17 -0
  65. data/test/gemfiles/rails_head.gemfile.lock +214 -0
  66. data/test/gemfiles/sass_3_3.gemfile +6 -0
  67. data/test/gemfiles/sass_3_3.gemfile.lock +171 -0
  68. data/test/gemfiles/sass_3_4.gemfile +7 -0
  69. data/test/gemfiles/sass_3_4.gemfile.lock +171 -0
  70. data/test/gemfiles/sass_head.gemfile +6 -0
  71. data/test/gemfiles/sass_head.gemfile.lock +183 -0
  72. data/test/pages_test.rb +15 -0
  73. data/test/sass_test.rb +22 -0
  74. data/test/sprockets_rails_test.rb +27 -0
  75. data/test/support/dummy_rails_integration.rb +22 -0
  76. data/test/support/reporting.rb +27 -0
  77. data/test/test_helper.rb +36 -0
  78. data/test/test_helper_rails.rb +6 -0
  79. metadata +352 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 35a25319f7e686f906d8cc0a05972b92c55ac107
4
+ data.tar.gz: 1530464cc04a850b3a436233ace7bdc9173cfc02
5
+ SHA512:
6
+ metadata.gz: f91b748064ae9ed8c82fda740294536cab3c74323d4c87aeea9e93189b7c85000ef5dad9f2169e8b320718e892630cd86c19caad84f53dc19661545918b34c3b
7
+ data.tar.gz: 2da456d4eebd0eb4a709a3d10bbdfb31c21ed156823b33deefcba702a8ec1ef6508a6109bb80a4621ec3058d2b1f44a7bb6e956b5ea143bbf5de6fc1323070e4
@@ -0,0 +1,4 @@
1
+ .sass-cache
2
+ .sass-cache/*
3
+ tmp/*
4
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Bootstrap Copyright (c) 2013-2016 Twitter, Inc
4
+ Shoestrap Copyright (c) 2016 Jonathan Pike
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
@@ -0,0 +1,3 @@
1
+ # shoestrap
2
+
3
+ A small subset of [Bootstrap 3](https://github.com/twbs/bootstrap-sass), with only core reset, grid system, typographic, and layout components.
@@ -0,0 +1,80 @@
1
+ lib_path = File.join(File.dirname(__FILE__), 'lib')
2
+ $:.unshift(lib_path) unless $:.include?(lib_path)
3
+
4
+ require 'rake/testtask'
5
+ Rake::TestTask.new do |t|
6
+ t.libs << 'test'
7
+ t.test_files = FileList['test/**/*_test.rb']
8
+ t.verbose = true
9
+ end
10
+
11
+ desc 'Test all Gemfiles from test/*.gemfile'
12
+ task :test_all_gemfiles do
13
+ require 'term/ansicolor'
14
+ require 'pty'
15
+ require 'shellwords'
16
+ cmd = 'bundle install --quiet && bundle exec rake --trace'
17
+ statuses = Dir.glob('./test/gemfiles/*{[!.lock]}').map do |gemfile|
18
+ env = {'BUNDLE_GEMFILE' => gemfile}
19
+ cmd_with_env = " (#{env.map { |k, v| "export #{k}=#{Shellwords.escape v}" } * ' '}; #{cmd})"
20
+ $stderr.puts Term::ANSIColor.cyan("Testing\n#{cmd_with_env}")
21
+ PTY.spawn(env, cmd) do |r, _w, pid|
22
+ begin
23
+ r.each_line { |l| puts l }
24
+ rescue Errno::EIO
25
+ # Errno:EIO error means that the process has finished giving output.
26
+ ensure
27
+ ::Process.wait pid
28
+ end
29
+ end
30
+ [$? && $?.exitstatus == 0, cmd_with_env]
31
+ end
32
+ failed_cmds = statuses.reject(&:first).map { |(_status, cmd_with_env)| cmd_with_env }
33
+ if failed_cmds.empty?
34
+ $stderr.puts Term::ANSIColor.green('Tests pass with all gemfiles')
35
+ else
36
+ $stderr.puts Term::ANSIColor.red("Failing (#{failed_cmds.size} / #{statuses.size})\n#{failed_cmds * "\n"}")
37
+ exit 1
38
+ end
39
+ end
40
+
41
+ desc 'Dumps output to a CSS file for testing'
42
+ task :debug do
43
+ require 'sass'
44
+ path = Shoestrap.stylesheets_path
45
+ %w(shoestrap).each do |file|
46
+ engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
47
+ File.open("./#{file}.css", 'w') { |f| f.write(engine.render) }
48
+ end
49
+ end
50
+
51
+ desc 'Compile shoestrap to tmp/ (or first arg)'
52
+ task :compile, :css_path do |t, args|
53
+ require 'sass'
54
+ require 'term/ansicolor'
55
+
56
+ path = 'assets/stylesheets'
57
+ css_path = args.with_defaults(css_path: 'tmp')[:css_path]
58
+ puts Term::ANSIColor.bold "Compiling SCSS in #{path}"
59
+ Dir.mkdir(css_path) unless File.directory?(css_path)
60
+ %w(_shoestrap).each do |file|
61
+ save_path = "#{css_path}/#{file.sub(/(^|\/)?_+/, '\1').sub('/', '-')}.css"
62
+ puts Term::ANSIColor.cyan(" #{save_path}") + '...'
63
+ engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
64
+ css = engine.render
65
+ File.open(save_path, 'w') { |f| f.write css }
66
+ end
67
+ end
68
+
69
+ desc 'Start a dummy (test) Rails app server'
70
+ task :dummy_rails do
71
+ require 'rack'
72
+ require 'term/ansicolor'
73
+ port = ENV['PORT'] || 9292
74
+ puts %Q(Starting on #{Term::ANSIColor.cyan "http://localhost:#{port}"})
75
+ Rack::Server.start(
76
+ config: 'test/dummy_rails/config.ru',
77
+ Port: port)
78
+ end
79
+
80
+ task default: :test
@@ -0,0 +1,23 @@
1
+ /*!
2
+ * Shoestrap v0.0.1
3
+ * A small subset of
4
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
5
+ * Copyright 2011-2015 Twitter, Inc.
6
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
+ */
8
+
9
+ // Core variables and mixins
10
+ @import "shoestrap/variables";
11
+ @import "shoestrap/mixins";
12
+
13
+ // Reset
14
+ @import "shoestrap/normalize";
15
+ @import "shoestrap/print";
16
+
17
+ // Core CSS
18
+ @import "shoestrap/type";
19
+ @import "shoestrap/scaffolding";
20
+ @import "shoestrap/grid";
21
+
22
+ // Utility classes
23
+ @import "shoestrap/utilities";
@@ -0,0 +1,84 @@
1
+ //
2
+ // Grid system
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Container widths
7
+ //
8
+ // Set the container width, and override it for fixed navbars in media queries.
9
+
10
+ .container {
11
+ @include container-fixed;
12
+
13
+ @media (min-width: $screen-sm-min) {
14
+ width: $container-sm;
15
+ }
16
+ @media (min-width: $screen-md-min) {
17
+ width: $container-md;
18
+ }
19
+ @media (min-width: $screen-lg-min) {
20
+ width: $container-lg;
21
+ }
22
+ }
23
+
24
+
25
+ // Fluid container
26
+ //
27
+ // Utilizes the mixin meant for fixed width containers, but without any defined
28
+ // width for fluid, full width layouts.
29
+
30
+ .container-fluid {
31
+ @include container-fixed;
32
+ }
33
+
34
+
35
+ // Row
36
+ //
37
+ // Rows contain and clear the floats of your columns.
38
+
39
+ .row {
40
+ @include make-row;
41
+ }
42
+
43
+
44
+ // Columns
45
+ //
46
+ // Common styles for small and large grid columns
47
+
48
+ @include make-grid-columns;
49
+
50
+
51
+ // Extra small grid
52
+ //
53
+ // Columns, offsets, pushes, and pulls for extra small devices like
54
+ // smartphones.
55
+
56
+ @include make-grid(xs);
57
+
58
+
59
+ // Small grid
60
+ //
61
+ // Columns, offsets, pushes, and pulls for the small device range, from phones
62
+ // to tablets.
63
+
64
+ @media (min-width: $screen-sm-min) {
65
+ @include make-grid(sm);
66
+ }
67
+
68
+
69
+ // Medium grid
70
+ //
71
+ // Columns, offsets, pushes, and pulls for the desktop device range.
72
+
73
+ @media (min-width: $screen-md-min) {
74
+ @include make-grid(md);
75
+ }
76
+
77
+
78
+ // Large grid
79
+ //
80
+ // Columns, offsets, pushes, and pulls for the large desktop device range.
81
+
82
+ @media (min-width: $screen-lg-min) {
83
+ @include make-grid(lg);
84
+ }
@@ -0,0 +1,18 @@
1
+ // Mixins
2
+ // --------------------------------------------------
3
+
4
+ // Grid
5
+ @import "mixins/grid-framework";
6
+ @import "mixins/grid";
7
+
8
+ // Typography
9
+ @import "mixins/text-emphasis";
10
+ @import "mixins/text-overflow";
11
+ @import "mixins/reset-text";
12
+ @import "mixins/background-variant";
13
+
14
+ // Utilities
15
+ @import "mixins/clearfix";
16
+ @import "mixins/vendor-prefixes";
17
+ @import "mixins/tab-focus";
18
+ @import "mixins/image";
@@ -0,0 +1,427 @@
1
+ /*! normalize.css v3.0.2 | MIT License | git.io/normalize */
2
+
3
+ /**
4
+ * 1. Set default font family to sans-serif.
5
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
6
+ * user zoom.
7
+ */
8
+
9
+ html {
10
+ font-family: sans-serif; /* 1 */
11
+ -ms-text-size-adjust: 100%; /* 2 */
12
+ -webkit-text-size-adjust: 100%; /* 2 */
13
+ }
14
+
15
+ /**
16
+ * Remove default margin.
17
+ */
18
+
19
+ body {
20
+ margin: 0;
21
+ }
22
+
23
+ /* HTML5 display definitions
24
+ ========================================================================== */
25
+
26
+ /**
27
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
28
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
29
+ * and Firefox.
30
+ * Correct `block` display not defined for `main` in IE 11.
31
+ */
32
+
33
+ article,
34
+ aside,
35
+ details,
36
+ figcaption,
37
+ figure,
38
+ footer,
39
+ header,
40
+ hgroup,
41
+ main,
42
+ menu,
43
+ nav,
44
+ section,
45
+ summary {
46
+ display: block;
47
+ }
48
+
49
+ /**
50
+ * 1. Correct `inline-block` display not defined in IE 8/9.
51
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
52
+ */
53
+
54
+ audio,
55
+ canvas,
56
+ progress,
57
+ video {
58
+ display: inline-block; /* 1 */
59
+ vertical-align: baseline; /* 2 */
60
+ }
61
+
62
+ /**
63
+ * Prevent modern browsers from displaying `audio` without controls.
64
+ * Remove excess height in iOS 5 devices.
65
+ */
66
+
67
+ audio:not([controls]) {
68
+ display: none;
69
+ height: 0;
70
+ }
71
+
72
+ /**
73
+ * Address `[hidden]` styling not present in IE 8/9/10.
74
+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
75
+ */
76
+
77
+ [hidden],
78
+ template {
79
+ display: none;
80
+ }
81
+
82
+ /* Links
83
+ ========================================================================== */
84
+
85
+ /**
86
+ * Remove the gray background color from active links in IE 10.
87
+ */
88
+
89
+ a {
90
+ background-color: transparent;
91
+ }
92
+
93
+ /**
94
+ * Improve readability when focused and also mouse hovered in all browsers.
95
+ */
96
+
97
+ a:active,
98
+ a:hover {
99
+ outline: 0;
100
+ }
101
+
102
+ /* Text-level semantics
103
+ ========================================================================== */
104
+
105
+ /**
106
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
107
+ */
108
+
109
+ abbr[title] {
110
+ border-bottom: 1px dotted;
111
+ }
112
+
113
+ /**
114
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
115
+ */
116
+
117
+ b,
118
+ strong {
119
+ font-weight: bold;
120
+ }
121
+
122
+ /**
123
+ * Address styling not present in Safari and Chrome.
124
+ */
125
+
126
+ dfn {
127
+ font-style: italic;
128
+ }
129
+
130
+ /**
131
+ * Address variable `h1` font-size and margin within `section` and `article`
132
+ * contexts in Firefox 4+, Safari, and Chrome.
133
+ */
134
+
135
+ h1 {
136
+ font-size: 2em;
137
+ margin: 0.67em 0;
138
+ }
139
+
140
+ /**
141
+ * Address styling not present in IE 8/9.
142
+ */
143
+
144
+ mark {
145
+ background: #ff0;
146
+ color: #000;
147
+ }
148
+
149
+ /**
150
+ * Address inconsistent and variable font size in all browsers.
151
+ */
152
+
153
+ small {
154
+ font-size: 80%;
155
+ }
156
+
157
+ /**
158
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
159
+ */
160
+
161
+ sub,
162
+ sup {
163
+ font-size: 75%;
164
+ line-height: 0;
165
+ position: relative;
166
+ vertical-align: baseline;
167
+ }
168
+
169
+ sup {
170
+ top: -0.5em;
171
+ }
172
+
173
+ sub {
174
+ bottom: -0.25em;
175
+ }
176
+
177
+ /* Embedded content
178
+ ========================================================================== */
179
+
180
+ /**
181
+ * Remove border when inside `a` element in IE 8/9/10.
182
+ */
183
+
184
+ img {
185
+ border: 0;
186
+ }
187
+
188
+ /**
189
+ * Correct overflow not hidden in IE 9/10/11.
190
+ */
191
+
192
+ svg:not(:root) {
193
+ overflow: hidden;
194
+ }
195
+
196
+ /* Grouping content
197
+ ========================================================================== */
198
+
199
+ /**
200
+ * Address margin not present in IE 8/9 and Safari.
201
+ */
202
+
203
+ figure {
204
+ margin: 1em 40px;
205
+ }
206
+
207
+ /**
208
+ * Address differences between Firefox and other browsers.
209
+ */
210
+
211
+ hr {
212
+ -moz-box-sizing: content-box;
213
+ box-sizing: content-box;
214
+ height: 0;
215
+ }
216
+
217
+ /**
218
+ * Contain overflow in all browsers.
219
+ */
220
+
221
+ pre {
222
+ overflow: auto;
223
+ }
224
+
225
+ /**
226
+ * Address odd `em`-unit font size rendering in all browsers.
227
+ */
228
+
229
+ code,
230
+ kbd,
231
+ pre,
232
+ samp {
233
+ font-family: monospace, monospace;
234
+ font-size: 1em;
235
+ }
236
+
237
+ /* Forms
238
+ ========================================================================== */
239
+
240
+ /**
241
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
242
+ * styling of `select`, unless a `border` property is set.
243
+ */
244
+
245
+ /**
246
+ * 1. Correct color not being inherited.
247
+ * Known issue: affects color of disabled elements.
248
+ * 2. Correct font properties not being inherited.
249
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
250
+ */
251
+
252
+ button,
253
+ input,
254
+ optgroup,
255
+ select,
256
+ textarea {
257
+ color: inherit; /* 1 */
258
+ font: inherit; /* 2 */
259
+ margin: 0; /* 3 */
260
+ }
261
+
262
+ /**
263
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
264
+ */
265
+
266
+ button {
267
+ overflow: visible;
268
+ }
269
+
270
+ /**
271
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
272
+ * All other form control elements do not inherit `text-transform` values.
273
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
274
+ * Correct `select` style inheritance in Firefox.
275
+ */
276
+
277
+ button,
278
+ select {
279
+ text-transform: none;
280
+ }
281
+
282
+ /**
283
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
284
+ * and `video` controls.
285
+ * 2. Correct inability to style clickable `input` types in iOS.
286
+ * 3. Improve usability and consistency of cursor style between image-type
287
+ * `input` and others.
288
+ */
289
+
290
+ button,
291
+ html input[type="button"], /* 1 */
292
+ input[type="reset"],
293
+ input[type="submit"] {
294
+ -webkit-appearance: button; /* 2 */
295
+ cursor: pointer; /* 3 */
296
+ }
297
+
298
+ /**
299
+ * Re-set default cursor for disabled elements.
300
+ */
301
+
302
+ button[disabled],
303
+ html input[disabled] {
304
+ cursor: default;
305
+ }
306
+
307
+ /**
308
+ * Remove inner padding and border in Firefox 4+.
309
+ */
310
+
311
+ button::-moz-focus-inner,
312
+ input::-moz-focus-inner {
313
+ border: 0;
314
+ padding: 0;
315
+ }
316
+
317
+ /**
318
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
319
+ * the UA stylesheet.
320
+ */
321
+
322
+ input {
323
+ line-height: normal;
324
+ }
325
+
326
+ /**
327
+ * It's recommended that you don't attempt to style these elements.
328
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
329
+ *
330
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
331
+ * 2. Remove excess padding in IE 8/9/10.
332
+ */
333
+
334
+ input[type="checkbox"],
335
+ input[type="radio"] {
336
+ box-sizing: border-box; /* 1 */
337
+ padding: 0; /* 2 */
338
+ }
339
+
340
+ /**
341
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
342
+ * `font-size` values of the `input`, it causes the cursor style of the
343
+ * decrement button to change from `default` to `text`.
344
+ */
345
+
346
+ input[type="number"]::-webkit-inner-spin-button,
347
+ input[type="number"]::-webkit-outer-spin-button {
348
+ height: auto;
349
+ }
350
+
351
+ /**
352
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
353
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
354
+ * (include `-moz` to future-proof).
355
+ */
356
+
357
+ input[type="search"] {
358
+ -webkit-appearance: textfield; /* 1 */
359
+ -moz-box-sizing: content-box;
360
+ -webkit-box-sizing: content-box; /* 2 */
361
+ box-sizing: content-box;
362
+ }
363
+
364
+ /**
365
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
366
+ * Safari (but not Chrome) clips the cancel button when the search input has
367
+ * padding (and `textfield` appearance).
368
+ */
369
+
370
+ input[type="search"]::-webkit-search-cancel-button,
371
+ input[type="search"]::-webkit-search-decoration {
372
+ -webkit-appearance: none;
373
+ }
374
+
375
+ /**
376
+ * Define consistent border, margin, and padding.
377
+ */
378
+
379
+ fieldset {
380
+ border: 1px solid #c0c0c0;
381
+ margin: 0 2px;
382
+ padding: 0.35em 0.625em 0.75em;
383
+ }
384
+
385
+ /**
386
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
387
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
388
+ */
389
+
390
+ legend {
391
+ border: 0; /* 1 */
392
+ padding: 0; /* 2 */
393
+ }
394
+
395
+ /**
396
+ * Remove default vertical scrollbar in IE 8/9/10/11.
397
+ */
398
+
399
+ textarea {
400
+ overflow: auto;
401
+ }
402
+
403
+ /**
404
+ * Don't inherit the `font-weight` (applied by a rule above).
405
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
406
+ */
407
+
408
+ optgroup {
409
+ font-weight: bold;
410
+ }
411
+
412
+ /* Tables
413
+ ========================================================================== */
414
+
415
+ /**
416
+ * Remove most spacing between table cells.
417
+ */
418
+
419
+ table {
420
+ border-collapse: collapse;
421
+ border-spacing: 0;
422
+ }
423
+
424
+ td,
425
+ th {
426
+ padding: 0;
427
+ }