-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfluidtype.css
70 lines (57 loc) · 2.36 KB
/
fluidtype.css
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/* fluidtype
* by Graham Butler (https://github.com/gbdrummer)
*/
/* TODO:
- Support em units
- Calculate font-size/line-height values based on scale ratio
*/
:root {
--vp_minWidth: 320;
--vp_maxWidth: 2560;
--fontSize_min: 14;
--fontSize_max: 28;
---lineHeight_min: 1.382;
---lineHeight_max: 1.618;
--cpl: 62;
--char_width: 2.27;
--container_widthFactor: calc(100cqi / (var(--fontSize_min) * (var(--cpl) / var(--char_width))));
--type_scaleRatio: 1.618;
}
html {
font-size: calc(var(--fontSize_min) * 1px);
line-height: var(---lineHeight_min);
}
[fluidtype],
[fluidfs],
[fluidlh] {
container-type: inline-size;
}
[fluidtype] {
container-name: fluid;
font-size: max(calc(var(--fontSize_min) * 1px), calc((var(--fontSize_min) * 1px) + calc((var(--fontSize_max) - var(--fontSize_min)) * calc(100cqi - calc(var(--vp_minWidth) * 1px)) / calc(var(--vp_maxWidth) - var(--vp_minWidth)))));
line-height: max(calc(var(---lineHeight_min) * 1em), calc(var(--fontSize_min) * var(--container_widthFactor)));
}
[fluidfs] {
container-name: fluidfs;
font-size: max(calc(var(--fontSize_min) * 1px), calc((var(--fontSize_min) * 1px) + calc((var(--fontSize_max) - var(--fontSize_min)) * calc(100cqi - calc(var(--vp_minWidth) * 1px)) / calc(var(--vp_maxWidth) - var(--vp_minWidth)))));
}
[fluidlh] {
container-name: fluidlh;
line-height: max(calc(var(---lineHeight_min) * 1em), calc(var(--fontSize_min) * var(--container_widthFactor)));
}
@container fluid (min-width: 0px) {
* {
font-size: max(calc(var(--fontSize_min) * 1px), calc((var(--fontSize_min) * 1px) + calc((var(--fontSize_max) - var(--fontSize_min)) * calc(100cqi - calc(var(--vp_minWidth) * 1px)) / calc(var(--vp_maxWidth) - var(--vp_minWidth)))));
line-height: max(calc(var(---lineHeight_min) * 1em), calc(var(--fontSize_min) * var(--container_widthFactor)));
}
}
@container fluidfs (min-width: 0px) {
* {
font-size: max(calc(var(--fontSize_min) * 1px), calc((var(--fontSize_min) * 1px) + calc((var(--fontSize_max) - var(--fontSize_min)) * calc(100cqi - calc(var(--vp_minWidth) * 1px)) / calc(var(--vp_maxWidth) - var(--vp_minWidth)))));
}
}
@container fluidlh (min-width: 0px) {
* {
line-height: max(calc(var(---lineHeight_min) * 1em), calc(var(--fontSize_min) * var(--container_widthFactor)));
}
}