stratum 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/.gitmodules +4 -0
- data/LICENSE +21 -0
- data/assets/stylesheets/_stratum.scss +13 -7
- data/assets/stylesheets/css3/_box-sizing.scss +8 -0
- data/assets/stylesheets/forms/_input-placeholder.scss +14 -0
- data/assets/stylesheets/layout/_grid-functions.scss +54 -0
- data/assets/stylesheets/layout/_grid-guides.scss +84 -0
- data/assets/stylesheets/layout/_grid-mixins.scss +96 -0
- data/assets/stylesheets/layout/_grid-semantics.scss +239 -0
- data/assets/stylesheets/layout/_grid.scss +18 -220
- data/assets/stylesheets/layout/_responsive.scss +2 -0
- data/assets/stylesheets/layout/scaffolding.scss +34 -97
- data/assets/stylesheets/utils/_group.scss +19 -0
- data/assets/stylesheets/utils/_vendor-prefix.scss +18 -0
- data/lib/stratum.rb +35 -7
- data/lib/version.rb +1 -1
- data/stratum.gemspec +19 -11
- metadata +35 -7
- data/assets/stylesheets/layout/_functions.scss +0 -60
- data/assets/stylesheets/layout/grid-debug.scss +0 -92
- data/assets/stylesheets/misc/_clearfix.scss +0 -7
- data/assets/stylesheets/misc/_forms.scss +0 -12
data/.gitignore
CHANGED
data/.gitmodules
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Copyright (c) 2013 Tyom Semonov
|
2
|
+
|
3
|
+
The MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
@@ -9,18 +9,24 @@
|
|
9
9
|
//
|
10
10
|
// Grid
|
11
11
|
//
|
12
|
-
|
13
|
-
// $grid-large: 1200px;
|
14
|
-
// $grid-guides: true;
|
15
|
-
// $grid-guides-color: blue;
|
12
|
+
$grid-guides-color: #8aa8c0;
|
16
13
|
// $grid-guides-opacity: .1;
|
17
14
|
// $grid-guides-position: front;
|
15
|
+
$grid-type: pixel;
|
18
16
|
$grid-total-columns: 12;
|
19
17
|
$grid-desired-gutter: 20px;
|
20
18
|
// $grid-baseline: 30px;
|
21
|
-
// $grid-type: flexible;
|
22
19
|
// -----------------------------------------------------------------------------
|
23
20
|
|
21
|
+
@import "utils/vendor-prefix";
|
22
|
+
@import "utils/group";
|
23
|
+
|
24
|
+
// CSS3 mixins
|
25
|
+
@import "css3/box-sizing";
|
26
|
+
|
27
|
+
// Layout
|
24
28
|
@import "layout/grid";
|
25
|
-
@import "layout/
|
26
|
-
|
29
|
+
// @import "layout/responsive";
|
30
|
+
|
31
|
+
// Forms
|
32
|
+
@import "forms/input-placeholder";
|
@@ -0,0 +1,14 @@
|
|
1
|
+
// Form related mixins
|
2
|
+
// ============================================================================
|
3
|
+
|
4
|
+
@mixin input-placeholder {
|
5
|
+
&::-webkit-input-placeholder {
|
6
|
+
@content;
|
7
|
+
}
|
8
|
+
&:-moz-placeholder {
|
9
|
+
@content;
|
10
|
+
}
|
11
|
+
&:-ms-input-placeholder {
|
12
|
+
@content;
|
13
|
+
}
|
14
|
+
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
// # Calculate column gutter from desired value
|
2
|
+
|
3
|
+
// This function will find the nearest round number that
|
4
|
+
// fits well with number of columns and total width specified
|
5
|
+
|
6
|
+
// All parameters are optional (use grid defaults)
|
7
|
+
|
8
|
+
@function grid-column-gutter($grid-size: $grid-size, $desired: $grid-desired-gutter) {
|
9
|
+
$v-gutter: 0px;
|
10
|
+
$column: 1;
|
11
|
+
|
12
|
+
// Find a round gutter width
|
13
|
+
@while $column > $v-gutter {
|
14
|
+
$column: grid-column-width($grid-size, $grid-total-columns, $v-gutter);
|
15
|
+
|
16
|
+
@if $column % 1 == 0 {
|
17
|
+
$range-from: $desired - 6;
|
18
|
+
$range-to: $desired + 20;
|
19
|
+
$within-range: $v-gutter >= $range-from and $v-gutter <= $range-to;
|
20
|
+
// Find gutter within desired range
|
21
|
+
@if $within-range {
|
22
|
+
@return $v-gutter;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
$v-gutter: $v-gutter + 1;
|
26
|
+
}
|
27
|
+
@warn "Couldn't find suitable gutter close to your desired value. Try a different one.";
|
28
|
+
}
|
29
|
+
|
30
|
+
// # Calcuate the width of a single column
|
31
|
+
// All parameters are optional (use grid defaults)
|
32
|
+
@function grid-column-width($grid-size: $grid-size, $total-columns: $grid-total-columns, $gutter: auto) {
|
33
|
+
@if $gutter == auto {
|
34
|
+
$gutter: grid-column-gutter($grid-size, $grid-desired-gutter);
|
35
|
+
}
|
36
|
+
@return ($grid-size - (($total-columns - 1) * $gutter)) / $total-columns;
|
37
|
+
}
|
38
|
+
|
39
|
+
// # Calculate the total width of number of columns including gutters
|
40
|
+
// `$column-width` & `$gutter` are optional (use grid defaults)
|
41
|
+
@function grid-columns-width($column-span, $column-width: auto, $gutter: auto) {
|
42
|
+
@if $column-width == auto {
|
43
|
+
$column-width: grid-column-width();
|
44
|
+
}
|
45
|
+
@if $gutter == auto {
|
46
|
+
$gutter: grid-column-gutter($grid-size, $grid-desired-gutter);
|
47
|
+
}
|
48
|
+
@return ceil($column-span * $column-width + ($column-span - 1) * $gutter);
|
49
|
+
}
|
50
|
+
|
51
|
+
// # Convert percentage of width relative to the total width
|
52
|
+
@function grid-percentage($width, $grid-size: ($grid-size + $grid-gutter)) {
|
53
|
+
@return percentage($width / $grid-size);
|
54
|
+
}
|
@@ -0,0 +1,84 @@
|
|
1
|
+
// Grid debugging tools: Guides
|
2
|
+
// ============================================================================
|
3
|
+
|
4
|
+
// Guides rely on `::before` pseudo element so the will only work on elements
|
5
|
+
// that don't already use it (e.g. not `group(true)`)
|
6
|
+
|
7
|
+
// Draws grid guides
|
8
|
+
@mixin grid-render-guides($grid-size: $grid-size, $grid-type: $grid-type) {
|
9
|
+
|
10
|
+
$v-block-size: 8;
|
11
|
+
|
12
|
+
// Pixel grid default values
|
13
|
+
$v-column-gutter: grid-column-gutter();
|
14
|
+
$v-column-width: grid-column-width();
|
15
|
+
$v-column-relative-width: grid-column-gutter() + grid-column-width();
|
16
|
+
|
17
|
+
@if $grid-type == fluid {
|
18
|
+
// Calculate gutter to column ratio
|
19
|
+
$v-gutter-ratio: $v-column-gutter / ($v-column-width + $v-column-gutter);
|
20
|
+
// Calculate column to grid width ratio
|
21
|
+
$v-column-ratio: ($v-column-width + $v-column-gutter) / $grid-size;
|
22
|
+
|
23
|
+
// Reset column size with percentages
|
24
|
+
$v-column-gutter: percentage($v-gutter-ratio);
|
25
|
+
$v-column-width: 100 - percentage($v-gutter-ratio);
|
26
|
+
$v-column-relative-width: percentage($v-column-ratio);
|
27
|
+
}
|
28
|
+
|
29
|
+
$v-column-gutter: $v-column-width + $v-column-gutter;
|
30
|
+
$v-block-height: (($grid-baseline + 1) * $v-block-size) + $grid-baseline;
|
31
|
+
|
32
|
+
position: relative;
|
33
|
+
|
34
|
+
&:before {
|
35
|
+
content: " ";
|
36
|
+
position: absolute;
|
37
|
+
top: 0;
|
38
|
+
left: 0;
|
39
|
+
right: 0;
|
40
|
+
bottom: 0;
|
41
|
+
|
42
|
+
background:
|
43
|
+
// Baseline (v-rhythm)
|
44
|
+
-webkit-linear-gradient(
|
45
|
+
transparent $grid-baseline,
|
46
|
+
rgba(white, $grid-guides-opacity) $grid-baseline),
|
47
|
+
// Columns
|
48
|
+
-webkit-linear-gradient(left,
|
49
|
+
rgba($grid-guides-color, $grid-guides-opacity),
|
50
|
+
rgba($grid-guides-color, $grid-guides-opacity) $v-column-width,
|
51
|
+
transparent $v-column-width,
|
52
|
+
transparent $v-column-gutter),
|
53
|
+
// Blocks
|
54
|
+
-webkit-linear-gradient(
|
55
|
+
transparent ($v-block-height - $grid-baseline),
|
56
|
+
rgba(white, $grid-guides-opacity / 1.2) $grid-baseline),
|
57
|
+
// Base colour
|
58
|
+
-webkit-linear-gradient(
|
59
|
+
rgba($grid-guides-color, $grid-guides-opacity),
|
60
|
+
rgba($grid-guides-color, $grid-guides-opacity));
|
61
|
+
|
62
|
+
background-size:
|
63
|
+
$v-column-gutter $grid-baseline + 1, // v-rhythm
|
64
|
+
$v-column-relative-width 10px, // column
|
65
|
+
$v-column-gutter ($v-block-height + 1); // block
|
66
|
+
|
67
|
+
// Grid placement (back by default)
|
68
|
+
@if $grid-guides-position == front {
|
69
|
+
z-index: 999;
|
70
|
+
} @else {
|
71
|
+
z-index: -1;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
// Currently only global for all grids
|
77
|
+
@mixin GRID-GUIDES {
|
78
|
+
%l-container > %l-row {
|
79
|
+
@include grid-render-guides($grid-size);
|
80
|
+
&::before {
|
81
|
+
margin: 0 $grid-half-gutter;
|
82
|
+
}
|
83
|
+
}
|
84
|
+
}
|
@@ -0,0 +1,96 @@
|
|
1
|
+
@import "grid-functions";
|
2
|
+
|
3
|
+
// Grid initialisation
|
4
|
+
// -------------------
|
5
|
+
$grid-gutter: grid-column-gutter();
|
6
|
+
$grid-half-gutter: $grid-gutter / 2;
|
7
|
+
$grid-column: grid-column-width();
|
8
|
+
|
9
|
+
|
10
|
+
// Mixins
|
11
|
+
// ------
|
12
|
+
|
13
|
+
// Grid container to set grid bounds
|
14
|
+
@mixin grid-container($width: $grid-size) {
|
15
|
+
min-width: $width;
|
16
|
+
max-width: 100%;
|
17
|
+
width: $width;
|
18
|
+
margin: {
|
19
|
+
left: auto;
|
20
|
+
right: auto;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
// Grid row
|
25
|
+
// $type: <pixel|fluid>
|
26
|
+
@mixin grid-row($type: $grid-type) {
|
27
|
+
@include grid-column-margins($type, -1);
|
28
|
+
}
|
29
|
+
|
30
|
+
// Converts into grid column
|
31
|
+
// $variation - can be normal, last, end, inner or centered
|
32
|
+
@mixin grid-column($type: $grid-type) {
|
33
|
+
@include box-sizing(border-box);
|
34
|
+
min-height: 1px;
|
35
|
+
float: left;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Column margins
|
39
|
+
// $modifier: 1 - normal (column) margins
|
40
|
+
// $modifier: -1 - negative (row) margins
|
41
|
+
@mixin grid-column-margins($type: $grid-type, $modifier: 1) {
|
42
|
+
$v-gutter: auto;
|
43
|
+
|
44
|
+
@if($type == fluid) {
|
45
|
+
$v-gutter: grid-percentage($grid-half-gutter * $modifier);
|
46
|
+
} @else if ($type == pixel) {
|
47
|
+
$v-gutter: $grid-half-gutter * $modifier;
|
48
|
+
}
|
49
|
+
|
50
|
+
margin-left: $v-gutter;
|
51
|
+
margin-right: $v-gutter;
|
52
|
+
}
|
53
|
+
|
54
|
+
// Calculate single column width (in pixels) multipled by number of columns it spans (indluding gutters)
|
55
|
+
@mixin grid-column-width($span: 1, $type: $grid-type, $gutter: $grid-gutter) {
|
56
|
+
$v-col-width: auto;
|
57
|
+
|
58
|
+
@if($type == pixel) {
|
59
|
+
$v-col-width: grid-columns-width($span);
|
60
|
+
} @else if($type == fluid) {
|
61
|
+
$v-col-width: grid-percentage(grid-columns-width($span));
|
62
|
+
} @else if($type == marginless) {
|
63
|
+
$v-col-width: grid-percentage(grid-columns-width($span, $grid-column + $gutter, 0));
|
64
|
+
}
|
65
|
+
|
66
|
+
width: $v-col-width;
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
// Calculate offset width based on number of columns it spans (including gutters)
|
71
|
+
@mixin grid-offset-by-column($span: 1, $direction: left, $flow: positive, $grid-type: $grid-type) {
|
72
|
+
$v-offset: 0px;
|
73
|
+
$v-gutter: $grid-gutter;
|
74
|
+
|
75
|
+
// Grid with rows (outer margins)
|
76
|
+
@if $grid-type != marginless {
|
77
|
+
$v-gutter: $v-gutter * 1.5; // half gutter from row offset
|
78
|
+
}
|
79
|
+
|
80
|
+
// Pixel grid
|
81
|
+
@if $grid-type == pixel {
|
82
|
+
$v-offset: grid-columns-width($span);
|
83
|
+
}
|
84
|
+
// Fluid grid
|
85
|
+
@if $grid-type == fluid or $grid-type == marginless {
|
86
|
+
$v-gutter: grid-percentage($v-gutter);
|
87
|
+
$v-offset: grid-percentage(grid-columns-width($span));
|
88
|
+
}
|
89
|
+
|
90
|
+
// Negative offset
|
91
|
+
@if $flow == negative {
|
92
|
+
$v-offset: -$v-offset + $v-gutter;
|
93
|
+
}
|
94
|
+
|
95
|
+
margin-#{$direction}: $v-offset + $v-gutter;
|
96
|
+
}
|
@@ -0,0 +1,239 @@
|
|
1
|
+
// Semantic grid components
|
2
|
+
// ========================
|
3
|
+
|
4
|
+
// These class placeholders can be used to convert any element into
|
5
|
+
// grid component. To use extend element with appropriate placeholder.
|
6
|
+
// It will automatically take care of the parent and descending components
|
7
|
+
// as long as the correct grid components are used.
|
8
|
+
|
9
|
+
// The structure of the grid is as follows:
|
10
|
+
|
11
|
+
// %l-container – A grid is always contained in one of these
|
12
|
+
// They use global grid settings and can be overriden with:
|
13
|
+
// %l-grid-pixel – Force pixel grid
|
14
|
+
// %l-grid-fluid – Force fluid grid
|
15
|
+
// %l-marginless – Collapse column margins (gutters)
|
16
|
+
//
|
17
|
+
// %l-row – Grid consists of a number of rows
|
18
|
+
// They are required for correct column margins, but can be omitted,
|
19
|
+
// in which case the grid with no `%l-row` becomes marginless
|
20
|
+
//
|
21
|
+
// %l-col – Column, the unit of the grid
|
22
|
+
// %l-col-<$i> – Column size (e.g. `%l-col-4` spans four single columns, including three gutters)
|
23
|
+
//
|
24
|
+
// l-col-from-left-<$i> – Offset column by <column size> from left
|
25
|
+
// l-col-to-left-<$i> – Offset column by <column size> to left (negative margin)
|
26
|
+
// l-col-from-right-<$i> – Offset column by <column size> from right
|
27
|
+
// l-col-to-right-<$i> – Offset column by <column size> to right (negative margin)
|
28
|
+
//
|
29
|
+
// %l-last-col-right – This settings forces last column to float to right, which helps to eliminate
|
30
|
+
// pixel gap caused by rounding in fluid grids and ensures first and last column
|
31
|
+
// occupy full width of grid container.
|
32
|
+
// Applied to grid container (@extend).
|
33
|
+
|
34
|
+
// For examples of usage of these components see `scaffolding.scss` file.
|
35
|
+
|
36
|
+
|
37
|
+
// # Individual grid components
|
38
|
+
|
39
|
+
// Grid container
|
40
|
+
%l-container {
|
41
|
+
@include grid-container;
|
42
|
+
@include box-sizing(content-box);
|
43
|
+
@include group;
|
44
|
+
|
45
|
+
// Defines inner grid container (nested grid)
|
46
|
+
%l-container {
|
47
|
+
min-width: 0;
|
48
|
+
width: 100%;
|
49
|
+
}
|
50
|
+
|
51
|
+
// Defines grid row
|
52
|
+
%l-row {
|
53
|
+
@include grid-row;
|
54
|
+
@include group;
|
55
|
+
}
|
56
|
+
|
57
|
+
// Defines grid row of forced fluid grid
|
58
|
+
&%l-grid-fluid > %l-row, {
|
59
|
+
@include grid-row(fluid);
|
60
|
+
}
|
61
|
+
// Defines grid row of forced pixel grid
|
62
|
+
&%l-grid-pixel > %l-row {
|
63
|
+
@include grid-row(pixel);
|
64
|
+
}
|
65
|
+
|
66
|
+
// Always set nested grids to fluid
|
67
|
+
&%l-container %l-container > %l-row, {
|
68
|
+
@include grid-row(fluid);
|
69
|
+
}
|
70
|
+
|
71
|
+
// Defines row of marginless grid
|
72
|
+
&%l-marginless > %l-row {
|
73
|
+
margin: {
|
74
|
+
left: 0;
|
75
|
+
right: 0;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
|
81
|
+
// Defines columns
|
82
|
+
%l-col {
|
83
|
+
@include grid-column;
|
84
|
+
}
|
85
|
+
|
86
|
+
|
87
|
+
// Float last column to right if `%l-last-col-right` extended
|
88
|
+
// Applied to `%l-container`
|
89
|
+
%l-col + %l-col:last-child {
|
90
|
+
%l-last-col-right%l-container > &,
|
91
|
+
%l-last-col-right%l-container > %l-row & {
|
92
|
+
float: right;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
|
97
|
+
// Defines column sizes
|
98
|
+
@for $i from 1 through $grid-total-columns {
|
99
|
+
|
100
|
+
// ## Spans
|
101
|
+
|
102
|
+
%l-col-#{$i} {
|
103
|
+
%l-row & {
|
104
|
+
@include grid-column-width($i, $grid-type);
|
105
|
+
|
106
|
+
%l-marginless > & {
|
107
|
+
@include grid-column-width($i, marginless);
|
108
|
+
@include grid-column-margins(fluid, 0);
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
// Marginless (container without row)
|
113
|
+
%l-container > & {
|
114
|
+
@include grid-column-width($i, marginless);
|
115
|
+
}
|
116
|
+
|
117
|
+
// Force pixel grid
|
118
|
+
%l-grid-pixel > %l-row > & {
|
119
|
+
@include grid-column-width($i, pixel);
|
120
|
+
@include grid-column-margins(pixel);
|
121
|
+
}
|
122
|
+
// Force fluid grid
|
123
|
+
%l-grid-fluid > %l-row > &,
|
124
|
+
// Always set nested grid to fluid
|
125
|
+
%l-container %l-container > %l-row > & {
|
126
|
+
@include grid-column-width($i, fluid);
|
127
|
+
@include grid-column-margins(fluid);
|
128
|
+
}
|
129
|
+
}
|
130
|
+
}
|
131
|
+
|
132
|
+
|
133
|
+
// Defines column margins
|
134
|
+
// Only applied to descendants of rows
|
135
|
+
%l-row %l-col {
|
136
|
+
@include grid-column-margins;
|
137
|
+
}
|
138
|
+
|
139
|
+
|
140
|
+
// TODO Improve
|
141
|
+
// Defines column offsets
|
142
|
+
%l-container {
|
143
|
+
@for $i from 1 through $grid-total-columns {
|
144
|
+
|
145
|
+
// ## Grid with margins
|
146
|
+
// Default grid offsets
|
147
|
+
& > %l-row %l-col {
|
148
|
+
// From left
|
149
|
+
&%l-col-from-left-#{$i} {
|
150
|
+
@include grid-offset-by-column($i, left, positive, $grid-type);
|
151
|
+
}
|
152
|
+
|
153
|
+
// To left
|
154
|
+
&%l-col-to-left-#{$i} {
|
155
|
+
@include grid-offset-by-column($i, left, negative, $grid-type);
|
156
|
+
}
|
157
|
+
|
158
|
+
// From right
|
159
|
+
&%l-col-from-right-#{$i} {
|
160
|
+
@include grid-offset-by-column($i, right, positive, $grid-type);
|
161
|
+
}
|
162
|
+
|
163
|
+
// To right
|
164
|
+
&%l-col-to-right-#{$i} {
|
165
|
+
@include grid-offset-by-column($i, right, negative, $grid-type);
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
// Pixel grid offsets
|
170
|
+
&%l-grid-pixel > %l-row %l-col {
|
171
|
+
// From left
|
172
|
+
&%l-col-from-left-#{$i} {
|
173
|
+
@include grid-offset-by-column($i, left, positive, pixel);
|
174
|
+
}
|
175
|
+
|
176
|
+
// To left
|
177
|
+
&%l-col-to-left-#{$i} {
|
178
|
+
@include grid-offset-by-column($i, left, negative, pixel);
|
179
|
+
}
|
180
|
+
|
181
|
+
// From right
|
182
|
+
&%l-col-from-right-#{$i} {
|
183
|
+
@include grid-offset-by-column($i, right, positive, pixel);
|
184
|
+
}
|
185
|
+
|
186
|
+
// To right
|
187
|
+
&%l-col-to-right-#{$i} {
|
188
|
+
@include grid-offset-by-column($i, right, negative, pixel);
|
189
|
+
}
|
190
|
+
}
|
191
|
+
|
192
|
+
// Fluid grid offsets
|
193
|
+
&%l-grid-fluid > %l-row %l-col {
|
194
|
+
// From left
|
195
|
+
&%l-col-from-left-#{$i} {
|
196
|
+
@include grid-offset-by-column($i, left, positive, fluid);
|
197
|
+
}
|
198
|
+
|
199
|
+
// To left
|
200
|
+
&%l-col-to-left-#{$i} {
|
201
|
+
@include grid-offset-by-column($i, left, negative, fluid);
|
202
|
+
}
|
203
|
+
|
204
|
+
// From right
|
205
|
+
&%l-col-from-right-#{$i} {
|
206
|
+
@include grid-offset-by-column($i, right, positive, fluid);
|
207
|
+
}
|
208
|
+
|
209
|
+
// To right
|
210
|
+
&%l-col-to-right-#{$i} {
|
211
|
+
@include grid-offset-by-column($i, right, negative, fluid);
|
212
|
+
}
|
213
|
+
}
|
214
|
+
|
215
|
+
// ## Marginless grid
|
216
|
+
& > %l-col,
|
217
|
+
&%l-marginless %l-col {
|
218
|
+
// From left
|
219
|
+
&%l-col-from-left-#{$i} {
|
220
|
+
@include grid-offset-by-column($i, left, positive, marginless);
|
221
|
+
}
|
222
|
+
|
223
|
+
// To left
|
224
|
+
&%l-col-to-left-#{$i} {
|
225
|
+
@include grid-offset-by-column($i, left, negative, marginless);
|
226
|
+
}
|
227
|
+
|
228
|
+
// From right
|
229
|
+
&%l-col-from-right-#{$i} {
|
230
|
+
@include grid-offset-by-column($i, right, positive, marginless);
|
231
|
+
}
|
232
|
+
|
233
|
+
// To right
|
234
|
+
&%l-col-to-right-#{$i} {
|
235
|
+
@include grid-offset-by-column($i, right, negative, marginless);
|
236
|
+
}
|
237
|
+
}
|
238
|
+
}
|
239
|
+
}
|