flint-gs 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +23 -721
- data/lib/flint.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91e892c1fbbf7d16348da8612ab5bc2111aeb00f
|
4
|
+
data.tar.gz: 23ab03f35aaf8a91c8854739812e474e154d016e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0904c66d96488e60afb4d3d2d8cebe7e7a51b90c6b56a7de4e4f1db7ded661160e29a7dd0c2b5ed1b8e53f840a6c5791b5647566b0cf4c298823b42e3f701603
|
7
|
+
data.tar.gz: dd8eb956a5495335c64701d5445fa58b0feb00d1a7bca50a713c47deb38b0ceb0fb15afc81a9e79e0284abfa59f9dcc5b40eb76ebec5034b38256b32ef5e0a63
|
data/README.md
CHANGED
@@ -2,746 +2,46 @@
|
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/flint-gs.svg)](http://badge.fury.io/rb/flint-gs)
|
4
4
|
|
5
|
-
|
5
|
+
## What is Flint?
|
6
|
+
Flint is a responsive grid framework written in Sass, created to allow developers to rapidly produce responsive layouts that are built on a sophisticated foundation.
|
6
7
|
|
7
|
-
|
8
|
+
## What sets Flint apart?
|
9
|
+
Most notably? The syntax. Being a designer myself, a large amount of time was spent on this aspect. Flint is very unique in the fact that it uses only a single mixin for all output: `_(...)`.
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
## Table of Contents
|
12
|
-
|
13
|
-
1. [Requirements](#requirements)
|
14
|
-
1. [Installation](#installation)
|
15
|
-
1. [Documentation](#documentation)
|
16
|
-
* [Config](#config)
|
17
|
-
* [Foundation](#foundation)
|
18
|
-
* [Container](#container)
|
19
|
-
* [Clearfix](#clear)
|
20
|
-
* [Recursive shorthand](#recursive-shorthand)
|
21
|
-
* [Recursive shorthand with identical context](#recursive-shorthand-with-identical-context)
|
22
|
-
* [Recursive shorthand with variable context](#recursive-shorthand-with-variable-context)
|
23
|
-
* [Variable shorthand](#variable-shorthand)
|
24
|
-
* [Variable shorthand with context](#variable-shorthand-with-context)
|
25
|
-
* [Wrapping in media queries](#wrapping-in-media-queries)
|
26
|
-
* [Call by alias](#call-by-alias)
|
27
|
-
* [Gutter modifiers](#gutter-modifiers)
|
28
|
-
1. [Syntax support](#syntax-support)
|
29
|
-
1. [Support](#support)
|
30
|
-
1. [Authors](#authors)
|
31
|
-
1. [License](#license)
|
32
|
-
|
33
|
-
## Requirements
|
34
|
-
|
35
|
-
* Sass ~> `3.4.0`
|
36
|
-
|
37
|
-
## Installation
|
38
|
-
|
39
|
-
1. Install via Ruby `gem install flint-gs --pre`, or Bower `bower install flint --save-dev`
|
40
|
-
2. If you're using Compass, add `require "flint"` to your `config.rb`
|
41
|
-
3. Import it into your stylesheet with `@import "flint"`
|
42
|
-
|
43
|
-
If you're not using Compass, you can require Flint and compile via:
|
44
|
-
```
|
45
|
-
scss --require ./lib/flint.rb example.scss > example.css
|
46
|
-
```
|
47
|
-
|
48
|
-
## Documentation
|
49
|
-
|
50
|
-
_Fully updated documentation on Flint `2.0` is coming soon. It will be housed on the [website](http:flint.gs) when the time comes. Keep an eye out!_
|
51
|
-
|
52
|
-
### Config
|
53
|
-
|
54
|
-
Getting up and running with Flint is simple: you can either configure your own grid, or use the default grid setup that ships with Flint. Being able to quickly configure a grid was at the forefront of my goals when developing Flint; and so it offers an immense configuration map, which is essentially a Sass map of all your project’s grid settings and breakpoints. You don’t have to mess with endless variables just to get your project up and running. Instead, you just create a single variable called `$flint`:
|
55
|
-
|
56
|
-
##### Usage
|
57
|
-
|
58
|
-
To begin, you can either use the default `config` (below) which comes baked in, or you can define your own using the `$flint` variable, using the default config as a template. Settings may be entered in `px` or `em`, and Flint will do the rest. One of the immediate advantages of using Flint is that it allows you to create an unlimited number of breakpoints for your project, with any alias that you want. If you like to call your breakpoints crazy names like ‘high-tide’ or ‘ex-presidents’, that’s completely fine with me.
|
59
|
-
|
60
|
-
*Keep in mind, whatever unit you choose to use here needs to be used consistently throughout Flint. No mixing of `px` and `em` units. Also, Flint does require that you follow a `DESC` order for your breakpoint configuration, this way it can traverse the config map correctly to output valid media queries.*
|
61
|
-
|
62
|
-
```scss
|
63
|
-
/**
|
64
|
-
* Configuration map
|
65
|
-
*
|
66
|
-
* @prop {Map} breakpoints - map of breakpoints, follow DSC order
|
67
|
-
* @prop {Map} breakpoints.alias - named map of breakpoint settings
|
68
|
-
* @prop {Number} breakpoints.alias.columns - column count for breakpoint
|
69
|
-
* @prop {Number} breakpoints.alias.breakpoint - breakpoint value for breakpoint
|
70
|
-
* @prop {Map} settings - map of settings for grid
|
71
|
-
* @prop {String} settings.default - alias of breakpoint to be grid default
|
72
|
-
* @prop {String} settings.grid - type of grid
|
73
|
-
* @prop {Number} settings.gutter - value for gutter
|
74
|
-
* @prop {String} settings.float-direction - direction of float
|
75
|
-
* @prop {Bool} settings.max-width - maximum width value
|
76
|
-
* @prop {Bool} settings.center-container - center containers
|
77
|
-
* @prop {Bool} settings.border-box-sizing - use `box-sizing: border-box`
|
78
|
-
* @prop {Bool} settings.instance-maps - use instance maps for added features
|
79
|
-
* @prop {Bool} settings.support-syntax - support syntax within instance functions
|
80
|
-
* @prop {Bool} settings.debug-mode - enable debug mode
|
81
|
-
*/
|
82
|
-
$flint: (
|
83
|
-
"breakpoints": (
|
84
|
-
"desktop": (
|
85
|
-
"columns": 16,
|
86
|
-
"breakpoint": 80em
|
87
|
-
),
|
88
|
-
"laptop": (
|
89
|
-
"columns": 12,
|
90
|
-
"breakpoint": 60em
|
91
|
-
),
|
92
|
-
"tablet": (
|
93
|
-
"columns": 8,
|
94
|
-
"breakpoint": 40em
|
95
|
-
),
|
96
|
-
"mobile": (
|
97
|
-
"columns": 4,
|
98
|
-
"breakpoint": 20em
|
99
|
-
)
|
100
|
-
),
|
101
|
-
"settings": (
|
102
|
-
"default": "mobile",
|
103
|
-
"grid": "fluid",
|
104
|
-
"gutter": 0.625em,
|
105
|
-
"float-direction": "left",
|
106
|
-
"max-width": true,
|
107
|
-
"center-container": true,
|
108
|
-
"border-box-sizing": true,
|
109
|
-
"instance-maps": true,
|
110
|
-
"support-syntax": false,
|
111
|
-
"debug-mode": false
|
112
|
-
)
|
113
|
-
) !default;
|
114
|
-
```
|
115
|
-
|
116
|
-
### Foundation
|
117
|
-
|
118
|
-
_Flint will attempt to use a local box-sizing mixin named `box-sizing`. If one is not found, it will use it's own._
|
119
|
-
|
120
|
-
A foundation instance will output a global `box-sizing: border-box` declaration. If you selected `"border-box-sizing": true`, then it is *advised* to create a global foundation instance.
|
11
|
+
Yes, it really is just an underscore. Easy to remember, huh? It shoves the function mumbo-jumbo out of the way and allows you to focus on the aspect that matters most: the actual layout. It also allows you to type your intentions in human terms.
|
121
12
|
|
122
13
|
```scss
|
123
|
-
@include _(
|
14
|
+
@include _(from tablet to desktop) { ... }
|
124
15
|
```
|
125
16
|
|
126
|
-
|
127
|
-
|
128
|
-
### Container
|
129
|
-
|
130
|
-
Containers act as a row for each individual breakpoint, and if set in your config, uses a max-width. They do not float, so if you have `"center-container"` set to `true` then it will also center your element using `auto` left and right margins.
|
131
|
-
|
132
|
-
```scss
|
133
|
-
.container {
|
134
|
-
@include _(container);
|
135
|
-
}
|
136
|
-
```
|
137
|
-
|
138
|
-
Outputs,
|
139
|
-
```scss
|
140
|
-
.container {
|
141
|
-
display: block;
|
142
|
-
float: none;
|
143
|
-
width: 100%;
|
144
|
-
max-width: 1280px
|
145
|
-
margin-right: auto;
|
146
|
-
margin-left: auto;
|
147
|
-
}
|
148
|
-
```
|
149
|
-
|
150
|
-
You may also define a container for a specific breakpoint, `@include _(desktop, container)`, as well as chain a clearfix and container call together with `@include _(container, clear)` or `@include _(<alias>, container, clear)`.
|
151
|
-
|
152
|
-
### Clear
|
153
|
-
|
154
|
-
_Flint will attempt to use a local clearfix mixin named `clearfix`. If one is not found, it will use it's own._
|
155
|
-
|
156
|
-
Given that Flint is float based, you might find yourself needing to use a clearfix. Flint comes packaged with a micro-clearfix function.
|
157
|
-
|
158
|
-
```scss
|
159
|
-
.clear {
|
160
|
-
@include _(clear);
|
161
|
-
}
|
162
|
-
```
|
163
|
-
|
164
|
-
Outputs,
|
165
|
-
```scss
|
166
|
-
.clear {
|
167
|
-
zoom: 1;
|
168
|
-
}
|
169
|
-
.clear:before, .clear:after {
|
170
|
-
content: "\0020";
|
171
|
-
display: block;
|
172
|
-
height: 0;
|
173
|
-
overflow: hidden;
|
174
|
-
}
|
175
|
-
.clear:after {
|
176
|
-
clear: both;
|
177
|
-
}
|
178
|
-
```
|
179
|
-
|
180
|
-
### Recursive shorthand
|
181
|
-
|
182
|
-
Use this if you want *identical* column spans across all breakpoints.
|
17
|
+
In addition to that, as you can tell from the snippet above, Flint also handles your breakpoints for you. Long gone are the days that you need to download a separate plugin just so that you're able to create a truly responsive layout.
|
183
18
|
|
184
|
-
|
185
|
-
.recursive {
|
186
|
-
@include _(3);
|
187
|
-
}
|
188
|
-
```
|
189
|
-
|
190
|
-
Outputs, *(with debug mode on)*
|
191
|
-
```scss
|
192
|
-
.recursive {
|
193
|
-
display: block;
|
194
|
-
float: left;
|
195
|
-
width: 17.1875%;
|
196
|
-
margin-right: 0.78125%;
|
197
|
-
margin-left: 0.78125%;
|
198
|
-
-flint-instance-count: 1;
|
199
|
-
-flint-parent-instance: none;
|
200
|
-
-flint-key: desktop;
|
201
|
-
-flint-breakpoint: 1280px;
|
202
|
-
-flint-columns: 16;
|
203
|
-
-flint-span: 3;
|
204
|
-
-flint-context: null;
|
205
|
-
-flint-gutter: null;
|
206
|
-
-flint-shift: null;
|
207
|
-
-flint-internal-width: 17.1875%;
|
208
|
-
-flint-internal-margin-right: 0.78125%;
|
209
|
-
-flint-internal-margin-left: 0.78125%;
|
210
|
-
}
|
211
|
-
@media only screen and (min-width: 641px) and (max-width: 960px) {
|
212
|
-
.recursive {
|
213
|
-
width: 22.91667%;
|
214
|
-
margin-right: 1.04167%;
|
215
|
-
margin-left: 1.04167%;
|
216
|
-
-flint-instance-count: 2;
|
217
|
-
-flint-parent-instance: none;
|
218
|
-
-flint-key: laptop;
|
219
|
-
-flint-breakpoint: 960px;
|
220
|
-
-flint-columns: 12;
|
221
|
-
-flint-span: 3;
|
222
|
-
-flint-context: null;
|
223
|
-
-flint-gutter: null;
|
224
|
-
-flint-shift: null;
|
225
|
-
-flint-internal-width: 22.91667%;
|
226
|
-
-flint-internal-margin-right: 1.04167%;
|
227
|
-
-flint-internal-margin-left: 1.04167%;
|
228
|
-
}
|
229
|
-
}
|
230
|
-
@media only screen and (min-width: 321px) and (max-width: 640px) {
|
231
|
-
.recursive {
|
232
|
-
width: 34.375%;
|
233
|
-
margin-right: 1.5625%;
|
234
|
-
margin-left: 1.5625%;
|
235
|
-
-flint-instance-count: 3;
|
236
|
-
-flint-parent-instance: none;
|
237
|
-
-flint-key: tablet;
|
238
|
-
-flint-breakpoint: 640px;
|
239
|
-
-flint-columns: 8;
|
240
|
-
-flint-span: 3;
|
241
|
-
-flint-context: null;
|
242
|
-
-flint-gutter: null;
|
243
|
-
-flint-shift: null;
|
244
|
-
-flint-internal-width: 34.375%;
|
245
|
-
-flint-internal-margin-right: 1.5625%;
|
246
|
-
-flint-internal-margin-left: 1.5625%;
|
247
|
-
}
|
248
|
-
}
|
249
|
-
@media only screen and (min-width: 0) and (max-width: 320px) {
|
250
|
-
.recursive {
|
251
|
-
width: 68.75%;
|
252
|
-
margin-right: 3.125%;
|
253
|
-
margin-left: 3.125%;
|
254
|
-
-flint-instance-count: 4;
|
255
|
-
-flint-parent-instance: none;
|
256
|
-
-flint-key: mobile;
|
257
|
-
-flint-breakpoint: 320px;
|
258
|
-
-flint-columns: 4;
|
259
|
-
-flint-span: 3;
|
260
|
-
-flint-context: null;
|
261
|
-
-flint-gutter: null;
|
262
|
-
-flint-shift: null;
|
263
|
-
-flint-internal-width: 68.75%;
|
264
|
-
-flint-internal-margin-right: 3.125%;
|
265
|
-
-flint-internal-margin-left: 3.125%;
|
266
|
-
}
|
267
|
-
}
|
268
|
-
```
|
269
|
-
|
270
|
-
As you can see, since `"desktop"` is the framework `"default"`, it uses the output for desktop as the base styles. You can set this to any breakpoint you like. **So if you like mobile-first, you can do that.**
|
271
|
-
|
272
|
-
Whatever your `"default"` is set to, flint will not wrap those styles in media-queries, so that they may be used in non-supported browsers.
|
273
|
-
|
274
|
-
### Recursive shorthand with identical context
|
275
|
-
|
276
|
-
Use this if your nested context is *identical* across all breakpoints. The `context` is the span of the elements parent. ***Update:*** You can now use `$context: auto`, and we'll do all the calculations for you. Just be sure a parent element with a Flint `instance` actually flint-exists or you'll get some weird output, or none at all. **Using `$context: auto` on fixed grids, the width with will be calculated by the parents width, instead of using the base breakpoints width.**
|
277
|
-
|
278
|
-
```scss
|
279
|
-
// `auto` will work
|
280
|
-
.parent {
|
281
|
-
@include _(6);
|
282
|
-
|
283
|
-
.recursive-child {
|
284
|
-
@include _(3, auto); // Equivalent to : _(3, 6)
|
285
|
-
}
|
286
|
-
}
|
287
|
-
|
288
|
-
// Will also work
|
289
|
-
.parent {
|
290
|
-
@include _(6);
|
291
|
-
}
|
292
|
-
.parent .recursive-child {
|
293
|
-
@include _(3, auto); // Equivalent to : _(3, 6)
|
294
|
-
}
|
295
|
-
|
296
|
-
// Will not work, as the child has no relation to the parent within the stylesheet
|
297
|
-
.parent {
|
298
|
-
@include _(6);
|
299
|
-
}
|
300
|
-
.recursive-child {
|
301
|
-
@include _(3, auto); // Equivalent to : _(3, 6)
|
302
|
-
}
|
303
|
-
|
304
|
-
// When using `auto`, Flint 'falls back' from the topmost selector until one is
|
305
|
-
// found that has an instance, and it will calculate it's context based on that
|
306
|
-
// instances span for the current breakpoint.
|
307
|
-
```
|
308
|
-
|
309
|
-
Outputs,
|
310
|
-
```scss
|
311
|
-
.recursive-child {
|
312
|
-
display: block;
|
313
|
-
float: left;
|
314
|
-
width: 45.8333333333%;
|
315
|
-
margin-right: 2.0833333333%;
|
316
|
-
margin-left: 2.0833333333%;
|
317
|
-
}
|
318
|
-
@media only screen and (min-width: 641px) and (max-width: 960px) {
|
319
|
-
.recursive-child {
|
320
|
-
width: 45.8333333333%;
|
321
|
-
margin-right: 2.0833333333%;
|
322
|
-
margin-left: 2.0833333333%;
|
323
|
-
}
|
324
|
-
}
|
325
|
-
@media only screen and (min-width: 321px) and (max-width: 640px) {
|
326
|
-
.recursive-child {
|
327
|
-
width: 45.8333333333%;
|
328
|
-
margin-right: 2.0833333333%;
|
329
|
-
margin-left: 2.0833333333%;
|
330
|
-
}
|
331
|
-
}
|
332
|
-
@media only screen and (min-width: 0) and (max-width: 320px) {
|
333
|
-
.recursive-child {
|
334
|
-
width: 45.8333333333%;
|
335
|
-
margin-right: 2.0833333333%;
|
336
|
-
margin-left: 2.0833333333%;
|
337
|
-
}
|
338
|
-
}
|
339
|
-
```
|
340
|
-
|
341
|
-
### Recursive shorthand with variable context
|
342
|
-
|
343
|
-
Use this if your context is *not* indentical across breakpoints. The `context` is the span of the elements parent. You can now use `$context: auto`, and we'll do all the calculations for you. Just be sure a parent selector with a Flint instance actually flint-exists, or you'll throw a warning and get no output.
|
344
|
-
|
345
|
-
When using `$context: auto` on fixed grids, Flint will automagically calculate based on the width of the closest parent element instance.
|
346
|
-
|
347
|
-
*You must include an argument for each breakpoint in your config.*
|
348
|
-
|
349
|
-
```scss
|
350
|
-
.parent {
|
351
|
-
@include _(10 8 6 4);
|
352
|
-
|
353
|
-
.recursive-child {
|
354
|
-
@include _(2, auto); // Equivalent to : _(2, 10 8 6 4)
|
355
|
-
}
|
356
|
-
}
|
357
|
-
```
|
358
|
-
|
359
|
-
Outputs,
|
360
|
-
```scss
|
361
|
-
recursive-child {
|
362
|
-
display: block;
|
363
|
-
float: left;
|
364
|
-
width: 17.5%;
|
365
|
-
margin-right: 1.25%;
|
366
|
-
margin-left: 1.25%;
|
367
|
-
}
|
368
|
-
@media only screen and (min-width: 641px) and (max-width: 960px) {
|
369
|
-
.recursive-child {
|
370
|
-
width: 21.875%;
|
371
|
-
margin-right: 1.5625%;
|
372
|
-
margin-left: 1.5625%;
|
373
|
-
}
|
374
|
-
}
|
375
|
-
@media only screen and (min-width: 321px) and (max-width: 640px) {
|
376
|
-
.recursive-child {
|
377
|
-
width: 29.1666666667%;
|
378
|
-
margin-right: 2.0833333333%;
|
379
|
-
margin-left: 2.0833333333%;
|
380
|
-
}
|
381
|
-
}
|
382
|
-
@media only screen and (min-width: 0) and (max-width: 320px) {
|
383
|
-
.recursive-child {
|
384
|
-
width: 43.75%;
|
385
|
-
margin-right: 3.125%;
|
386
|
-
margin-left: 3.125%;
|
387
|
-
}
|
388
|
-
}
|
389
|
-
```
|
19
|
+
Flint allows you create an unlimited number of breakpoints, all of which have their own alias, column count and breakpoint. Want to name your 10 breakpoints after James Bond villians? By all means, go ahead.
|
390
20
|
|
391
|
-
|
21
|
+
One more cool thing? Flint is the only self-aware Sass grid system on the planet.* What does that mean? It means that every instance of Flint is logged into an 'instance map', so child elements can know their parent element's width; meaning we can have perfectly consistent gutters, no matter how odd your layout may be. Think of it as a self-correcting grid.
|
392
22
|
|
393
|
-
|
23
|
+
[Check out this short introduction over at Sitepoint.com](http://www.sitepoint.com/rapid-responsive-development-sass-flint/), and take it for a spin on [SassMeister.com](http://sassmeister.com/gist/228449011362bcdfe38c)!
|
394
24
|
|
395
|
-
|
396
|
-
|
397
|
-
*You must include an argument for each breakpoint in your config.*
|
398
|
-
|
399
|
-
```scss
|
400
|
-
.variable {
|
401
|
-
@include _(8 6 0 4);
|
402
|
-
}
|
403
|
-
```
|
404
|
-
|
405
|
-
Outputs,
|
406
|
-
```scss
|
407
|
-
.variable {
|
408
|
-
display: block;
|
409
|
-
float: left;
|
410
|
-
width: 48.4375%;
|
411
|
-
margin-right: 0.78125%;
|
412
|
-
margin-left: 0.78125%;
|
413
|
-
}
|
414
|
-
@media only screen and (min-width: 641px) and (max-width: 960px) {
|
415
|
-
.variable {
|
416
|
-
width: 47.91667%;
|
417
|
-
margin-right: 1.04167%;
|
418
|
-
margin-left: 1.04167%;
|
419
|
-
}
|
420
|
-
}
|
421
|
-
@media only screen and (min-width: 321px) and (max-width: 640px) {
|
422
|
-
.variable {
|
423
|
-
display: none;
|
424
|
-
}
|
425
|
-
}
|
426
|
-
@media only screen and (min-width: 0) and (max-width: 320px) {
|
427
|
-
.variable {
|
428
|
-
width: 93.75%;
|
429
|
-
margin-right: 3.125%;
|
430
|
-
margin-left: 3.125%;
|
431
|
-
}
|
432
|
-
}
|
433
|
-
```
|
434
|
-
|
435
|
-
### Variable shorthand with context
|
436
|
-
|
437
|
-
Use this if you're *nesting* columns using the variable shorthand. The `context` is the span of the elements parent. Before using `$context: auto`, be sure a parent element with a Flint `instance` actually flint-exists or you'll get some weird output, or none at all.
|
438
|
-
|
439
|
-
```scss
|
440
|
-
.parent {
|
441
|
-
@include _(16 12 8 4);
|
442
|
-
|
443
|
-
.variable-child {
|
444
|
-
@include _(14 10 6 2, 16 12 8 4); // Equivalent to : _(14 10 6 2, auto)
|
445
|
-
}
|
446
|
-
}
|
447
|
-
```
|
448
|
-
|
449
|
-
Outputs,
|
450
|
-
```scss
|
451
|
-
.variable-child {
|
452
|
-
display: block;
|
453
|
-
float: left;
|
454
|
-
width: 85.9375%;
|
455
|
-
margin-right: 0.78125%;
|
456
|
-
margin-left: 0.78125%;
|
457
|
-
}
|
458
|
-
@media only screen and (min-width: 641px) and (max-width: 960px) {
|
459
|
-
.variable-child {
|
460
|
-
width: 81.25%;
|
461
|
-
margin-right: 1.0416666667%;
|
462
|
-
margin-left: 1.0416666667%;
|
463
|
-
}
|
464
|
-
}
|
465
|
-
@media only screen and (min-width: 321px) and (max-width: 640px) {
|
466
|
-
.variable-child {
|
467
|
-
width: 71.875%;
|
468
|
-
margin-right: 1.5625%;
|
469
|
-
margin-left: 1.5625%;
|
470
|
-
}
|
471
|
-
}
|
472
|
-
@media only screen and (min-width: 0) and (max-width: 320px) {
|
473
|
-
.variable-child {
|
474
|
-
width: 43.75%;
|
475
|
-
margin-right: 3.125%;
|
476
|
-
margin-left: 3.125%;
|
477
|
-
}
|
478
|
-
}
|
479
|
-
```
|
480
|
-
|
481
|
-
### Wrapping in media queries
|
482
|
-
|
483
|
-
Use these if you need to apply breakpoint specific styling.
|
25
|
+
Enjoy.
|
484
26
|
|
485
|
-
|
486
|
-
.wrap {
|
487
|
-
@include _(desktop) {
|
488
|
-
// Only desktop
|
489
|
-
}
|
490
|
-
}
|
491
|
-
.wrap {
|
492
|
-
@include _(greater than mobile) {
|
493
|
-
// All sizes above mobile's breakpoint
|
494
|
-
}
|
495
|
-
}
|
496
|
-
.wrap {
|
497
|
-
@include _(10em greater than tablet) {
|
498
|
-
// All sizes 10em above tablet's breakpoint
|
499
|
-
}
|
500
|
-
}
|
501
|
-
.wrap {
|
502
|
-
@include _(greater than 60em) {
|
503
|
-
// All sizes above 60em
|
504
|
-
}
|
505
|
-
}
|
506
|
-
.wrap {
|
507
|
-
@include _(less than tablet) {
|
508
|
-
// All sizes under tablet
|
509
|
-
}
|
510
|
-
}
|
511
|
-
.wrap {
|
512
|
-
@include _(1em less than laptop) {
|
513
|
-
// All sizes 1em under laptop
|
514
|
-
}
|
515
|
-
}
|
516
|
-
.wrap {
|
517
|
-
@include _(less than 40em) {
|
518
|
-
// All sizes under 40em
|
519
|
-
}
|
520
|
-
}
|
521
|
-
.wrap {
|
522
|
-
@include _(for desktop tablet) {
|
523
|
-
// Only for desktop and tablet
|
524
|
-
}
|
525
|
-
}
|
526
|
-
.wrap {
|
527
|
-
@include _(from mobile to laptop) {
|
528
|
-
// All sizes from mobile to laptop
|
529
|
-
}
|
530
|
-
}
|
531
|
-
.wrap {
|
532
|
-
@include _(from desktop to infinity) {
|
533
|
-
// All sizes from desktop to infinity
|
534
|
-
}
|
535
|
-
}
|
536
|
-
.wrap {
|
537
|
-
@include _(from 20em to 40em) {
|
538
|
-
// All sizes from 20em to 40em
|
539
|
-
}
|
540
|
-
}
|
541
|
-
```
|
27
|
+
## Requirements
|
542
28
|
|
543
|
-
|
29
|
+
* Sass ~> `3.4.0`
|
544
30
|
|
545
|
-
|
31
|
+
## Installation
|
546
32
|
|
547
|
-
|
548
|
-
.
|
549
|
-
|
550
|
-
@include _(laptop, 4);
|
551
|
-
@include _(tablet, 8);
|
552
|
-
@include _(mobile, 4);
|
553
|
-
}
|
33
|
+
1. Install via Ruby `gem install flint-gs`, or Bower `bower install flint --save-dev`
|
34
|
+
2. If you're using Compass, add `require "flint"` to your `config.rb`
|
35
|
+
3. Import it into your stylesheet with `@import "flint"`
|
554
36
|
|
555
|
-
|
556
|
-
// .name {
|
557
|
-
// @include _(desktop, 4, 16, $gutter: alpha);
|
558
|
-
// }
|
37
|
+
If you're not using Compass, you can require Flint and compile via cli:
|
559
38
|
```
|
560
|
-
|
561
|
-
Outputs,
|
562
|
-
```scss
|
563
|
-
.name {
|
564
|
-
display: block;
|
565
|
-
float: left;
|
566
|
-
width: 48.4375%;
|
567
|
-
margin-right: 0.78125%;
|
568
|
-
margin-left: 0.78125%;
|
569
|
-
}
|
570
|
-
@media only screen and (min-width: 641px) and (max-width: 960px) {
|
571
|
-
.name {
|
572
|
-
width: 31.25%;
|
573
|
-
margin-right: 1.04167%;
|
574
|
-
margin-left: 1.04167%;
|
575
|
-
}
|
576
|
-
}
|
577
|
-
@media only screen and (min-width: 321px) and (max-width: 640px) {
|
578
|
-
.name {
|
579
|
-
width: 96.875%;
|
580
|
-
margin-right: 1.5625%;
|
581
|
-
margin-left: 1.5625%;
|
582
|
-
}
|
583
|
-
}
|
584
|
-
@media only screen and (min-width: 0) and (max-width: 320px) {
|
585
|
-
.name {
|
586
|
-
width: 93.75%;
|
587
|
-
margin-right: 3.125%;
|
588
|
-
margin-left: 3.125%;
|
589
|
-
}
|
590
|
-
}
|
39
|
+
scss --require ./lib/flint.rb example.scss > example.css
|
591
40
|
```
|
592
41
|
|
593
|
-
|
594
|
-
|
595
|
-
Here are different gutter modifiers that may be called in when defining spans using the `$gutter` variable. The `$gutter` variable allows you to pass in either a recursive argument, or a variable argument, similar to `$span`.
|
596
|
-
|
597
|
-
_**Note:** When defining `$gutter: center`, the float property will be set to `none` in order to center your column._
|
598
|
-
|
599
|
-
```scss
|
600
|
-
// Default margins
|
601
|
-
.gutter-default {
|
602
|
-
// other aliases : `normal` | `regular`
|
603
|
-
@include _(desktop, 4, $gutter: default);
|
604
|
-
}
|
605
|
-
|
606
|
-
// Center column
|
607
|
-
.gutter-center {
|
608
|
-
@include _(desktop, 4, $gutter: center);
|
609
|
-
}
|
610
|
-
|
611
|
-
// No left margin
|
612
|
-
.gutter-alpha {
|
613
|
-
// other aliases : `no-left` | `first`
|
614
|
-
@include _(desktop, 4, $gutter: alpha);
|
615
|
-
}
|
616
|
-
|
617
|
-
// No right margin
|
618
|
-
.gutter-omega {
|
619
|
-
// other aliases : `no-right` | `flint-last`
|
620
|
-
@include _(desktop, 4, $gutter: omega);
|
621
|
-
}
|
622
|
-
|
623
|
-
// No margins
|
624
|
-
.gutter-row {
|
625
|
-
// other alias : `none`
|
626
|
-
@include _(desktop, 4, $gutter: row);
|
627
|
-
}
|
628
|
-
|
629
|
-
// Places gutters on inside by reducing column width by [gutter*2]
|
630
|
-
.gutter-inside {
|
631
|
-
@include _(desktop, 4, $gutter: inside);
|
632
|
-
}
|
633
|
-
|
634
|
-
// Variable gutter
|
635
|
-
.variable-gutter {
|
636
|
-
@include _(16 12 8 4, $gutter: row alpha center normal);
|
637
|
-
}
|
42
|
+
## Documentation
|
638
43
|
|
639
|
-
|
640
|
-
.recursive-gutter {
|
641
|
-
@include _(16 12 8 4, $gutter: row);
|
642
|
-
}
|
643
|
-
```
|
644
|
-
Outputs,
|
645
|
-
```scss
|
646
|
-
.gutter-normal {
|
647
|
-
display: block;
|
648
|
-
float: left;
|
649
|
-
width: 23.4375%;
|
650
|
-
margin-right: 0.78125%;
|
651
|
-
margin-left: 0.78125%;
|
652
|
-
}
|
653
|
-
.gutter-center {
|
654
|
-
display: block;
|
655
|
-
float: none;
|
656
|
-
width: 23.4375%;
|
657
|
-
margin-right: auto;
|
658
|
-
margin-left: auto;
|
659
|
-
}
|
660
|
-
.gutter-alpha {
|
661
|
-
display: block;
|
662
|
-
float: left;
|
663
|
-
width: 24.21875%;
|
664
|
-
margin-right: 0.78125%;
|
665
|
-
margin-left: 0;
|
666
|
-
}
|
667
|
-
.gutter-omega {
|
668
|
-
display: block;
|
669
|
-
float: left;
|
670
|
-
width: 24.21875%;
|
671
|
-
margin-right: 0;
|
672
|
-
margin-left: 0.78125%;
|
673
|
-
}
|
674
|
-
.gutter-row {
|
675
|
-
display: block;
|
676
|
-
float: left;
|
677
|
-
width: 25%;
|
678
|
-
margin-right: 0;
|
679
|
-
margin-left: 0;
|
680
|
-
}
|
681
|
-
.gutter-inside {
|
682
|
-
display: block;
|
683
|
-
float: left;
|
684
|
-
width: 21.875%;
|
685
|
-
margin-right: 0.78125%;
|
686
|
-
margin-left: 0.78125%;
|
687
|
-
}
|
688
|
-
.variable-gutter {
|
689
|
-
display: block;
|
690
|
-
float: left;
|
691
|
-
width: 100%;
|
692
|
-
margin-right: 0;
|
693
|
-
margin-left: 0;
|
694
|
-
}
|
695
|
-
@media only screen and (min-width: 641px) and (max-width: 960px) {
|
696
|
-
.variable-gutter {
|
697
|
-
width: 98.95833%;
|
698
|
-
margin-right: 1.04167%;
|
699
|
-
margin-left: 0;
|
700
|
-
}
|
701
|
-
}
|
702
|
-
@media only screen and (min-width: 321px) and (max-width: 640px) {
|
703
|
-
.variable-gutter {
|
704
|
-
width: 98.4375%;
|
705
|
-
margin-right: 0;
|
706
|
-
margin-left: 1.5625%;
|
707
|
-
}
|
708
|
-
}
|
709
|
-
@media only screen and (min-width: 0) and (max-width: 320px) {
|
710
|
-
.variable-gutter {
|
711
|
-
width: 87.5%;
|
712
|
-
margin-right: 3.125%;
|
713
|
-
margin-left: 3.125%;
|
714
|
-
}
|
715
|
-
}
|
716
|
-
.recursive-gutter {
|
717
|
-
display: block;
|
718
|
-
float: left;
|
719
|
-
width: 100%;
|
720
|
-
margin-right: 0;
|
721
|
-
margin-left: 0;
|
722
|
-
}
|
723
|
-
@media only screen and (min-width: 641px) and (max-width: 960px) {
|
724
|
-
.recursive-gutter {
|
725
|
-
width: 100%;
|
726
|
-
margin-right: 0;
|
727
|
-
margin-left: 0;
|
728
|
-
}
|
729
|
-
}
|
730
|
-
@media only screen and (min-width: 321px) and (max-width: 640px) {
|
731
|
-
.recursive-gutter {
|
732
|
-
width: 100%;
|
733
|
-
margin-right: 0;
|
734
|
-
margin-left: 0;
|
735
|
-
}
|
736
|
-
}
|
737
|
-
@media only screen and (min-width: 0) and (max-width: 320px) {
|
738
|
-
.recursive-gutter {
|
739
|
-
width: 100%;
|
740
|
-
margin-right: 0;
|
741
|
-
margin-left: 0;
|
742
|
-
}
|
743
|
-
}
|
744
|
-
```
|
44
|
+
Documentation is located [here](http://flint.gs/docs).
|
745
45
|
|
746
46
|
## Syntax support
|
747
47
|
|
@@ -810,3 +110,5 @@ As an open-source project, contributions are more than welcome, they're extremel
|
|
810
110
|
## License
|
811
111
|
|
812
112
|
Flint is available under the [MIT](http://opensource.org/licenses/MIT) license.
|
113
|
+
|
114
|
+
_\* According to Wikipedia, not really. But, all jokes aside, it's pretty awesome._
|
data/lib/flint.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flint-gs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ezekiel Gabrielse
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '3.
|
19
|
+
version: '3.4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '3.
|
26
|
+
version: '3.4'
|
27
27
|
description: Flint is a highly advanced Sass grid framework designed for rapid responsive
|
28
28
|
development.
|
29
29
|
email:
|