@loidolt/theme-styles 0.7.0 → 0.8.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.
- package/README.md +3 -0
- package/package.json +3 -2
- package/src/accessibility.css +6 -6
- package/src/base.css +1 -1
- package/src/components/actions.css +13 -11
- package/src/components/charts.css +4 -3
- package/src/components/data.css +19 -13
- package/src/components/docs.css +34 -28
- package/src/components/feedback.css +19 -15
- package/src/components/forms.css +43 -30
- package/src/components/layout.css +33 -28
- package/src/components/maps.css +25 -21
- package/src/components/media.css +18 -12
- package/src/components/overlays.css +59 -42
- package/src/components/prose.css +21 -17
- package/src/components/selection.css +29 -22
- package/src/components/surfaces.css +18 -12
- package/src/presets/compact-dark-auto.css +2 -0
- package/src/presets/compact-dark.css +2 -0
- package/src/presets/compact.css +2 -0
- package/src/presets/loidolt-dark-auto.css +2 -0
- package/src/presets/loidolt-dark.css +2 -0
- package/src/presets/loidolt.css +2 -0
- package/src/presets/soft-dark-auto.css +2 -0
- package/src/presets/soft-dark.css +2 -0
- package/src/presets/soft.css +2 -0
- package/src/utilities.css +10 -4
|
@@ -9,11 +9,16 @@
|
|
|
9
9
|
z-index: var(--loidolt-z-dialog);
|
|
10
10
|
top: 50%;
|
|
11
11
|
left: 50%;
|
|
12
|
-
|
|
12
|
+
/* A column whose body alone shrinks and scrolls, so the header and the footer's actions stay in
|
|
13
|
+
view however tall the content (or short the screen). Flex rather than grid rows, because an
|
|
14
|
+
AlertDialog without content has no body. */
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
13
17
|
width: min(var(--ldt-dialog-width, 34rem), calc(100vw - 2rem));
|
|
14
18
|
max-height: min(48rem, calc(100dvh - 2rem));
|
|
15
19
|
overflow: hidden;
|
|
16
20
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
21
|
+
border-radius: var(--loidolt-radius-overlay);
|
|
17
22
|
color: var(--loidolt-text);
|
|
18
23
|
background: var(--loidolt-surface);
|
|
19
24
|
box-shadow: var(--loidolt-shadow-modal);
|
|
@@ -35,24 +40,27 @@
|
|
|
35
40
|
--ldt-dialog-width: 100vw;
|
|
36
41
|
height: calc(100dvh - 2rem);
|
|
37
42
|
max-height: none;
|
|
38
|
-
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
39
43
|
}
|
|
40
44
|
.ldt-dialog__actions {
|
|
41
45
|
display: flex;
|
|
42
46
|
flex: none;
|
|
43
47
|
align-items: center;
|
|
44
|
-
gap:
|
|
48
|
+
gap: var(--loidolt-space-1);
|
|
45
49
|
}
|
|
46
50
|
.ldt-dialog__header,
|
|
47
51
|
.ldt-dialog__body,
|
|
48
52
|
.ldt-dialog__footer {
|
|
49
|
-
padding:
|
|
53
|
+
padding: var(--loidolt-pad-overlay);
|
|
54
|
+
}
|
|
55
|
+
.ldt-dialog__header,
|
|
56
|
+
.ldt-dialog__footer {
|
|
57
|
+
flex: none;
|
|
50
58
|
}
|
|
51
59
|
.ldt-dialog__header {
|
|
52
60
|
display: flex;
|
|
53
61
|
align-items: start;
|
|
54
62
|
justify-content: space-between;
|
|
55
|
-
gap:
|
|
63
|
+
gap: var(--loidolt-space-4);
|
|
56
64
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
57
65
|
}
|
|
58
66
|
.ldt-dialog__header > :first-child,
|
|
@@ -60,13 +68,15 @@
|
|
|
60
68
|
min-width: 0;
|
|
61
69
|
}
|
|
62
70
|
.ldt-dialog__body {
|
|
71
|
+
flex: 1 1 auto;
|
|
72
|
+
min-height: 0;
|
|
63
73
|
overflow-y: auto;
|
|
64
74
|
}
|
|
65
75
|
.ldt-dialog__footer {
|
|
66
76
|
display: flex;
|
|
67
77
|
flex-wrap: wrap;
|
|
68
78
|
justify-content: flex-end;
|
|
69
|
-
gap:
|
|
79
|
+
gap: var(--loidolt-gap-actions);
|
|
70
80
|
border-top: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
71
81
|
}
|
|
72
82
|
.ldt-dialog__footer .ldt-button,
|
|
@@ -154,13 +164,13 @@
|
|
|
154
164
|
.ldt-drawer__header,
|
|
155
165
|
.ldt-drawer__body,
|
|
156
166
|
.ldt-drawer__footer {
|
|
157
|
-
padding:
|
|
167
|
+
padding: var(--loidolt-pad-overlay);
|
|
158
168
|
}
|
|
159
169
|
.ldt-drawer__header {
|
|
160
170
|
display: flex;
|
|
161
171
|
align-items: start;
|
|
162
172
|
justify-content: space-between;
|
|
163
|
-
gap:
|
|
173
|
+
gap: var(--loidolt-space-4);
|
|
164
174
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
165
175
|
}
|
|
166
176
|
.ldt-drawer__body {
|
|
@@ -170,7 +180,7 @@
|
|
|
170
180
|
display: flex;
|
|
171
181
|
flex-wrap: wrap;
|
|
172
182
|
justify-content: flex-end;
|
|
173
|
-
gap:
|
|
183
|
+
gap: var(--loidolt-gap-actions);
|
|
174
184
|
border-top: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
175
185
|
}
|
|
176
186
|
.ldt-drawer__title {
|
|
@@ -188,31 +198,34 @@
|
|
|
188
198
|
z-index: var(--loidolt-z-menu);
|
|
189
199
|
min-width: 13rem;
|
|
190
200
|
max-width: min(22rem, calc(100vw - 2rem));
|
|
191
|
-
padding:
|
|
201
|
+
padding: var(--loidolt-pad-popover);
|
|
192
202
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
203
|
+
border-radius: var(--loidolt-radius-overlay);
|
|
193
204
|
color: var(--loidolt-text);
|
|
194
205
|
background: var(--loidolt-surface);
|
|
195
206
|
box-shadow: var(--loidolt-shadow-popover);
|
|
196
207
|
}
|
|
197
208
|
.ldt-menu {
|
|
198
209
|
display: grid;
|
|
199
|
-
gap: 0.1rem;
|
|
210
|
+
gap: 0.1rem; /* @literal hairline between items */
|
|
200
211
|
}
|
|
201
212
|
.ldt-menu__label {
|
|
202
|
-
padding: 0.45rem 0.55rem 0.3rem;
|
|
213
|
+
padding: 0.45rem 0.55rem 0.3rem; /* @literal optical alignment with item text */
|
|
203
214
|
color: var(--loidolt-text-accent);
|
|
204
215
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
205
|
-
|
|
206
|
-
|
|
216
|
+
font-weight: var(--loidolt-label-weight);
|
|
217
|
+
letter-spacing: calc(var(--loidolt-label-tracking) * 0.9);
|
|
218
|
+
text-transform: var(--loidolt-label-transform);
|
|
207
219
|
}
|
|
208
220
|
.ldt-menu__item {
|
|
209
221
|
width: 100%;
|
|
210
222
|
display: flex;
|
|
211
223
|
align-items: center;
|
|
212
224
|
justify-content: space-between;
|
|
213
|
-
gap:
|
|
225
|
+
gap: var(--loidolt-space-4);
|
|
214
226
|
border: 0;
|
|
215
|
-
|
|
227
|
+
border-radius: var(--loidolt-radius-inner);
|
|
228
|
+
padding: var(--loidolt-pad-item);
|
|
216
229
|
color: var(--loidolt-text);
|
|
217
230
|
background: transparent;
|
|
218
231
|
text-align: left;
|
|
@@ -228,7 +241,7 @@
|
|
|
228
241
|
.ldt-menu__hint {
|
|
229
242
|
color: var(--loidolt-text-muted);
|
|
230
243
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
231
|
-
letter-spacing:
|
|
244
|
+
letter-spacing: var(--loidolt-control-tracking);
|
|
232
245
|
}
|
|
233
246
|
.ldt-menu__item:hover:not(:disabled, [data-disabled]) .ldt-menu__hint,
|
|
234
247
|
.ldt-menu__item[data-highlighted] .ldt-menu__hint {
|
|
@@ -250,13 +263,13 @@
|
|
|
250
263
|
}
|
|
251
264
|
.ldt-menu__group {
|
|
252
265
|
display: grid;
|
|
253
|
-
gap: 0.1rem;
|
|
266
|
+
gap: 0.1rem; /* @literal hairline between items */
|
|
254
267
|
}
|
|
255
268
|
/* Checkbox and radio rows lead with a drawn indicator, so state never rests on colour alone. */
|
|
256
269
|
.ldt-menu__item--check,
|
|
257
270
|
.ldt-menu__item--radio {
|
|
258
271
|
justify-content: flex-start;
|
|
259
|
-
gap: 0.6rem;
|
|
272
|
+
gap: 0.6rem; /* @literal glyph-to-label spacing, not density */
|
|
260
273
|
}
|
|
261
274
|
.ldt-menu__item--check .ldt-menu__hint,
|
|
262
275
|
.ldt-menu__item--radio .ldt-menu__hint {
|
|
@@ -274,7 +287,7 @@
|
|
|
274
287
|
position: absolute;
|
|
275
288
|
inset: 0.05rem 0.22rem 0.18rem;
|
|
276
289
|
border: solid currentColor;
|
|
277
|
-
border-width: 0 2px 2px 0;
|
|
290
|
+
border-width: 0 2px 2px 0; /* @literal checkmark glyph */
|
|
278
291
|
transform: rotate(45deg);
|
|
279
292
|
}
|
|
280
293
|
.ldt-menu__item--radio[data-state='checked'] .ldt-menu__indicator::after {
|
|
@@ -288,7 +301,7 @@
|
|
|
288
301
|
height: 0.4rem;
|
|
289
302
|
flex: none;
|
|
290
303
|
border: solid currentColor;
|
|
291
|
-
border-width: 0 1.5px 1.5px 0;
|
|
304
|
+
border-width: 0 1.5px 1.5px 0; /* @literal chevron glyph */
|
|
292
305
|
transform: rotate(-45deg);
|
|
293
306
|
}
|
|
294
307
|
.ldt-menu__item--sub[data-state='open'] {
|
|
@@ -304,7 +317,8 @@
|
|
|
304
317
|
.ldt-tooltip {
|
|
305
318
|
z-index: var(--loidolt-z-tooltip);
|
|
306
319
|
max-width: 18rem;
|
|
307
|
-
padding: 0.4rem 0.55rem;
|
|
320
|
+
padding: 0.4rem 0.55rem; /* @literal compact by nature; not a density surface */
|
|
321
|
+
border-radius: var(--loidolt-radius-control);
|
|
308
322
|
color: var(--loidolt-text-inverse);
|
|
309
323
|
background: var(--loidolt-surface-inverse);
|
|
310
324
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
@@ -329,7 +343,7 @@
|
|
|
329
343
|
.ldt-tabs__list {
|
|
330
344
|
max-width: 100%;
|
|
331
345
|
display: flex;
|
|
332
|
-
gap: 2px;
|
|
346
|
+
gap: 2px; /* @literal hairline seam between tabs */
|
|
333
347
|
overflow-x: auto;
|
|
334
348
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
335
349
|
overscroll-behavior-inline: contain;
|
|
@@ -345,18 +359,19 @@
|
|
|
345
359
|
.ldt-tabs__trigger {
|
|
346
360
|
min-height: var(--loidolt-size-control);
|
|
347
361
|
border: 0;
|
|
348
|
-
border-bottom:
|
|
349
|
-
padding: 0
|
|
362
|
+
border-bottom: var(--loidolt-stroke-indicator) solid transparent;
|
|
363
|
+
padding: 0 var(--loidolt-pad-control-x);
|
|
350
364
|
color: var(--loidolt-text-muted);
|
|
351
365
|
background: transparent;
|
|
352
366
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
353
|
-
|
|
354
|
-
|
|
367
|
+
font-weight: var(--loidolt-control-weight);
|
|
368
|
+
letter-spacing: var(--loidolt-control-tracking);
|
|
369
|
+
text-transform: var(--loidolt-control-transform);
|
|
355
370
|
}
|
|
356
371
|
.ldt-tabs__trigger[data-orientation='vertical'] {
|
|
357
372
|
border-bottom: 0;
|
|
358
|
-
border-right:
|
|
359
|
-
padding: 0
|
|
373
|
+
border-right: var(--loidolt-stroke-indicator) solid transparent;
|
|
374
|
+
padding: 0 var(--loidolt-pad-control-x);
|
|
360
375
|
text-align: left;
|
|
361
376
|
}
|
|
362
377
|
.ldt-tabs__trigger[data-state='active'],
|
|
@@ -368,7 +383,7 @@
|
|
|
368
383
|
padding-block: 0;
|
|
369
384
|
}
|
|
370
385
|
.ldt-tabs__content {
|
|
371
|
-
padding-block:
|
|
386
|
+
padding-block: var(--loidolt-space-4);
|
|
372
387
|
}
|
|
373
388
|
|
|
374
389
|
@media (max-width: 760px) {
|
|
@@ -380,7 +395,7 @@
|
|
|
380
395
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
381
396
|
}
|
|
382
397
|
.ldt-tabs__content[data-orientation='vertical'] {
|
|
383
|
-
padding-block:
|
|
398
|
+
padding-block: var(--loidolt-space-4);
|
|
384
399
|
}
|
|
385
400
|
}
|
|
386
401
|
/* The option list of Combobox and MultiSelect: the menu surface, sized to its field. */
|
|
@@ -390,38 +405,40 @@
|
|
|
390
405
|
max-width: min(28rem, calc(100vw - 2rem));
|
|
391
406
|
max-height: min(20rem, var(--bits-floating-available-height, 20rem));
|
|
392
407
|
display: grid;
|
|
393
|
-
gap: 0.1rem;
|
|
408
|
+
gap: 0.1rem; /* @literal hairline between items */
|
|
394
409
|
overflow-y: auto;
|
|
395
|
-
padding: 0.35rem;
|
|
410
|
+
padding: 0.35rem; /* @literal listbox inset */
|
|
396
411
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
412
|
+
border-radius: var(--loidolt-radius-overlay);
|
|
397
413
|
color: var(--loidolt-text);
|
|
398
414
|
background: var(--loidolt-surface);
|
|
399
415
|
box-shadow: var(--loidolt-shadow-popover);
|
|
400
416
|
}
|
|
401
417
|
.ldt-listbox__group {
|
|
402
418
|
display: grid;
|
|
403
|
-
gap: 0.1rem;
|
|
419
|
+
gap: 0.1rem; /* @literal hairline between items */
|
|
404
420
|
}
|
|
405
421
|
.ldt-listbox__group + .ldt-listbox__group,
|
|
406
422
|
.ldt-listbox__item + .ldt-listbox__group {
|
|
407
423
|
margin-top: 0.25rem;
|
|
408
424
|
border-top: var(--loidolt-border-width) solid var(--loidolt-border-soft);
|
|
409
|
-
padding-top:
|
|
425
|
+
padding-top: var(--loidolt-space-1);
|
|
410
426
|
}
|
|
411
427
|
.ldt-listbox__heading {
|
|
412
|
-
padding: 0.4rem 0.55rem 0.25rem;
|
|
428
|
+
padding: 0.4rem 0.55rem 0.25rem; /* @literal optical alignment with item text */
|
|
413
429
|
color: var(--loidolt-text-accent);
|
|
414
430
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
415
|
-
|
|
416
|
-
|
|
431
|
+
font-weight: var(--loidolt-label-weight);
|
|
432
|
+
letter-spacing: calc(var(--loidolt-label-tracking) * 0.9);
|
|
433
|
+
text-transform: var(--loidolt-label-transform);
|
|
417
434
|
}
|
|
418
435
|
.ldt-listbox__item {
|
|
419
436
|
min-height: 1.5rem;
|
|
420
437
|
display: flex;
|
|
421
438
|
align-items: center;
|
|
422
439
|
justify-content: space-between;
|
|
423
|
-
gap:
|
|
424
|
-
padding: 0.55rem;
|
|
440
|
+
gap: var(--loidolt-space-4);
|
|
441
|
+
padding: 0.55rem; /* @literal listbox option metrics */
|
|
425
442
|
cursor: default;
|
|
426
443
|
}
|
|
427
444
|
.ldt-listbox__item[data-highlighted] {
|
|
@@ -438,14 +455,14 @@
|
|
|
438
455
|
height: 0.65rem;
|
|
439
456
|
flex: none;
|
|
440
457
|
border: solid transparent;
|
|
441
|
-
border-width: 0 2px 2px 0;
|
|
458
|
+
border-width: 0 2px 2px 0; /* @literal checkmark glyph */
|
|
442
459
|
transform: rotate(45deg) translate(-0.1rem, -0.1rem);
|
|
443
460
|
}
|
|
444
461
|
.ldt-listbox__item[data-selected] .ldt-listbox__check {
|
|
445
462
|
border-color: currentColor;
|
|
446
463
|
}
|
|
447
464
|
.ldt-listbox__empty {
|
|
448
|
-
padding: 0.55rem;
|
|
465
|
+
padding: 0.55rem; /* @literal matches the option metrics */
|
|
449
466
|
color: var(--loidolt-text-muted);
|
|
450
467
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
451
468
|
}
|
package/src/components/prose.css
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
margin-block: 1.8em 0.6em;
|
|
39
39
|
color: var(--loidolt-text);
|
|
40
40
|
font-family: var(--loidolt-font-display);
|
|
41
|
-
font-weight:
|
|
41
|
+
font-weight: var(--loidolt-heading-weight);
|
|
42
42
|
line-height: var(--loidolt-font-line-height-tight);
|
|
43
43
|
/* Clears a sticky top bar when a heading is the target of an in-page link. */
|
|
44
44
|
scroll-margin-top: calc(var(--loidolt-size-topbar) + var(--loidolt-space-4));
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
font-size: 2em;
|
|
49
49
|
}
|
|
50
50
|
:where(.ldt-prose h2):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
51
|
-
padding-block-end: 0.3em;
|
|
51
|
+
padding-block-end: 0.3em; /* @literal em-based prose rhythm */
|
|
52
52
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border-soft);
|
|
53
53
|
font-size: 1.5em;
|
|
54
54
|
}
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
color: var(--loidolt-text-muted);
|
|
64
64
|
font-family: var(--loidolt-font-utility);
|
|
65
65
|
font-size: 0.8em;
|
|
66
|
-
letter-spacing: var(--loidolt-
|
|
67
|
-
text-transform:
|
|
66
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
67
|
+
text-transform: var(--loidolt-label-transform);
|
|
68
68
|
}
|
|
69
69
|
/* A heading directly after another heading sits closer to it. */
|
|
70
70
|
:where(.ldt-prose :is(h1, h2, h3, h4, h5, h6) + :is(h1, h2, h3, h4, h5, h6)):not(
|
|
@@ -86,19 +86,21 @@
|
|
|
86
86
|
/* Only one weight per family ships, so bold is synthesized; colour keeps it legible. */
|
|
87
87
|
:where(.ldt-prose :is(strong, b)):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
88
88
|
color: var(--loidolt-text);
|
|
89
|
-
font-weight: 700;
|
|
89
|
+
font-weight: 700; /* @literal bold means bold in running text */
|
|
90
90
|
}
|
|
91
91
|
:where(.ldt-prose :not(pre) > code):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
92
|
-
padding: 0.12em 0.35em;
|
|
92
|
+
padding: 0.12em 0.35em; /* @literal em-based inline code */
|
|
93
93
|
border: var(--loidolt-border-width) solid var(--loidolt-border-soft);
|
|
94
|
+
border-radius: var(--loidolt-radius-inner);
|
|
94
95
|
color: var(--loidolt-text);
|
|
95
96
|
background: var(--loidolt-surface-sunken);
|
|
96
97
|
font-size: 0.875em;
|
|
97
98
|
}
|
|
98
99
|
:where(.ldt-prose kbd):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
99
|
-
padding: 0.05em 0.4em;
|
|
100
|
+
padding: 0.05em 0.4em; /* @literal em-based key cap */
|
|
100
101
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
101
|
-
border-
|
|
102
|
+
border-radius: var(--loidolt-radius-inner);
|
|
103
|
+
border-bottom-width: 2px; /* @literal key-cap depth */
|
|
102
104
|
background: var(--loidolt-surface);
|
|
103
105
|
font-size: 0.85em;
|
|
104
106
|
}
|
|
@@ -110,7 +112,7 @@
|
|
|
110
112
|
/* --- Lists --------------------------------------------------------------------------------- */
|
|
111
113
|
|
|
112
114
|
:where(.ldt-prose :is(ul, ol)):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
113
|
-
padding-inline-start: 1.5em;
|
|
115
|
+
padding-inline-start: 1.5em; /* @literal em-based list indent */
|
|
114
116
|
}
|
|
115
117
|
:where(.ldt-prose li):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
116
118
|
margin-block: 0.3em;
|
|
@@ -131,7 +133,7 @@
|
|
|
131
133
|
accent-color: var(--loidolt-accent);
|
|
132
134
|
}
|
|
133
135
|
:where(.ldt-prose dt):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
134
|
-
font-weight: 700;
|
|
136
|
+
font-weight: 700; /* @literal bold means bold in running text */
|
|
135
137
|
}
|
|
136
138
|
:where(.ldt-prose dd):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
137
139
|
margin: 0 0 0.6em 1.5em;
|
|
@@ -141,8 +143,8 @@
|
|
|
141
143
|
|
|
142
144
|
:where(.ldt-prose blockquote):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
143
145
|
margin-inline: 0;
|
|
144
|
-
padding: 0.7em 1em;
|
|
145
|
-
border-inline-start:
|
|
146
|
+
padding: 0.7em 1em; /* @literal em-based prose rhythm */
|
|
147
|
+
border-inline-start: var(--loidolt-stroke-accent) solid var(--loidolt-accent);
|
|
146
148
|
color: var(--loidolt-text);
|
|
147
149
|
background: var(--loidolt-surface-alt);
|
|
148
150
|
}
|
|
@@ -168,9 +170,10 @@
|
|
|
168
170
|
* surface so it reads as code in both colour schemes.
|
|
169
171
|
*/
|
|
170
172
|
:where(.ldt-prose pre):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
171
|
-
padding: 0.9em 1.1em;
|
|
173
|
+
padding: 0.9em 1.1em; /* @literal em-based code rhythm */
|
|
172
174
|
overflow-x: auto;
|
|
173
175
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
176
|
+
border-radius: var(--loidolt-radius-surface);
|
|
174
177
|
color: var(--loidolt-text-inverse);
|
|
175
178
|
background: var(--loidolt-surface-inverse);
|
|
176
179
|
font-size: 0.85em;
|
|
@@ -199,14 +202,14 @@
|
|
|
199
202
|
font-size: 0.9em;
|
|
200
203
|
}
|
|
201
204
|
:where(.ldt-prose :is(th, td)):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
202
|
-
padding: 0.5em 0.8em;
|
|
205
|
+
padding: 0.5em 0.8em; /* @literal em-based table rhythm */
|
|
203
206
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
204
207
|
text-align: start;
|
|
205
208
|
vertical-align: top;
|
|
206
209
|
}
|
|
207
210
|
:where(.ldt-prose th):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
208
211
|
background: var(--loidolt-surface-alt);
|
|
209
|
-
font-weight: 700;
|
|
212
|
+
font-weight: 700; /* @literal bold means bold in running text */
|
|
210
213
|
}
|
|
211
214
|
:where(.ldt-prose td):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
212
215
|
background: var(--loidolt-surface);
|
|
@@ -221,12 +224,13 @@
|
|
|
221
224
|
/* --- Disclosure ---------------------------------------------------------------------------- */
|
|
222
225
|
|
|
223
226
|
:where(.ldt-prose details):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
224
|
-
padding: 0.5em 0.9em;
|
|
227
|
+
padding: 0.5em 0.9em; /* @literal em-based prose rhythm */
|
|
225
228
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
229
|
+
border-radius: var(--loidolt-radius-surface);
|
|
226
230
|
background: var(--loidolt-surface);
|
|
227
231
|
}
|
|
228
232
|
:where(.ldt-prose summary):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
229
|
-
font-weight: 700;
|
|
233
|
+
font-weight: 700; /* @literal bold means bold in running text */
|
|
230
234
|
}
|
|
231
235
|
:where(.ldt-prose details[open] > summary):not(:where(.ldt-not-prose, .ldt-not-prose *)) {
|
|
232
236
|
margin-block-end: 0.5em;
|
|
@@ -13,15 +13,16 @@
|
|
|
13
13
|
display: flex;
|
|
14
14
|
align-items: center;
|
|
15
15
|
justify-content: space-between;
|
|
16
|
-
gap:
|
|
16
|
+
gap: var(--loidolt-space-4);
|
|
17
17
|
border: 0;
|
|
18
|
-
padding:
|
|
18
|
+
padding: var(--loidolt-space-3) 0;
|
|
19
19
|
color: var(--loidolt-text);
|
|
20
20
|
background: transparent;
|
|
21
21
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
22
|
-
|
|
22
|
+
font-weight: var(--loidolt-control-weight);
|
|
23
|
+
letter-spacing: var(--loidolt-control-tracking);
|
|
23
24
|
text-align: left;
|
|
24
|
-
text-transform:
|
|
25
|
+
text-transform: var(--loidolt-control-transform);
|
|
25
26
|
}
|
|
26
27
|
.ldt-accordion__trigger:hover:not([data-disabled]) {
|
|
27
28
|
color: var(--loidolt-text-accent);
|
|
@@ -34,15 +35,15 @@
|
|
|
34
35
|
width: 0;
|
|
35
36
|
height: 0;
|
|
36
37
|
flex: 0 0 auto;
|
|
37
|
-
border-inline: 0.3rem solid transparent;
|
|
38
|
-
border-top: 0.34rem solid currentColor;
|
|
38
|
+
border-inline: 0.3rem solid transparent; /* @literal CSS triangle geometry */
|
|
39
|
+
border-top: 0.34rem solid currentColor; /* @literal CSS triangle geometry */
|
|
39
40
|
transition: transform var(--loidolt-motion-normal) var(--loidolt-motion-easing);
|
|
40
41
|
}
|
|
41
42
|
.ldt-accordion__trigger[data-state='open'] .ldt-accordion__indicator {
|
|
42
43
|
transform: rotate(180deg);
|
|
43
44
|
}
|
|
44
45
|
.ldt-accordion__body {
|
|
45
|
-
padding-bottom:
|
|
46
|
+
padding-bottom: var(--loidolt-space-4);
|
|
46
47
|
color: var(--loidolt-text-muted);
|
|
47
48
|
}
|
|
48
49
|
.ldt-toggle-group {
|
|
@@ -50,6 +51,7 @@
|
|
|
50
51
|
display: inline-flex;
|
|
51
52
|
overflow-x: auto;
|
|
52
53
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
54
|
+
border-radius: var(--loidolt-radius-control);
|
|
53
55
|
overscroll-behavior-inline: contain;
|
|
54
56
|
scrollbar-width: thin;
|
|
55
57
|
}
|
|
@@ -62,15 +64,16 @@
|
|
|
62
64
|
display: inline-flex;
|
|
63
65
|
align-items: center;
|
|
64
66
|
justify-content: center;
|
|
65
|
-
gap: 0.4rem;
|
|
67
|
+
gap: 0.4rem; /* @literal glyph-to-label spacing, not density */
|
|
66
68
|
border: 0;
|
|
67
|
-
padding: 0
|
|
69
|
+
padding: 0 var(--loidolt-pad-control-x);
|
|
68
70
|
color: var(--loidolt-text-muted);
|
|
69
71
|
background: transparent;
|
|
70
72
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
71
|
-
|
|
73
|
+
font-weight: var(--loidolt-control-weight);
|
|
74
|
+
letter-spacing: var(--loidolt-control-tracking);
|
|
72
75
|
line-height: 1;
|
|
73
|
-
text-transform:
|
|
76
|
+
text-transform: var(--loidolt-control-transform);
|
|
74
77
|
white-space: nowrap;
|
|
75
78
|
}
|
|
76
79
|
/* One shared rule between neighbours, so the group reads as a single object rather than a row
|
|
@@ -101,18 +104,18 @@
|
|
|
101
104
|
}
|
|
102
105
|
.ldt-toggle-group--sm .ldt-toggle-group__item {
|
|
103
106
|
min-height: var(--loidolt-size-control-sm);
|
|
104
|
-
padding: 0
|
|
107
|
+
padding: 0 var(--loidolt-pad-control-x-sm);
|
|
105
108
|
font-size: var(--loidolt-font-size-xs);
|
|
106
109
|
}
|
|
107
110
|
.ldt-toggle-group--lg .ldt-toggle-group__item {
|
|
108
111
|
min-height: var(--loidolt-size-control-lg);
|
|
109
|
-
padding: 0
|
|
112
|
+
padding: 0 var(--loidolt-pad-control-x-lg);
|
|
110
113
|
}
|
|
111
114
|
.ldt-breadcrumbs__list {
|
|
112
115
|
display: flex;
|
|
113
116
|
flex-wrap: wrap;
|
|
114
117
|
align-items: center;
|
|
115
|
-
gap: 0.35rem 0.5rem;
|
|
118
|
+
gap: 0.35rem 0.5rem; /* @literal separator rhythm, not density */
|
|
116
119
|
margin: 0;
|
|
117
120
|
padding: 0;
|
|
118
121
|
list-style: none;
|
|
@@ -121,7 +124,7 @@
|
|
|
121
124
|
min-width: 0;
|
|
122
125
|
display: inline-flex;
|
|
123
126
|
align-items: center;
|
|
124
|
-
gap:
|
|
127
|
+
gap: var(--loidolt-space-2);
|
|
125
128
|
}
|
|
126
129
|
/* Generated content, so the separator is never selected, copied, or read aloud. */
|
|
127
130
|
.ldt-breadcrumbs__item + .ldt-breadcrumbs__item::before {
|
|
@@ -132,9 +135,10 @@
|
|
|
132
135
|
.ldt-breadcrumbs__current {
|
|
133
136
|
overflow: hidden;
|
|
134
137
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
135
|
-
|
|
138
|
+
font-weight: var(--loidolt-label-weight);
|
|
139
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
136
140
|
text-overflow: ellipsis;
|
|
137
|
-
text-transform:
|
|
141
|
+
text-transform: var(--loidolt-label-transform);
|
|
138
142
|
white-space: nowrap;
|
|
139
143
|
}
|
|
140
144
|
.ldt-breadcrumbs__link {
|
|
@@ -155,10 +159,10 @@
|
|
|
155
159
|
display: flex;
|
|
156
160
|
flex-wrap: wrap;
|
|
157
161
|
align-items: center;
|
|
158
|
-
gap: 0.3rem;
|
|
162
|
+
gap: 0.3rem; /* @literal page buttons sit nearly flush */
|
|
159
163
|
}
|
|
160
164
|
.ldt-pagination__ellipsis {
|
|
161
|
-
padding-inline: 0.35rem;
|
|
165
|
+
padding-inline: 0.35rem; /* @literal matches the page-button gap */
|
|
162
166
|
color: var(--loidolt-text-muted);
|
|
163
167
|
}
|
|
164
168
|
.ldt-pagination__page {
|
|
@@ -179,6 +183,7 @@
|
|
|
179
183
|
display: inline-flex;
|
|
180
184
|
overflow-x: auto;
|
|
181
185
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
186
|
+
border-radius: var(--loidolt-radius-control);
|
|
182
187
|
overscroll-behavior-inline: contain;
|
|
183
188
|
scrollbar-width: thin;
|
|
184
189
|
}
|
|
@@ -207,6 +212,7 @@
|
|
|
207
212
|
gap: var(--loidolt-space-1);
|
|
208
213
|
padding: var(--loidolt-space-1);
|
|
209
214
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
215
|
+
border-radius: var(--loidolt-radius-inner);
|
|
210
216
|
color: inherit;
|
|
211
217
|
background: none;
|
|
212
218
|
font: inherit;
|
|
@@ -244,15 +250,16 @@
|
|
|
244
250
|
.ldt-chip {
|
|
245
251
|
display: inline-flex;
|
|
246
252
|
align-items: center;
|
|
247
|
-
gap: 0.2rem;
|
|
253
|
+
gap: 0.2rem; /* @literal chip glyph spacing */
|
|
248
254
|
min-height: 1.5rem;
|
|
249
255
|
max-width: 100%;
|
|
250
256
|
border: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
251
|
-
|
|
257
|
+
border-radius: var(--loidolt-radius-control);
|
|
258
|
+
padding-inline-start: 0.45rem; /* @literal chip label inset */
|
|
252
259
|
color: var(--loidolt-text);
|
|
253
260
|
background: var(--loidolt-surface-alt);
|
|
254
261
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
255
|
-
letter-spacing: 0.
|
|
262
|
+
letter-spacing: calc(var(--loidolt-label-tracking) * 0.4);
|
|
256
263
|
}
|
|
257
264
|
.ldt-chip > span {
|
|
258
265
|
overflow: hidden;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
.ldt-card,
|
|
2
2
|
.ldt-panel {
|
|
3
3
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
4
|
+
border-radius: var(--loidolt-radius-surface);
|
|
4
5
|
color: var(--loidolt-text);
|
|
5
6
|
background: var(--loidolt-surface);
|
|
6
7
|
}
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
.ldt-panel__header,
|
|
26
27
|
.ldt-panel__content,
|
|
27
28
|
.ldt-panel__footer {
|
|
28
|
-
padding: var(--loidolt-
|
|
29
|
+
padding: var(--loidolt-pad-surface);
|
|
29
30
|
}
|
|
30
31
|
.ldt-card__header,
|
|
31
32
|
.ldt-panel__header {
|
|
@@ -56,15 +57,16 @@
|
|
|
56
57
|
display: inline-flex;
|
|
57
58
|
align-items: center;
|
|
58
59
|
min-height: 1.4rem;
|
|
59
|
-
padding: 0.15rem 0.5rem;
|
|
60
|
+
padding: 0.15rem 0.5rem; /* @literal inline badge metrics, sized to sit in running text */
|
|
60
61
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
61
62
|
border-radius: var(--loidolt-border-radius-pill);
|
|
62
63
|
color: var(--loidolt-text-muted);
|
|
63
64
|
background: var(--loidolt-surface-sunken);
|
|
64
65
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
65
66
|
/* The label voice (`.ldt-eyebrow`, `.ldt-field__label`), not the tighter control voice. */
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
font-weight: var(--loidolt-label-weight);
|
|
68
|
+
letter-spacing: var(--loidolt-label-tracking-wide);
|
|
69
|
+
text-transform: var(--loidolt-label-transform);
|
|
68
70
|
}
|
|
69
71
|
/*
|
|
70
72
|
* Size steps take the button scale's *box* so a badge in a row of controls lines up with them,
|
|
@@ -83,17 +85,17 @@
|
|
|
83
85
|
}
|
|
84
86
|
.ldt-badge--sm {
|
|
85
87
|
min-height: var(--loidolt-size-control-sm);
|
|
86
|
-
padding:
|
|
88
|
+
padding: var(--loidolt-pad-control-y-sm) 0.7rem; /* @literal inline pad sits between control steps */
|
|
87
89
|
line-height: 1;
|
|
88
90
|
}
|
|
89
91
|
.ldt-badge--md {
|
|
90
92
|
min-height: var(--loidolt-size-control);
|
|
91
|
-
padding:
|
|
93
|
+
padding: var(--loidolt-pad-control-y) 0.9rem; /* @literal inline pad sits between control steps */
|
|
92
94
|
line-height: 1;
|
|
93
95
|
}
|
|
94
96
|
.ldt-badge--lg {
|
|
95
97
|
min-height: var(--loidolt-size-control-lg);
|
|
96
|
-
padding:
|
|
98
|
+
padding: var(--loidolt-pad-control-y) 1.25rem; /* @literal inline pad sits between control steps */
|
|
97
99
|
line-height: 1;
|
|
98
100
|
}
|
|
99
101
|
.ldt-badge--accent {
|
|
@@ -130,6 +132,7 @@
|
|
|
130
132
|
aspect-ratio: var(--ldt-thumbnail-ratio, 4 / 3);
|
|
131
133
|
overflow: hidden;
|
|
132
134
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
135
|
+
border-radius: var(--loidolt-radius-surface);
|
|
133
136
|
background: var(--loidolt-surface-sunken);
|
|
134
137
|
}
|
|
135
138
|
.ldt-thumbnail--paper {
|
|
@@ -169,8 +172,9 @@
|
|
|
169
172
|
/* A dashboard tile: one hero number over a utility label; the link form invites a click. */
|
|
170
173
|
.ldt-stat {
|
|
171
174
|
display: block;
|
|
172
|
-
padding: var(--loidolt-
|
|
175
|
+
padding: var(--loidolt-pad-surface);
|
|
173
176
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
177
|
+
border-radius: var(--loidolt-radius-surface);
|
|
174
178
|
color: var(--loidolt-text);
|
|
175
179
|
background: var(--loidolt-surface);
|
|
176
180
|
text-decoration: none;
|
|
@@ -183,14 +187,15 @@ a.ldt-stat:hover {
|
|
|
183
187
|
margin: 0;
|
|
184
188
|
font-family: var(--loidolt-font-display);
|
|
185
189
|
font-size: var(--loidolt-font-size-xl);
|
|
186
|
-
font-weight:
|
|
190
|
+
font-weight: var(--loidolt-strong-weight);
|
|
187
191
|
}
|
|
188
192
|
.ldt-stat__label {
|
|
189
193
|
margin: 0.25rem 0 0;
|
|
190
194
|
color: var(--loidolt-text-muted);
|
|
191
195
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
192
|
-
|
|
193
|
-
|
|
196
|
+
font-weight: var(--loidolt-label-weight);
|
|
197
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
198
|
+
text-transform: var(--loidolt-label-transform);
|
|
194
199
|
}
|
|
195
200
|
.ldt-separator {
|
|
196
201
|
width: 100%;
|
|
@@ -214,10 +219,11 @@ a.ldt-stat:hover {
|
|
|
214
219
|
place-items: center;
|
|
215
220
|
overflow: hidden;
|
|
216
221
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
222
|
+
border-radius: var(--loidolt-radius-control);
|
|
217
223
|
color: var(--loidolt-text-muted);
|
|
218
224
|
background: var(--loidolt-surface-sunken);
|
|
219
225
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
220
|
-
letter-spacing: 0.
|
|
226
|
+
letter-spacing: calc(var(--loidolt-label-tracking) * 0.6);
|
|
221
227
|
}
|
|
222
228
|
.ldt-avatar--sm {
|
|
223
229
|
width: var(--loidolt-size-control-sm);
|