@loidolt/theme-styles 0.6.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 +30 -9
- package/src/base.css +1 -1
- package/src/components/actions.css +13 -11
- package/src/components/charts.css +40 -0
- package/src/components/data.css +19 -13
- package/src/components/docs.css +304 -0
- 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 +327 -0
- 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/components.css +3 -0
- package/src/index.css +7 -2
- 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/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);
|
package/src/components.css
CHANGED
package/src/index.css
CHANGED
|
@@ -8,9 +8,14 @@
|
|
|
8
8
|
* `loidolt.a11y` is last so the focus ring and the reduced-motion overrides beat component
|
|
9
9
|
* styles by layer order alone — no `!important` needed, which keeps app CSS able to override
|
|
10
10
|
* them (unlayered styles outrank every layer for normal declarations).
|
|
11
|
+
*
|
|
12
|
+
* `loidolt.vendor` holds third-party stylesheets a loidolt package ships with — MapLibre's, for
|
|
13
|
+
* `@loidolt/theme-maps`. Vendor CSS left unlayered would outrank every layer here; slotted after
|
|
14
|
+
* `base` and before `components`, our resets cannot break it and our component styles can
|
|
15
|
+
* restyle it, whichever order the two stylesheets are imported in.
|
|
11
16
|
*/
|
|
12
|
-
@layer loidolt.tokens, loidolt.reset, loidolt.base, loidolt.
|
|
13
|
-
loidolt.a11y;
|
|
17
|
+
@layer loidolt.tokens, loidolt.reset, loidolt.base, loidolt.vendor, loidolt.components,
|
|
18
|
+
loidolt.utilities, loidolt.a11y;
|
|
14
19
|
|
|
15
20
|
@import '@loidolt/theme-tokens/css' layer(loidolt.tokens);
|
|
16
21
|
@import './fonts.css' layer(loidolt.base);
|
package/src/utilities.css
CHANGED
|
@@ -32,10 +32,14 @@
|
|
|
32
32
|
* scope has to re-declare it. Put this on the wrapper you redefine tokens on:
|
|
33
33
|
*
|
|
34
34
|
* <div class="ldt-theme" style="--loidolt-surface: #10212c; --loidolt-text: #dceaf2">
|
|
35
|
+
*
|
|
36
|
+
* The same goes for `font-family`, which `<html>` sets once: a subtree preset that changes the
|
|
37
|
+
* display face needs it re-declared here to reach running text.
|
|
35
38
|
*/
|
|
36
39
|
.ldt-theme {
|
|
37
40
|
color: var(--loidolt-text);
|
|
38
41
|
background: var(--loidolt-background);
|
|
42
|
+
font-family: var(--loidolt-font-display);
|
|
39
43
|
}
|
|
40
44
|
/* Muted body voice for meta lines (author · timestamp). Unlike .ldt-utility-text it keeps
|
|
41
45
|
sentence case and the body face, so names and dates stay readable. */
|
|
@@ -63,15 +67,17 @@
|
|
|
63
67
|
.ldt-utility-text {
|
|
64
68
|
color: var(--loidolt-text-muted);
|
|
65
69
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
66
|
-
|
|
67
|
-
|
|
70
|
+
font-weight: var(--loidolt-label-weight);
|
|
71
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
72
|
+
text-transform: var(--loidolt-label-transform);
|
|
68
73
|
}
|
|
69
74
|
.ldt-eyebrow {
|
|
70
75
|
margin: 0 0 0.4rem;
|
|
71
76
|
color: var(--loidolt-text-accent);
|
|
72
77
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
73
|
-
|
|
74
|
-
|
|
78
|
+
font-weight: var(--loidolt-label-weight);
|
|
79
|
+
letter-spacing: var(--loidolt-label-tracking-wide);
|
|
80
|
+
text-transform: var(--loidolt-label-transform);
|
|
75
81
|
}
|
|
76
82
|
|
|
77
83
|
/* Print-only content — a URL written out after a link, a signature line. The counterpart to
|