piecss 0.1.6 → 0.1.6.1
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/sass/piecss/behavior/base/normalize.scss +1 -1
- data/sass/piecss/behavior/grid/rhythm.scss +0 -33
- data/sass/piecss/settings/constants.scss +6 -0
- data/sass/piecss/settings/form.scss +5 -5
- data/sass/piecss/utilities/layout.scss +9 -5
- data/sass/piecss/utilities/miscellaneous.scss +49 -61
- data/sass/piecss/utilities/rhythm.scss +47 -86
- data/sass/piecss/utilities/sides.scss +244 -252
- data/sass/piecss/utilities/typography.scss +22 -27
- data/sass/piecss/utilities/units.scss +37 -59
- data/sass/piecss/utilities.scss +1 -0
- data/templates/project/screen.scss +4 -4
- metadata +2 -2
@@ -4,17 +4,10 @@
|
|
4
4
|
// Content
|
5
5
|
// 1. Functions
|
6
6
|
// value-map
|
7
|
+
// is-value-map
|
8
|
+
// value-map-to-unit
|
9
|
+
// -sides
|
7
10
|
// 2. Mixins
|
8
|
-
// padding
|
9
|
-
// padding-top
|
10
|
-
// padding-right
|
11
|
-
// padding-bottom
|
12
|
-
// padding-left
|
13
|
-
// margin
|
14
|
-
// margin-top
|
15
|
-
// margin-right
|
16
|
-
// margin-bottom
|
17
|
-
// margin-left
|
18
11
|
// -unit-sides
|
19
12
|
// -sides
|
20
13
|
|
@@ -23,90 +16,121 @@
|
|
23
16
|
|
24
17
|
|
25
18
|
/**
|
26
|
-
* Takes a list of values and returns a spacing map
|
19
|
+
* Takes a list of values and keys and returns a spacing map.
|
27
20
|
*
|
28
21
|
* @since 0.1
|
29
22
|
*
|
30
|
-
* @param {
|
23
|
+
* @param {List} $values - A list of value arguments like CSS's normal padding (0 0 0 0)
|
31
24
|
* @param {String} $property (padding) - The property to which the values should be applied
|
32
25
|
*/
|
33
26
|
|
34
|
-
@function value-map($
|
35
|
-
{
|
36
|
-
// SASS appends a comma to the $sides list,
|
37
|
-
// don't know how to get around this but list the values
|
38
|
-
$sides: nth($sides,1);
|
27
|
+
@function value-map($values, $keys: $keys-side) {
|
39
28
|
|
40
|
-
|
41
|
-
|
29
|
+
// Make sure we have all sides, except when a map is used as an argument
|
30
|
+
@if type-of($values)==map {
|
31
|
+
@return $values;
|
42
32
|
}
|
33
|
+
$values: -sides($values);
|
34
|
+
|
35
|
+
$-list: zip($keys, $values);
|
43
36
|
|
44
|
-
|
45
|
-
$
|
37
|
+
$map: ();
|
38
|
+
@each $pair in $-list {
|
39
|
+
$map: map-merge($map, (nth($pair, 1): nth($pair, 2)));
|
40
|
+
}
|
46
41
|
|
47
|
-
@
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
42
|
+
@return $map;
|
43
|
+
}
|
44
|
+
|
45
|
+
/**
|
46
|
+
* Checks if a Map is a proper value-map by checking for specific keys.
|
47
|
+
*
|
48
|
+
* @since 0.1
|
49
|
+
*
|
50
|
+
* @param {List} $values - The value to test, can be a single number or a list
|
51
|
+
* @param {List} $keys ($keys-side) - A list of keys to match
|
52
|
+
*
|
53
|
+
* @return {Bool}
|
54
|
+
*/
|
55
|
+
|
56
|
+
@function is-value-map($values, $keys: $keys-side) {
|
57
|
+
|
58
|
+
// Start by assuming $values is not a map
|
59
|
+
$is-map: false;
|
60
|
+
|
61
|
+
// Simple test for a match to $keys, passes if there is a single match
|
62
|
+
@if type-of($values)==map {
|
63
|
+
|
64
|
+
@each $key in $keys {
|
65
|
+
@if map-has-key($values, $key)==true {
|
66
|
+
$is-map: true;
|
67
|
+
}
|
60
68
|
}
|
61
69
|
}
|
62
70
|
|
63
|
-
@
|
64
|
-
|
65
|
-
}
|
71
|
+
@return $is-map;
|
72
|
+
}
|
66
73
|
|
67
|
-
|
68
|
-
|
69
|
-
|
74
|
+
/**
|
75
|
+
* Converts values in a (one-dimensional) map to the specified [unit](./#variable-unit).
|
76
|
+
*
|
77
|
+
* @since 0.1
|
78
|
+
*
|
79
|
+
* @throws Argument $map needs to be a map.
|
80
|
+
*
|
81
|
+
* @param {List} $values - The value to test, can be a single number or a list
|
82
|
+
* @param {Number} $unit ($unit) - A list of keys to match
|
83
|
+
*
|
84
|
+
* @return {Map}
|
85
|
+
*/
|
70
86
|
|
71
|
-
|
72
|
-
$spacing: (bottom: $sides);
|
73
|
-
}
|
87
|
+
@function value-map-to-unit($map, $unit: $unit) {
|
74
88
|
|
75
|
-
@
|
76
|
-
$
|
89
|
+
@if not(type-of($map)==map) {
|
90
|
+
@warn 'Argument $map needs to be a map.';
|
91
|
+
@return $map;
|
77
92
|
}
|
78
93
|
|
79
|
-
|
94
|
+
// Convert to units
|
95
|
+
@each $key, $value in $map {
|
96
|
+
$map: map-merge($map, ($key: to-unit($value, $unit)));
|
97
|
+
}
|
98
|
+
|
99
|
+
@return $map;
|
80
100
|
}
|
81
101
|
|
82
102
|
/**
|
83
|
-
*
|
103
|
+
* This function takes a space separated list of padding or margin values and completes it into a list of four side values.
|
84
104
|
*
|
85
105
|
* @since 0.1
|
106
|
+
* @access private
|
86
107
|
*
|
87
|
-
* @
|
108
|
+
* @throws Argument $values needs to be a list.
|
88
109
|
*
|
89
|
-
* @
|
110
|
+
* @param {List} $values - The value to test, can be a single number or a list
|
111
|
+
*
|
112
|
+
* @return {List}
|
90
113
|
*/
|
114
|
+
@function -sides($values) {
|
91
115
|
|
92
|
-
@
|
93
|
-
|
94
|
-
|
95
|
-
$is-map: false;
|
96
|
-
@if map-has-key($values, top)==true {
|
97
|
-
$is-map: true;
|
98
|
-
}
|
99
|
-
@elseif map-has-key($values, right)==true {
|
100
|
-
$is-map: true;
|
101
|
-
}
|
102
|
-
@elseif map-has-key($values, bottom)==true {
|
103
|
-
$is-map: true;
|
116
|
+
@if type-of($values)==map {
|
117
|
+
@warn 'Argument $values needs to be a list or a single value.';
|
118
|
+
@return $values;
|
104
119
|
}
|
105
|
-
|
106
|
-
|
120
|
+
|
121
|
+
// Check for the number of values and convert to a value map
|
122
|
+
$length: length($values);
|
123
|
+
@if $length==1 {
|
124
|
+
$values: $values $values $values $values;
|
125
|
+
} @elseif $length==2 {
|
126
|
+
$values: nth($values, 1) nth($values, 2) nth($values, 1) nth($values, 2);
|
127
|
+
} @elseif $length==3 {
|
128
|
+
$values: nth($values, 1) nth($values, 2) nth($values, 3) nth($values, 2);
|
129
|
+
} @elseif $length==4 {
|
130
|
+
$values: nth($values, 1) nth($values, 2) nth($values, 3) nth($values, 4);
|
107
131
|
}
|
108
132
|
|
109
|
-
@return $
|
133
|
+
@return $values;
|
110
134
|
}
|
111
135
|
|
112
136
|
|
@@ -121,66 +145,58 @@
|
|
121
145
|
* @param {Map} $sides - A spacing map in px (top:0,right:0,bottom:0,left:0)
|
122
146
|
*/
|
123
147
|
|
124
|
-
@mixin padding($
|
125
|
-
|
126
|
-
|
127
|
-
@include -unit-sides($sides, padding);
|
148
|
+
@mixin padding($values) {
|
149
|
+
|
150
|
+
@include -unit-sides($values, padding);
|
128
151
|
}
|
129
|
-
/**
|
130
|
-
* Mixin top padding in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
131
|
-
*
|
132
|
-
* @since 0.1
|
133
|
-
*
|
134
|
-
* @param {Number} $value - A value in px
|
135
|
-
*/
|
136
|
-
|
137
|
-
@mixin padding-top($value)
|
138
|
-
{
|
139
|
-
$sides: value-map($value, padding-top);
|
140
|
-
@include -unit-sides($sides, padding);
|
141
|
-
}
|
142
152
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
@mixin padding-right($value)
|
152
|
-
{
|
153
|
-
$sides: value-map($value, padding-right);
|
154
|
-
@include -unit-sides($sides, padding);
|
155
|
-
}
|
153
|
+
/**
|
154
|
+
* Mixin top padding in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
155
|
+
*
|
156
|
+
* @since 0.1
|
157
|
+
*
|
158
|
+
* @param {Number} $value - A value in px
|
159
|
+
*/
|
156
160
|
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
* @since 0.1
|
161
|
-
*
|
162
|
-
* @param {Number} $value - A value in px
|
163
|
-
*/
|
164
|
-
|
165
|
-
@mixin padding-bottom($value)
|
166
|
-
{
|
167
|
-
$sides: value-map($value, padding-bottom);
|
168
|
-
@include -unit-sides($sides, padding);
|
169
|
-
}
|
161
|
+
@mixin padding-top($value) {
|
162
|
+
@include -unit-sides((top: $value), padding);
|
163
|
+
}
|
170
164
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
165
|
+
/**
|
166
|
+
* Mixin right padding in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
167
|
+
*
|
168
|
+
* @since 0.1
|
169
|
+
*
|
170
|
+
* @param {Number} $value - A value in px
|
171
|
+
*/
|
172
|
+
|
173
|
+
@mixin padding-right($value) {
|
174
|
+
@include -unit-sides((right: $value), padding);
|
175
|
+
}
|
176
|
+
|
177
|
+
/**
|
178
|
+
* Mixin bottom padding in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
179
|
+
*
|
180
|
+
* @since 0.1
|
181
|
+
*
|
182
|
+
* @param {Number} $value - A value in px
|
183
|
+
*/
|
184
|
+
|
185
|
+
@mixin padding-bottom($value) {
|
186
|
+
@include -unit-sides((bottom: $value), padding);
|
187
|
+
}
|
188
|
+
|
189
|
+
/**
|
190
|
+
* Mixin left padding in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
191
|
+
*
|
192
|
+
* @since 0.1
|
193
|
+
*
|
194
|
+
* @param {Number} $value - A value in px
|
195
|
+
*/
|
196
|
+
|
197
|
+
@mixin padding-left($value) {
|
198
|
+
@include -unit-sides((left: $value), padding);
|
199
|
+
}
|
184
200
|
|
185
201
|
|
186
202
|
/**
|
@@ -191,66 +207,59 @@
|
|
191
207
|
* @param {Map} $sides - A spacing map in px (top:0,right:0,bottom:0,left:0)
|
192
208
|
*/
|
193
209
|
|
194
|
-
@mixin margin($
|
195
|
-
|
196
|
-
|
197
|
-
@include -unit-sides($sides, margin);
|
210
|
+
@mixin margin($values) {
|
211
|
+
|
212
|
+
@include -unit-sides($values, margin);
|
198
213
|
}
|
199
|
-
/**
|
200
|
-
* Mixin top margin in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
201
|
-
*
|
202
|
-
* @since 0.1
|
203
|
-
*
|
204
|
-
* @param {Number} $value - A value in px
|
205
|
-
*/
|
206
|
-
|
207
|
-
@mixin margin-top($value)
|
208
|
-
{
|
209
|
-
$sides: value-map($value, margin-top);
|
210
|
-
@include -unit-sides($sides, margin);
|
211
|
-
}
|
212
214
|
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
@mixin margin-right($value)
|
222
|
-
{
|
223
|
-
$sides: value-map($value, margin-right);
|
224
|
-
@include -unit-sides($sides, margin);
|
225
|
-
}
|
215
|
+
/**
|
216
|
+
* Mixin top margin in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
217
|
+
*
|
218
|
+
* @since 0.1
|
219
|
+
*
|
220
|
+
* @param {Number} $value - A value in px
|
221
|
+
*/
|
226
222
|
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
223
|
+
@mixin margin-top($value) {
|
224
|
+
@include -unit-sides((top: $value), margin);
|
225
|
+
}
|
226
|
+
|
227
|
+
/**
|
228
|
+
* Mixin right margin in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
229
|
+
*
|
230
|
+
* @since 0.1
|
231
|
+
*
|
232
|
+
* @param {Number} $value - A value in px
|
233
|
+
*/
|
234
|
+
|
235
|
+
@mixin margin-right($value) {
|
236
|
+
@include -unit-sides((right: $value), margin);
|
237
|
+
}
|
238
|
+
|
239
|
+
/**
|
240
|
+
* Mixin bottom margin in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
241
|
+
*
|
242
|
+
* @since 0.1
|
243
|
+
*
|
244
|
+
* @param {Number} $value - A value in px
|
245
|
+
*/
|
246
|
+
|
247
|
+
@mixin margin-bottom($value) {
|
248
|
+
@include -unit-sides((bottom: $value), margin);
|
249
|
+
}
|
250
|
+
|
251
|
+
/**
|
252
|
+
* Mixin right margin in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
253
|
+
*
|
254
|
+
* @since 0.1
|
255
|
+
*
|
256
|
+
* @param {Number} $value - A value in px
|
257
|
+
*/
|
258
|
+
|
259
|
+
@mixin margin-left($value) {
|
260
|
+
@include -unit-sides((left: $value), margin);
|
261
|
+
}
|
240
262
|
|
241
|
-
/**
|
242
|
-
* Mixin right margin in final unit (defaults to em). The mixin will determine if the shorthand notation, or a single side (...-top, ...-right, ...-bottom, --left) should be used. With rem fallback if the final unit of output is rem.
|
243
|
-
*
|
244
|
-
* @since 0.1
|
245
|
-
*
|
246
|
-
* @param {Number} $value - A value in px
|
247
|
-
*/
|
248
|
-
|
249
|
-
@mixin margin-left($value)
|
250
|
-
{
|
251
|
-
$sides: value-map($value, margin-left);
|
252
|
-
@include -unit-sides($sides, margin);
|
253
|
-
}
|
254
263
|
|
255
264
|
/**
|
256
265
|
* Like [-sides](./#mixin--sides), but with rem fallback if the final unit is rem
|
@@ -261,45 +270,25 @@
|
|
261
270
|
*
|
262
271
|
* @param {Map} $sides - A spacing map in final values (top:0,right:0,bottom:0,left:0)
|
263
272
|
* @param {String} $property - The property to apply the values to (padding, margin)
|
273
|
+
* @param {Number} $unit ($unit) - The final unit to which $target-px is converted, e.g. 1px, 1rem, 1em, 1%
|
264
274
|
*/
|
265
275
|
|
266
|
-
@mixin -unit-sides($
|
267
|
-
{
|
268
|
-
// Convert the values into the final unit of output
|
269
|
-
$unit-values: ();
|
270
|
-
$fallback-values: ();
|
271
|
-
|
272
|
-
$keys: map-keys($sides);
|
273
|
-
@each $side in $keys {
|
274
|
-
|
275
|
-
// Isolate the value
|
276
|
-
$value: nth(map-get($sides, $side), 1);
|
276
|
+
@mixin -unit-sides($values, $property: padding, $unit: $unit) {
|
277
277
|
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
}
|
282
|
-
// Catch rhythm values
|
283
|
-
@if unitless($value) {
|
284
|
-
@if $side==top or $side==bottom {
|
285
|
-
$value: vrhythm($value);
|
286
|
-
}
|
287
|
-
@if $side==right or $side==left {
|
288
|
-
$value: hrhythm($value);
|
289
|
-
}
|
290
|
-
}
|
291
|
-
|
292
|
-
// Create new maps
|
293
|
-
@if unit($unit)==rem {
|
294
|
-
$fallback-values: map-merge($fallback-values, ($side: to-unit($value, $fallback-values)) );
|
295
|
-
}
|
296
|
-
$unit-values: map-merge($unit-values, ($side: to-unit($value)) )
|
278
|
+
// This mixin needs a value-map to work, so convert argument if it is not a value-map;
|
279
|
+
@if not(is-value-map($values, $keys-side)) {
|
280
|
+
$values: value-map(-sides($values), $keys-side);
|
297
281
|
}
|
298
282
|
|
283
|
+
// now, Convert to units
|
284
|
+
$unit-values: ();
|
285
|
+
@each $key, $value in $values {
|
286
|
+
$unit-values: map-merge($unit-values, ($key: to-unit($value, $unit)));
|
287
|
+
}
|
299
288
|
|
300
289
|
// Now, render the property and include rem fallback if needed
|
301
290
|
@if unit($unit)==rem {
|
302
|
-
@include -sides($
|
291
|
+
@include -sides($values, $property);
|
303
292
|
}
|
304
293
|
@include -sides($unit-values, $property);
|
305
294
|
}
|
@@ -311,66 +300,69 @@
|
|
311
300
|
* @access private
|
312
301
|
*
|
313
302
|
* @since 0.1
|
303
|
+
*
|
304
|
+
* @throws 'Argument $map needs to be a value map of four side (top, right, bottom, left) values. Mixin -sides aborted.';
|
314
305
|
*
|
315
306
|
* @param {Map} $sides - A spacing map in final values (top:0,right:0,bottom:0,left:0)
|
316
307
|
* @param {String} $property - The property to apply the values to (padding, margin)
|
317
308
|
*/
|
318
309
|
|
319
|
-
@mixin -sides($
|
320
|
-
{
|
321
|
-
// Initialize some variables
|
322
|
-
$top: '';
|
323
|
-
$right: '';
|
324
|
-
$bottom: '';
|
325
|
-
$left: '';
|
326
|
-
|
327
|
-
@if map-has-key($sides, top) {
|
328
|
-
$top: map-get($sides, top);
|
329
|
-
$top: if(abs($top)==0, 0, $top);
|
330
|
-
}
|
310
|
+
@mixin -sides($values, $property: padding) {
|
331
311
|
|
332
|
-
@if
|
333
|
-
$
|
334
|
-
|
335
|
-
}
|
312
|
+
@if not(is-value-map($values, $keys-side)) {
|
313
|
+
@warn 'Argument $map needs to be a value map of four side (top, right, bottom, left) values. Mixin -sides aborted.';
|
314
|
+
} @else {
|
336
315
|
|
337
|
-
|
338
|
-
$
|
339
|
-
$
|
340
|
-
|
341
|
-
|
342
|
-
@if map-has-key($sides, left) {
|
343
|
-
$left: map-get($sides, left);
|
344
|
-
$left: if(abs($left)==0, 0, $left);
|
345
|
-
}
|
316
|
+
// Initialize some variables
|
317
|
+
$top: null;
|
318
|
+
$right: null;
|
319
|
+
$bottom: null;
|
320
|
+
$left: null;
|
346
321
|
|
347
|
-
|
322
|
+
@if map-has-key($values, top) {
|
323
|
+
$top: map-get($values, top);
|
324
|
+
}
|
348
325
|
|
349
|
-
@if ($
|
350
|
-
|
326
|
+
@if map-has-key($values, right) {
|
327
|
+
$right: map-get($values, right);
|
351
328
|
}
|
352
|
-
|
353
|
-
|
329
|
+
|
330
|
+
@if map-has-key($values, bottom) {
|
331
|
+
$bottom: map-get($values, bottom);
|
354
332
|
}
|
355
|
-
|
356
|
-
|
333
|
+
|
334
|
+
@if map-has-key($values, left) {
|
335
|
+
$left: map-get($values, left);
|
357
336
|
}
|
358
337
|
|
359
|
-
|
360
|
-
|
338
|
+
@if length($values)==4 {
|
339
|
+
|
340
|
+
@if ($top==$bottom and $right==$left and $top==$right) {
|
341
|
+
#{$property}: #{$top};
|
342
|
+
}
|
343
|
+
@elseif ($top==$bottom and $right==$left) {
|
344
|
+
#{$property}: #{$top} #{$right};
|
345
|
+
}
|
346
|
+
@else {
|
347
|
+
#{$property}: #{$top} #{$right} #{$bottom} #{$left};
|
348
|
+
}
|
361
349
|
|
362
|
-
@if $top {
|
363
|
-
#{$property}-top: #{$top};
|
364
|
-
}
|
365
|
-
@if $right {
|
366
|
-
#{$property}-right: #{$right};
|
367
|
-
}
|
368
|
-
@if $bottom {
|
369
|
-
#{$property}-bottom: #{$bottom};
|
370
|
-
}
|
371
|
-
@if $left {
|
372
|
-
#{$property}-left: #{$left};
|
373
350
|
}
|
351
|
+
@else {
|
374
352
|
|
353
|
+
@if $top {
|
354
|
+
#{$property}-top: #{$top};
|
355
|
+
}
|
356
|
+
@if $right {
|
357
|
+
#{$property}-right: #{$right};
|
358
|
+
}
|
359
|
+
@if $bottom {
|
360
|
+
#{$property}-bottom: #{$bottom};
|
361
|
+
}
|
362
|
+
@if $left {
|
363
|
+
#{$property}-left: #{$left};
|
364
|
+
}
|
365
|
+
|
366
|
+
}
|
375
367
|
}
|
376
368
|
}
|
@@ -106,28 +106,25 @@
|
|
106
106
|
|
107
107
|
|
108
108
|
/**
|
109
|
-
*
|
110
|
-
* If the specified span is too small for the font-size, find the next best one based on the specified increment.
|
109
|
+
* Convert a px value to a new unit, within the context of it's containing element
|
111
110
|
*
|
112
111
|
* @since 0.1
|
113
112
|
*
|
114
|
-
* @param {Number} $
|
115
|
-
* @param {Number} $
|
116
|
-
* @param {Number} $
|
113
|
+
* @param {Number} $target-px - the line-height in px
|
114
|
+
* @param {Number} $context ($default-font-size) - The context of the targeted element, for calculations to em
|
115
|
+
* @param {Number} $unit ($line-height-unit) - The final unit to which $target-px is converted, e.g. 1px, 1rem, 1em, 1% or 1 for unitless
|
117
116
|
*
|
118
117
|
* @return {Number} - line-height in px
|
119
118
|
*/
|
120
119
|
|
121
|
-
@function line-height($
|
120
|
+
@function line-height($target-px, $context: $default-font-size, $unit: $line-height-unit)
|
122
121
|
{
|
123
|
-
$line-height: $span * $rhythm;
|
124
122
|
|
125
|
-
@if $
|
126
|
-
|
127
|
-
|
123
|
+
@if unitless($unit) {
|
124
|
+
@return strip-unit($target-px/$context);
|
125
|
+
} @else {
|
126
|
+
@return to-unit($target-px, $unit, $context);
|
128
127
|
}
|
129
|
-
|
130
|
-
@return $line-height;
|
131
128
|
}
|
132
129
|
|
133
130
|
|
@@ -177,6 +174,9 @@
|
|
177
174
|
* @param {Number} $line-height ($default-line-height) - line-height in the final unit of output
|
178
175
|
*/
|
179
176
|
|
177
|
+
|
178
|
+
// font: font-style font-variant font-weight font-size/line-height font-family;
|
179
|
+
|
180
180
|
@mixin font($type, $font-size:$default-font-size, $line-height:$default-line-height)
|
181
181
|
{
|
182
182
|
@if unit($unit)==rem {
|
@@ -266,30 +266,25 @@
|
|
266
266
|
@mixin font-size($target-px, $unit: $unit, $context: $default-font-size)
|
267
267
|
{
|
268
268
|
@if unit($unit) == rem {
|
269
|
-
font-size: $target-px;
|
269
|
+
font-size: to-unit($target-px, $rem-fallback-unit, $context);
|
270
270
|
}
|
271
271
|
font-size: to-unit($target-px, $unit, $context);
|
272
272
|
}
|
273
273
|
|
274
274
|
/**
|
275
|
-
*
|
276
|
-
* If the $line-height-unit equals to 1%, it is used to calculate the line-height instead.
|
277
|
-
* More info: [$default-font-size](./#variable-default-font-size), [$line-height-unit](./#variable-line-height-unit)
|
275
|
+
* Mixin for line-height, automatically converts the value to a new unit, within the context of it's containing element
|
278
276
|
*
|
279
277
|
* @since 0.1
|
280
278
|
*
|
281
|
-
* @param {Number} $
|
282
|
-
* @param {
|
283
|
-
* @param {Number} $unit ($line-height-unit) - The final unit to which $target-px is converted, e.g.
|
279
|
+
* @param {Number} $target-px - the line-height in px
|
280
|
+
* @param {Number} $context ($default-font-size) - The context of the targeted element, for calculations to em
|
281
|
+
* @param {Number} $unit ($line-height-unit) - The final unit to which $target-px is converted, e.g. 1px, 1rem, 1em, 1% or 1 for unitless
|
284
282
|
*/
|
285
283
|
|
286
|
-
@mixin line-height($
|
284
|
+
@mixin line-height($target-px, $context: $default-font-size, $unit: $line-height-unit)
|
287
285
|
{
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
@else {
|
293
|
-
@include vrhythm($span, 'line-height', $context);
|
294
|
-
}
|
286
|
+
@if unit($unit)==rem {
|
287
|
+
line-height: line-height($target-px, $context, $unit: $rem-fallback-unit);
|
288
|
+
}
|
289
|
+
line-height: line-height($target-px, $context, $unit);
|
295
290
|
}
|