baseline-scss 0.3.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 +7 -0
- data/LICENSE +15 -0
- data/lib/baseline-scss.rb +1 -0
- data/lib/baseline_scss/version.rb +3 -0
- data/lib/baseline_scss.rb +41 -0
- data/src/_content.scss +7 -0
- data/src/_helpers.scss +49 -0
- data/src/_mixins.scss +7 -0
- data/src/_reboot.scss +227 -0
- data/src/_variables.scss +149 -0
- data/src/_vendors.scss +3 -0
- data/src/baseline.scss +8 -0
- data/src/content/_buttons.scss +37 -0
- data/src/content/_code.scss +15 -0
- data/src/content/_forms.scss +88 -0
- data/src/content/_lists.scss +15 -0
- data/src/content/_multimedia.scss +8 -0
- data/src/content/_tables.scss +27 -0
- data/src/content/_typography.scss +99 -0
- data/src/mixins/_.scss +4 -0
- data/src/mixins/_after_border.scss +12 -0
- data/src/mixins/_clearfix.scss +7 -0
- data/src/mixins/_font_awesome.scss +12 -0
- data/src/mixins/_max_width_container.scss +15 -0
- data/src/mixins/_outline.scss +5 -0
- data/src/mixins/_sr_only.scss +17 -0
- data/src/vendors/_bourbon.scss +54 -0
- data/src/vendors/_include-media.scss +591 -0
- data/src/vendors/animate.css +4072 -0
- data/src/vendors/bourbon/helpers/_buttons-list.scss +14 -0
- data/src/vendors/bourbon/helpers/_scales.scss +27 -0
- data/src/vendors/bourbon/helpers/_text-inputs-list.scss +26 -0
- data/src/vendors/bourbon/library/_border-color.scss +26 -0
- data/src/vendors/bourbon/library/_border-radius.scss +85 -0
- data/src/vendors/bourbon/library/_border-style.scss +25 -0
- data/src/vendors/bourbon/library/_border-width.scss +25 -0
- data/src/vendors/bourbon/library/_buttons.scss +84 -0
- data/src/vendors/bourbon/library/_clearfix.scss +25 -0
- data/src/vendors/bourbon/library/_contrast-switch.scss +81 -0
- data/src/vendors/bourbon/library/_ellipsis.scss +36 -0
- data/src/vendors/bourbon/library/_font-face.scss +65 -0
- data/src/vendors/bourbon/library/_font-stacks.scss +248 -0
- data/src/vendors/bourbon/library/_hide-text.scss +24 -0
- data/src/vendors/bourbon/library/_hide-visually.scss +70 -0
- data/src/vendors/bourbon/library/_margin.scss +37 -0
- data/src/vendors/bourbon/library/_modular-scale.scss +120 -0
- data/src/vendors/bourbon/library/_overflow-wrap.scss +25 -0
- data/src/vendors/bourbon/library/_padding.scss +36 -0
- data/src/vendors/bourbon/library/_position.scss +62 -0
- data/src/vendors/bourbon/library/_prefixer.scss +37 -0
- data/src/vendors/bourbon/library/_shade.scss +32 -0
- data/src/vendors/bourbon/library/_size.scss +50 -0
- data/src/vendors/bourbon/library/_strip-unit.scss +17 -0
- data/src/vendors/bourbon/library/_text-inputs.scss +163 -0
- data/src/vendors/bourbon/library/_timing-functions.scss +36 -0
- data/src/vendors/bourbon/library/_tint.scss +32 -0
- data/src/vendors/bourbon/library/_triangle.scss +82 -0
- data/src/vendors/bourbon/library/_value-prefixer.scss +37 -0
- data/src/vendors/bourbon/settings/_settings.scss +75 -0
- data/src/vendors/bourbon/utilities/_assign-inputs.scss +28 -0
- data/src/vendors/bourbon/utilities/_compact-shorthand.scss +42 -0
- data/src/vendors/bourbon/utilities/_contrast-ratio.scss +31 -0
- data/src/vendors/bourbon/utilities/_directional-property.scss +68 -0
- data/src/vendors/bourbon/utilities/_fetch-bourbon-setting.scss +16 -0
- data/src/vendors/bourbon/utilities/_font-source-declaration.scss +52 -0
- data/src/vendors/bourbon/utilities/_gamma.scss +24 -0
- data/src/vendors/bourbon/utilities/_lightness.scss +24 -0
- data/src/vendors/bourbon/utilities/_unpack-shorthand.scss +29 -0
- data/src/vendors/bourbon/validators/_contains-falsy.scss +20 -0
- data/src/vendors/bourbon/validators/_contains.scss +26 -0
- data/src/vendors/bourbon/validators/_is-color.scss +13 -0
- data/src/vendors/bourbon/validators/_is-length.scss +20 -0
- data/src/vendors/bourbon/validators/_is-number.scss +15 -0
- data/src/vendors/bourbon/validators/_is-size.scss +18 -0
- data/src/vendors/normalize.css +349 -0
- metadata +130 -0
@@ -0,0 +1,248 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// A variable that outputs a Helvetica font stack.
|
4
|
+
///
|
5
|
+
/// @link https://goo.gl/uSJvZe
|
6
|
+
///
|
7
|
+
/// @type list
|
8
|
+
///
|
9
|
+
/// @example scss
|
10
|
+
/// .element {
|
11
|
+
/// font-family: $font-stack-helvetica;
|
12
|
+
/// }
|
13
|
+
///
|
14
|
+
/// // CSS Output
|
15
|
+
/// .element {
|
16
|
+
/// font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
|
17
|
+
/// }
|
18
|
+
|
19
|
+
$font-stack-helvetica: (
|
20
|
+
"Helvetica Neue",
|
21
|
+
"Helvetica",
|
22
|
+
"Arial",
|
23
|
+
sans-serif,
|
24
|
+
);
|
25
|
+
|
26
|
+
/// A variable that outputs a Lucida Grande font stack.
|
27
|
+
///
|
28
|
+
/// @link https://goo.gl/R5UyYE
|
29
|
+
///
|
30
|
+
/// @type list
|
31
|
+
///
|
32
|
+
/// @example scss
|
33
|
+
/// .element {
|
34
|
+
/// font-family: $font-stack-lucida-grande;
|
35
|
+
/// }
|
36
|
+
///
|
37
|
+
/// // CSS Output
|
38
|
+
/// .element {
|
39
|
+
/// font-family: "Lucida Grande", "Lucida Sans Unicode", "Geneva", "Verdana", sans-serif;
|
40
|
+
/// }
|
41
|
+
|
42
|
+
$font-stack-lucida-grande: (
|
43
|
+
"Lucida Grande",
|
44
|
+
"Lucida Sans Unicode",
|
45
|
+
"Geneva",
|
46
|
+
"Verdana",
|
47
|
+
sans-serif,
|
48
|
+
);
|
49
|
+
|
50
|
+
/// A variable that outputs a Verdana font stack.
|
51
|
+
///
|
52
|
+
/// @link https://goo.gl/yGXWSS
|
53
|
+
///
|
54
|
+
/// @type list
|
55
|
+
///
|
56
|
+
/// @example scss
|
57
|
+
/// .element {
|
58
|
+
/// font-family: $font-stack-verdana;
|
59
|
+
/// }
|
60
|
+
///
|
61
|
+
/// // CSS Output
|
62
|
+
/// .element {
|
63
|
+
/// font-family: "Verdana", "Geneva", sans-serif;
|
64
|
+
/// }
|
65
|
+
|
66
|
+
$font-stack-verdana: (
|
67
|
+
"Verdana",
|
68
|
+
"Geneva",
|
69
|
+
sans-serif,
|
70
|
+
);
|
71
|
+
|
72
|
+
/// A variable that outputs a system font stack.
|
73
|
+
///
|
74
|
+
/// @type list
|
75
|
+
///
|
76
|
+
/// @example scss
|
77
|
+
/// .element {
|
78
|
+
/// font-family: $font-stack-system;
|
79
|
+
/// }
|
80
|
+
///
|
81
|
+
/// // CSS Output
|
82
|
+
/// .element {
|
83
|
+
/// font-family: system-ui, -apple-system, BlinkMacSystemFont, "Avenir Next", "Avenir", "Segoe UI", "Lucida Grande", "Helvetica Neue", "Helvetica", "Fira Sans", "Roboto", "Noto", "Droid Sans", "Cantarell", "Oxygen", "Ubuntu", "Franklin Gothic Medium", "Century Gothic", "Liberation Sans", sans-serif;
|
84
|
+
/// }
|
85
|
+
|
86
|
+
$font-stack-system: (
|
87
|
+
system-ui,
|
88
|
+
-apple-system,
|
89
|
+
BlinkMacSystemFont,
|
90
|
+
"Avenir Next",
|
91
|
+
"Avenir",
|
92
|
+
"Segoe UI",
|
93
|
+
"Lucida Grande",
|
94
|
+
"Helvetica Neue",
|
95
|
+
"Helvetica",
|
96
|
+
"Fira Sans",
|
97
|
+
"Roboto",
|
98
|
+
"Noto",
|
99
|
+
"Droid Sans",
|
100
|
+
"Cantarell",
|
101
|
+
"Oxygen",
|
102
|
+
"Ubuntu",
|
103
|
+
"Franklin Gothic Medium",
|
104
|
+
"Century Gothic",
|
105
|
+
"Liberation Sans",
|
106
|
+
sans-serif,
|
107
|
+
);
|
108
|
+
|
109
|
+
/// A variable that outputs a Garamond font stack.
|
110
|
+
///
|
111
|
+
/// @link https://goo.gl/QQFEkV
|
112
|
+
///
|
113
|
+
/// @type list
|
114
|
+
///
|
115
|
+
/// @example scss
|
116
|
+
/// .element {
|
117
|
+
/// font-family: $font-stack-garamond;
|
118
|
+
/// }
|
119
|
+
///
|
120
|
+
/// // CSS Output
|
121
|
+
/// .element {
|
122
|
+
/// font-family: "Garamond", "Baskerville", "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif;
|
123
|
+
/// }
|
124
|
+
|
125
|
+
$font-stack-garamond: (
|
126
|
+
"Garamond",
|
127
|
+
"Baskerville",
|
128
|
+
"Baskerville Old Face",
|
129
|
+
"Hoefler Text",
|
130
|
+
"Times New Roman",
|
131
|
+
serif,
|
132
|
+
);
|
133
|
+
|
134
|
+
/// A variable that outputs a Georgia font stack.
|
135
|
+
///
|
136
|
+
/// @link https://goo.gl/wtzVPy
|
137
|
+
///
|
138
|
+
/// @type list
|
139
|
+
///
|
140
|
+
/// @example scss
|
141
|
+
/// .element {
|
142
|
+
/// font-family: $font-stack-georgia;
|
143
|
+
/// }
|
144
|
+
///
|
145
|
+
/// // CSS Output
|
146
|
+
/// .element {
|
147
|
+
/// font-family: "Georgia", "Times", "Times New Roman", serif;
|
148
|
+
/// }
|
149
|
+
|
150
|
+
$font-stack-georgia: (
|
151
|
+
"Georgia",
|
152
|
+
"Times",
|
153
|
+
"Times New Roman",
|
154
|
+
serif,
|
155
|
+
);
|
156
|
+
|
157
|
+
/// A variable that outputs a Hoefler Text font stack.
|
158
|
+
///
|
159
|
+
/// @link https://goo.gl/n7U7zx
|
160
|
+
///
|
161
|
+
/// @type list
|
162
|
+
///
|
163
|
+
/// @example scss
|
164
|
+
/// .element {
|
165
|
+
/// font-family: $font-stack-hoefler-text;
|
166
|
+
/// }
|
167
|
+
///
|
168
|
+
/// // CSS Output
|
169
|
+
/// .element {
|
170
|
+
/// font-family: "Hoefler Text", "Baskerville Old Face", "Garamond", "Times New Roman", serif;
|
171
|
+
/// }
|
172
|
+
|
173
|
+
$font-stack-hoefler-text: (
|
174
|
+
"Hoefler Text",
|
175
|
+
"Baskerville Old Face",
|
176
|
+
"Garamond",
|
177
|
+
"Times New Roman",
|
178
|
+
serif,
|
179
|
+
);
|
180
|
+
|
181
|
+
/// A variable that outputs a Consolas font stack.
|
182
|
+
///
|
183
|
+
/// @link https://goo.gl/iKrtqv
|
184
|
+
///
|
185
|
+
/// @type list
|
186
|
+
///
|
187
|
+
/// @example scss
|
188
|
+
/// .element {
|
189
|
+
/// font-family: $font-stack-consolas;
|
190
|
+
/// }
|
191
|
+
///
|
192
|
+
/// // CSS Output
|
193
|
+
/// .element {
|
194
|
+
/// font-family: "Consolas", "monaco", monospace;
|
195
|
+
/// }
|
196
|
+
|
197
|
+
$font-stack-consolas: (
|
198
|
+
"Consolas",
|
199
|
+
"monaco",
|
200
|
+
monospace,
|
201
|
+
);
|
202
|
+
|
203
|
+
/// A variable that outputs a Courier New font stack.
|
204
|
+
///
|
205
|
+
/// @link https://goo.gl/bHfWMP
|
206
|
+
///
|
207
|
+
/// @type list
|
208
|
+
///
|
209
|
+
/// @example scss
|
210
|
+
/// .element {
|
211
|
+
/// font-family: $font-stack-courier-new;
|
212
|
+
/// }
|
213
|
+
///
|
214
|
+
/// // CSS Output
|
215
|
+
/// .element {
|
216
|
+
/// font-family: "Courier New", "Courier", "Lucida Sans Typewriter", "Lucida Typewriter", monospace;
|
217
|
+
/// }
|
218
|
+
|
219
|
+
$font-stack-courier-new: (
|
220
|
+
"Courier New",
|
221
|
+
"Courier",
|
222
|
+
"Lucida Sans Typewriter",
|
223
|
+
"Lucida Typewriter",
|
224
|
+
monospace,
|
225
|
+
);
|
226
|
+
|
227
|
+
/// A variable that outputs a Monaco font stack.
|
228
|
+
///
|
229
|
+
/// @link https://goo.gl/9PgKDO
|
230
|
+
///
|
231
|
+
/// @type list
|
232
|
+
///
|
233
|
+
/// @example scss
|
234
|
+
/// .element {
|
235
|
+
/// font-family: $font-stack-monaco;
|
236
|
+
/// }
|
237
|
+
///
|
238
|
+
/// // CSS Output
|
239
|
+
/// .element {
|
240
|
+
/// font-family: "Monaco", "Consolas", "Lucida Console", monospace;
|
241
|
+
/// }
|
242
|
+
|
243
|
+
$font-stack-monaco: (
|
244
|
+
"Monaco",
|
245
|
+
"Consolas",
|
246
|
+
"Lucida Console",
|
247
|
+
monospace,
|
248
|
+
);
|
@@ -0,0 +1,24 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// Hides the text in an element, commonly used to show an image instead. Some
|
4
|
+
/// elements will need block-level styles applied.
|
5
|
+
///
|
6
|
+
/// @link https://goo.gl/EvLRIu
|
7
|
+
///
|
8
|
+
/// @example scss
|
9
|
+
/// .element {
|
10
|
+
/// @include hide-text;
|
11
|
+
/// }
|
12
|
+
///
|
13
|
+
/// // CSS Output
|
14
|
+
/// .element {
|
15
|
+
/// overflow: hidden;
|
16
|
+
/// text-indent: 101%;
|
17
|
+
/// white-space: nowrap;
|
18
|
+
/// }
|
19
|
+
|
20
|
+
@mixin hide-text {
|
21
|
+
overflow: hidden;
|
22
|
+
text-indent: 101%;
|
23
|
+
white-space: nowrap;
|
24
|
+
}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// Hides an element visually while still allowing the content to be accessible
|
4
|
+
/// to assistive technology, e.g. screen readers. Passing `unhide` will reverse
|
5
|
+
/// the affects of the hiding, which is handy for showing the element on focus,
|
6
|
+
/// for example.
|
7
|
+
///
|
8
|
+
/// @link https://goo.gl/Vf1TGn
|
9
|
+
///
|
10
|
+
/// @argument {string} $toggle [hide]
|
11
|
+
/// Accepts `hide` or `unhide`. `unhide` reverses the affects of `hide`.
|
12
|
+
///
|
13
|
+
/// @example scss
|
14
|
+
/// .element {
|
15
|
+
/// @include hide-visually;
|
16
|
+
///
|
17
|
+
/// &:active,
|
18
|
+
/// &:focus {
|
19
|
+
/// @include hide-visually("unhide");
|
20
|
+
/// }
|
21
|
+
/// }
|
22
|
+
///
|
23
|
+
/// // CSS Output
|
24
|
+
/// .element {
|
25
|
+
/// border: 0;
|
26
|
+
/// clip: rect(1px, 1px, 1px, 1px);
|
27
|
+
/// clip-path: inset(100%);
|
28
|
+
/// height: 1px;
|
29
|
+
/// overflow: hidden;
|
30
|
+
/// padding: 0;
|
31
|
+
/// position: absolute;
|
32
|
+
/// width: 1px;
|
33
|
+
/// }
|
34
|
+
///
|
35
|
+
/// .hide-visually:active,
|
36
|
+
/// .hide-visually:focus {
|
37
|
+
/// clip: auto;
|
38
|
+
/// clip-path: none;
|
39
|
+
/// height: auto;
|
40
|
+
/// overflow: visible;
|
41
|
+
/// position: static;
|
42
|
+
/// width: auto;
|
43
|
+
/// }
|
44
|
+
///
|
45
|
+
/// @since 5.0.0
|
46
|
+
|
47
|
+
@mixin hide-visually($toggle: "hide") {
|
48
|
+
@if not index("hide" "unhide", $toggle) {
|
49
|
+
@error "`#{$toggle}` is not a valid value for the `$toggle` argument in " +
|
50
|
+
"the `hide-visually` mixin. Must be either `hide` or `unhide`.";
|
51
|
+
} @else if $toggle == "hide" {
|
52
|
+
border: 0;
|
53
|
+
clip: rect(1px, 1px, 1px, 1px);
|
54
|
+
clip-path: inset(100%);
|
55
|
+
height: 1px;
|
56
|
+
overflow: hidden;
|
57
|
+
padding: 0;
|
58
|
+
position: absolute;
|
59
|
+
white-space: nowrap;
|
60
|
+
width: 1px;
|
61
|
+
} @else if $toggle == "unhide" {
|
62
|
+
clip: auto;
|
63
|
+
clip-path: none;
|
64
|
+
height: auto;
|
65
|
+
overflow: visible;
|
66
|
+
position: static;
|
67
|
+
white-space: inherit;
|
68
|
+
width: auto;
|
69
|
+
}
|
70
|
+
}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// Provides a concise, one-line method for setting `margin` on specific edges
|
4
|
+
/// of a box. Use a `null` value to “skip” edges of the box with standard
|
5
|
+
/// CSS shorthand.
|
6
|
+
///
|
7
|
+
/// @argument {list} $values
|
8
|
+
/// List of margin values; accepts CSS shorthand.
|
9
|
+
///
|
10
|
+
/// @example scss
|
11
|
+
/// .element {
|
12
|
+
/// @include margin(null auto);
|
13
|
+
/// }
|
14
|
+
///
|
15
|
+
/// // CSS Output
|
16
|
+
/// .element {
|
17
|
+
/// margin-left: auto;
|
18
|
+
/// margin-right: auto;
|
19
|
+
/// }
|
20
|
+
///
|
21
|
+
/// @example scss
|
22
|
+
/// .element {
|
23
|
+
/// @include margin(10px 3em 20vh null);
|
24
|
+
/// }
|
25
|
+
///
|
26
|
+
/// // CSS Output
|
27
|
+
/// .element {
|
28
|
+
/// margin-bottom: 20vh;
|
29
|
+
/// margin-right: 3em;
|
30
|
+
/// margin-top: 10px;
|
31
|
+
/// }
|
32
|
+
///
|
33
|
+
/// @require {mixin} _directional-property
|
34
|
+
|
35
|
+
@mixin margin($values) {
|
36
|
+
@include _directional-property(margin, null, $values);
|
37
|
+
}
|
@@ -0,0 +1,120 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// Increments up or down a defined scale and returns an adjusted value. This
|
4
|
+
/// helps establish consistent measurements and spacial relationships throughout
|
5
|
+
/// your project. We provide a list of commonly used scales as
|
6
|
+
/// [pre-defined variables][scales].
|
7
|
+
///
|
8
|
+
/// [scales]: https://github.com/thoughtbot/bourbon/blob/master/core/bourbon/helpers/_scales.scss
|
9
|
+
///
|
10
|
+
/// @argument {number (unitless)} $increment
|
11
|
+
/// How many steps to increment up or down the scale.
|
12
|
+
///
|
13
|
+
/// @argument {number (with unit) | list} $value [1em]
|
14
|
+
/// The base value the scale starts at. Can also be set globally using the
|
15
|
+
/// `modular-scale-base` key in the Bourbon settings.
|
16
|
+
///
|
17
|
+
/// @argument {number (unitless)} $ratio [1.25]
|
18
|
+
/// The ratio the scale is built on. Can also be set globally using the
|
19
|
+
/// `modular-scale-ratio` key in the Bourbon settings.
|
20
|
+
///
|
21
|
+
/// @return {number (with unit)}
|
22
|
+
///
|
23
|
+
/// @example scss
|
24
|
+
/// .element {
|
25
|
+
/// font-size: modular-scale(2);
|
26
|
+
/// }
|
27
|
+
///
|
28
|
+
/// // CSS Output
|
29
|
+
/// .element {
|
30
|
+
/// font-size: 1.5625em;
|
31
|
+
/// }
|
32
|
+
///
|
33
|
+
/// @example scss
|
34
|
+
/// .element {
|
35
|
+
/// margin-right: modular-scale(3, 2em);
|
36
|
+
/// }
|
37
|
+
///
|
38
|
+
/// // CSS Output
|
39
|
+
/// .element {
|
40
|
+
/// margin-right: 3.90625em;
|
41
|
+
/// }
|
42
|
+
///
|
43
|
+
/// @example scss
|
44
|
+
/// .element {
|
45
|
+
/// font-size: modular-scale(3, 1em 1.6em, $major-seventh);
|
46
|
+
/// }
|
47
|
+
///
|
48
|
+
/// // CSS Output
|
49
|
+
/// .element {
|
50
|
+
/// font-size: 3em;
|
51
|
+
/// }
|
52
|
+
///
|
53
|
+
/// @example scss
|
54
|
+
/// // Globally change the base ratio
|
55
|
+
/// $bourbon: (
|
56
|
+
/// "modular-scale-ratio": 1.2,
|
57
|
+
/// );
|
58
|
+
///
|
59
|
+
/// .element {
|
60
|
+
/// font-size: modular-scale(3);
|
61
|
+
/// }
|
62
|
+
///
|
63
|
+
/// // CSS Output
|
64
|
+
/// .element {
|
65
|
+
/// font-size: 1.728em;
|
66
|
+
/// }
|
67
|
+
///
|
68
|
+
/// @require {function} _fetch-bourbon-setting
|
69
|
+
|
70
|
+
@function modular-scale(
|
71
|
+
$increment,
|
72
|
+
$value: _fetch-bourbon-setting("modular-scale-base"),
|
73
|
+
$ratio: _fetch-bourbon-setting("modular-scale-ratio")
|
74
|
+
) {
|
75
|
+
$v1: nth($value, 1);
|
76
|
+
$v2: nth($value, length($value));
|
77
|
+
$value: $v1;
|
78
|
+
|
79
|
+
// scale $v2 to just above $v1
|
80
|
+
@while $v2 > $v1 {
|
81
|
+
$v2: ($v2 / $ratio); // will be off-by-1
|
82
|
+
}
|
83
|
+
@while $v2 < $v1 {
|
84
|
+
$v2: ($v2 * $ratio); // will fix off-by-1
|
85
|
+
}
|
86
|
+
|
87
|
+
// check AFTER scaling $v2 to prevent double-counting corner-case
|
88
|
+
$double-stranded: $v2 > $v1;
|
89
|
+
|
90
|
+
@if $increment > 0 {
|
91
|
+
@for $i from 1 through $increment {
|
92
|
+
@if $double-stranded and ($v1 * $ratio) > $v2 {
|
93
|
+
$value: $v2;
|
94
|
+
$v2: ($v2 * $ratio);
|
95
|
+
} @else {
|
96
|
+
$v1: ($v1 * $ratio);
|
97
|
+
$value: $v1;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
102
|
+
@if $increment < 0 {
|
103
|
+
// adjust $v2 to just below $v1
|
104
|
+
@if $double-stranded {
|
105
|
+
$v2: ($v2 / $ratio);
|
106
|
+
}
|
107
|
+
|
108
|
+
@for $i from $increment through -1 {
|
109
|
+
@if $double-stranded and ($v1 / $ratio) < $v2 {
|
110
|
+
$value: $v2;
|
111
|
+
$v2: ($v2 / $ratio);
|
112
|
+
} @else {
|
113
|
+
$v1: ($v1 / $ratio);
|
114
|
+
$value: $v1;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
}
|
118
|
+
|
119
|
+
@return $value;
|
120
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// Outputs the `overflow-wrap` property and its legacy name `word-wrap` to
|
4
|
+
/// support browsers that do not yet use `overflow-wrap`.
|
5
|
+
///
|
6
|
+
/// @argument {string} $wrap [break-word]
|
7
|
+
/// Accepted CSS values are `normal`, `break-word`, `inherit`, `initial`,
|
8
|
+
/// or `unset`.
|
9
|
+
///
|
10
|
+
/// @example scss
|
11
|
+
/// .wrapper {
|
12
|
+
/// @include overflow-wrap;
|
13
|
+
/// }
|
14
|
+
///
|
15
|
+
/// // CSS Output
|
16
|
+
/// .wrapper {
|
17
|
+
/// word-wrap: break-word;
|
18
|
+
/// overflow-wrap: break-word;
|
19
|
+
/// }
|
20
|
+
|
21
|
+
@mixin overflow-wrap($wrap: break-word) {
|
22
|
+
word-wrap: $wrap;
|
23
|
+
// stylelint-disable-next-line order/properties-alphabetical-order
|
24
|
+
overflow-wrap: $wrap;
|
25
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// Provides a concise method for targeting `padding` on specific sides of a
|
4
|
+
/// box. Use a `null` value to “skip” a side.
|
5
|
+
///
|
6
|
+
/// @argument {list} $values
|
7
|
+
/// List of padding values; accepts CSS shorthand.
|
8
|
+
///
|
9
|
+
/// @example scss
|
10
|
+
/// .element-one {
|
11
|
+
/// @include padding(null 1rem);
|
12
|
+
/// }
|
13
|
+
///
|
14
|
+
/// // CSS Output
|
15
|
+
/// .element-one {
|
16
|
+
/// padding-left: 1rem;
|
17
|
+
/// padding-right: 1rem;
|
18
|
+
/// }
|
19
|
+
///
|
20
|
+
/// @example scss
|
21
|
+
/// .element-two {
|
22
|
+
/// @include padding(10vh null 10px 5%);
|
23
|
+
/// }
|
24
|
+
///
|
25
|
+
/// // CSS Output
|
26
|
+
/// .element-two {
|
27
|
+
/// padding-bottom: 10px;
|
28
|
+
/// padding-left: 5%;
|
29
|
+
/// padding-top: 10vh;
|
30
|
+
/// }
|
31
|
+
///
|
32
|
+
/// @require {mixin} _directional-property
|
33
|
+
|
34
|
+
@mixin padding($values) {
|
35
|
+
@include _directional-property(padding, null, $values);
|
36
|
+
}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// Provides a concise, one-line method for setting an element’s positioning
|
4
|
+
/// properties: `position`, `top`, `right`, `bottom` and `left`. Use a `null`
|
5
|
+
/// value to “skip” an edge of the box.
|
6
|
+
///
|
7
|
+
/// @argument {string} $position
|
8
|
+
/// A CSS position value.
|
9
|
+
///
|
10
|
+
/// @argument {list} $box-edge-values
|
11
|
+
/// List of lengths; accepts CSS shorthand.
|
12
|
+
///
|
13
|
+
/// @example scss
|
14
|
+
/// .element {
|
15
|
+
/// @include position(relative, 0 null null 10em);
|
16
|
+
/// }
|
17
|
+
///
|
18
|
+
/// // CSS Output
|
19
|
+
/// .element {
|
20
|
+
/// left: 10em;
|
21
|
+
/// position: relative;
|
22
|
+
/// top: 0;
|
23
|
+
/// }
|
24
|
+
///
|
25
|
+
/// @example scss
|
26
|
+
/// .element {
|
27
|
+
/// @include position(absolute, 0);
|
28
|
+
/// }
|
29
|
+
///
|
30
|
+
/// // CSS Output
|
31
|
+
/// .element {
|
32
|
+
/// position: absolute;
|
33
|
+
/// top: 0;
|
34
|
+
/// right: 0;
|
35
|
+
/// bottom: 0;
|
36
|
+
/// left: 0;
|
37
|
+
/// }
|
38
|
+
///
|
39
|
+
/// @require {function} _is-length
|
40
|
+
///
|
41
|
+
/// @require {function} _unpack-shorthand
|
42
|
+
|
43
|
+
@mixin position(
|
44
|
+
$position,
|
45
|
+
$box-edge-values
|
46
|
+
) {
|
47
|
+
$box-edge-values: _unpack-shorthand($box-edge-values);
|
48
|
+
$offsets: (
|
49
|
+
"top": nth($box-edge-values, 1),
|
50
|
+
"right": nth($box-edge-values, 2),
|
51
|
+
"bottom": nth($box-edge-values, 3),
|
52
|
+
"left": nth($box-edge-values, 4),
|
53
|
+
);
|
54
|
+
|
55
|
+
position: $position;
|
56
|
+
|
57
|
+
@each $offset, $value in $offsets {
|
58
|
+
@if _is-length($value) {
|
59
|
+
#{$offset}: $value;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// Generates vendor prefixes.
|
4
|
+
///
|
5
|
+
/// @argument {string} $property
|
6
|
+
/// Property to prefix.
|
7
|
+
///
|
8
|
+
/// @argument {string} $value
|
9
|
+
/// Value to use.
|
10
|
+
///
|
11
|
+
/// @argument {list} $prefixes
|
12
|
+
/// Vendor prefixes to output.
|
13
|
+
///
|
14
|
+
/// @example scss
|
15
|
+
/// .element {
|
16
|
+
/// @include prefixer(appearance, none, ("webkit", "moz"));
|
17
|
+
/// }
|
18
|
+
///
|
19
|
+
/// // CSS Output
|
20
|
+
/// .element {
|
21
|
+
/// -webkit-appearance: none;
|
22
|
+
/// -moz-appearance: none;
|
23
|
+
/// appearance: none;
|
24
|
+
/// }
|
25
|
+
///
|
26
|
+
/// @author Hugo Giraudel
|
27
|
+
|
28
|
+
@mixin prefixer(
|
29
|
+
$property,
|
30
|
+
$value,
|
31
|
+
$prefixes: ()
|
32
|
+
) {
|
33
|
+
@each $prefix in $prefixes {
|
34
|
+
#{"-" + $prefix + "-" + $property}: $value;
|
35
|
+
}
|
36
|
+
#{$property}: $value;
|
37
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// Mixes a color with black.
|
4
|
+
///
|
5
|
+
/// @argument {color} $color
|
6
|
+
///
|
7
|
+
/// @argument {number (percentage)} $percent
|
8
|
+
/// The amount of black to be mixed in.
|
9
|
+
///
|
10
|
+
/// @return {color}
|
11
|
+
///
|
12
|
+
/// @example scss
|
13
|
+
/// .element {
|
14
|
+
/// background-color: shade(#ffbb52, 60%);
|
15
|
+
/// }
|
16
|
+
///
|
17
|
+
/// // CSS Output
|
18
|
+
/// .element {
|
19
|
+
/// background-color: #664a20;
|
20
|
+
/// }
|
21
|
+
|
22
|
+
@function shade(
|
23
|
+
$color,
|
24
|
+
$percent
|
25
|
+
) {
|
26
|
+
@if not _is-color($color) {
|
27
|
+
@error "`#{$color}` is not a valid color for the `$color` argument in " +
|
28
|
+
"the `shade` mixin.";
|
29
|
+
} @else {
|
30
|
+
@return mix(#000, $color, $percent);
|
31
|
+
}
|
32
|
+
}
|