typey 1.0.0.beta.2 → 1.0.0.beta.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9dcc04d16cfb798142ac6db19f845d936d9f962f
4
- data.tar.gz: cb5e434d8e4addc5e6aeab29ff23ce69f6d70ca3
3
+ metadata.gz: 3c34a6c9a1229a5c6480eda7888c845b2d1e0d87
4
+ data.tar.gz: 3f1739d241e3b08ce58012fc3df38d543686be51
5
5
  SHA512:
6
- metadata.gz: 205b4e9089a69f10c04579acceda1bae7cfe2c04bbf229a1a86e787d7e265f607e98f7bd172fcaec435ebee6b0e48de364d1618d9f680a9122b0796b375ebc13
7
- data.tar.gz: 2937370f717f1c4594781f32a383beb9871b9e3687e25b51a5387991e3825dc8835782c12b216b26c6c8c07e68b9b95a697fbb5f0502fa65c2e0d417727ecd31
6
+ metadata.gz: 7c63e99105893f1bcd7f745d0fb5993e82447eb9236aa29e210b4631791b465229b6cdb8d4c3f1ef462c092bcabfab7f94b73c91476799af458898a41065a156
7
+ data.tar.gz: 38058da73fcf796f85e441fa34ccaaa6d8475dc46280c7fde25e87efaeba41ec7c286f6ad2a4945a12f4f4a6793635349db293560f8851b05b7afa4b7c6cc860
data/README.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # typey
2
- Do typography better.
2
+
3
+ A complete framework for working with typography on the web.
3
4
 
4
5
  ### Features
5
6
 
6
- Supports outputting in rem, px, pt and em.
7
+ Supports outputting in rem, em and px.
7
8
 
8
9
  ```sass
9
10
  $base-unit: rem;
@@ -41,9 +42,13 @@ button {
41
42
  }
42
43
  ```
43
44
 
45
+ Automatic print media font sizing when using rem or em.
46
+
44
47
  ```css
45
- button {
46
- font-size: 1.8125rem;
48
+ @media print {
49
+ html {
50
+ font-size: 12pt;
51
+ }
47
52
  }
48
53
  ```
49
54
 
@@ -100,14 +105,14 @@ Vanilla Sass
100
105
 
101
106
  ### Getting started
102
107
 
103
- Just like in compass Vertical Rhythm we define our base font size and line height first. In typey, all sizes are defined in `px` or `pt` only.
108
+ Just like in compass Vertical Rhythm we define our base font size and line height first. In typey, all sizes are defined in `px` only.
104
109
 
105
110
  ```sass
106
111
  $base-font-size: 16px;
107
112
  $base-line-height: 24px;
108
113
  ```
109
114
 
110
- We also need to define the base unit that the functions and mixins will output. you can use `px`, `pt` (for print stylesheets), `rem` or `em`.
115
+ We also need to define the base unit that the functions and mixins will output. you can use `rem`, `em` or `px`.
111
116
 
112
117
  ```sass
113
118
  $base-unit: rem;
@@ -121,7 +126,7 @@ html {
121
126
  }
122
127
  ```
123
128
 
124
- Define the `$font-size` map using `px` (or `pt`) - which are easy to read and keep track of (not to mention convert from a design mockup) and t-shirt sizes (which are even easier to keep track of).
129
+ Define the `$font-size` map with t-shirt sizes (which are easier to keep track of then individual values).
125
130
 
126
131
  ```sass
127
132
  $font-size: (
@@ -132,6 +137,12 @@ $font-size: (
132
137
  );
133
138
  ```
134
139
 
140
+ To create print friendly stylesheets you must use a relative base unit (rem or em) - then all the work is taken care of for you. Optionally you can set the base print size like so:
141
+
142
+ ```sass
143
+ $print-font-size: 12pt;
144
+ ```
145
+
135
146
  ### Line height and font sizing examples
136
147
 
137
148
  The simplest way to set font size is via the `font-size` mixin.
@@ -166,7 +177,7 @@ h4 {
166
177
  }
167
178
  ```
168
179
 
169
- When using `em` as your `$base-unit`, each mixin accepts a `$context` parameter so your `em` value will be relative to it's parent or element `font-size`. The `$context` parameter can either accept a t-shirt size or a static value for granular control. See the reference section below for more information.
180
+ When using `em` as your `$base-unit`, each mixin accepts a `$context` parameter so your `em` value will be relative to it's parent or element `font-size`. The `$context` parameter can either accept a t-shirt size or a static value in px. See the reference section below for more information.
170
181
 
171
182
  ```sass
172
183
  h4 {
@@ -180,7 +191,7 @@ h4 {
180
191
 
181
192
  ### Margin and padding examples
182
193
 
183
- The same mixins that we have for `line-height` also exist for `margin` and `padding`, and works exactly the same way.
194
+ The same mixins that we have for `line-height` also exist for `margin` and `padding`, and work exactly the same way.
184
195
 
185
196
  ```sass
186
197
  div {
@@ -207,7 +218,7 @@ div {
207
218
  }
208
219
  ```
209
220
 
210
- If you are using `em`, both the `margin()` and `padding()` functions/mixins accept a ``$context` parameter.
221
+ If you are using `em`, both the `margin()` and `padding()` functions/mixins accept a `$context` parameter.
211
222
 
212
223
  ```sass
213
224
  div {
@@ -259,7 +270,7 @@ $base-font-size: 16px !default;
259
270
  ```
260
271
 
261
272
  The base font size will be used for most calculations involving font-size.
262
- Allowed units: px or pt
273
+ Allowed units: px
263
274
 
264
275
 
265
276
  ```sass
@@ -267,14 +278,14 @@ $base-line-height: 21px !default;
267
278
  ```
268
279
 
269
280
  The base line height will be used for most calculations involving height.
270
- Allowed units: Must be the same as $base-line-height
281
+ Allowed units: px
271
282
 
272
283
 
273
284
  ```sass
274
285
  $base-unit: rem !default;
275
286
  ```
276
287
 
277
- Allowed units: px, pt, em or rem.
288
+ Allowed units: rem, em or px.
278
289
 
279
290
 
280
291
  ```sass
@@ -283,6 +294,19 @@ $rem-fallback: true !default;
283
294
 
284
295
  By default we will provide fallbacks when rem is the base unit.
285
296
 
297
+ ```sass
298
+ $auto-print-sizing: true !default;
299
+ ```
300
+
301
+ By default, when rem or em are the base unit we will output a print suitable media query with the define-type-sizing() mixin. This will take care of all print media type sizing effortlessly.
302
+
303
+ ```sass
304
+ $print-font-size: 12pt !default;
305
+ ```
306
+
307
+ The pt font-size to be used with the print media query when $auto-print-sizing is enabled.
308
+ Allowed units: pt
309
+
286
310
 
287
311
  ```sass
288
312
  $font-size: (
@@ -298,7 +322,7 @@ $font-size: (
298
322
 
299
323
  Default font sizes
300
324
  Once you redefine the $font-size map it will overwrite all sizes here.
301
- Allowed units: Must be the same as $base-line-height
325
+ Allowed units: px
302
326
 
303
327
 
304
328
  ```sass
@@ -309,7 +333,7 @@ $font-weight: (
309
333
  ) !default;
310
334
  ```
311
335
 
312
- Default font weights
336
+ Default font weights
313
337
  This map and accompanying function help provide granular control over setting and retrieving static font weights.
314
338
 
315
339
  ### Mixins
@@ -321,10 +345,10 @@ define-type-sizing($base-font-size: $base-font-size, $base-line-height: $base-li
321
345
  Outputs the base font-size property and the base line-height property. Font-size is outputted as a % of the base browser font size. A fallback for rem is provided for the line-height property.
322
346
 
323
347
  *@param number $base-font-size*
324
- (optional) Use to set to anything other than the base value. Allowed units: px or pt
348
+ (optional) Use to set to anything other than the base value. Allowed units: px
325
349
 
326
350
  *@param number $base-line-height(optional)*
327
- Use to set to anything other than the base value. Allowed units: px or pt
351
+ Use to set to anything other than the base value. Allowed units: px
328
352
 
329
353
 
330
354
  ```sass
@@ -334,13 +358,13 @@ type-layout($size, $x, $context: $size)
334
358
  Outputs both line-height and font-size properties, providing fallbacks when rem is the base unit.
335
359
 
336
360
  *@param number|string $size*
337
- A size from the $font-size map or a px/pt value.
361
+ A size from the $font-size map or a px value.
338
362
 
339
363
  *@param number $x*
340
- Multiple of line height to be used or px/pt value to be converted.
364
+ Multiple of line height to be used or px value to be converted.
341
365
 
342
366
  *@param number|string $context*
343
- (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
367
+ (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
344
368
 
345
369
 
346
370
  ```sass
@@ -350,10 +374,10 @@ font-size($size, $context: $base-font-size)
350
374
  Outputs font-size property, providing fallbacks when rem is the base unit.
351
375
 
352
376
  *@param number|string $size*
353
- A size from the $font-size map or px/pt value to be converted
377
+ A size from the $font-size map or px value to be converted
354
378
 
355
379
  *@param number|string $context*
356
- (optional) Only used if em is the $base-unit. The value of the parent font-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
380
+ (optional) Only used if em is the $base-unit. The value of the parent font-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
357
381
 
358
382
 
359
383
  ```sass
@@ -363,10 +387,10 @@ line-height($x, $context: $base-font-size)
363
387
  Outputs line-height property, providing fallbacks when rem is the base unit.
364
388
 
365
389
  *@param number $x*
366
- Multiple of line height to be used or px/pt value to be converted.
390
+ Multiple of line height to be used or px value to be converted.
367
391
 
368
392
  *@param number|string $context*
369
- (optional) Only used if em is the $base-unit. The value of the elements/parentsfont-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
393
+ (optional) Only used if em is the $base-unit. The value of the elements/parentsfont-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
370
394
 
371
395
 
372
396
  ```sass
@@ -376,12 +400,12 @@ margin($x, $context: $base-font-size)
376
400
  Outputs margin property, providing fallbacks when rem is the base unit.
377
401
 
378
402
  *@param number|list $x*
379
- Multiple of line height to be used or px/pt value to be converted.
403
+ Multiple of line height to be used or px value to be converted.
380
404
  Uses the same parameters as the CSS margin property:
381
405
  i.e. top right bottom left, 1 0 2 0.
382
406
 
383
407
  *@param number|string $context*
384
- (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
408
+ (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
385
409
 
386
410
 
387
411
  ```sass
@@ -391,12 +415,12 @@ padding($x, $context: $base-font-size)
391
415
  Outputs padding property, providing fallbacks when rem is the base unit.
392
416
 
393
417
  *@param number|list $x*
394
- Multiple of line height to be used or px/pt value to be converted.
418
+ Multiple of line height to be used or px value to be converted.
395
419
  Uses the same parameters as the CSS margin property:
396
420
  i.e. top right bottom left, 1 0 2 0.
397
421
 
398
422
  *@param number|string $context*
399
- (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
423
+ (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
400
424
 
401
425
 
402
426
  ```sass
@@ -409,10 +433,10 @@ margin-left($x, $context: $base-font-size)
409
433
  Outputs corresponding margin property, providing fallbacks when rem is the base unit.
410
434
 
411
435
  *@param number|list $x*
412
- Multiple of line height to be used or px/pt value to be converted.
436
+ Multiple of line height to be used or px value to be converted.
413
437
 
414
438
  *@param number|string $context*
415
- (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
439
+ (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
416
440
 
417
441
 
418
442
  ```sass
@@ -425,10 +449,10 @@ padding-left($x, $context: $base-font-size)
425
449
  Outputs corresponding padding property, providing fallbacks when rem is the base unit.
426
450
 
427
451
  *@param number|list $x*
428
- Multiple of line height to be used or px/pt value to be converted.
452
+ Multiple of line height to be used or px value to be converted.
429
453
 
430
454
  *@param number|string $context*
431
- (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
455
+ (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
432
456
 
433
457
  ### Functions
434
458
 
@@ -437,10 +461,10 @@ font-size($size, $context: $base-font-size)
437
461
  ```
438
462
 
439
463
  *@param number|string $size*
440
- A size from the $font-size map or px/pt value to be converted
464
+ A size from the $font-size map or px value to be converted
441
465
 
442
466
  *@param number|string $context*
443
- (optional) Only used if em is the $base-unit. The value of the parent font-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
467
+ (optional) Only used if em is the $base-unit. The value of the parent font-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
444
468
 
445
469
  *@return number*
446
470
  The selected font-size in $base-unit.
@@ -451,10 +475,10 @@ line-height($x, $context: $base-font-size)
451
475
  ```
452
476
 
453
477
  *@param number $x*
454
- Multiple of line height to be used or px/pt value to be converted.
478
+ Multiple of line height to be used or px value to be converted.
455
479
 
456
480
  *@param number|string $context*
457
- (optional) Only used if em is the $base-unit. The value of the elements/parentsfont-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
481
+ (optional) Only used if em is the $base-unit. The value of the elements/parentsfont-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
458
482
 
459
483
  *@return number*
460
484
  The calculated height in $base-unit.
@@ -465,10 +489,10 @@ margin($x, $context: $base-font-size)
465
489
  ```
466
490
 
467
491
  *@param number $x*
468
- Multiple of line height to be used or px/pt value to be converted.
492
+ Multiple of line height to be used or px value to be converted.
469
493
 
470
494
  *@param number|string $context*
471
- (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
495
+ (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
472
496
 
473
497
  *@return number*
474
498
  The calculated height in $base-unit.
@@ -479,10 +503,10 @@ padding($x, $context: $base-font-size)
479
503
  ```
480
504
 
481
505
  *@param number $x*
482
- Multiple of line height to be used or px/pt value to be converted.
506
+ Multiple of line height to be used or px value to be converted.
483
507
 
484
508
  *@param number|string $context*
485
- (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in the same unit as the $font-size map.
509
+ (optional) Only used if em is the $base-unit. The value of the elements/parents font-size if it differs from $base-font-size. Specified as a t-shirt size or value in px.
486
510
 
487
511
  *@return number*
488
512
  The calculated height in $base-unit.
@@ -1,23 +1,34 @@
1
1
  // The browser font size default. No need to change this.
2
+ // Allowed units: px
2
3
  $browser-font-size: 16px !default;
3
4
 
4
5
  // The base font size will be used for most calculations involving font-size.
5
- // Allowed units: px or pt
6
+ // Allowed units: px
6
7
  $base-font-size: 16px !default;
7
8
 
8
9
  // The base line height will be used for most calculations involving height.
9
- // Allowed units: Must be the same as $base-line-height
10
+ // Allowed units: px
10
11
  $base-line-height: 21px !default;
11
12
 
12
- // Allowed units: px, pt, em or rem.
13
+ // Allowed units: rem, em or px
13
14
  $base-unit: rem !default;
14
15
 
15
16
  // By default we will provide fallbacks when rem is the base unit.
16
17
  $rem-fallback: true !default;
17
18
 
19
+ // By default, when rem or em are the base unit we will output a print suitable
20
+ // media query with the define-type-sizing() mixin. This will take care of all
21
+ // print media type sizing effortlessly.
22
+ $auto-print-sizing: true !default;
23
+
24
+ // The pt font-size to be used with the print media query when
25
+ // $auto-print-sizing is enabled.
26
+ // Allowed units: pt
27
+ $print-font-size: 12pt !default;
28
+
18
29
  // Default font sizes
19
30
  // Once you redefine the $font-size map it will overwrite all sizes here.
20
- // Allowed units: Must be the same as $base-line-height
31
+ // Allowed units: px
21
32
  $font-size: (
22
33
  xxxl: 60px,
23
34
  xxl: 46px,
@@ -38,22 +49,27 @@ $font-weight: (
38
49
  ) !default;
39
50
 
40
51
  // Warnings for $base-unit.
41
- @if $base-unit != px and $base-unit != pt and $base-unit != rem and $base-unit != em {
42
- @error "$base-unit must be one of the following unit types: px, pt, rem, em";
52
+ @if $base-unit != px and $base-unit != rem and $base-unit != em {
53
+ @error "$base-unit must be one of the following unit types: rem, em or px";
43
54
  }
44
55
 
45
56
  // Warnings for $base-font-size and $base-line-height.
46
- @if unit($base-font-size) != px and unit($base-font-size) != pt {
47
- @error "$base-font-size must be one of the following unit types: px, pt";
57
+ @if unit($base-font-size) != px {
58
+ @error "$base-font-size must be in px";
48
59
  }
49
- @if unit($base-line-height) != unit($base-font-size) {
50
- @error "$base-line-height must use the same unit as $base-font-size.";
60
+ @if unit($base-line-height) != px {
61
+ @error "$base-line-height must be in px";
62
+ }
63
+
64
+ // Warnings for $print-font-size.
65
+ @if unit($print-font-size) != pt {
66
+ @error "$print-font-size must be in pt";
51
67
  }
52
68
 
53
69
  // Warnings for $font-size
54
70
  @each $key, $size in $font-size {
55
- @if unit($size) != unit($base-font-size) {
56
- @error "Size '#{$key}' in $font-size map does not match the $base-font-size unit.";
71
+ @if unit($size) != px {
72
+ @error "Size '#{$key}' in $font-size map is not specified in px";
57
73
  }
58
74
  }
59
75
 
@@ -61,10 +77,10 @@ $font-weight: (
61
77
  //
62
78
  // @param number $base-font-size
63
79
  // (optional) Use to set to anything other than the base value.
64
- // Allowed units: px or pt
80
+ // Allowed units: px
65
81
  // @param number $base-line-height
66
82
  // (optional) Use to set to anything other than the base value.
67
- // Allowed units: px or pt
83
+ // Allowed units: px
68
84
  @mixin define-type-sizing($base-font-size: $base-font-size, $base-line-height: $base-line-height) {
69
85
  @if $base-unit == rem {
70
86
  font-size: $base-font-size / $browser-font-size * 100%;
@@ -73,7 +89,7 @@ $font-weight: (
73
89
  }
74
90
  line-height: output-unit($base-line-height / $base-font-size);
75
91
  }
76
- @if $base-unit == px or $base-unit == pt {
92
+ @if $base-unit == px {
77
93
  font-size: $base-font-size;
78
94
  line-height: $base-line-height;
79
95
  }
@@ -81,4 +97,14 @@ $font-weight: (
81
97
  font-size: $base-font-size / $browser-font-size * 100%;
82
98
  line-height: output-unit($base-line-height / $base-font-size);
83
99
  }
100
+ @if $auto-print-sizing == true {
101
+ @if $base-unit == rem or $base-unit == em {
102
+ @media print {
103
+ font-size: $print-font-size;
104
+ }
105
+ }
106
+ @else {
107
+ @warn "As you are not using a relative base unit (rem or em) automatic print media sizing will not work. Set $auto-print-sizing to false to hide this warning"
108
+ }
109
+ }
84
110
  }
@@ -1,12 +1,12 @@
1
1
  // Takes a sizing from the $font-size map (m, xl, xxl, etc) and convert it to
2
- // the base unit. Alternatively convert a px/pt font-size into the base unit.
2
+ // the base unit. Alternatively convert a px font-size into the base unit.
3
3
  //
4
4
  // @param number|string $size
5
- // A size from the $font-size map or px/pt value to be converted
5
+ // A size from the $font-size map or px value to be converted
6
6
  // @param number|string $context
7
7
  // (optional) Only used if em is the $base-unit. The value of the parent
8
8
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
9
- // value in the same unit as the $font-size map.
9
+ // value in px.
10
10
  //
11
11
  // @return number
12
12
  // The selected font-size in $base-unit.
@@ -15,26 +15,26 @@
15
15
  @return output-from-font-size-map($size, $context);
16
16
  }
17
17
  @if type-of($size) == "number" and not unitless($size) {
18
- @if unit($size) == unit($base-font-size) {
18
+ @if unit($size) == px {
19
19
  @return convert-unit($size, $context);
20
20
  }
21
21
  @else {
22
- @error "font-size() only accepts values with the same unit as $base-font-size.";
22
+ @error "font-size() only accepts keys from the $font-size map or values in px";
23
23
  }
24
24
  }
25
25
  @else {
26
- @error "font-size() only accepts keys from the font map or values in px or pt.";
26
+ @error "font-size() only accepts keys from the $font-size map or values in px";
27
27
  }
28
28
  }
29
29
 
30
30
  // Define font-size (with fallback)
31
31
  //
32
32
  // @param number|string $size
33
- // A size from the $font-size map or px/pt value to be converted
33
+ // A size from the $font-size map or px value to be converted
34
34
  // @param number|string $context
35
35
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
36
36
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
37
- // value in the same unit as the $font-size map.
37
+ // value in px.
38
38
  @mixin font-size($size, $context: $base-font-size) {
39
39
  @if $base-unit == rem {
40
40
  @if $rem-fallback == true {
@@ -43,11 +43,11 @@
43
43
  font-size: $map-size;
44
44
  }
45
45
  @if type-of($size) == "number" and not unitless($size) {
46
- @if unit($size) == unit($base-font-size) {
46
+ @if unit($size) == px {
47
47
  font-size: $size;
48
48
  }
49
49
  @else {
50
- @error "font-size() only accepts values with the same unit as $base-font-size.";
50
+ @error "font-size() only accepts keys from the $font-size map or values in px";
51
51
  }
52
52
  }
53
53
  }
@@ -12,9 +12,6 @@
12
12
  @if $base-unit == px {
13
13
  @return $number * 1px;
14
14
  }
15
- @if $base-unit == pt {
16
- @return $number * 1pt;
17
- }
18
15
  @if $base-unit == em {
19
16
  @return $number * 1em;
20
17
  }
@@ -34,30 +31,25 @@
34
31
  @return $number;
35
32
  }
36
33
 
37
- // Convert px or pt to the $base-unit.
34
+ // Convert px to the $base-unit.
38
35
  //
39
36
  // @param number $number
40
- // The number (with unit) to convert. Allowed units: px, pt
37
+ // The number (with unit) to convert. Allowed units: px
41
38
  // @param number|string $context
42
39
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
43
40
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
44
- // value in the same unit as the $font-size map.
41
+ // value in px.
45
42
  //
46
43
  // @return number
47
44
  // The number converted to the base unit.
48
45
  @function convert-unit($number, $context: $base-font-size) {
49
46
  @if type-of($number) == "number" and not unitless($number) {
50
47
  $unit: unit($number);
51
- @if $unit == px or $unit == pt {
48
+ @if $unit == px {
52
49
  @if $base-unit == rem {
53
- @if $unit == unit($base-font-size) {
54
- @return output-unit(($number / $base-font-size));
55
- }
56
- @else {
57
- @error "convert-unit() only accepts values with the same unit as $base-font-size.";
58
- }
50
+ @return output-unit(($number / $base-font-size));
59
51
  }
60
- @if $base-unit == px or $base-unit == pt {
52
+ @if $base-unit == px {
61
53
  @return output-unit(strip-unit($number));
62
54
  }
63
55
  @if $base-unit == em {
@@ -67,21 +59,21 @@
67
59
  @return output-unit(($number / $context-map-size));
68
60
  }
69
61
  @else {
70
- @error "'#{$context}' not found in $font-size map.";
62
+ @error "'#{$context}' not found in $font-size map";
71
63
  }
72
64
  }
73
- @if type-of($context) == "number" {
74
- @if unit($context) == unit($base-font-size) {
65
+ @if type-of($context) == "number" and not unitless($number) {
66
+ @if unit($context) == px {
75
67
  @return output-unit(($number / $context));
76
68
  }
77
69
  @else {
78
- @error "The unit used for $context does not match the $base-font-size unit.";
70
+ @error "The unit used for $context must be px";
79
71
  }
80
72
  }
81
73
  }
82
74
  }
83
75
  @else {
84
- @error "convert-unit() only accepts values in px or pt.";
76
+ @error "convert-unit() only accepts values in px";
85
77
  }
86
78
  }
87
79
  }
@@ -93,7 +85,7 @@
93
85
  // @param number|string $context
94
86
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
95
87
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
96
- // value in the same unit as the $font-size map.
88
+ // value in px.
97
89
  //
98
90
  // @return number
99
91
  // The value of the line-height multiple converted to the base unit.
@@ -101,16 +93,16 @@
101
93
  @if $base-unit == rem {
102
94
  @return output-unit(($x * $base-line-height) / $base-font-size);
103
95
  }
104
- @if $base-unit == px or $base-unit == pt {
96
+ @if $base-unit == px {
105
97
  @return output-unit(strip-unit($x * $base-line-height));
106
98
  }
107
99
  @if $base-unit == em {
108
100
  @if type-of($context) == "number" {
109
- @if unit($context) == unit($base-font-size) {
101
+ @if unit($context) == px {
110
102
  @return output-unit(($x * $base-line-height) / $context);
111
103
  }
112
104
  @else {
113
- @error "The unit used for $context does not match the $base-font-size unit.";
105
+ @error "The unit used for $context must be px";
114
106
  }
115
107
  }
116
108
  @if type-of($context) == "string" {
@@ -119,11 +111,11 @@
119
111
  @return output-unit(($x * $base-line-height) / $context-map-size);
120
112
  }
121
113
  @else {
122
- @error "'#{$context}' not found in $font-size map.";
114
+ @error "'#{$context}' not found in $font-size map";
123
115
  }
124
116
  }
125
117
  @else {
126
- @error "$context must be a px/pt value or a key from the $font-size map.";
118
+ @error "$context must be a px value or a key from the $font-size map";
127
119
  }
128
120
  }
129
121
  }
@@ -137,7 +129,7 @@
137
129
  // @param number|string $context
138
130
  // (optional) Only used if em is the $base-unit. The value of the parent
139
131
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
140
- // value in the same unit as the $font-size map.
132
+ // value in px.
141
133
  //
142
134
  // @return number
143
135
  // The selected font-size in $base-unit.
@@ -157,23 +149,23 @@
157
149
  @return output-unit(($map-size / $context-map-size));
158
150
  }
159
151
  @else {
160
- @error "'#{$context}' not found in $font-size map.";
152
+ @error "'#{$context}' not found in $font-size map";
161
153
  }
162
154
  }
163
155
  @if type-of($context) == "number" {
164
- @if unit($context) == unit($base-font-size) {
156
+ @if unit($context) == px {
165
157
  @return output-unit(($map-size / $context));
166
158
  }
167
159
  @else {
168
- @error "The unit used for $context does not match the $base-font-size unit.";
160
+ @error "The unit used for $context must be px";
169
161
  }
170
162
  }
171
163
  @else {
172
- @error "$context must be a px/pt value or a key from the $font-size map.";
164
+ @error "$context must be a px value or a key from the $font-size map";
173
165
  }
174
166
  }
175
167
  }
176
168
  @else {
177
- @error "'#{$size}' not found in $font-size map.";
169
+ @error "'#{$size}' not found in $font-size map";
178
170
  }
179
171
  }
@@ -12,7 +12,7 @@
12
12
  // @param number|string $context
13
13
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
14
14
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
15
- // value in the same unit as the $font-size map.
15
+ // value in px.
16
16
  //
17
17
  // @return number
18
18
  // The calculated height in $base-unit.
@@ -21,15 +21,15 @@
21
21
  @return output-from-multiplier($x, $context);
22
22
  }
23
23
  @if type-of($x) == "number" and not unitless($x) {
24
- @if unit($x) == unit($base-font-size) {
24
+ @if unit($x) == px {
25
25
  @return convert-unit($x, $context);
26
26
  }
27
27
  @else {
28
- @error "line-height() only accepts values with the same unit as $base-font-size.";
28
+ @error "line-height() only accepts unitless numbers or values in px";
29
29
  }
30
30
  }
31
31
  @else {
32
- @error "line-height() only accepts unitless numbers or values in px or pt.";
32
+ @error "line-height() only accepts unitless numbers or values in px";
33
33
  }
34
34
  }
35
35
 
@@ -42,7 +42,7 @@
42
42
  // @param number|string $context
43
43
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
44
44
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
45
- // value in the same unit as the $font-size map.
45
+ // value in px.
46
46
  @mixin line-height($x, $context: $base-font-size) {
47
47
  @if $base-unit == rem {
48
48
  @if $rem-fallback == true {
@@ -50,7 +50,12 @@
50
50
  line-height: $x * $base-line-height;
51
51
  }
52
52
  @if type-of($x) == "number" and not unitless($x) {
53
- line-height: $x;
53
+ @if unit($size) == px {
54
+ line-height: $x;
55
+ }
56
+ @else {
57
+ @error "line-height() only accepts unitless numbers or values in px";
58
+ }
54
59
  }
55
60
  }
56
61
  }
@@ -8,11 +8,11 @@
8
8
  // margin: margin(18px);
9
9
  //
10
10
  // @param number $x
11
- // Multiple of line height to be used or px/pt value to be converted.
11
+ // Multiple of line height to be used or px value to be converted.
12
12
  // @param number|string $context
13
13
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
14
14
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
15
- // value in the same unit as the $font-size map.
15
+ // value in px.
16
16
  //
17
17
  // @return number
18
18
  // The calculated height in $base-unit.
@@ -25,13 +25,13 @@
25
25
  // using rem as $base-unit.
26
26
  //
27
27
  // @param number|list $x
28
- // Multiple of line height to be used or px/pt value to be converted.
28
+ // Multiple of line height to be used or px value to be converted.
29
29
  // Uses the same parameters as the CSS margin property:
30
30
  // i.e. top right bottom left, 1 0 2 0.
31
31
  // @param number|string $context
32
32
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
33
33
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
34
- // value in the same unit as the $font-size map.
34
+ // value in px.
35
35
  @mixin margin($list, $context: $base-font-size) {
36
36
  $px-list: ();
37
37
  $converted-list: ();
@@ -61,11 +61,11 @@
61
61
  // using rem as $base-unit.
62
62
  //
63
63
  // @param number $x
64
- // Multiple of line height to be used or px/pt value to be converted.
64
+ // Multiple of line height to be used or px value to be converted.
65
65
  // @param number|string $context
66
66
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
67
67
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
68
- // value in the same unit as the $font-size map.
68
+ // value in px.
69
69
  @mixin margin-top($x, $context: $base-font-size) {
70
70
  @if $base-unit == rem {
71
71
  @if $rem-fallback == true {
@@ -85,11 +85,11 @@
85
85
  // using rem as $base-unit.
86
86
  //
87
87
  // @param number $x
88
- // Multiple of line height to be used or px/pt value to be converted.
88
+ // Multiple of line height to be used or px value to be converted.
89
89
  // @param number|string $context
90
90
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
91
91
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
92
- // value in the same unit as the $font-size map.
92
+ // value in px.
93
93
  @mixin margin-bottom($x, $context: $base-font-size) {
94
94
  @if $base-unit == rem {
95
95
  @if $rem-fallback == true {
@@ -109,11 +109,11 @@
109
109
  // using rem as $base-unit.
110
110
  //
111
111
  // @param number $x
112
- // Multiple of line height to be used or px/pt value to be converted.
112
+ // Multiple of line height to be used or px value to be converted.
113
113
  // @param number|string $context
114
114
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
115
115
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
116
- // value in the same unit as the $font-size map.
116
+ // value in px.
117
117
  @mixin margin-left($x, $context: $base-font-size) {
118
118
  @if $base-unit == rem {
119
119
  @if $rem-fallback == true {
@@ -133,11 +133,11 @@
133
133
  // using rem as $base-unit.
134
134
  //
135
135
  // @param number $x
136
- // Multiple of line height to be used or px/pt value to be converted.
136
+ // Multiple of line height to be used or px value to be converted.
137
137
  // @param number|string $context
138
138
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
139
139
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
140
- // value in the same unit as the $font-size map.
140
+ // value in px.
141
141
  @mixin margin-right($x, $context: $base-font-size) {
142
142
  @if $base-unit == rem {
143
143
  @if $rem-fallback == true {
@@ -8,11 +8,11 @@
8
8
  // padding: padding(18px);
9
9
  //
10
10
  // @param number $x
11
- // Multiple of line height to be used or px/pt value to be converted.
11
+ // Multiple of line height to be used or px value to be converted.
12
12
  // @param number|string $context
13
13
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
14
14
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
15
- // value in the same unit as the $font-size map.
15
+ // value in px.
16
16
  //
17
17
  // @return number
18
18
  // The calculated height in $base-unit.
@@ -25,13 +25,13 @@
25
25
  // using rem as $base-unit.
26
26
  //
27
27
  // @param number|list $x
28
- // Multiple of line height to be used or px/pt value to be converted.
28
+ // Multiple of line height to be used or px value to be converted.
29
29
  // Uses the same parameters as the CSS padding property:
30
30
  // i.e. top right bottom left, 1 0 2 0.
31
31
  // @param number|string $context
32
32
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
33
33
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
34
- // value in the same unit as the $font-size map.
34
+ // value in px.
35
35
  @mixin padding($list, $context: $base-font-size) {
36
36
  $px-list: ();
37
37
  $converted-list: ();
@@ -61,11 +61,11 @@
61
61
  // using rem as $base-unit.
62
62
  //
63
63
  // @param number $x
64
- // Multiple of line height to be used or px/pt value to be converted.
64
+ // Multiple of line height to be used or px value to be converted.
65
65
  // @param number|string $context
66
66
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
67
67
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
68
- // value in the same unit as the $font-size map.
68
+ // value in px.
69
69
  @mixin padding-top($x, $context: $base-font-size) {
70
70
  @if $base-unit == rem {
71
71
  @if $rem-fallback == true {
@@ -85,11 +85,11 @@
85
85
  // using rem as $base-unit.
86
86
  //
87
87
  // @param number $x
88
- // Multiple of line height to be used or px/pt value to be converted.
88
+ // Multiple of line height to be used or px value to be converted.
89
89
  // @param number|string $context
90
90
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
91
91
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
92
- // value in the same unit as the $font-size map.
92
+ // value in px.
93
93
  @mixin padding-bottom($x, $context: $base-font-size) {
94
94
  @if $base-unit == rem {
95
95
  @if $rem-fallback == true {
@@ -109,11 +109,11 @@
109
109
  // using rem as $base-unit.
110
110
  //
111
111
  // @param number $x
112
- // Multiple of line height to be used or px/pt value to be converted.
112
+ // Multiple of line height to be used or px value to be converted.
113
113
  // @param number|string $context
114
114
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
115
115
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
116
- // value in the same unit as the $font-size map.
116
+ // value in px.
117
117
  @mixin padding-left($x, $context: $base-font-size) {
118
118
  @if $base-unit == rem {
119
119
  @if $rem-fallback == true {
@@ -133,11 +133,11 @@
133
133
  // using rem as $base-unit.
134
134
  //
135
135
  // @param number $x
136
- // Multiple of line height to be used or px/pt value to be converted.
136
+ // Multiple of line height to be used or px value to be converted.
137
137
  // @param number|string $context
138
138
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
139
139
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
140
- // value in the same unit as the $font-size map.
140
+ // value in px.
141
141
  @mixin padding-right($x, $context: $base-font-size) {
142
142
  @if $base-unit == rem {
143
143
  @if $rem-fallback == true {
@@ -1,13 +1,13 @@
1
1
  // Define a type layout (font-size and line-height).
2
2
  //
3
3
  // @param number|string $size
4
- // A size from the $font-size map or a px/pt value.
4
+ // A size from the $font-size map or a px value.
5
5
  // @param number $x
6
- // Multiple of line height to be used or px/pt value to be converted.
6
+ // Multiple of line height to be used or px value to be converted.
7
7
  // @param number|string $context
8
8
  // (optional) Only used if em is the $base-unit. The value of the elements/parents
9
9
  // font-size if it differs from $base-font-size. Specified as a t-shirt size or
10
- // value in the same unit as the $font-size map.
10
+ // value in px.
11
11
  @mixin type-layout($size, $x, $context: $size) {
12
12
  @if $base-unit == rem {
13
13
  @if $rem-fallback == true {
@@ -17,11 +17,11 @@
17
17
  }
18
18
  @if type-of($size) == "number" and not unitless($size) {
19
19
  $unit: unit($size);
20
- @if $unit == px or $unit == pt {
20
+ @if $unit == px {
21
21
  font-size: $size;
22
22
  }
23
23
  @else {
24
- @warn "font-size() only accepts values in px or pt.";
24
+ @warn "font-size() only accepts values in px";
25
25
  }
26
26
  }
27
27
  @if type-of($x) == "number" and unitless($x) {
@@ -32,7 +32,7 @@
32
32
  }
33
33
  }
34
34
  }
35
- @if $base-unit == rem or $base-unit == px or $base-unit == pt {
35
+ @if $base-unit == rem or $base-unit == px {
36
36
  font-size: font-size($size);
37
37
  line-height: line-height($x);
38
38
  }
data/typey.gemspec CHANGED
@@ -3,14 +3,13 @@
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'typey'
5
5
 
6
- spec.summary = %q{Do typography better.}
7
- spec.description = %q{Tools to help you manage font sizing and css units.}
6
+ spec.summary = %q{A complete framework for working with typography on the web.}
8
7
 
9
8
  spec.homepage = 'http://github.com/jptaranto/typey'
10
9
  spec.rubyforge_project =
11
10
 
12
- spec.version = '1.0.0.beta.2'
13
- spec.date = '2015-06-17'
11
+ spec.version = '1.0.0.beta.4'
12
+ spec.date = '2015-07-01'
14
13
  spec.licenses = ['GPL-2']
15
14
 
16
15
  spec.authors = ['Jack Taranto']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typey
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta.2
4
+ version: 1.0.0.beta.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Taranto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-17 00:00:00.000000000 Z
11
+ date: 2015-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.3'
27
- description: Tools to help you manage font sizing and css units.
27
+ description:
28
28
  email: jacktaranto@gmail.com
29
29
  executables: []
30
30
  extensions: []
@@ -64,9 +64,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  - !ruby/object:Gem::Version
65
65
  version: 1.3.1
66
66
  requirements: []
67
- rubyforge_project: 1.0.0.beta.2
67
+ rubyforge_project: 1.0.0.beta.4
68
68
  rubygems_version: 2.4.6
69
69
  signing_key:
70
70
  specification_version: 4
71
- summary: Do typography better.
71
+ summary: A complete framework for working with typography on the web.
72
72
  test_files: []