@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
package/src/components/forms.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ldt-field {
|
|
2
2
|
display: grid;
|
|
3
|
-
gap:
|
|
3
|
+
gap: var(--loidolt-gap-field);
|
|
4
4
|
min-width: 0;
|
|
5
5
|
}
|
|
6
6
|
.ldt-label,
|
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
justify-content: space-between;
|
|
11
11
|
color: var(--loidolt-text-muted);
|
|
12
12
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
font-weight: var(--loidolt-label-weight);
|
|
14
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
15
|
+
text-transform: var(--loidolt-label-transform);
|
|
15
16
|
}
|
|
16
17
|
.ldt-field__description {
|
|
17
18
|
margin: 0;
|
|
@@ -32,8 +33,9 @@
|
|
|
32
33
|
min-height: var(--loidolt-size-control);
|
|
33
34
|
border: 0;
|
|
34
35
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
36
|
+
/* Square even when controls are rounded: a radius on a bottom-only border reads as a fault. */
|
|
35
37
|
border-radius: 0;
|
|
36
|
-
padding:
|
|
38
|
+
padding: var(--loidolt-pad-field);
|
|
37
39
|
color: var(--loidolt-text);
|
|
38
40
|
background: transparent;
|
|
39
41
|
}
|
|
@@ -42,7 +44,8 @@
|
|
|
42
44
|
.ldt-textarea--boxed,
|
|
43
45
|
.ldt-number-field--boxed {
|
|
44
46
|
border: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
45
|
-
|
|
47
|
+
border-radius: var(--loidolt-radius-control);
|
|
48
|
+
padding-inline: var(--loidolt-pad-control-x-sm);
|
|
46
49
|
background: var(--loidolt-surface-input);
|
|
47
50
|
}
|
|
48
51
|
/* The focus ring itself comes from the `loidolt.a11y` layer; this only tints the border. */
|
|
@@ -66,10 +69,10 @@
|
|
|
66
69
|
min-height: 1.5rem;
|
|
67
70
|
display: inline-flex;
|
|
68
71
|
align-items: center;
|
|
69
|
-
gap: 0.55rem;
|
|
72
|
+
gap: 0.55rem; /* @literal glyph-to-label spacing, not density */
|
|
70
73
|
color: var(--loidolt-text-muted);
|
|
71
74
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
72
|
-
letter-spacing: 0.
|
|
75
|
+
letter-spacing: calc(var(--loidolt-control-tracking) * 0.75);
|
|
73
76
|
}
|
|
74
77
|
.ldt-choice input {
|
|
75
78
|
width: 1rem;
|
|
@@ -85,7 +88,7 @@
|
|
|
85
88
|
}
|
|
86
89
|
.ldt-choice__text {
|
|
87
90
|
display: grid;
|
|
88
|
-
gap: 0.15rem;
|
|
91
|
+
gap: 0.15rem; /* @literal glyph-to-label spacing, not density */
|
|
89
92
|
}
|
|
90
93
|
.ldt-choice__description {
|
|
91
94
|
color: var(--loidolt-text-muted);
|
|
@@ -108,15 +111,15 @@
|
|
|
108
111
|
.ldt-fieldset__body {
|
|
109
112
|
display: grid;
|
|
110
113
|
gap: var(--ldt-gap, var(--loidolt-space-3));
|
|
111
|
-
margin-top:
|
|
114
|
+
margin-top: var(--loidolt-gap-field);
|
|
112
115
|
}
|
|
113
116
|
.ldt-fieldset > :where(.ldt-field__description, .ldt-field__error) {
|
|
114
|
-
margin-top:
|
|
117
|
+
margin-top: var(--loidolt-gap-field);
|
|
115
118
|
}
|
|
116
119
|
.ldt-radio-group {
|
|
117
120
|
display: flex;
|
|
118
121
|
flex-wrap: wrap;
|
|
119
|
-
gap:
|
|
122
|
+
gap: var(--loidolt-space-3) var(--loidolt-space-4);
|
|
120
123
|
}
|
|
121
124
|
.ldt-radio-group--vertical {
|
|
122
125
|
flex-direction: column;
|
|
@@ -125,7 +128,7 @@
|
|
|
125
128
|
min-height: 1.5rem;
|
|
126
129
|
display: inline-flex;
|
|
127
130
|
align-items: center;
|
|
128
|
-
gap: 0.65rem;
|
|
131
|
+
gap: 0.65rem; /* @literal glyph-to-label spacing, not density */
|
|
129
132
|
border: 0;
|
|
130
133
|
padding: 0;
|
|
131
134
|
background: transparent;
|
|
@@ -133,14 +136,17 @@
|
|
|
133
136
|
.ldt-switch__track {
|
|
134
137
|
width: 2.4rem;
|
|
135
138
|
height: 1.25rem;
|
|
136
|
-
padding: 2px;
|
|
139
|
+
padding: 2px; /* @literal thumb travel is computed from the track geometry */
|
|
137
140
|
border: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
141
|
+
border-radius: var(--loidolt-radius-control);
|
|
138
142
|
background: var(--loidolt-surface-alt);
|
|
139
143
|
}
|
|
140
144
|
.ldt-switch__thumb {
|
|
141
145
|
display: block;
|
|
142
146
|
width: 0.9rem;
|
|
143
147
|
height: 0.9rem;
|
|
148
|
+
/* Concentric with the track: its radius less the 2px inset and 1px border. */
|
|
149
|
+
border-radius: max(0px, calc(var(--loidolt-radius-control) - 3px));
|
|
144
150
|
background: var(--loidolt-text-muted);
|
|
145
151
|
transition: transform var(--loidolt-motion-fast) var(--loidolt-motion-easing);
|
|
146
152
|
}
|
|
@@ -180,12 +186,14 @@
|
|
|
180
186
|
.ldt-file-input::file-selector-button {
|
|
181
187
|
margin-inline-end: var(--loidolt-space-2);
|
|
182
188
|
border: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
183
|
-
|
|
189
|
+
border-radius: var(--loidolt-radius-control);
|
|
190
|
+
padding: var(--loidolt-space-1) var(--loidolt-pad-control-x-sm);
|
|
184
191
|
color: var(--loidolt-text);
|
|
185
192
|
background: var(--loidolt-surface);
|
|
186
193
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
187
|
-
|
|
188
|
-
|
|
194
|
+
font-weight: var(--loidolt-control-weight);
|
|
195
|
+
letter-spacing: var(--loidolt-control-tracking);
|
|
196
|
+
text-transform: var(--loidolt-control-transform);
|
|
189
197
|
cursor: pointer;
|
|
190
198
|
}
|
|
191
199
|
.ldt-file-input::file-selector-button:hover {
|
|
@@ -201,7 +209,8 @@
|
|
|
201
209
|
display: inline-block;
|
|
202
210
|
width: 1.75rem;
|
|
203
211
|
height: 1.75rem;
|
|
204
|
-
border:
|
|
212
|
+
border: var(--loidolt-stroke-indicator) solid transparent;
|
|
213
|
+
border-radius: var(--loidolt-radius-control);
|
|
205
214
|
background: var(--ldt-swatch);
|
|
206
215
|
cursor: pointer;
|
|
207
216
|
}
|
|
@@ -213,8 +222,8 @@
|
|
|
213
222
|
border-color: var(--loidolt-accent);
|
|
214
223
|
}
|
|
215
224
|
.ldt-swatch-group__swatch:has(input:focus-visible) {
|
|
216
|
-
outline:
|
|
217
|
-
outline-offset: 1px;
|
|
225
|
+
outline: var(--loidolt-stroke-focus) solid var(--loidolt-focus-ring);
|
|
226
|
+
outline-offset: 1px; /* @literal gap between swatch and ring */
|
|
218
227
|
}
|
|
219
228
|
.ldt-swatch-group__swatch:has(input:disabled) {
|
|
220
229
|
opacity: 0.4;
|
|
@@ -230,14 +239,15 @@
|
|
|
230
239
|
display: flex;
|
|
231
240
|
flex-wrap: wrap;
|
|
232
241
|
align-items: center;
|
|
233
|
-
gap: 0.3rem;
|
|
242
|
+
gap: 0.3rem; /* @literal chip spacing */
|
|
234
243
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
235
|
-
padding: 0.2rem 0 0.2rem 0.15rem;
|
|
244
|
+
padding: 0.2rem 0 0.2rem 0.15rem; /* @literal chip well inset */
|
|
236
245
|
color: var(--loidolt-text);
|
|
237
246
|
}
|
|
238
247
|
.ldt-combobox--boxed {
|
|
239
248
|
border: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
240
|
-
|
|
249
|
+
border-radius: var(--loidolt-radius-control);
|
|
250
|
+
padding-inline: var(--loidolt-space-2) 0;
|
|
241
251
|
background: var(--loidolt-surface-input);
|
|
242
252
|
}
|
|
243
253
|
.ldt-combobox:focus-within {
|
|
@@ -255,7 +265,7 @@
|
|
|
255
265
|
min-width: 0;
|
|
256
266
|
min-height: 1.5rem;
|
|
257
267
|
border: 0;
|
|
258
|
-
padding: 0.2rem 0;
|
|
268
|
+
padding: 0.2rem 0; /* @literal sits inside the well's own padding */
|
|
259
269
|
color: inherit;
|
|
260
270
|
background: transparent;
|
|
261
271
|
}
|
|
@@ -279,7 +289,7 @@
|
|
|
279
289
|
.ldt-multi-select__chips {
|
|
280
290
|
display: flex;
|
|
281
291
|
flex-wrap: wrap;
|
|
282
|
-
gap: 0.3rem;
|
|
292
|
+
gap: 0.3rem; /* @literal chip spacing */
|
|
283
293
|
margin: 0;
|
|
284
294
|
padding: 0;
|
|
285
295
|
list-style: none;
|
|
@@ -322,7 +332,7 @@
|
|
|
322
332
|
display: block;
|
|
323
333
|
width: var(--ldt-slider-thumb);
|
|
324
334
|
height: var(--ldt-slider-thumb);
|
|
325
|
-
border:
|
|
335
|
+
border: var(--loidolt-stroke-indicator) solid var(--loidolt-accent);
|
|
326
336
|
background: var(--loidolt-surface-input);
|
|
327
337
|
cursor: grab;
|
|
328
338
|
transition: background var(--loidolt-motion-fast) var(--loidolt-motion-easing);
|
|
@@ -382,6 +392,7 @@
|
|
|
382
392
|
}
|
|
383
393
|
.ldt-password-input--boxed {
|
|
384
394
|
border: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
395
|
+
border-radius: var(--loidolt-radius-control);
|
|
385
396
|
background: var(--loidolt-surface-input);
|
|
386
397
|
}
|
|
387
398
|
.ldt-password-input:focus-within {
|
|
@@ -394,12 +405,12 @@
|
|
|
394
405
|
flex: 1;
|
|
395
406
|
min-width: 0;
|
|
396
407
|
border: 0;
|
|
397
|
-
padding:
|
|
408
|
+
padding: var(--loidolt-pad-field);
|
|
398
409
|
color: var(--loidolt-text);
|
|
399
410
|
background: transparent;
|
|
400
411
|
}
|
|
401
412
|
.ldt-password-input--boxed .ldt-password-input__input {
|
|
402
|
-
padding-inline:
|
|
413
|
+
padding-inline: var(--loidolt-pad-control-x-sm);
|
|
403
414
|
}
|
|
404
415
|
.ldt-password-input__toggle {
|
|
405
416
|
display: inline-grid;
|
|
@@ -420,7 +431,7 @@
|
|
|
420
431
|
.ldt-otp-input {
|
|
421
432
|
display: inline-flex;
|
|
422
433
|
align-items: center;
|
|
423
|
-
gap: 0.35rem;
|
|
434
|
+
gap: 0.35rem; /* @literal cell spacing */
|
|
424
435
|
}
|
|
425
436
|
.ldt-otp-input__cell {
|
|
426
437
|
position: relative;
|
|
@@ -429,6 +440,7 @@
|
|
|
429
440
|
display: grid;
|
|
430
441
|
place-items: center;
|
|
431
442
|
border: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
443
|
+
border-radius: var(--loidolt-radius-control);
|
|
432
444
|
color: var(--loidolt-text);
|
|
433
445
|
background: var(--loidolt-surface-input);
|
|
434
446
|
font: var(--loidolt-font-size-lg) var(--loidolt-font-utility);
|
|
@@ -437,8 +449,8 @@
|
|
|
437
449
|
/* The input is visually hidden, so the active cell carries the focus indicator for it. */
|
|
438
450
|
.ldt-otp-input:focus-within .ldt-otp-input__cell[data-active] {
|
|
439
451
|
border-color: var(--loidolt-accent);
|
|
440
|
-
outline:
|
|
441
|
-
outline-offset: 1px;
|
|
452
|
+
outline: var(--loidolt-stroke-focus) solid var(--loidolt-focus-ring);
|
|
453
|
+
outline-offset: 1px; /* @literal gap between cell and ring */
|
|
442
454
|
}
|
|
443
455
|
.ldt-otp-input:has([aria-invalid='true']) .ldt-otp-input__cell {
|
|
444
456
|
border-color: var(--loidolt-danger);
|
|
@@ -468,6 +480,7 @@
|
|
|
468
480
|
.ldt-signature__surface {
|
|
469
481
|
position: relative;
|
|
470
482
|
border: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
483
|
+
border-radius: var(--loidolt-radius-surface);
|
|
471
484
|
color: var(--loidolt-text);
|
|
472
485
|
background: var(--loidolt-surface-input);
|
|
473
486
|
}
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
/* Reflow at whatever width runs out of room, rather than only at the compact breakpoint. */
|
|
29
29
|
flex-wrap: wrap;
|
|
30
30
|
align-items: center;
|
|
31
|
-
gap:
|
|
32
|
-
padding: 0
|
|
31
|
+
gap: var(--loidolt-space-5);
|
|
32
|
+
padding: 0 var(--loidolt-pad-bar-x);
|
|
33
33
|
color: var(--loidolt-text);
|
|
34
34
|
background: var(--loidolt-surface);
|
|
35
35
|
}
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
display: inline-flex;
|
|
38
38
|
flex: 0 0 auto;
|
|
39
39
|
align-items: baseline;
|
|
40
|
-
gap: 0.55rem;
|
|
40
|
+
gap: 0.55rem; /* @literal brand lockup */
|
|
41
41
|
color: var(--loidolt-text);
|
|
42
42
|
text-decoration: none;
|
|
43
43
|
}
|
|
@@ -46,14 +46,15 @@
|
|
|
46
46
|
}
|
|
47
47
|
.ldt-brand__name {
|
|
48
48
|
font-size: var(--loidolt-font-size-lg);
|
|
49
|
-
font-weight:
|
|
50
|
-
letter-spacing: -0.02em;
|
|
49
|
+
font-weight: var(--loidolt-heading-weight);
|
|
50
|
+
letter-spacing: -0.02em; /* @literal brand lockup */
|
|
51
51
|
}
|
|
52
52
|
.ldt-brand__meta {
|
|
53
53
|
color: var(--loidolt-text-accent);
|
|
54
54
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
font-weight: var(--loidolt-label-weight);
|
|
56
|
+
letter-spacing: calc(var(--loidolt-label-tracking) * 1.2);
|
|
57
|
+
text-transform: var(--loidolt-label-transform);
|
|
57
58
|
}
|
|
58
59
|
.ldt-topbar__nav {
|
|
59
60
|
/*
|
|
@@ -72,21 +73,22 @@
|
|
|
72
73
|
margin-left: auto;
|
|
73
74
|
display: flex;
|
|
74
75
|
align-items: center;
|
|
75
|
-
gap: 0.4rem;
|
|
76
|
+
gap: 0.4rem; /* @literal icon-button cluster */
|
|
76
77
|
}
|
|
77
78
|
.ldt-nav-menu {
|
|
78
79
|
min-height: var(--loidolt-size-control);
|
|
79
80
|
display: inline-flex;
|
|
80
81
|
align-items: center;
|
|
81
|
-
gap: 0.35rem;
|
|
82
|
+
gap: 0.35rem; /* @literal glyph-to-label spacing, not density */
|
|
82
83
|
border: 0;
|
|
83
|
-
border-bottom:
|
|
84
|
-
padding: 0
|
|
84
|
+
border-bottom: var(--loidolt-stroke-indicator) solid transparent;
|
|
85
|
+
padding: 0 var(--loidolt-space-3);
|
|
85
86
|
color: var(--loidolt-text-muted);
|
|
86
87
|
background: transparent;
|
|
87
88
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
font-weight: var(--loidolt-control-weight);
|
|
90
|
+
letter-spacing: var(--loidolt-control-tracking);
|
|
91
|
+
text-transform: var(--loidolt-control-transform);
|
|
90
92
|
}
|
|
91
93
|
.ldt-nav-menu:hover:not(:disabled, [aria-disabled='true']) {
|
|
92
94
|
color: var(--loidolt-text);
|
|
@@ -105,8 +107,8 @@
|
|
|
105
107
|
display: inline-flex;
|
|
106
108
|
align-items: center;
|
|
107
109
|
align-self: stretch;
|
|
108
|
-
border-bottom:
|
|
109
|
-
padding: 0
|
|
110
|
+
border-bottom: var(--loidolt-stroke-indicator) solid transparent;
|
|
111
|
+
padding: 0 var(--loidolt-pad-control-x);
|
|
110
112
|
color: var(--loidolt-text-muted);
|
|
111
113
|
font-size: var(--loidolt-font-size-sm);
|
|
112
114
|
text-decoration: none;
|
|
@@ -125,8 +127,8 @@
|
|
|
125
127
|
display: flex;
|
|
126
128
|
align-items: center;
|
|
127
129
|
justify-content: space-between;
|
|
128
|
-
gap:
|
|
129
|
-
padding: 0.4rem
|
|
130
|
+
gap: var(--loidolt-space-4);
|
|
131
|
+
padding: 0.4rem var(--loidolt-pad-bar-x); /* @literal vertical inset is fixed by size-contextbar */
|
|
130
132
|
border-block: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
131
133
|
color: var(--loidolt-text);
|
|
132
134
|
background: var(--loidolt-surface-alt);
|
|
@@ -135,14 +137,15 @@
|
|
|
135
137
|
min-width: 0;
|
|
136
138
|
display: flex;
|
|
137
139
|
align-items: baseline;
|
|
138
|
-
gap: 0.65rem;
|
|
140
|
+
gap: 0.65rem; /* @literal title-to-detail spacing */
|
|
139
141
|
}
|
|
140
142
|
.ldt-contextbar__section {
|
|
141
143
|
flex: 0 0 auto;
|
|
142
144
|
color: var(--loidolt-text-accent);
|
|
143
145
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
144
|
-
|
|
145
|
-
|
|
146
|
+
font-weight: var(--loidolt-label-weight);
|
|
147
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
148
|
+
text-transform: var(--loidolt-label-transform);
|
|
146
149
|
}
|
|
147
150
|
.ldt-contextbar__actions {
|
|
148
151
|
flex: 0 0 auto;
|
|
@@ -189,7 +192,7 @@
|
|
|
189
192
|
.ldt-sidebar {
|
|
190
193
|
min-width: 0;
|
|
191
194
|
overflow-y: auto;
|
|
192
|
-
padding:
|
|
195
|
+
padding: var(--loidolt-pad-pane);
|
|
193
196
|
border-right: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
194
197
|
color: var(--loidolt-text);
|
|
195
198
|
background: var(--loidolt-surface);
|
|
@@ -200,7 +203,7 @@
|
|
|
200
203
|
}
|
|
201
204
|
.ldt-workspace__main {
|
|
202
205
|
min-width: 0;
|
|
203
|
-
padding: var(--loidolt-
|
|
206
|
+
padding: var(--loidolt-pad-page);
|
|
204
207
|
}
|
|
205
208
|
/* A toolbar floated over a positioned container (canvas, map, viewer). The parent must be
|
|
206
209
|
position: relative; the bar is a pointer-events island above the stage content. */
|
|
@@ -211,7 +214,7 @@
|
|
|
211
214
|
gap: var(--loidolt-space-1);
|
|
212
215
|
padding: var(--loidolt-space-1);
|
|
213
216
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
214
|
-
border-radius: var(--loidolt-
|
|
217
|
+
border-radius: var(--loidolt-radius-surface);
|
|
215
218
|
background: var(--loidolt-surface);
|
|
216
219
|
z-index: var(--loidolt-z-raised);
|
|
217
220
|
pointer-events: auto;
|
|
@@ -239,7 +242,7 @@
|
|
|
239
242
|
display: flex;
|
|
240
243
|
align-items: end;
|
|
241
244
|
justify-content: space-between;
|
|
242
|
-
gap:
|
|
245
|
+
gap: var(--loidolt-space-4);
|
|
243
246
|
margin-bottom: var(--loidolt-space-6);
|
|
244
247
|
padding-bottom: var(--loidolt-space-4);
|
|
245
248
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
@@ -263,7 +266,7 @@
|
|
|
263
266
|
display: flex;
|
|
264
267
|
align-items: baseline;
|
|
265
268
|
justify-content: space-between;
|
|
266
|
-
gap:
|
|
269
|
+
gap: var(--loidolt-space-4);
|
|
267
270
|
margin-bottom: var(--loidolt-space-4);
|
|
268
271
|
}
|
|
269
272
|
.ldt-section__title {
|
|
@@ -275,8 +278,8 @@
|
|
|
275
278
|
@media (max-width: 760px) {
|
|
276
279
|
.ldt-topbar {
|
|
277
280
|
min-height: auto;
|
|
278
|
-
padding-block:
|
|
279
|
-
gap:
|
|
281
|
+
padding-block: var(--loidolt-space-3);
|
|
282
|
+
gap: var(--loidolt-space-3);
|
|
280
283
|
}
|
|
281
284
|
.ldt-topbar__actions {
|
|
282
285
|
width: 100%;
|
|
@@ -288,7 +291,7 @@
|
|
|
288
291
|
}
|
|
289
292
|
.ldt-contextbar__location {
|
|
290
293
|
display: grid;
|
|
291
|
-
gap: 0.15rem;
|
|
294
|
+
gap: 0.15rem; /* @literal stacked title and detail */
|
|
292
295
|
}
|
|
293
296
|
.ldt-contextbar__detail {
|
|
294
297
|
overflow: visible;
|
|
@@ -341,6 +344,7 @@
|
|
|
341
344
|
align-items: center;
|
|
342
345
|
gap: var(--loidolt-space-2);
|
|
343
346
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
347
|
+
border-radius: var(--loidolt-radius-surface);
|
|
344
348
|
padding: var(--loidolt-space-2) var(--loidolt-space-3);
|
|
345
349
|
color: var(--loidolt-text);
|
|
346
350
|
background: var(--loidolt-surface-alt);
|
|
@@ -382,6 +386,7 @@
|
|
|
382
386
|
.ldt-filter-panel__body {
|
|
383
387
|
margin-top: var(--loidolt-space-2);
|
|
384
388
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
389
|
+
border-radius: var(--loidolt-radius-surface);
|
|
385
390
|
padding: var(--loidolt-space-4);
|
|
386
391
|
color: var(--loidolt-text);
|
|
387
392
|
background: var(--loidolt-surface-alt);
|
package/src/components/maps.css
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
height: var(--ldt-map-height, 25rem);
|
|
9
9
|
overflow: hidden;
|
|
10
10
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
11
|
+
border-radius: var(--loidolt-radius-surface);
|
|
11
12
|
background: var(--loidolt-map-land);
|
|
12
13
|
}
|
|
13
14
|
.ldt-map__canvas {
|
|
@@ -99,7 +100,7 @@
|
|
|
99
100
|
}
|
|
100
101
|
.ldt-map .maplibregl-ctrl-attrib a {
|
|
101
102
|
display: inline-block;
|
|
102
|
-
padding-block: 0.35rem;
|
|
103
|
+
padding-block: 0.35rem; /* @literal attribution link target */
|
|
103
104
|
color: var(--loidolt-text);
|
|
104
105
|
line-height: 1.5;
|
|
105
106
|
}
|
|
@@ -116,8 +117,9 @@
|
|
|
116
117
|
|
|
117
118
|
/* Controls of our own: legends, coordinates, the basemap switcher. */
|
|
118
119
|
.ldt-map-control {
|
|
119
|
-
padding:
|
|
120
|
+
padding: var(--loidolt-space-2) var(--loidolt-pad-control-x-sm);
|
|
120
121
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
122
|
+
border-radius: var(--loidolt-radius-surface);
|
|
121
123
|
color: var(--loidolt-text);
|
|
122
124
|
background: var(--loidolt-surface);
|
|
123
125
|
}
|
|
@@ -128,7 +130,7 @@
|
|
|
128
130
|
}
|
|
129
131
|
.ldt-map-legend {
|
|
130
132
|
display: grid;
|
|
131
|
-
gap: 0.4rem;
|
|
133
|
+
gap: 0.4rem; /* @literal swatch-to-label spacing */
|
|
132
134
|
min-width: 9rem;
|
|
133
135
|
max-width: 16rem;
|
|
134
136
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
@@ -138,26 +140,27 @@
|
|
|
138
140
|
margin: 0;
|
|
139
141
|
color: var(--loidolt-text-muted);
|
|
140
142
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
141
|
-
|
|
142
|
-
|
|
143
|
+
font-weight: var(--loidolt-label-weight);
|
|
144
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
145
|
+
text-transform: var(--loidolt-label-transform);
|
|
143
146
|
}
|
|
144
147
|
.ldt-map-legend__summary {
|
|
145
148
|
cursor: pointer;
|
|
146
149
|
}
|
|
147
150
|
.ldt-map-legend__section {
|
|
148
151
|
display: grid;
|
|
149
|
-
gap: 0.35rem;
|
|
152
|
+
gap: 0.35rem; /* @literal legend rhythm */
|
|
150
153
|
}
|
|
151
154
|
.ldt-map-legend__items {
|
|
152
155
|
display: grid;
|
|
153
|
-
gap:
|
|
156
|
+
gap: var(--loidolt-space-1);
|
|
154
157
|
margin: 0;
|
|
155
158
|
padding: 0;
|
|
156
159
|
list-style: none;
|
|
157
160
|
}
|
|
158
161
|
.ldt-map-legend__item {
|
|
159
162
|
display: flex;
|
|
160
|
-
gap:
|
|
163
|
+
gap: var(--loidolt-space-2);
|
|
161
164
|
align-items: center;
|
|
162
165
|
}
|
|
163
166
|
.ldt-map-legend__key {
|
|
@@ -184,7 +187,7 @@
|
|
|
184
187
|
}
|
|
185
188
|
.ldt-map-coordinates {
|
|
186
189
|
display: flex;
|
|
187
|
-
gap:
|
|
190
|
+
gap: var(--loidolt-space-3);
|
|
188
191
|
margin: 0;
|
|
189
192
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-mono);
|
|
190
193
|
font-variant-numeric: tabular-nums;
|
|
@@ -203,19 +206,20 @@
|
|
|
203
206
|
}
|
|
204
207
|
.ldt-layer-manager__toggle {
|
|
205
208
|
width: 100%;
|
|
206
|
-
padding: 0.15rem 0;
|
|
209
|
+
padding: 0.15rem 0; /* @literal toggle hit area */
|
|
207
210
|
border: 0;
|
|
208
211
|
color: var(--loidolt-text-muted);
|
|
209
212
|
background: none;
|
|
210
213
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
211
|
-
|
|
214
|
+
font-weight: var(--loidolt-label-weight);
|
|
215
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
212
216
|
text-align: start;
|
|
213
|
-
text-transform:
|
|
217
|
+
text-transform: var(--loidolt-label-transform);
|
|
214
218
|
cursor: pointer;
|
|
215
219
|
}
|
|
216
220
|
.ldt-layer-manager__list {
|
|
217
221
|
display: grid;
|
|
218
|
-
gap:
|
|
222
|
+
gap: var(--loidolt-space-2);
|
|
219
223
|
margin: 0.4rem 0 0;
|
|
220
224
|
padding: 0;
|
|
221
225
|
list-style: none;
|
|
@@ -226,9 +230,9 @@
|
|
|
226
230
|
.ldt-layer-manager__row {
|
|
227
231
|
display: grid;
|
|
228
232
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
229
|
-
gap: 0.35rem 0.5rem;
|
|
233
|
+
gap: 0.35rem 0.5rem; /* @literal separator rhythm */
|
|
230
234
|
align-items: center;
|
|
231
|
-
padding-top:
|
|
235
|
+
padding-top: var(--loidolt-space-2);
|
|
232
236
|
border-top: var(--loidolt-border-width) solid var(--loidolt-border-soft);
|
|
233
237
|
}
|
|
234
238
|
.ldt-layer-manager__row:first-child {
|
|
@@ -237,7 +241,7 @@
|
|
|
237
241
|
}
|
|
238
242
|
.ldt-layer-manager__move {
|
|
239
243
|
display: flex;
|
|
240
|
-
gap: 0.15rem;
|
|
244
|
+
gap: 0.15rem; /* @literal icon pair */
|
|
241
245
|
}
|
|
242
246
|
.ldt-layer-manager__opacity {
|
|
243
247
|
grid-column: 1 / -1;
|
|
@@ -272,9 +276,9 @@ span.ldt-map-marker {
|
|
|
272
276
|
display: grid;
|
|
273
277
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
274
278
|
align-items: start;
|
|
275
|
-
gap:
|
|
279
|
+
gap: var(--loidolt-space-1);
|
|
276
280
|
max-width: min(18rem, 80vw);
|
|
277
|
-
padding: 0.5rem 0.35rem 0.6rem 0.75rem;
|
|
281
|
+
padding: 0.5rem 0.35rem 0.6rem 0.75rem; /* @literal popup inset clears the close button */
|
|
278
282
|
}
|
|
279
283
|
.ldt-map-popup__body > :first-child {
|
|
280
284
|
margin-top: 0.3rem;
|
|
@@ -292,12 +296,12 @@ span.ldt-map-marker {
|
|
|
292
296
|
}
|
|
293
297
|
.ldt-map-features__item {
|
|
294
298
|
display: grid;
|
|
295
|
-
gap: 0.1rem;
|
|
299
|
+
gap: 0.1rem; /* @literal hairline between lines */
|
|
296
300
|
width: 100%;
|
|
297
|
-
padding: 0.55rem 0.75rem;
|
|
301
|
+
padding: 0.55rem 0.75rem; /* @literal feature list metrics */
|
|
298
302
|
border: 0;
|
|
299
303
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border-soft);
|
|
300
|
-
border-left:
|
|
304
|
+
border-left: var(--loidolt-stroke-accent) solid transparent;
|
|
301
305
|
color: var(--loidolt-text);
|
|
302
306
|
background: none;
|
|
303
307
|
font: inherit;
|
package/src/components/media.css
CHANGED
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
}
|
|
85
85
|
.ldt-media-player__meta {
|
|
86
86
|
display: grid;
|
|
87
|
-
gap: 0.1rem;
|
|
87
|
+
gap: 0.1rem; /* @literal hairline between lines */
|
|
88
88
|
min-width: 0;
|
|
89
89
|
}
|
|
90
90
|
.ldt-media-player--audio .ldt-media-player__meta:first-child {
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
color: var(--loidolt-accent);
|
|
126
126
|
}
|
|
127
127
|
.ldt-media-controls__text {
|
|
128
|
-
letter-spacing: var(--loidolt-
|
|
128
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
129
129
|
}
|
|
130
130
|
/* Focus rings on the dark bar follow the ink so they stay visible in both themes. */
|
|
131
131
|
.ldt-media-controls :focus-visible {
|
|
@@ -169,7 +169,8 @@
|
|
|
169
169
|
.ldt-media-controls__speed {
|
|
170
170
|
min-height: 1.5rem;
|
|
171
171
|
border: var(--loidolt-border-width) solid currentColor;
|
|
172
|
-
|
|
172
|
+
border-radius: var(--loidolt-radius-control);
|
|
173
|
+
padding: 0 0.3rem; /* @literal compact readout */
|
|
173
174
|
color: inherit;
|
|
174
175
|
background: transparent;
|
|
175
176
|
font: inherit;
|
|
@@ -191,6 +192,7 @@
|
|
|
191
192
|
aspect-ratio: var(--ldt-aspect-ratio, 16 / 9);
|
|
192
193
|
overflow: hidden;
|
|
193
194
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
195
|
+
border-radius: var(--loidolt-radius-surface);
|
|
194
196
|
background: var(--loidolt-surface-inverse);
|
|
195
197
|
}
|
|
196
198
|
.ldt-media-embed__frame {
|
|
@@ -225,12 +227,13 @@
|
|
|
225
227
|
}
|
|
226
228
|
.ldt-media-embed__title {
|
|
227
229
|
max-width: 32rem;
|
|
228
|
-
padding: 0.2rem 0.5rem;
|
|
230
|
+
padding: 0.2rem 0.5rem; /* @literal caption chip */
|
|
229
231
|
color: var(--loidolt-text-inverse);
|
|
230
232
|
background: var(--loidolt-surface-inverse);
|
|
231
233
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
232
|
-
|
|
233
|
-
|
|
234
|
+
font-weight: var(--loidolt-label-weight);
|
|
235
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
236
|
+
text-transform: var(--loidolt-label-transform);
|
|
234
237
|
}
|
|
235
238
|
.ldt-media-embed__unsupported {
|
|
236
239
|
display: grid;
|
|
@@ -310,12 +313,13 @@
|
|
|
310
313
|
border-color: var(--loidolt-accent);
|
|
311
314
|
}
|
|
312
315
|
.ldt-media-tile__kind {
|
|
313
|
-
padding: 0.1rem 0.4rem;
|
|
316
|
+
padding: 0.1rem 0.4rem; /* @literal kind chip */
|
|
314
317
|
color: var(--loidolt-text-inverse);
|
|
315
318
|
background: var(--loidolt-surface-inverse);
|
|
316
319
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
317
|
-
|
|
318
|
-
|
|
320
|
+
font-weight: var(--loidolt-label-weight);
|
|
321
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
322
|
+
text-transform: var(--loidolt-label-transform);
|
|
319
323
|
}
|
|
320
324
|
.ldt-media-tile__caption {
|
|
321
325
|
color: var(--loidolt-text-muted);
|
|
@@ -347,7 +351,7 @@
|
|
|
347
351
|
.ldt-lightbox__counter {
|
|
348
352
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
349
353
|
font-variant-numeric: tabular-nums;
|
|
350
|
-
letter-spacing: var(--loidolt-
|
|
354
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
351
355
|
}
|
|
352
356
|
.ldt-lightbox__tools {
|
|
353
357
|
display: flex;
|
|
@@ -360,7 +364,8 @@
|
|
|
360
364
|
min-height: var(--loidolt-size-control-sm);
|
|
361
365
|
place-items: center;
|
|
362
366
|
border: var(--loidolt-border-width) solid currentColor;
|
|
363
|
-
|
|
367
|
+
border-radius: var(--loidolt-radius-control);
|
|
368
|
+
padding: 0 var(--loidolt-space-2);
|
|
364
369
|
color: inherit;
|
|
365
370
|
background: var(--loidolt-surface-inverse);
|
|
366
371
|
font: var(--loidolt-font-size-base) var(--loidolt-font-utility);
|
|
@@ -402,7 +407,7 @@
|
|
|
402
407
|
width: 0.55rem;
|
|
403
408
|
height: 0.55rem;
|
|
404
409
|
border: solid currentColor;
|
|
405
|
-
border-width: 0 0 2px 2px;
|
|
410
|
+
border-width: 0 0 2px 2px; /* @literal chevron glyph */
|
|
406
411
|
transform: translateX(0.1rem) rotate(45deg);
|
|
407
412
|
}
|
|
408
413
|
.ldt-lightbox__nav--next .ldt-lightbox__chevron,
|
|
@@ -437,6 +442,7 @@
|
|
|
437
442
|
min-height: var(--loidolt-size-control-sm);
|
|
438
443
|
place-items: center;
|
|
439
444
|
border: var(--loidolt-border-width) solid var(--loidolt-border-control);
|
|
445
|
+
border-radius: var(--loidolt-radius-control);
|
|
440
446
|
padding: 0;
|
|
441
447
|
color: var(--loidolt-text);
|
|
442
448
|
background: var(--loidolt-surface);
|