-
Notifications
You must be signed in to change notification settings - Fork 3
/
_processTypography.scss
42 lines (35 loc) · 1.02 KB
/
_processTypography.scss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
@mixin processTypography
Processes the typography tokens, sets up the mixins, placeholders and CSS classes.
*/
@mixin processTypography() {
$families: ();
$faces: ();
$typesets: ();
@if variable-exists(typography) {
$families: map-merge($families, map-deep-get($typography, 'families'));
@if type-of(nth(map-deep-get($typography, 'faces'), 1)) == 'list' {
// single faces confuse things..
// the face object stops being wrapped in a list
$f: (
"json1": map-deep-get($typography, 'faces')
);
$faces: map-merge($faces, $f);
} @else {
@for $i from 1 through length(map-deep-get($typography, 'faces')) {
$face: nth(map-deep-get($typography, 'faces'), $i);
$f: (
"json#{$i}": $face
);
$faces: map-merge($faces, $f);
}
}
$typesets: map-merge($typesets, map-deep-get($typography, 'typesets'));
}
:root {
@each $key, $value in $families {
--#{$key}: #{$value};
}
}
@include typeStyles($typesets);
}