|
8 | 8 | - h1: will have (3 * 24)px for desktop and (2.75 * 24)px for mobile |
9 | 9 | - p: will have (24)px for desktop and (2.75 * 24)px for mobile |
10 | 10 | */ |
| 11 | + --nq-screen-width-min-lh: 20; |
| 12 | + --nq-screen-width-max-lh: 72; |
| 13 | + --f-screen-range-lh: calc(var(--nq-screen-width-max-lh) - var(--nq-screen-width-min-lh)); |
11 | 14 | --nq-screen-width-min-em: 20; |
12 | 15 | --nq-screen-width-max-em: 72; |
13 | 16 | --f-screen-range-em: calc(var(--nq-screen-width-max-em) - var(--nq-screen-width-min-em)); |
14 | 17 | --font-size-min-em: 1; |
15 | 18 | --font-size-max-em: 1; |
16 | | - --margin-min-em: 0; |
17 | | - --margin-max-em: 0; |
| 19 | + --margin-min-lh: 0; |
| 20 | + --margin-max-lh: 0; |
18 | 21 | } |
19 | 22 |
|
20 | 23 | /** |
|
44 | 47 | } |
45 | 48 |
|
46 | 49 | * { |
| 50 | + --lh-unit: 1lh; |
| 51 | + --f-factor-margin: calc((100vw - (var(--lh-unit) * var(--nq-screen-width-min-lh))) / var(--f-screen-range-lh)); |
47 | 52 | --f-factor: calc((100vw - (var(--unit) * var(--nq-screen-width-min-em))) / var(--f-screen-range-em)); |
48 | 53 |
|
49 | 54 | /* Margin calculation */ |
50 | | - --nq-m-range: calc(var(--margin-max-em) - var(--margin-min-em)); |
51 | | - --nq-m-fluid: calc(var(--unit) * var(--margin-min-em) + var(--nq-m-range) * var(--f-factor)); |
| 55 | + --nq-m-range: calc(var(--margin-max-lh) - var(--margin-min-lh)); |
| 56 | + --nq-m-fluid: calc(var(--lh-unit) * var(--margin-min-lh) + var(--nq-m-range) * var(--f-factor-margin)); |
52 | 57 | --nq-m-size: clamp( |
53 | | - calc(var(--unit) * var(--margin-min-em)), |
| 58 | + calc(var(--lh-unit) * var(--margin-min-lh)), |
54 | 59 | var(--nq-m-fluid), |
55 | | - calc(var(--margin-max-em) * var(--unit)) |
| 60 | + calc(var(--margin-max-lh) * var(--lh-unit)) |
56 | 61 | ); |
57 | 62 |
|
58 | 63 | /* derived values */ |
|
90 | 95 | } |
91 | 96 |
|
92 | 97 | &:where(h1 + *:not(:where(h1, h2, h3, h4))) { |
93 | | - --margin-min-em: 7; |
94 | | - --margin-max-em: 7.5; |
| 98 | + --margin-min-lh: 4.6667; |
| 99 | + --margin-max-lh: 5.0; |
95 | 100 | margin-top: var(--nq-m-size); |
96 | 101 | } |
97 | 102 |
|
|
103 | 108 |
|
104 | 109 | margin-top: var(--nq-m-size); |
105 | 110 | margin-bottom: 24px; |
106 | | - --margin-min-em: 5.5; |
107 | | - --margin-max-em: 6; |
| 111 | + --margin-min-lh: 4.2308; |
| 112 | + --margin-max-lh: 4.6154; |
108 | 113 |
|
109 | 114 | &:where(h1 + h2) { |
110 | | - --margin-min-em: 2.5; |
111 | | - --margin-max-em: 3; |
| 115 | + --margin-min-lh: 1.9231; |
| 116 | + --margin-max-lh: 2.3077; |
112 | 117 | } |
113 | 118 | } |
114 | 119 |
|
|
120 | 125 |
|
121 | 126 | margin-bottom: 24px; |
122 | 127 | margin-top: var(--nq-m-size); |
123 | | - --margin-min-em: 5.5; |
124 | | - --margin-max-em: 6; |
| 128 | + --margin-min-lh: 4.2308; |
| 129 | + --margin-max-lh: 4.6154; |
125 | 130 |
|
126 | 131 | &:where(h2 + h3) { |
127 | | - --margin-min-em: 2; |
128 | | - --margin-max-em: 2.25; |
| 132 | + --margin-min-lh: 1.5385; |
| 133 | + --margin-max-lh: 1.7308; |
129 | 134 | } |
130 | 135 | } |
131 | 136 |
|
|
137 | 142 |
|
138 | 143 | margin-top: var(--nq-m-size); |
139 | 144 | margin-bottom: 24px; |
140 | | - --margin-min-em: 5.5; |
141 | | - --margin-max-em: 6; |
| 145 | + --margin-min-lh: 4.2308; |
| 146 | + --margin-max-lh: 4.6154; |
142 | 147 | } |
143 | 148 |
|
144 | 149 | &:where(h3 + h4) { |
145 | | - --margin-min-em: 2; |
146 | | - --margin-max-em: 2.25; |
| 150 | + --margin-min-lh: 1.5385; |
| 151 | + --margin-max-lh: 1.7308; |
147 | 152 | } |
148 | 153 |
|
149 | 154 | /* Anchors in headings */ |
|
225 | 230 |
|
226 | 231 | &:where(blockquote) { |
227 | 232 | background: rgb(var(--nq-green-400)); |
228 | | - --margin-min-em: 0.875; |
229 | | - --margin-max-em: 1; |
| 233 | + --margin-min-lh: 0.5833; |
| 234 | + --margin-max-lh: 0.6667; |
230 | 235 | padding: var(--nq-m-size); |
231 | 236 | border-radius: 6px; |
232 | 237 | box-shadow: 0 0 0 1.5px rgb(var(--nq-green-600)); |
|
239 | 244 |
|
240 | 245 | &:where(img, video, iframe) { |
241 | 246 | border-radius: 6px; |
242 | | - --margin-min-em: 1.125; |
243 | | - --margin-max-em: 1.375; |
| 247 | + --margin-min-lh: 0.75; |
| 248 | + --margin-max-lh: 0.9167; |
244 | 249 | margin-top: var(--nq-m-size); |
245 | 250 |
|
246 | 251 | &:has(+ figcaption) { |
247 | | - --margin-min-em: 0.75; |
248 | | - --margin-max-em: 1; |
| 252 | + --margin-min-lh: 0.5; |
| 253 | + --margin-max-lh: 0.6667; |
249 | 254 | margin-bottom: var(--nq-m-size); |
250 | 255 | } |
251 | 256 |
|
252 | 257 | &:not(:has(+ figcaption)) { |
253 | | - --margin-min-em: 1.125; |
254 | | - --margin-max-em: 1.375; |
| 258 | + --margin-min-lh: 0.75; |
| 259 | + --margin-max-lh: 0.9167; |
255 | 260 | margin-bottom: var(--nq-m-size); |
256 | 261 | } |
257 | 262 | } |
|
390 | 395 | width: 100%; |
391 | 396 | --font-size-min-em: 0.75; |
392 | 397 | --font-size-max-em: 0.875; |
393 | | - --margin-min-em: 1.25; |
394 | | - --margin-max-em: 1.5; |
| 398 | + --margin-min-lh: 0.8333; |
| 399 | + --margin-max-lh: 1.0; |
395 | 400 | margin-top: var(--nq-m-size); |
396 | 401 | margin-bottom: var(--nq-m-size); |
397 | 402 | padding: 20px 24px; |
|
426 | 431 | } |
427 | 432 |
|
428 | 433 | table { |
429 | | - --margin-min-em: 1.5; |
430 | | - --margin-max-em: 2; |
| 434 | + --margin-min-lh: 1.0; |
| 435 | + --margin-max-lh: 1.3333; |
431 | 436 | margin-bottom: var(--nq-m-size); |
432 | 437 | margin-top: var(--nq-m-size); |
433 | 438 | display: block; |
|
482 | 487 | } |
483 | 488 |
|
484 | 489 | hr { |
485 | | - --margin-min-em: 1.25; |
486 | | - --margin-max-em: 1.5; |
| 490 | + --margin-min-lh: 0.8333; |
| 491 | + --margin-max-lh: 1.0; |
487 | 492 | margin: var(--nq-m-size) auto; |
488 | 493 | width: 128px; |
489 | 494 | border-color: rgb(var(--nq-neutral-500)); |
|
493 | 498 | /* TODO Animate open/closing https://developer.chrome.com/docs/css-ui/animate-to-height-auto#animate_the_details_element */ |
494 | 499 | border-radius: 6px; |
495 | 500 | background-color: rgb(var(--nq-neutral-200)); |
496 | | - --margin-min-em: 1.125; |
497 | | - --margin-max-em: 1.375; |
| 501 | + --margin-min-lh: 0.75; |
| 502 | + --margin-max-lh: 0.9167; |
498 | 503 | margin-top: var(--nq-m-size); |
499 | 504 | margin-bottom: var(--nq-m-size); |
500 | 505 | color: rgb(var(--nq-neutral-900)); |
|
0 commit comments