@loidolt/theme-styles 0.7.0 → 0.8.0
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 +48 -40
- 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
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
max-height: min(48rem, calc(100dvh - 2rem));
|
|
15
15
|
overflow: hidden;
|
|
16
16
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
17
|
+
border-radius: var(--loidolt-radius-overlay);
|
|
17
18
|
color: var(--loidolt-text);
|
|
18
19
|
background: var(--loidolt-surface);
|
|
19
20
|
box-shadow: var(--loidolt-shadow-modal);
|
|
@@ -41,18 +42,18 @@
|
|
|
41
42
|
display: flex;
|
|
42
43
|
flex: none;
|
|
43
44
|
align-items: center;
|
|
44
|
-
gap:
|
|
45
|
+
gap: var(--loidolt-space-1);
|
|
45
46
|
}
|
|
46
47
|
.ldt-dialog__header,
|
|
47
48
|
.ldt-dialog__body,
|
|
48
49
|
.ldt-dialog__footer {
|
|
49
|
-
padding:
|
|
50
|
+
padding: var(--loidolt-pad-overlay);
|
|
50
51
|
}
|
|
51
52
|
.ldt-dialog__header {
|
|
52
53
|
display: flex;
|
|
53
54
|
align-items: start;
|
|
54
55
|
justify-content: space-between;
|
|
55
|
-
gap:
|
|
56
|
+
gap: var(--loidolt-space-4);
|
|
56
57
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
57
58
|
}
|
|
58
59
|
.ldt-dialog__header > :first-child,
|
|
@@ -66,7 +67,7 @@
|
|
|
66
67
|
display: flex;
|
|
67
68
|
flex-wrap: wrap;
|
|
68
69
|
justify-content: flex-end;
|
|
69
|
-
gap:
|
|
70
|
+
gap: var(--loidolt-gap-actions);
|
|
70
71
|
border-top: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
71
72
|
}
|
|
72
73
|
.ldt-dialog__footer .ldt-button,
|
|
@@ -154,13 +155,13 @@
|
|
|
154
155
|
.ldt-drawer__header,
|
|
155
156
|
.ldt-drawer__body,
|
|
156
157
|
.ldt-drawer__footer {
|
|
157
|
-
padding:
|
|
158
|
+
padding: var(--loidolt-pad-overlay);
|
|
158
159
|
}
|
|
159
160
|
.ldt-drawer__header {
|
|
160
161
|
display: flex;
|
|
161
162
|
align-items: start;
|
|
162
163
|
justify-content: space-between;
|
|
163
|
-
gap:
|
|
164
|
+
gap: var(--loidolt-space-4);
|
|
164
165
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
165
166
|
}
|
|
166
167
|
.ldt-drawer__body {
|
|
@@ -170,7 +171,7 @@
|
|
|
170
171
|
display: flex;
|
|
171
172
|
flex-wrap: wrap;
|
|
172
173
|
justify-content: flex-end;
|
|
173
|
-
gap:
|
|
174
|
+
gap: var(--loidolt-gap-actions);
|
|
174
175
|
border-top: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
175
176
|
}
|
|
176
177
|
.ldt-drawer__title {
|
|
@@ -188,31 +189,34 @@
|
|
|
188
189
|
z-index: var(--loidolt-z-menu);
|
|
189
190
|
min-width: 13rem;
|
|
190
191
|
max-width: min(22rem, calc(100vw - 2rem));
|
|
191
|
-
padding:
|
|
192
|
+
padding: var(--loidolt-pad-popover);
|
|
192
193
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
194
|
+
border-radius: var(--loidolt-radius-overlay);
|
|
193
195
|
color: var(--loidolt-text);
|
|
194
196
|
background: var(--loidolt-surface);
|
|
195
197
|
box-shadow: var(--loidolt-shadow-popover);
|
|
196
198
|
}
|
|
197
199
|
.ldt-menu {
|
|
198
200
|
display: grid;
|
|
199
|
-
gap: 0.1rem;
|
|
201
|
+
gap: 0.1rem; /* @literal hairline between items */
|
|
200
202
|
}
|
|
201
203
|
.ldt-menu__label {
|
|
202
|
-
padding: 0.45rem 0.55rem 0.3rem;
|
|
204
|
+
padding: 0.45rem 0.55rem 0.3rem; /* @literal optical alignment with item text */
|
|
203
205
|
color: var(--loidolt-text-accent);
|
|
204
206
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
205
|
-
|
|
206
|
-
|
|
207
|
+
font-weight: var(--loidolt-label-weight);
|
|
208
|
+
letter-spacing: calc(var(--loidolt-label-tracking) * 0.9);
|
|
209
|
+
text-transform: var(--loidolt-label-transform);
|
|
207
210
|
}
|
|
208
211
|
.ldt-menu__item {
|
|
209
212
|
width: 100%;
|
|
210
213
|
display: flex;
|
|
211
214
|
align-items: center;
|
|
212
215
|
justify-content: space-between;
|
|
213
|
-
gap:
|
|
216
|
+
gap: var(--loidolt-space-4);
|
|
214
217
|
border: 0;
|
|
215
|
-
|
|
218
|
+
border-radius: var(--loidolt-radius-inner);
|
|
219
|
+
padding: var(--loidolt-pad-item);
|
|
216
220
|
color: var(--loidolt-text);
|
|
217
221
|
background: transparent;
|
|
218
222
|
text-align: left;
|
|
@@ -228,7 +232,7 @@
|
|
|
228
232
|
.ldt-menu__hint {
|
|
229
233
|
color: var(--loidolt-text-muted);
|
|
230
234
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
231
|
-
letter-spacing:
|
|
235
|
+
letter-spacing: var(--loidolt-control-tracking);
|
|
232
236
|
}
|
|
233
237
|
.ldt-menu__item:hover:not(:disabled, [data-disabled]) .ldt-menu__hint,
|
|
234
238
|
.ldt-menu__item[data-highlighted] .ldt-menu__hint {
|
|
@@ -250,13 +254,13 @@
|
|
|
250
254
|
}
|
|
251
255
|
.ldt-menu__group {
|
|
252
256
|
display: grid;
|
|
253
|
-
gap: 0.1rem;
|
|
257
|
+
gap: 0.1rem; /* @literal hairline between items */
|
|
254
258
|
}
|
|
255
259
|
/* Checkbox and radio rows lead with a drawn indicator, so state never rests on colour alone. */
|
|
256
260
|
.ldt-menu__item--check,
|
|
257
261
|
.ldt-menu__item--radio {
|
|
258
262
|
justify-content: flex-start;
|
|
259
|
-
gap: 0.6rem;
|
|
263
|
+
gap: 0.6rem; /* @literal glyph-to-label spacing, not density */
|
|
260
264
|
}
|
|
261
265
|
.ldt-menu__item--check .ldt-menu__hint,
|
|
262
266
|
.ldt-menu__item--radio .ldt-menu__hint {
|
|
@@ -274,7 +278,7 @@
|
|
|
274
278
|
position: absolute;
|
|
275
279
|
inset: 0.05rem 0.22rem 0.18rem;
|
|
276
280
|
border: solid currentColor;
|
|
277
|
-
border-width: 0 2px 2px 0;
|
|
281
|
+
border-width: 0 2px 2px 0; /* @literal checkmark glyph */
|
|
278
282
|
transform: rotate(45deg);
|
|
279
283
|
}
|
|
280
284
|
.ldt-menu__item--radio[data-state='checked'] .ldt-menu__indicator::after {
|
|
@@ -288,7 +292,7 @@
|
|
|
288
292
|
height: 0.4rem;
|
|
289
293
|
flex: none;
|
|
290
294
|
border: solid currentColor;
|
|
291
|
-
border-width: 0 1.5px 1.5px 0;
|
|
295
|
+
border-width: 0 1.5px 1.5px 0; /* @literal chevron glyph */
|
|
292
296
|
transform: rotate(-45deg);
|
|
293
297
|
}
|
|
294
298
|
.ldt-menu__item--sub[data-state='open'] {
|
|
@@ -304,7 +308,8 @@
|
|
|
304
308
|
.ldt-tooltip {
|
|
305
309
|
z-index: var(--loidolt-z-tooltip);
|
|
306
310
|
max-width: 18rem;
|
|
307
|
-
padding: 0.4rem 0.55rem;
|
|
311
|
+
padding: 0.4rem 0.55rem; /* @literal compact by nature; not a density surface */
|
|
312
|
+
border-radius: var(--loidolt-radius-control);
|
|
308
313
|
color: var(--loidolt-text-inverse);
|
|
309
314
|
background: var(--loidolt-surface-inverse);
|
|
310
315
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
@@ -329,7 +334,7 @@
|
|
|
329
334
|
.ldt-tabs__list {
|
|
330
335
|
max-width: 100%;
|
|
331
336
|
display: flex;
|
|
332
|
-
gap: 2px;
|
|
337
|
+
gap: 2px; /* @literal hairline seam between tabs */
|
|
333
338
|
overflow-x: auto;
|
|
334
339
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
335
340
|
overscroll-behavior-inline: contain;
|
|
@@ -345,18 +350,19 @@
|
|
|
345
350
|
.ldt-tabs__trigger {
|
|
346
351
|
min-height: var(--loidolt-size-control);
|
|
347
352
|
border: 0;
|
|
348
|
-
border-bottom:
|
|
349
|
-
padding: 0
|
|
353
|
+
border-bottom: var(--loidolt-stroke-indicator) solid transparent;
|
|
354
|
+
padding: 0 var(--loidolt-pad-control-x);
|
|
350
355
|
color: var(--loidolt-text-muted);
|
|
351
356
|
background: transparent;
|
|
352
357
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
353
|
-
|
|
354
|
-
|
|
358
|
+
font-weight: var(--loidolt-control-weight);
|
|
359
|
+
letter-spacing: var(--loidolt-control-tracking);
|
|
360
|
+
text-transform: var(--loidolt-control-transform);
|
|
355
361
|
}
|
|
356
362
|
.ldt-tabs__trigger[data-orientation='vertical'] {
|
|
357
363
|
border-bottom: 0;
|
|
358
|
-
border-right:
|
|
359
|
-
padding: 0
|
|
364
|
+
border-right: var(--loidolt-stroke-indicator) solid transparent;
|
|
365
|
+
padding: 0 var(--loidolt-pad-control-x);
|
|
360
366
|
text-align: left;
|
|
361
367
|
}
|
|
362
368
|
.ldt-tabs__trigger[data-state='active'],
|
|
@@ -368,7 +374,7 @@
|
|
|
368
374
|
padding-block: 0;
|
|
369
375
|
}
|
|
370
376
|
.ldt-tabs__content {
|
|
371
|
-
padding-block:
|
|
377
|
+
padding-block: var(--loidolt-space-4);
|
|
372
378
|
}
|
|
373
379
|
|
|
374
380
|
@media (max-width: 760px) {
|
|
@@ -380,7 +386,7 @@
|
|
|
380
386
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
381
387
|
}
|
|
382
388
|
.ldt-tabs__content[data-orientation='vertical'] {
|
|
383
|
-
padding-block:
|
|
389
|
+
padding-block: var(--loidolt-space-4);
|
|
384
390
|
}
|
|
385
391
|
}
|
|
386
392
|
/* The option list of Combobox and MultiSelect: the menu surface, sized to its field. */
|
|
@@ -390,38 +396,40 @@
|
|
|
390
396
|
max-width: min(28rem, calc(100vw - 2rem));
|
|
391
397
|
max-height: min(20rem, var(--bits-floating-available-height, 20rem));
|
|
392
398
|
display: grid;
|
|
393
|
-
gap: 0.1rem;
|
|
399
|
+
gap: 0.1rem; /* @literal hairline between items */
|
|
394
400
|
overflow-y: auto;
|
|
395
|
-
padding: 0.35rem;
|
|
401
|
+
padding: 0.35rem; /* @literal listbox inset */
|
|
396
402
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
403
|
+
border-radius: var(--loidolt-radius-overlay);
|
|
397
404
|
color: var(--loidolt-text);
|
|
398
405
|
background: var(--loidolt-surface);
|
|
399
406
|
box-shadow: var(--loidolt-shadow-popover);
|
|
400
407
|
}
|
|
401
408
|
.ldt-listbox__group {
|
|
402
409
|
display: grid;
|
|
403
|
-
gap: 0.1rem;
|
|
410
|
+
gap: 0.1rem; /* @literal hairline between items */
|
|
404
411
|
}
|
|
405
412
|
.ldt-listbox__group + .ldt-listbox__group,
|
|
406
413
|
.ldt-listbox__item + .ldt-listbox__group {
|
|
407
414
|
margin-top: 0.25rem;
|
|
408
415
|
border-top: var(--loidolt-border-width) solid var(--loidolt-border-soft);
|
|
409
|
-
padding-top:
|
|
416
|
+
padding-top: var(--loidolt-space-1);
|
|
410
417
|
}
|
|
411
418
|
.ldt-listbox__heading {
|
|
412
|
-
padding: 0.4rem 0.55rem 0.25rem;
|
|
419
|
+
padding: 0.4rem 0.55rem 0.25rem; /* @literal optical alignment with item text */
|
|
413
420
|
color: var(--loidolt-text-accent);
|
|
414
421
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
415
|
-
|
|
416
|
-
|
|
422
|
+
font-weight: var(--loidolt-label-weight);
|
|
423
|
+
letter-spacing: calc(var(--loidolt-label-tracking) * 0.9);
|
|
424
|
+
text-transform: var(--loidolt-label-transform);
|
|
417
425
|
}
|
|
418
426
|
.ldt-listbox__item {
|
|
419
427
|
min-height: 1.5rem;
|
|
420
428
|
display: flex;
|
|
421
429
|
align-items: center;
|
|
422
430
|
justify-content: space-between;
|
|
423
|
-
gap:
|
|
424
|
-
padding: 0.55rem;
|
|
431
|
+
gap: var(--loidolt-space-4);
|
|
432
|
+
padding: 0.55rem; /* @literal listbox option metrics */
|
|
425
433
|
cursor: default;
|
|
426
434
|
}
|
|
427
435
|
.ldt-listbox__item[data-highlighted] {
|
|
@@ -438,14 +446,14 @@
|
|
|
438
446
|
height: 0.65rem;
|
|
439
447
|
flex: none;
|
|
440
448
|
border: solid transparent;
|
|
441
|
-
border-width: 0 2px 2px 0;
|
|
449
|
+
border-width: 0 2px 2px 0; /* @literal checkmark glyph */
|
|
442
450
|
transform: rotate(45deg) translate(-0.1rem, -0.1rem);
|
|
443
451
|
}
|
|
444
452
|
.ldt-listbox__item[data-selected] .ldt-listbox__check {
|
|
445
453
|
border-color: currentColor;
|
|
446
454
|
}
|
|
447
455
|
.ldt-listbox__empty {
|
|
448
|
-
padding: 0.55rem;
|
|
456
|
+
padding: 0.55rem; /* @literal matches the option metrics */
|
|
449
457
|
color: var(--loidolt-text-muted);
|
|
450
458
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
451
459
|
}
|
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);
|