neat 1.9.1 → 2.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -4
  3. data/.hound.yml +5 -0
  4. data/.npmignore +0 -4
  5. data/.scss-lint.yml +3 -1
  6. data/CHANGELOG.md +45 -23
  7. data/CONTRIBUTING.md +12 -0
  8. data/Gemfile +1 -2
  9. data/Gulpfile.js +5 -6
  10. data/LICENSE.md +1 -1
  11. data/README.md +26 -163
  12. data/RELEASING.md +27 -0
  13. data/Rakefile +3 -13
  14. data/bower.json +8 -9
  15. data/circle.yml +13 -0
  16. data/contrib/base/_grids.scss +4 -0
  17. data/contrib/base/_variables.scss +8 -0
  18. data/contrib/index.html +68 -223
  19. data/contrib/patterns/_box.scss +11 -0
  20. data/contrib/patterns/_global.scss +5 -0
  21. data/contrib/patterns/_grid-media.scss +52 -0
  22. data/contrib/patterns/_grid-nested.scss +7 -0
  23. data/contrib/patterns/_grid-push.scss +7 -0
  24. data/contrib/patterns/_grid-shift.scss +7 -0
  25. data/contrib/patterns/_grid.scss +31 -0
  26. data/contrib/styles.scss +12 -293
  27. data/core/_neat.scss +20 -0
  28. data/core/neat/functions/_neat-column-default.scss +23 -0
  29. data/core/neat/functions/_neat-column-ratio.scss +24 -0
  30. data/core/neat/functions/_neat-column-width.scss +25 -0
  31. data/core/neat/functions/_neat-parse-columns.scss +22 -0
  32. data/core/neat/functions/_neat-parse-media.scss +20 -0
  33. data/core/neat/functions/_retrieve-neat-settings.scss +18 -0
  34. data/core/neat/mixins/_grid-column.scss +29 -0
  35. data/{app/assets/stylesheets/mixins/_clearfix.scss → core/neat/mixins/_grid-container.scss} +5 -5
  36. data/core/neat/mixins/_grid-media.scss +50 -0
  37. data/core/neat/mixins/_grid-push.scss +32 -0
  38. data/core/neat/mixins/_grid-shift.scss +31 -0
  39. data/core/neat/settings/_settings.scss +41 -0
  40. data/index.js +1 -1
  41. data/lib/neat.rb +5 -18
  42. data/lib/neat/generator.rb +1 -1
  43. data/lib/neat/version.rb +1 -1
  44. data/neat.gemspec +27 -33
  45. data/package.json +5 -4
  46. data/spec/.keep +0 -0
  47. data/spec/fixtures/_setup.scss +1 -0
  48. data/spec/fixtures/functions/neat-column-default.scss +22 -0
  49. data/spec/fixtures/functions/neat-column-width.scss +30 -0
  50. data/spec/fixtures/functions/neat-parse-media.scss +9 -0
  51. data/spec/fixtures/functions/retrieve-neat-settings.scss +22 -0
  52. data/spec/fixtures/mixins/grid-column.scss +57 -0
  53. data/spec/fixtures/mixins/grid-container.scss +5 -0
  54. data/spec/fixtures/mixins/grid-push.scss +38 -0
  55. data/spec/fixtures/mixins/grid-shift.scss +38 -0
  56. data/spec/neat/functions/neat_column_default_spec.rb +35 -0
  57. data/spec/neat/functions/neat_column_width_spec.rb +47 -0
  58. data/spec/neat/functions/neat_parse_media_spec.rb +23 -0
  59. data/spec/neat/functions/retrieve_neat_settings_spec.rb +35 -0
  60. data/spec/neat/mixins/grid_column_spec.rb +101 -0
  61. data/spec/neat/mixins/grid_container_spec.rb +17 -0
  62. data/spec/neat/mixins/grid_push_spec.rb +59 -0
  63. data/spec/neat/mixins/grid_shift_spec.rb +59 -0
  64. data/spec/support/matchers/have_ruleset.rb +20 -0
  65. data/spec/support/matchers/have_value.rb +9 -7
  66. data/spec/support/parser_support.rb +8 -1
  67. data/spec/support/sass_support.rb +1 -1
  68. metadata +76 -153
  69. data/.rspec +0 -1
  70. data/.ruby-version +0 -1
  71. data/.travis.yml +0 -10
  72. data/app/assets/stylesheets/_neat-helpers.scss +0 -11
  73. data/app/assets/stylesheets/_neat.scss +0 -24
  74. data/app/assets/stylesheets/functions/_new-breakpoint.scss +0 -49
  75. data/app/assets/stylesheets/functions/_private.scss +0 -154
  76. data/app/assets/stylesheets/grid/_box-sizing.scss +0 -15
  77. data/app/assets/stylesheets/grid/_direction-context.scss +0 -33
  78. data/app/assets/stylesheets/grid/_display-context.scss +0 -28
  79. data/app/assets/stylesheets/grid/_fill-parent.scss +0 -22
  80. data/app/assets/stylesheets/grid/_media.scss +0 -92
  81. data/app/assets/stylesheets/grid/_omega.scss +0 -112
  82. data/app/assets/stylesheets/grid/_outer-container.scss +0 -34
  83. data/app/assets/stylesheets/grid/_pad.scss +0 -25
  84. data/app/assets/stylesheets/grid/_private.scss +0 -35
  85. data/app/assets/stylesheets/grid/_reset-display.scss +0 -14
  86. data/app/assets/stylesheets/grid/_row.scss +0 -45
  87. data/app/assets/stylesheets/grid/_shift.scss +0 -50
  88. data/app/assets/stylesheets/grid/_span-columns.scss +0 -94
  89. data/app/assets/stylesheets/grid/_to-deprecate.scss +0 -81
  90. data/app/assets/stylesheets/grid/_visual-grid.scss +0 -42
  91. data/app/assets/stylesheets/settings/_disable-warnings.scss +0 -13
  92. data/app/assets/stylesheets/settings/_grid.scss +0 -51
  93. data/app/assets/stylesheets/settings/_visual-grid.scss +0 -27
  94. data/lib/neat/engine.rb +0 -5
  95. data/lib/tasks/install.rake +0 -19
  96. data/sache.json +0 -5
  97. data/spec/neat/columns_spec.rb +0 -73
  98. data/spec/neat/container_spec.rb +0 -21
  99. data/spec/neat/default_spec.rb +0 -15
  100. data/spec/neat/direction_spec.rb +0 -19
  101. data/spec/neat/display_spec.rb +0 -19
  102. data/spec/neat/media_spec.rb +0 -55
  103. data/spec/neat/new_breakpoint_spec.rb +0 -17
  104. data/spec/neat/omega_spec.rb +0 -66
  105. data/spec/neat/pad_spec.rb +0 -32
  106. data/spec/neat/row_spec.rb +0 -39
  107. data/spec/neat/shift_spec.rb +0 -41
  108. data/test/_setup.scss +0 -2
  109. data/test/default.scss +0 -1
  110. data/test/direction-context.scss +0 -13
  111. data/test/display-context.scss +0 -15
  112. data/test/media.scss +0 -39
  113. data/test/new-breakpoint.scss +0 -13
  114. data/test/omega.scss +0 -29
  115. data/test/outer-container.scss +0 -11
  116. data/test/pad.scss +0 -17
  117. data/test/row.scss +0 -26
  118. data/test/shift.scss +0 -36
  119. data/test/span-columns.scss +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 91868c40d6ef8e7fb48584bdfd850b726cb3ece9
4
- data.tar.gz: 66e2145a8765ef24a20636cf025dd13e4c8c6f96
3
+ metadata.gz: 110fa26ad3c105db28d667bf2258b342e374db69
4
+ data.tar.gz: bdd7576a1b0f4d0a0f0bbc18988366711115a587
5
5
  SHA512:
6
- metadata.gz: 34cca7868e28afff897994c557da2ca4fec1456d1787975bc64f8e88e8c1197f2bb823dc54cf66a61645086f2c029f535ea58dc70ac30fe3fa656478493d015d
7
- data.tar.gz: 003fdd0fa6be8d75e5c398be588c2ec5e6dd89df5467d271223640a75d80c1ff5c5b7a4dfb94681582bb2cdb14672d329bdd61ee4a36aea1aba3d858b532c639
6
+ metadata.gz: 0b9b5db6ca0f9db09b2570c80a4c3e3f99bc5e181ce9e01d303940273460a4a8c0fe167c459a44e122a536ec789c45453afc18fb710e8102ac83642bedce99bd
7
+ data.tar.gz: 46bc3ad0014c093d8679044070a0e720996056a2e082dfa708e4989c943cb258185b18f454269a08f1db38b7a55d580b1f224c9e3f9055c3f9c44f9e450f35c3
data/.gitignore CHANGED
@@ -1,9 +1,9 @@
1
- .DS_store
2
- .sass-cache
3
1
  *gem
4
2
  *swp
3
+ .DS_store
4
+ .sass-cache
5
+ contrib/*.css
5
6
  Gemfile.lock
7
+ node_modules
6
8
  public
7
9
  tmp
8
- contrib/*.css
9
- node_modules
@@ -0,0 +1,5 @@
1
+ ruby:
2
+ enabled: true
3
+ scss:
4
+ config_file: .scss-lint.yml
5
+ enabled: true
data/.npmignore CHANGED
@@ -1,8 +1,6 @@
1
1
  .gitignore
2
- .rspec
3
2
  .sass-cache
4
3
  .scss-lint.yml
5
- .travis.yml
6
4
  _site
7
5
  bin/
8
6
  bower.json
@@ -14,6 +12,4 @@ neat.gemspec
14
12
  NEWS.md
15
13
  pkg/
16
14
  Rakefile
17
- sache.json
18
15
  spec/
19
- test/
@@ -1,5 +1,7 @@
1
1
  scss_files: "**/*.scss"
2
2
 
3
+ severity: warning
4
+
3
5
  linters:
4
6
  BangFormat:
5
7
  enabled: true
@@ -147,7 +149,7 @@ linters:
147
149
  max_depth: 2
148
150
 
149
151
  SelectorFormat:
150
- enabled: false
152
+ enabled: true
151
153
  convention: hyphenated_BEM
152
154
 
153
155
  Shorthand:
@@ -1,34 +1,57 @@
1
- ## [1.9.1] - 2018-09-11
1
+ # Change Log
2
2
 
3
- ### Fixed
3
+ All notable changes to this project will be documented in this file. This
4
+ project adheres to [Semantic Versioning](http://semver.org).
4
5
 
5
- - Fix Sass warning about "&&" vs "and" ([#646])
6
-
7
- [#646]: https://github.com/thoughtbot/neat/pull/646
8
-
9
- ## [1.9.0] - 2017-06-27
6
+ ## [Unreleased]
10
7
 
11
8
  ### Added
12
9
 
13
- - Add support for complex `nth-child` selectors in `omega()`. ([#340])
10
+ - Added `$neat-grid` map to store user defined default grid properties
11
+ - Added core grid functionality in `grid-column`
12
+ - Added improved documentation and releasing information
13
+ - Added `grid-container` for floated grid which contains a simple clearfix
14
+ - Added `grid-push` functionality
15
+ - Added `grid-shift` functionality
16
+ - Added `grid-media` to allow the creation of media queries with custom grids
14
17
 
15
18
  ### Changed
16
19
 
17
- - The background color for visual grid columns now alternates. ([#373])
18
- - Update node-sass dependency to 4.1.1. ([#520])
20
+ - Use `core/` as the primary Neat source directory
19
21
 
20
- ### Fixed
21
-
22
- - Removed unnecessary deprecation warning when using the `reset-display` mixin.
23
- ([#456])
24
- - The description of the `remove` CLI command now correctly outputs "remove".
25
- ([#451])
22
+ ### Removed
26
23
 
27
- [#340]: https://github.com/thoughtbot/neat/pull/340
28
- [#373]: https://github.com/thoughtbot/neat/pull/373
29
- [#451]: https://github.com/thoughtbot/neat/pull/451
30
- [#456]: https://github.com/thoughtbot/neat/pull/456
31
- [#520]: https://github.com/thoughtbot/neat/pull/520
24
+ - Removed all previous Neat Sass
25
+ - Mixins
26
+ - `direction-context` has been removed
27
+ - `display-context` has been removed
28
+ - `fill-parent` has been removed
29
+ - `media` has been removed
30
+ - `omega` has been removed
31
+ - `outer-container` has been removed
32
+ - `pad` has been removed
33
+ - `row` has been removed
34
+ - `shift` has been removed
35
+ - `shift-in-context` has been removed
36
+ - `span-columns` has been removed
37
+ - `reset-display` has been removed
38
+ - `reset-layout-direction` has been removed
39
+ - `reset-all` has been removed
40
+ - Functions
41
+ - `new-breakpoint` has been removed
42
+ - Variables
43
+ - `$disable-warnings` has been removed
44
+ - `$column` has been removed
45
+ - `$gutter` has been removed
46
+ - `$grid-columns` has been removed
47
+ - `$max-width` has been removed
48
+ - `$border-box-sizing` has been removed
49
+ - `$default-feature` has been removed
50
+ - `$default-layout-direction` has been removed
51
+ - `$visual-grid` has been removed
52
+ - `$visual-grid-color` has been removed
53
+ - `$visual-grid-index` has been removed
54
+ - `$visual-grid-opacity` has been removed
32
55
 
33
56
  ## 1.8.0 - 2016-06-21
34
57
 
@@ -255,5 +278,4 @@
255
278
 
256
279
  - Initial release
257
280
 
258
- [1.9.1]: https://github.com/thoughtbot/neat/compare/v1.9.0...v1.9.1
259
- [1.9.0]: https://github.com/thoughtbot/neat/compare/v1.8.0...v1.9.0
281
+ [Unreleased]: https://github.com/thoughtbot/neat/compare/v1.8.0...neat-2.0.0
@@ -36,3 +36,15 @@ Some things that will increase the chance that your pull request is accepted:
36
36
  * Declarations within a block should be ordered alphabetically.
37
37
  * Blank lines between rules.
38
38
  * No trailing whitespace. Blank lines should not have any space.
39
+
40
+ **Contrib examples**
41
+
42
+ For user-facing changes, please provide an example in sample page contained in
43
+ the `./contrib` folder. Also, please put a screenshot of the changes into the
44
+ Pull Request.
45
+
46
+ To see the `./contrib` example page:
47
+
48
+ 1. Install node
49
+ * Run `npm install`
50
+ * Run `npm run contrib`
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
- source "http://rubygems.org"
1
+ source "https://rubygems.org"
2
2
 
3
- # Specify your gem's dependencies in neat.gemspec
4
3
  gemspec
@@ -1,19 +1,18 @@
1
- var autoprefix = require("gulp-autoprefixer"),
1
+ var bourbon = require("bourbon").includePaths,
2
+ autoprefix = require("gulp-autoprefixer"),
2
3
  connect = require("gulp-connect"),
3
4
  gulp = require("gulp"),
4
5
  sass = require("gulp-sass");
5
6
 
6
7
  var paths = {
7
8
  scss: [
8
- "./app/assets/stylesheets/**/*.scss",
9
- "./contrib/styles.scss"]
9
+ "./core/**/*.scss",
10
+ "./contrib/**/*.scss"]
10
11
  };
11
12
 
12
13
  gulp.task("sass", function () {
13
14
  return gulp.src(paths.scss)
14
- .pipe(sass({
15
- sourcemaps: true
16
- }))
15
+ .pipe(sass())
17
16
  .pipe(autoprefix("last 2 versions"))
18
17
  .pipe(gulp.dest("./contrib"))
19
18
  .pipe(connect.reload());
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright © 2012–2015 [thoughtbot, inc.](http://thoughtbot.com)
3
+ Copyright © 2012 [thoughtbot, inc.](http://thoughtbot.com)
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the “Software”), to deal
data/README.md CHANGED
@@ -1,9 +1,6 @@
1
1
  [![Neat](http://images.thoughtbot.com/bourbon/neat-logo.svg)](http://neat.bourbon.io)
2
2
 
3
- ## A lightweight, semantic grid framework
4
-
5
- **Note: This branch is an archive of Neat v1. The current release is v2 on
6
- `master`.**
3
+ ## A lightweight grid framework
7
4
 
8
5
  Neat is a fluid grid framework with the aim of being easy enough to use out of the box and flexible enough to customize down the road.
9
6
 
@@ -17,8 +14,7 @@ for updates.
17
14
 
18
15
  ## Requirements
19
16
 
20
- - [Sass](https://github.com/sass/sass) 3.3+
21
- - :warning: If you need **Sass 3.2 support**, you should [use Neat 1.5.1](#installing-older-versions-of-neat)
17
+ - Sass 3.4+ or LibSass 3.3+
22
18
 
23
19
  ## Installation
24
20
 
@@ -52,12 +48,12 @@ For command line help, visit our wiki page on Neat’s [command line interface](
52
48
 
53
49
  It’s not recommended to add or modify the Neat files so that you can update them easily.
54
50
 
55
- ## Installation for Ruby on Rails
51
+ ## Installation for Ruby on Rails 4.2+
56
52
 
57
53
  1. Add Neat to your Gemfile:
58
54
 
59
55
  ```ruby
60
- gem 'neat'
56
+ gem "neat"
61
57
  ```
62
58
 
63
59
  2. Then run:
@@ -88,11 +84,12 @@ For command line help, visit our wiki page on Neat’s [command line interface](
88
84
  npm install --save bourbon-neat
89
85
  ```
90
86
 
91
- 1. If you’re using [Eyeglass](http://eyeglass.rocks), skip to Step 3. Otherwise, you’ll need to add Neat to your node-sass `includePaths` option. `require("bourbon-neat").includePaths` is an array of directories that you should pass to node-sass. How you do this depends on how node-sass is integrated into your project.
87
+ 1. If you’re using [Eyeglass](http://eyeglass.rocks), skip to Step 3. Otherwise, you’ll need to add Bourbon and Neat to your node-sass `includePaths` option. `require("bourbon-neat").includePaths` is an array of directories that you should pass to node-sass. How you do this depends on how node-sass is integrated into your project. You will also need to ensure that Bourbon is in the `includePaths` passed to node-sass.
92
88
 
93
- 1. Import Neat into your Sass files:
89
+ 1. Import Neat into your Sass files, after Bourbon:
94
90
 
95
91
  ```scss
92
+ @import "bourbon";
96
93
  @import "neat";
97
94
  ```
98
95
 
@@ -112,149 +109,6 @@ For command line help, visit our wiki page on Neat’s [command line interface](
112
109
 
113
110
  3. Follow the [instructions above](#installation) to install Neat into your project.
114
111
 
115
- ## Using Neat
116
-
117
- First off, if you are planning to override the default grid settings (12 columns), it is recommended to create a `_grid-settings.scss` file for that purpose. Make sure to import it right *before* importing Neat:
118
-
119
- ```scss
120
- @import "grid-settings";
121
- @import "neat/neat"; // or "neat" when in Rails
122
- ```
123
-
124
- In your newly created `_grid-settings.scss`, import `neat-helpers` if you are planning to use `new-breakpoint()`, then define your new variables:
125
-
126
- ```scss
127
- @import "neat/neat-helpers"; // or "neat-helpers" when in Rails
128
-
129
- // Change the grid settings
130
- $column: 90px;
131
- $gutter: 30px;
132
- $grid-columns: 10;
133
- $max-width: 1200px;
134
-
135
- // Define your breakpoints
136
- $tablet: new-breakpoint(max-width 768px 8);
137
- $mobile: new-breakpoint(max-width 480px 4);
138
- ```
139
-
140
- See the [docs](http://thoughtbot.github.io/neat-docs/latest/#variable) for a full list of settings.
141
-
142
- Next, include the `outer-container` mixin in the topmost container (to which the `max-width` setting will be applied):
143
-
144
- ```scss
145
- div.container {
146
- @include outer-container;
147
- }
148
- ```
149
-
150
- Then use `span-columns` on any element to specify the number of columns it should span:
151
-
152
- ```scss
153
- div.element {
154
- @include span-columns(6);
155
- }
156
- ```
157
-
158
- If the element’s parent isn’t the top-most container, you need to add the number of columns of the parent element to keep the right proportions:
159
-
160
- ```scss
161
- div.container {
162
- @include outer-container;
163
-
164
- div.parent-element {
165
- @include span-columns(8);
166
-
167
- div.element {
168
- @include span-columns(6 of 8);
169
- }
170
- }
171
- }
172
- ```
173
-
174
- To make your layout responsive, use the `media()` mixin to modify both the grid and the layout:
175
-
176
- ```scss
177
- .my-class {
178
- @include media($mobile) { // As defined in _grid-settings.scss
179
- @include span-columns(2);
180
- }
181
- }
182
-
183
- // Compiled CSS
184
- @media screen and (max-width: 480px) {
185
- .my-class {
186
- display: block;
187
- float: left;
188
- margin-right: 7.42297%;
189
- width: 46.28851%; // 2 columns of the total 4 in this media context
190
- }
191
- .my-class:last-child {
192
- margin-right: 0;
193
- }
194
- }
195
- ```
196
-
197
- By setting `$visual-grid` to `true` in a file that is imported before
198
- `neat-helpers` (or prior to `neat` itself if you are using the default
199
- breakpoints), you can display the base grid in the background (default) or as an
200
- overlay. You can even change the color and opacity of the grid-lines by
201
- overriding the default settings as detailed in the section below.
202
-
203
- The visual grid reflects the changes applied to the grid via the `new-breakpoint()` mixin, as long as the media contexts are defined *before* importing Neat.
204
-
205
- ## FAQ
206
-
207
- #### How do I use `omega()` in a mobile-first workflow?
208
-
209
- Using `omega()` with an `nth-child` pseudo selector in a mobile-first workflow will cause the style to be applied to wider-viewport media queries as well. That is the cascading nature of CSS.
210
-
211
- One solution would be to provide an `omega-reset()` mixin that negates the effect of `omega()` on that specific `nth-child` pseudo selector. While this is often the most suggested solution, it is also a lazy hack that outputs ugly code and can quickly get out of hand in complex layouts. As a general rule, having to *undo* CSS styles is a sign of poor stylesheet architecture (more about [CSS code smells](http://csswizardry.com/2012/11/code-smells-in-css/)).
212
-
213
- The other, more elegant, solution is to use mutually exclusive media queries, also referred to as [media-query
214
- splitting](http://simurai.com/blog/2012/08/29/media-query-splitting). This would guarantee that `omega()` styles are only applied where desired.
215
-
216
- ```scss
217
- $first-breakpoint-value: 400px;
218
- $second-breakpoint-value: 700px;
219
- $medium-viewport: new-breakpoint(min-width $first-breakpoint-value max-width $second-breakpoint-value);
220
- $large-viewport: new-breakpoint(min-width $second-breakpoint-value + 1);
221
-
222
- .element {
223
- @include media($medium-viewport) {
224
- @include span-columns(6);
225
- @include omega(2n);
226
- }
227
-
228
- @include media($large-viewport) {
229
- @include span-columns(4);
230
- @include omega(3n);
231
- }
232
- }
233
- ```
234
-
235
- If, for some reason, you still think that `omega-reset` is the only way you want to go, check out Josh Fry’s [omega-reset](http://joshfry.me/blog/2013/05/13/omega-reset-for-bourbon-neat).
236
-
237
- #### Why are the elements not properly aligned with the visual grid?
238
-
239
- The visual grid is built using CSS gradients whose stops might contain decimal values depending on the default settings of your grid. In order to render the gradient, browsers round the pixel values since they can’t deal with pixel fractions.
240
-
241
- As a result the visual grid might be few pixels off in some browsers. The result is also inconsistent across browsers. For best results, preview your website on Firefox as it renders closest to the expected outcome.
242
-
243
- At this point, writing an internal rounding mechanism is not high priority.
244
-
245
- #### Framework X has this feature that Neat seems to be missing. Can you add it?
246
-
247
- Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), the answer is most likely going to be no. Neat is lightweight and simple compared to other grid frameworks, and strives to remain so. We have plans for adding new features in future versions of the framework, but these will be most likely to support new ways of working with layouts on the Web, not patches to existing ones.
248
-
249
- ## Browser support
250
-
251
- - Chrome 10+
252
- - Firefox 29+
253
- - Internet Explorer 9+ (visual grid is IE 10 only)
254
- - Internet Explorer 8 with [selectivizr](http://selectivizr.com) (no `media()` support)
255
- - Opera 9.5+
256
- - Safari 5.1+
257
-
258
112
  ## The Bourbon family
259
113
 
260
114
  - [Bourbon](https://github.com/thoughtbot/bourbon): A simple and lightweight mixin library for Sass
@@ -262,20 +116,29 @@ Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), t
262
116
  - [Bitters](https://github.com/thoughtbot/bitters): Scaffold styles, variables and structure for Bourbon projects
263
117
  - [Refills](https://github.com/thoughtbot/refills): Prepackaged patterns and components built with Bourbon, Neat and Bitters
264
118
 
119
+ Also check out [Proteus](https://github.com/thoughtbot/proteus), a collection of useful starter kits to help you prototype faster. Each kit comes with Bourbon, Neat and Bitters out-of-the-box.
120
+
121
+ ## Contributing
122
+
123
+ See the [contributing] document. Thank you, [contributors]!
124
+
125
+ [contributing]: CONTRIBUTING.md
126
+ [contributors]: https://github.com/thoughtbot/bourbon/graphs/contributors
127
+
265
128
  ## License
266
129
 
267
- Copyright © 2012–2015 [thoughtbot, inc](http://thoughtbot.com). Neat is free software, and may be redistributed under the terms specified in the [license](LICENSE.md).
130
+ Neat is copyright © 2012 [thoughtbot, inc.][thoughtbot] It is free software, and may be redistributed under the terms specified in the [license].
131
+
132
+ [license]: LICENSE.md
268
133
 
269
- ## About thoughtbot
134
+ ## About
270
135
 
271
- [<img src="http://presskit.thoughtbot.com/images/signature.svg" width="250" alt="thoughtbot logo">][hire]
136
+ Neat is maintained by the thoughtbot design team. It is funded by [thoughtbot, inc.][thoughtbot] and the names and logos for thoughtbot are trademarks of thoughtbot, inc.
272
137
 
273
- Neat is maintained and funded by thoughtbot, inc.
274
- The names and logos for thoughtbot are trademarks of thoughtbot, inc.
138
+ [<img src="http://thoughtbot.github.io/images/signature.svg" width="250" alt="thoughtbot logo">][thoughtbot]
275
139
 
276
- We love open source software!
277
- See [our other projects][community]
278
- or [hire us][hire] to design, develop, and grow your product.
140
+ We love open-source software! See [our other projects][community] or [hire us][hire] to design, develop, and grow your product.
279
141
 
280
- [community]: https://thoughtbot.com/community?utm_source=github
281
- [hire]: https://thoughtbot.com/hire-us?utm_source=github
142
+ [thoughtbot]: https://thoughtbot.com?utm_source=github
143
+ [community]: https://thoughtbot.com/community?utm_source=github
144
+ [hire]: https://thoughtbot.com/hire-us?utm_source=github