concisecss 0.0.5 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +13 -8
- data/app/assets/javascripts/concisecss/dropdown.js +17 -8
- data/app/assets/javascripts/concisecss/naver.js +8 -8
- data/app/assets/javascripts/concisecss/navigation.js +5 -5
- data/app/assets/javascripts/concisecss/non-responsive.js +8 -8
- data/app/assets/stylesheets/base/_headings.scss +129 -119
- data/app/assets/stylesheets/base/_main.scss +15 -13
- data/app/assets/stylesheets/{generic → base}/_print.scss +38 -56
- data/app/assets/stylesheets/base/_selection.scss +15 -9
- data/app/assets/stylesheets/base/_type.scss +21 -19
- data/app/assets/stylesheets/{generic/_shared.scss → base/_vertical-rhythm.scss} +9 -10
- data/app/assets/stylesheets/components/_buttons.scss +174 -0
- data/app/assets/stylesheets/components/_colors.scss +25 -0
- data/app/assets/stylesheets/{objects → components}/_dropdowns.scss +67 -79
- data/app/assets/stylesheets/components/_navigation.scss +133 -0
- data/app/assets/stylesheets/concise.scss +31 -31
- data/app/assets/stylesheets/{generic → helpers}/_clearfix.scss +2 -6
- data/app/assets/stylesheets/helpers/_conditional.scss +128 -0
- data/app/assets/stylesheets/helpers/_functions.scss +32 -0
- data/app/assets/stylesheets/{generic/_helper.scss → helpers/_helpers.scss} +29 -38
- data/app/assets/stylesheets/helpers/_mixins.scss +315 -0
- data/app/assets/stylesheets/{generic → helpers}/_normalize.scss +35 -35
- data/app/assets/stylesheets/{_defaults.scss → helpers/_variables.scss} +68 -78
- data/app/assets/stylesheets/layout/_container.scss +17 -0
- data/app/assets/stylesheets/layout/_forms.scss +103 -0
- data/app/assets/stylesheets/layout/_grid.scss +71 -0
- data/app/assets/stylesheets/layout/_lists.scss +88 -0
- data/app/assets/stylesheets/layout/tables.scss +63 -0
- data/lib/concisecss/concisecss_source.rb +30 -40
- data/lib/concisecss/version.rb +1 -1
- metadata +21 -20
- data/app/assets/stylesheets/generic/_conditional.scss +0 -126
- data/app/assets/stylesheets/generic/_mixins.scss +0 -157
- data/app/assets/stylesheets/objects/_badges.scss +0 -53
- data/app/assets/stylesheets/objects/_breadcrumbs.scss +0 -35
- data/app/assets/stylesheets/objects/_buttons.scss +0 -287
- data/app/assets/stylesheets/objects/_colors.scss +0 -48
- data/app/assets/stylesheets/objects/_groups.scss +0 -102
- data/app/assets/stylesheets/objects/_navigation.scss +0 -382
- data/app/assets/stylesheets/objects/_progress.scss +0 -106
- data/app/assets/stylesheets/objects/_wells.scss +0 -103
@@ -0,0 +1,128 @@
|
|
1
|
+
//------------------------------------
|
2
|
+
// CONDITIONAL
|
3
|
+
//------------------------------------
|
4
|
+
|
5
|
+
// Silent Classes
|
6
|
+
// (mixins have to be used instead of proper silent classes
|
7
|
+
// because of the scope of `@include` inside of media queries.)
|
8
|
+
@mixin show-conditional {
|
9
|
+
display: block;
|
10
|
+
visibility: visible;
|
11
|
+
}
|
12
|
+
|
13
|
+
@mixin hide-conditional {
|
14
|
+
display: none;
|
15
|
+
visibility: hidden;
|
16
|
+
}
|
17
|
+
|
18
|
+
|
19
|
+
@if $use-conditional == true {
|
20
|
+
// Thanks to Bootstrap for having a good method of
|
21
|
+
// showing/hiding content via breakpoints
|
22
|
+
// (http://getbootstrap.com/css/#responsive-utilities)
|
23
|
+
.show-extra-small,
|
24
|
+
.hide-small,
|
25
|
+
.hide-medium,
|
26
|
+
.hide-large,
|
27
|
+
.hide-extra-large,
|
28
|
+
.hide-print,
|
29
|
+
.hide-hd {
|
30
|
+
@include show-conditional;
|
31
|
+
}
|
32
|
+
|
33
|
+
.hide-extra-small,
|
34
|
+
.show-small,
|
35
|
+
.show-medium,
|
36
|
+
.show-large,
|
37
|
+
.show-extra-large,
|
38
|
+
.show-print,
|
39
|
+
.show-hd {
|
40
|
+
@include hide-conditional;
|
41
|
+
}
|
42
|
+
|
43
|
+
@include breakpoint(small) {
|
44
|
+
.show-small,
|
45
|
+
.hide-extra-small,
|
46
|
+
.hide-medium,
|
47
|
+
.hide-large,
|
48
|
+
.hide-extra-large {
|
49
|
+
@include show-conditional;
|
50
|
+
}
|
51
|
+
|
52
|
+
.hide-small,
|
53
|
+
.show-extra-small,
|
54
|
+
.show-medium,
|
55
|
+
.show-large,
|
56
|
+
.show-extra-large {
|
57
|
+
@include hide-conditional;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
@include breakpoint(medium) {
|
62
|
+
.show-medium,
|
63
|
+
.hide-small,
|
64
|
+
.hide-extra-small,
|
65
|
+
.hide-large,
|
66
|
+
.hide-extra-large {
|
67
|
+
@include show-conditional;
|
68
|
+
}
|
69
|
+
|
70
|
+
.hide-medium,
|
71
|
+
.show-small,
|
72
|
+
.show-extra-small,
|
73
|
+
.show-large,
|
74
|
+
.show-extra-large {
|
75
|
+
@include hide-conditional;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
@include breakpoint(large) {
|
80
|
+
.show-large,
|
81
|
+
.hide-extra-small,
|
82
|
+
.hide-small,
|
83
|
+
.hide-medium,
|
84
|
+
.hide-extra-large {
|
85
|
+
@include show-conditional;
|
86
|
+
}
|
87
|
+
|
88
|
+
.hide-large,
|
89
|
+
.show-extra-small,
|
90
|
+
.show-small,
|
91
|
+
.show-medium,
|
92
|
+
.show-extra-large {
|
93
|
+
@include hide-conditional;
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
@include breakpoint(extra-large) {
|
98
|
+
.show-extra-large,
|
99
|
+
.hide-extra-small,
|
100
|
+
.hide-small,
|
101
|
+
.hide-medium,
|
102
|
+
.hide-large {
|
103
|
+
@include show-conditional;
|
104
|
+
}
|
105
|
+
|
106
|
+
.hide-extra-large,
|
107
|
+
.show-extra-small,
|
108
|
+
.show-small,
|
109
|
+
.show-medium,
|
110
|
+
.show-large {
|
111
|
+
@include hide-conditional;
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
// HiDPI and retina
|
116
|
+
@media only screen and (-moz-min-device-pixel-ratio: 1.5),
|
117
|
+
only screen and (-o-min-device-pixel-ratio: 3 / 2),
|
118
|
+
only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
119
|
+
only screen and (min-device-pixel-ratio: 1.5) {
|
120
|
+
.show-hd {
|
121
|
+
@include show-conditional;
|
122
|
+
}
|
123
|
+
|
124
|
+
.hide-hd {
|
125
|
+
@include hide-conditional;
|
126
|
+
}
|
127
|
+
}
|
128
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
//------------------------------------
|
2
|
+
// FUNCTIONS
|
3
|
+
//------------------------------------
|
4
|
+
|
5
|
+
//
|
6
|
+
// Calculates proper rem font-size given
|
7
|
+
// a pixel amount.
|
8
|
+
//
|
9
|
+
@function calculate-rem($font-size) {
|
10
|
+
$rem-size: ($font-size / $base-font-size) * 1rem;
|
11
|
+
|
12
|
+
@return $rem-size;
|
13
|
+
}
|
14
|
+
|
15
|
+
|
16
|
+
//
|
17
|
+
// Calculates proper line-height given a
|
18
|
+
// font-size to maintain vertical rhythm.
|
19
|
+
//
|
20
|
+
@function calculate-line-height($font-size) {
|
21
|
+
$line-height-size: ceil($font-size / $base-line-height) * ($base-line-height / $font-size);
|
22
|
+
|
23
|
+
@return $line-height-size;
|
24
|
+
}
|
25
|
+
|
26
|
+
|
27
|
+
//
|
28
|
+
// Strips the units from a value (px, em, etc).
|
29
|
+
//
|
30
|
+
@function strip-units($value) {
|
31
|
+
@return $value / ($value * 0 + 1);
|
32
|
+
}
|
@@ -2,42 +2,47 @@
|
|
2
2
|
//------------------------------------
|
3
3
|
// HELPER
|
4
4
|
//------------------------------------
|
5
|
+
|
5
6
|
// Add/remove floats
|
6
|
-
.float-left { float: left
|
7
|
+
.float-left { float: left; }
|
7
8
|
|
8
|
-
.float-right { float: right
|
9
|
+
.float-right { float: right; }
|
9
10
|
|
10
|
-
.float-none { float: none
|
11
|
+
.float-none { float: none; }
|
11
12
|
|
12
13
|
|
13
14
|
// Position elements
|
14
|
-
.align-center
|
15
|
+
.align-center,
|
16
|
+
%align-center {
|
15
17
|
display: block;
|
16
18
|
margin-left: auto;
|
17
19
|
margin-right: auto;
|
18
20
|
}
|
19
21
|
|
20
|
-
.no-margin { margin: 0
|
21
|
-
|
22
|
-
.icon-alone { display: inline-block; }
|
22
|
+
.no-margin { margin: 0; }
|
23
23
|
|
24
24
|
|
25
25
|
// Displaying content
|
26
|
-
.inline { display:
|
27
|
-
|
28
|
-
@include breakpoint(extra-small) { .inline { display: inline; } }
|
26
|
+
.inline { display: inline; }
|
29
27
|
|
30
|
-
.show
|
28
|
+
.show,
|
29
|
+
%show {
|
31
30
|
display: block;
|
32
31
|
visibility: visible;
|
33
32
|
}
|
34
33
|
|
35
|
-
.hide
|
34
|
+
.hide,
|
35
|
+
%hide {
|
36
36
|
display: none;
|
37
37
|
visibility: hidden;
|
38
38
|
}
|
39
39
|
|
40
|
-
|
40
|
+
|
41
|
+
// Hide text
|
42
|
+
.screen-reader,
|
43
|
+
%screen-reader,
|
44
|
+
.text-hide,
|
45
|
+
%text-hide {
|
41
46
|
border: 0;
|
42
47
|
clip: rect(0 0 0 0);
|
43
48
|
height: 1px;
|
@@ -50,9 +55,10 @@
|
|
50
55
|
|
51
56
|
|
52
57
|
// Full-width elements
|
53
|
-
.full { width: 100%; }
|
58
|
+
.full-width { width: 100%; }
|
54
59
|
|
55
|
-
img.full
|
60
|
+
img.full-width,
|
61
|
+
%full-width-image {
|
56
62
|
max-width: 100%;
|
57
63
|
height: auto;
|
58
64
|
display: block;
|
@@ -71,11 +77,14 @@
|
|
71
77
|
|
72
78
|
|
73
79
|
// Font weights
|
74
|
-
.weight-light
|
80
|
+
.weight-light,
|
81
|
+
%weight-light { font-weight: 300; }
|
75
82
|
|
76
|
-
.weight-normal
|
83
|
+
.weight-normal,
|
84
|
+
%weight-normal { font-weight: 400; }
|
77
85
|
|
78
|
-
.weight-semibold
|
86
|
+
.weight-semibold,
|
87
|
+
%weight-semibold { font-weight: 600; }
|
79
88
|
|
80
89
|
|
81
90
|
// All-caps text
|
@@ -83,17 +92,7 @@
|
|
83
92
|
|
84
93
|
|
85
94
|
// Stylized ampersand
|
86
|
-
.amp { font: italic 110% Baskerville, "Goudy Old Style", "Palatino", "Book Antiqua", serif
|
87
|
-
|
88
|
-
|
89
|
-
// Hide text
|
90
|
-
.text-hide {
|
91
|
-
border: 0;
|
92
|
-
background-color: transparent;
|
93
|
-
color: transparent;
|
94
|
-
font: 0 / 0 a;
|
95
|
-
text-shadow: none;
|
96
|
-
}
|
95
|
+
.amp { font: italic 110% Baskerville, "Goudy Old Style", "Palatino", "Book Antiqua", serif; }
|
97
96
|
|
98
97
|
|
99
98
|
// Caret icon
|
@@ -106,12 +105,4 @@
|
|
106
105
|
vertical-align: middle;
|
107
106
|
width: 0;
|
108
107
|
}
|
109
|
-
|
110
|
-
|
111
|
-
// Border radius
|
112
|
-
.border-radius { border-radius: $border-radius; }
|
113
|
-
|
114
|
-
|
115
|
-
// Pill style
|
116
|
-
.pill { border-radius: 25px; }
|
117
|
-
}
|
108
|
+
}
|
@@ -0,0 +1,315 @@
|
|
1
|
+
//------------------------------------
|
2
|
+
// MIXINS
|
3
|
+
//------------------------------------
|
4
|
+
|
5
|
+
//
|
6
|
+
// Uses `calculate-rem()` to calculate rem font-size and px
|
7
|
+
// fallback. line-height is calculated with `calculate-line-height()`
|
8
|
+
// but passing `false` will prevent that.
|
9
|
+
//
|
10
|
+
// Parameters:
|
11
|
+
// $font-size: the font size (in pixels) to be converted to rem
|
12
|
+
// $rem-sizing: if you want to convert the font-size to rem or not (default is true)
|
13
|
+
// $line-height: set to false if you wish not to output a calculated line-height (defalt is true)
|
14
|
+
//
|
15
|
+
// Example:
|
16
|
+
// `@include font-size(24px);`
|
17
|
+
//
|
18
|
+
//
|
19
|
+
// Big thanks to inuitcss for inspiration behind this
|
20
|
+
// (https://github.com/csswizardry/inuit.css/blob/master/generic/_mixins.scss)
|
21
|
+
@mixin font-size($font-size, $rem-sizing: true, $line-height: true) {
|
22
|
+
font-size: $font-size;
|
23
|
+
|
24
|
+
@if $rem-sizing == true {
|
25
|
+
font-size: calculate-rem($font-size);
|
26
|
+
}
|
27
|
+
|
28
|
+
@if $line-height == true {
|
29
|
+
line-height: calculate-line-height($font-size);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
|
34
|
+
//
|
35
|
+
// Proper vendor prefixes are created by passing
|
36
|
+
// a property, property value, and browser
|
37
|
+
// vendor (webkit, moz, ms, o, etc).
|
38
|
+
//
|
39
|
+
// Parameters:
|
40
|
+
// $property: what CSS property to generate vendor prefixes for
|
41
|
+
// $value: the value of what was defined in `$property`
|
42
|
+
// $vendors: what vendor prefixes to generate (default is none)
|
43
|
+
//
|
44
|
+
// Example:
|
45
|
+
// `@include vendor(border-radius, 4px, webkit moz ms)`
|
46
|
+
//
|
47
|
+
//
|
48
|
+
@mixin vendor($property, $value, $vendors: "") {
|
49
|
+
@each $vendor in $vendors {
|
50
|
+
@if $vendor != "" {
|
51
|
+
-#{$vendor}-#{$property}: $value;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
#{$property}: $value;
|
56
|
+
}
|
57
|
+
|
58
|
+
|
59
|
+
//
|
60
|
+
// Loops through all of the values in the `$breakpoints`
|
61
|
+
// map and outputs conditional statements used to generate
|
62
|
+
// media query code.
|
63
|
+
//
|
64
|
+
// When calling the mixin, if the parameter matches a key
|
65
|
+
// from the `breakpoints` map, a media query is output with
|
66
|
+
// that key's value. If an explicit value is set (ex: 360px)
|
67
|
+
// then a media query is output with that value.
|
68
|
+
//
|
69
|
+
// Parameters:
|
70
|
+
// $point: the breakpoint value for the media query output
|
71
|
+
//
|
72
|
+
// Example:
|
73
|
+
// `@include breakpoint(extra-small) { ... }`
|
74
|
+
//
|
75
|
+
// `@include breakpoint(360px) { ... }`
|
76
|
+
//
|
77
|
+
//
|
78
|
+
@mixin breakpoint($point) {
|
79
|
+
@if type-of($point) == string {
|
80
|
+
@each $breakpoint-name, $breakpoint-value in $breakpoint-map {
|
81
|
+
@if $point == $breakpoint-name {
|
82
|
+
@media (min-width: $breakpoint-value) {
|
83
|
+
@content;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
} @else {
|
88
|
+
@media (min-width: $point) {
|
89
|
+
@content;
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
|
95
|
+
//
|
96
|
+
// Generates property media queries for any CSS property,
|
97
|
+
// value, and set of breakpoints. Allows you to easily change
|
98
|
+
// property values based a set of breakpoints.
|
99
|
+
//
|
100
|
+
// Parameters:
|
101
|
+
// $properties: what CSS property to output inside of the media queries (can have multiple)
|
102
|
+
// $values: the value for each property (can have multiple)
|
103
|
+
// $responsive-values: what breakpoints to generate media queries for
|
104
|
+
// $use-available-mixins: whether or not to use mixin outputs for properties like `font-size` or `line-height` (default is true)
|
105
|
+
//
|
106
|
+
// Example:
|
107
|
+
// @include responsive("font-size", 11px,
|
108
|
+
// (
|
109
|
+
// "small" : 12px,
|
110
|
+
// 450px : 13px,
|
111
|
+
// 1100px : 14px,
|
112
|
+
// "large" : 15px,
|
113
|
+
// 1600px : 16px,
|
114
|
+
// )
|
115
|
+
// );
|
116
|
+
//
|
117
|
+
//
|
118
|
+
@mixin responsive($properties, $values, $responsive-values, $use-available-mixins: true) {
|
119
|
+
@each $property in $properties {
|
120
|
+
@if $property == "font-size" and $use-available-mixins == true {
|
121
|
+
#{$property}: $values;
|
122
|
+
#{$property}: ($values / $base-font-size) * 1rem;
|
123
|
+
} @else if $property == "line-height" and $use-available-mixins == true {
|
124
|
+
#{$property}: ceil($values / $base-line-height) * ($base-line-height / $values);
|
125
|
+
} @else {
|
126
|
+
#{$property}: $values;
|
127
|
+
}
|
128
|
+
}
|
129
|
+
|
130
|
+
@each $breakpoint, $value in $responsive-values {
|
131
|
+
@if type-of($breakpoint) == string {
|
132
|
+
@if(map-has-key($breakpoint-map, $breakpoint)) {
|
133
|
+
$breakpoint: map-get($breakpoint-map, $breakpoint);
|
134
|
+
} @else {
|
135
|
+
$breakpoint: "null";
|
136
|
+
@warn "Couldn't find breakpoint: " + $breakpoint;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
|
140
|
+
@if $breakpoint != "null" {
|
141
|
+
@media (min-width: $breakpoint) {
|
142
|
+
@each $property in $properties {
|
143
|
+
@if $property == "font-size" and $use-available-mixins == true {
|
144
|
+
#{$property}: #{$value};
|
145
|
+
#{$property}: ($value / $base-font-size) * 1rem;
|
146
|
+
} @else if $property == "line-height" and $use-available-mixins == true {
|
147
|
+
#{$property}: ceil($value / $base-line-height) * ($base-line-height / $value);
|
148
|
+
} @else {
|
149
|
+
#{$property}: #{$value};
|
150
|
+
}
|
151
|
+
}
|
152
|
+
}
|
153
|
+
}
|
154
|
+
}
|
155
|
+
}
|
156
|
+
|
157
|
+
|
158
|
+
//
|
159
|
+
// Generates CSS to wrap semantic columns
|
160
|
+
// in a row.
|
161
|
+
//
|
162
|
+
// Example:
|
163
|
+
// `@include row()`
|
164
|
+
//
|
165
|
+
//
|
166
|
+
@mixin row() {
|
167
|
+
width: 100%;
|
168
|
+
|
169
|
+
&:after {
|
170
|
+
clear: both;
|
171
|
+
content: " ";
|
172
|
+
display: table;
|
173
|
+
}
|
174
|
+
}
|
175
|
+
|
176
|
+
|
177
|
+
//
|
178
|
+
// Generates CSS for semantic columns.
|
179
|
+
//
|
180
|
+
// Parameters:
|
181
|
+
// $column: the number of this particular column (determines width)
|
182
|
+
// $number-columns: number of columns in the row (default is `$column-number`)
|
183
|
+
// $first-column: set to `true` if it's the first column in a row (default is false)
|
184
|
+
// $use-gutters: set to `true` if you want column gutters (default is false)
|
185
|
+
// $gutter-value: percentage value of the gutters to be applied (default is `$gutters` variable)
|
186
|
+
//
|
187
|
+
// Example:
|
188
|
+
// `@include column(16, 4, false, true, 4)`
|
189
|
+
//
|
190
|
+
//
|
191
|
+
@mixin column($column, $number-columns: $column-number, $first-column: false, $use-gutters: false, $gutter-value: strip-units($gutters)) {
|
192
|
+
@include vendor(background-clip, padding-box, webkit);
|
193
|
+
|
194
|
+
@include breakpoint(small) {
|
195
|
+
@if $use-gutters == true {
|
196
|
+
$gutter-size: percentage($gutter-value) * 0.01;
|
197
|
+
$width-of-column: (100% - $gutter-size * ($number-columns - 1)) / $number-columns;
|
198
|
+
|
199
|
+
float: left;
|
200
|
+
@if $first-column == false {
|
201
|
+
margin-left: $gutter-size;
|
202
|
+
}
|
203
|
+
width: $width-of-column * $column + $gutter-size * ($column - 1);
|
204
|
+
} @else {
|
205
|
+
float: left;
|
206
|
+
width: percentage(100 / $number-columns * $column) * .01;
|
207
|
+
}
|
208
|
+
}
|
209
|
+
}
|
210
|
+
|
211
|
+
|
212
|
+
//
|
213
|
+
// Generates CSS for pushing a semantic column left or right.
|
214
|
+
//
|
215
|
+
// Parameters:
|
216
|
+
// $option: set to `push` or `pull` to generate proper styles
|
217
|
+
// $column: the column number
|
218
|
+
// $number-columns: the number of columns in the row (default is $column-number)
|
219
|
+
// $use-gutters: set to `true` if your column has gutters (default is false)
|
220
|
+
// $gutter-value: percentage value of the gutters to be applied (default is `$gutters` variable)
|
221
|
+
//
|
222
|
+
// Example:
|
223
|
+
// `@include push-pull(push, 4, 16, true)`
|
224
|
+
//
|
225
|
+
//
|
226
|
+
@mixin push-pull($option, $column, $number-columns: $column-number, $use-gutters: false, $gutter-value: strip-units($gutters)) {
|
227
|
+
$property: "";
|
228
|
+
|
229
|
+
@if $option == "push" {
|
230
|
+
$property: "left";
|
231
|
+
} @else {
|
232
|
+
$property: "right";
|
233
|
+
}
|
234
|
+
|
235
|
+
@if $use-gutters == true {
|
236
|
+
#{$property}: 100% / $number-columns * $column - $gutter-value;
|
237
|
+
} @else {
|
238
|
+
#{$property}: 100% / $number-columns * $column;
|
239
|
+
}
|
240
|
+
}
|
241
|
+
|
242
|
+
|
243
|
+
//
|
244
|
+
// Generates CSS that will clear both left
|
245
|
+
// and right floats.
|
246
|
+
//
|
247
|
+
// Example:
|
248
|
+
// `@include clearfix()`
|
249
|
+
//
|
250
|
+
//
|
251
|
+
@mixin clearfix() {
|
252
|
+
& {
|
253
|
+
&:after{
|
254
|
+
content: "";
|
255
|
+
display: table;
|
256
|
+
clear: both;
|
257
|
+
}
|
258
|
+
}
|
259
|
+
}
|
260
|
+
|
261
|
+
|
262
|
+
//
|
263
|
+
// Create variable-number grid columns given the value
|
264
|
+
// for variable `$column-number`.
|
265
|
+
//
|
266
|
+
// NOTE:
|
267
|
+
// This is a setup mixin for the Concise grid. If you
|
268
|
+
// wish to set up a grid, please use the `row()` and
|
269
|
+
// `column()` mixins.
|
270
|
+
//
|
271
|
+
@mixin grid-setup($number: $column-number) {
|
272
|
+
@for $i from 1 through $number {
|
273
|
+
$column-width-gutters: (100% - $gutters * ($number - 1)) / $number;
|
274
|
+
|
275
|
+
.#{$column-prefix + $i} {
|
276
|
+
width: 100% / $number * $i;
|
277
|
+
|
278
|
+
.gutters & {
|
279
|
+
width: $column-width-gutters * $i + $gutters * ($i - 1);
|
280
|
+
}
|
281
|
+
}
|
282
|
+
}
|
283
|
+
}
|
284
|
+
|
285
|
+
|
286
|
+
//
|
287
|
+
// Create `.push-` and `.pull-` classes given
|
288
|
+
// the value for variabls `$option` and
|
289
|
+
// `$column-number`.
|
290
|
+
//
|
291
|
+
// NOTE:
|
292
|
+
// This is a setup mixin for the push and pull
|
293
|
+
// functionality in the Concise grid. If you wish
|
294
|
+
// to use that functionality, please use the
|
295
|
+
// `push-pull()` mixin.
|
296
|
+
//
|
297
|
+
@mixin push-pull-setup($option, $number: $column-number) {
|
298
|
+
$property: "";
|
299
|
+
|
300
|
+
@if $option == "push" {
|
301
|
+
$property: "left";
|
302
|
+
} @else {
|
303
|
+
$property: "right";
|
304
|
+
}
|
305
|
+
|
306
|
+
@for $i from 1 to $number {
|
307
|
+
.#{$option}-#{$i} {
|
308
|
+
#{$property}: 100% / $number * $i;
|
309
|
+
|
310
|
+
.gutters & {
|
311
|
+
#{$property}: 100% / $number * $i - $gutters;
|
312
|
+
}
|
313
|
+
}
|
314
|
+
}
|
315
|
+
}
|