@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/README.md
CHANGED
|
@@ -15,4 +15,7 @@ Deep entry points include `/tokens`, `/base`, `/components`, `/utilities`, `/acc
|
|
|
15
15
|
`/fonts`, `/dark`, and `/dark-auto`. Every slice except `/tokens` expects the token custom
|
|
16
16
|
properties to be loaded first.
|
|
17
17
|
|
|
18
|
+
Built-in style presets live under `/presets/*`: `loidolt`, `soft` and `compact`, each with
|
|
19
|
+
`-dark` and `-dark-auto` companions. They apply under `data-preset="<name>"`.
|
|
20
|
+
|
|
18
21
|
See the [design-system documentation](https://theme.loidolt.space) for customization guidance.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loidolt/theme-styles",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "Base styles, fonts, accessibility helpers, and utilities for Loidolt applications",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"./tokens": "./src/tokens.css",
|
|
11
11
|
"./dark": "./src/dark.css",
|
|
12
12
|
"./dark-auto": "./src/dark-auto.css",
|
|
13
|
+
"./presets/*": "./src/presets/*.css",
|
|
13
14
|
"./base": "./src/base.css",
|
|
14
15
|
"./accessibility": "./src/accessibility.css",
|
|
15
16
|
"./utilities": "./src/utilities.css",
|
|
@@ -28,7 +29,7 @@
|
|
|
28
29
|
"build": "node -e \"console.log('theme-styles: source CSS is publish-ready')\""
|
|
29
30
|
},
|
|
30
31
|
"dependencies": {
|
|
31
|
-
"@loidolt/theme-tokens": "^0.
|
|
32
|
+
"@loidolt/theme-tokens": "^0.8.1"
|
|
32
33
|
},
|
|
33
34
|
"publishConfig": {
|
|
34
35
|
"access": "public",
|
package/src/accessibility.css
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/* Deep slice: assumes the token custom properties are already loaded.
|
|
2
2
|
Import '@loidolt/theme-styles/tokens' (or the whole '@loidolt/theme-styles') first. */
|
|
3
3
|
:where(:focus-visible) {
|
|
4
|
-
outline:
|
|
5
|
-
outline-offset: 2px;
|
|
4
|
+
outline: var(--loidolt-stroke-focus) solid var(--loidolt-focus-ring);
|
|
5
|
+
outline-offset: 2px; /* @literal clearance between control and ring */
|
|
6
6
|
}
|
|
7
7
|
:where(:focus:not(:focus-visible)) {
|
|
8
8
|
outline: none;
|
|
9
9
|
}
|
|
10
10
|
/*
|
|
11
11
|
* A scroll container clips an outset ring against its own edge, and children that fill the
|
|
12
|
-
* container have nowhere to put one. Draw it inside those instead — same
|
|
12
|
+
* container have nowhere to put one. Draw it inside those instead — same indicator,
|
|
13
13
|
* just on the other side of the border box. Zero specificity, declared after the rule above,
|
|
14
14
|
* so it overrides by document order without escalating specificity.
|
|
15
15
|
*/
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
.ldt-mermaid
|
|
32
32
|
)
|
|
33
33
|
:where(:focus-visible) {
|
|
34
|
-
outline-offset: -
|
|
34
|
+
outline-offset: calc(-1 * var(--loidolt-stroke-focus));
|
|
35
35
|
/* Follow the control's accessible foreground pairing so inset focus stays visible on fills. */
|
|
36
36
|
outline-color: currentColor;
|
|
37
37
|
}
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
z-index: var(--loidolt-z-skip-link);
|
|
69
69
|
top: 0;
|
|
70
70
|
left: 0;
|
|
71
|
-
padding:
|
|
71
|
+
padding: var(--loidolt-space-3) var(--loidolt-space-4);
|
|
72
72
|
color: var(--loidolt-on-accent);
|
|
73
73
|
background: var(--loidolt-accent);
|
|
74
74
|
transform: translateY(-110%);
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
|
|
195
195
|
@media (forced-colors: active) {
|
|
196
196
|
:where(button, input, select, textarea, [role='button']) {
|
|
197
|
-
border: 1px solid ButtonText;
|
|
197
|
+
border: 1px solid ButtonText; /* @literal forced-colors boundary */
|
|
198
198
|
}
|
|
199
199
|
:where(:focus-visible) {
|
|
200
200
|
outline-color: Highlight;
|
package/src/base.css
CHANGED
|
@@ -9,17 +9,18 @@
|
|
|
9
9
|
justify-content: center;
|
|
10
10
|
gap: var(--loidolt-space-2);
|
|
11
11
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
12
|
-
border-radius: var(--loidolt-
|
|
13
|
-
padding:
|
|
12
|
+
border-radius: var(--loidolt-radius-control);
|
|
13
|
+
padding: var(--loidolt-pad-control-y) var(--loidolt-pad-control-x);
|
|
14
14
|
color: var(--loidolt-text);
|
|
15
15
|
background: transparent;
|
|
16
16
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
17
|
-
|
|
17
|
+
font-weight: var(--loidolt-control-weight);
|
|
18
|
+
letter-spacing: var(--loidolt-control-tracking);
|
|
18
19
|
line-height: 1.2;
|
|
19
20
|
overflow-wrap: anywhere;
|
|
20
21
|
text-align: center;
|
|
21
22
|
text-decoration: none;
|
|
22
|
-
text-transform:
|
|
23
|
+
text-transform: var(--loidolt-control-transform);
|
|
23
24
|
white-space: normal;
|
|
24
25
|
}
|
|
25
26
|
.ldt-button:hover:not(:disabled, [aria-disabled='true']) {
|
|
@@ -60,7 +61,7 @@
|
|
|
60
61
|
.ldt-button--text {
|
|
61
62
|
/* 1.5rem is the WCAG 2.2 minimum target size; `auto` left this at ~22px. */
|
|
62
63
|
min-height: 1.5rem;
|
|
63
|
-
padding:
|
|
64
|
+
padding: var(--loidolt-space-1);
|
|
64
65
|
color: var(--loidolt-text-muted);
|
|
65
66
|
}
|
|
66
67
|
.ldt-button--text:hover:not(:disabled, [aria-disabled='true']) {
|
|
@@ -69,12 +70,12 @@
|
|
|
69
70
|
}
|
|
70
71
|
.ldt-button--sm {
|
|
71
72
|
min-height: var(--loidolt-size-control-sm);
|
|
72
|
-
padding:
|
|
73
|
+
padding: var(--loidolt-pad-control-y-sm) var(--loidolt-pad-control-x-sm);
|
|
73
74
|
font-size: var(--loidolt-font-size-xs);
|
|
74
75
|
}
|
|
75
76
|
.ldt-button--lg {
|
|
76
77
|
min-height: var(--loidolt-size-control-lg);
|
|
77
|
-
padding-inline:
|
|
78
|
+
padding-inline: var(--loidolt-pad-control-x-lg);
|
|
78
79
|
}
|
|
79
80
|
.ldt-button:disabled,
|
|
80
81
|
.ldt-button[aria-disabled='true'] {
|
|
@@ -99,9 +100,9 @@
|
|
|
99
100
|
.ldt-spinner {
|
|
100
101
|
width: 1em;
|
|
101
102
|
height: 1em;
|
|
102
|
-
border: 2px solid currentColor;
|
|
103
|
+
border: 2px solid currentColor; /* @literal drawn in proportion to its 1em box */
|
|
103
104
|
border-right-color: transparent;
|
|
104
|
-
border-radius: 50%;
|
|
105
|
+
border-radius: 50%; /* @literal a spinner is a circle in every preset */
|
|
105
106
|
animation: ldt-spin 0.7s linear infinite;
|
|
106
107
|
}
|
|
107
108
|
.ldt-spinner--sm {
|
|
@@ -115,7 +116,7 @@
|
|
|
115
116
|
.ldt-spinner--lg {
|
|
116
117
|
width: 2rem;
|
|
117
118
|
height: 2rem;
|
|
118
|
-
border-width: 3px;
|
|
119
|
+
border-width: 3px; /* @literal spinner ring geometry */
|
|
119
120
|
}
|
|
120
121
|
@keyframes ldt-spin {
|
|
121
122
|
to {
|
|
@@ -129,6 +130,7 @@
|
|
|
129
130
|
align-items: center;
|
|
130
131
|
gap: var(--loidolt-space-2);
|
|
131
132
|
border: 0;
|
|
133
|
+
border-radius: var(--loidolt-radius-inner);
|
|
132
134
|
padding: var(--loidolt-space-1) var(--loidolt-space-2);
|
|
133
135
|
color: inherit;
|
|
134
136
|
background: transparent;
|
|
@@ -142,6 +144,6 @@
|
|
|
142
144
|
text-decoration: none;
|
|
143
145
|
}
|
|
144
146
|
.ldt-list-row--selected {
|
|
145
|
-
box-shadow: inset
|
|
147
|
+
box-shadow: inset var(--loidolt-stroke-indicator) 0 0 var(--loidolt-accent);
|
|
146
148
|
background: var(--loidolt-surface-sunken);
|
|
147
149
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
runtime through `createTokenColors`); this file styles everything around the canvas. */
|
|
3
3
|
.ldt-chart {
|
|
4
4
|
display: grid;
|
|
5
|
-
gap:
|
|
5
|
+
gap: var(--loidolt-space-2);
|
|
6
6
|
min-width: 0;
|
|
7
7
|
margin: 0;
|
|
8
8
|
}
|
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
.ldt-chart__title {
|
|
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-chart__canvas,
|
|
17
18
|
.ldt-chart__state {
|
package/src/components/data.css
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
width: 100%;
|
|
3
3
|
overflow-x: auto;
|
|
4
4
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
5
|
+
border-radius: var(--loidolt-radius-surface);
|
|
5
6
|
}
|
|
6
7
|
.ldt-table {
|
|
7
8
|
width: 100%;
|
|
@@ -10,15 +11,16 @@
|
|
|
10
11
|
background: var(--loidolt-surface);
|
|
11
12
|
}
|
|
12
13
|
.ldt-table :where(th, td) {
|
|
13
|
-
padding:
|
|
14
|
+
padding: var(--loidolt-pad-cell);
|
|
14
15
|
border-bottom: var(--loidolt-border-width) solid var(--loidolt-border-soft);
|
|
15
16
|
text-align: left;
|
|
16
17
|
}
|
|
17
18
|
.ldt-table th {
|
|
18
19
|
color: var(--loidolt-text-muted);
|
|
19
20
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
font-weight: var(--loidolt-label-weight);
|
|
22
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
23
|
+
text-transform: var(--loidolt-label-transform);
|
|
22
24
|
}
|
|
23
25
|
.ldt-table tbody tr:last-child td {
|
|
24
26
|
border-bottom: 0;
|
|
@@ -50,12 +52,12 @@
|
|
|
50
52
|
/* `border-collapse: collapse` drops the borders of a sticky cell — the collapsed edge belongs
|
|
51
53
|
to the table, which scrolls away. An inset shadow is painted by the cell itself and stays. */
|
|
52
54
|
border-bottom: 0;
|
|
53
|
-
box-shadow: inset 0 -
|
|
55
|
+
box-shadow: inset 0 calc(-1 * var(--loidolt-border-width)) 0 var(--loidolt-border);
|
|
54
56
|
}
|
|
55
57
|
.ldt-table__sort {
|
|
56
58
|
display: inline-flex;
|
|
57
59
|
align-items: center;
|
|
58
|
-
gap: 0.4rem;
|
|
60
|
+
gap: 0.4rem; /* @literal glyph-to-label spacing, not density */
|
|
59
61
|
border: 0;
|
|
60
62
|
padding: 0;
|
|
61
63
|
color: inherit;
|
|
@@ -73,8 +75,8 @@
|
|
|
73
75
|
.ldt-table__sort-indicator {
|
|
74
76
|
width: 0;
|
|
75
77
|
height: 0;
|
|
76
|
-
border-inline: 0.3rem solid transparent;
|
|
77
|
-
border-bottom: 0.34rem solid currentColor;
|
|
78
|
+
border-inline: 0.3rem solid transparent; /* @literal CSS triangle geometry */
|
|
79
|
+
border-bottom: 0.34rem solid currentColor; /* @literal CSS triangle geometry */
|
|
78
80
|
opacity: 0;
|
|
79
81
|
}
|
|
80
82
|
.ldt-table__sort:hover .ldt-table__sort-indicator {
|
|
@@ -99,9 +101,10 @@
|
|
|
99
101
|
.ldt-empty-state {
|
|
100
102
|
display: grid;
|
|
101
103
|
justify-items: center;
|
|
102
|
-
gap:
|
|
104
|
+
gap: var(--loidolt-space-2);
|
|
103
105
|
padding: var(--loidolt-space-10) var(--loidolt-space-6);
|
|
104
106
|
border: var(--loidolt-border-width) dashed var(--loidolt-border);
|
|
107
|
+
border-radius: var(--loidolt-radius-surface);
|
|
105
108
|
color: var(--loidolt-text-muted);
|
|
106
109
|
background: var(--loidolt-surface);
|
|
107
110
|
text-align: center;
|
|
@@ -124,7 +127,7 @@
|
|
|
124
127
|
display: flex;
|
|
125
128
|
flex-wrap: wrap;
|
|
126
129
|
justify-content: center;
|
|
127
|
-
gap: var(--loidolt-
|
|
130
|
+
gap: var(--loidolt-gap-actions);
|
|
128
131
|
margin-top: var(--loidolt-space-2);
|
|
129
132
|
}
|
|
130
133
|
/* Trailing action cell in a data table: content hugs the right edge, inline forms welcome. */
|
|
@@ -151,6 +154,7 @@
|
|
|
151
154
|
display: flex;
|
|
152
155
|
align-items: flex-start;
|
|
153
156
|
gap: var(--loidolt-space-2);
|
|
157
|
+
border-radius: var(--loidolt-radius-inner);
|
|
154
158
|
padding: var(--loidolt-space-1) var(--loidolt-space-2);
|
|
155
159
|
}
|
|
156
160
|
.ldt-comment--active {
|
|
@@ -175,6 +179,7 @@
|
|
|
175
179
|
gap: var(--loidolt-space-2);
|
|
176
180
|
padding: var(--loidolt-space-2) var(--loidolt-space-3);
|
|
177
181
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
182
|
+
border-radius: var(--loidolt-radius-surface);
|
|
178
183
|
background: var(--loidolt-surface-sunken);
|
|
179
184
|
}
|
|
180
185
|
.ldt-code-block__code {
|
|
@@ -225,7 +230,7 @@
|
|
|
225
230
|
background: var(--loidolt-surface-alt);
|
|
226
231
|
}
|
|
227
232
|
.ldt-table tbody tr[data-selected] td:first-child {
|
|
228
|
-
box-shadow: inset
|
|
233
|
+
box-shadow: inset var(--loidolt-stroke-accent) 0 0 var(--loidolt-accent);
|
|
229
234
|
}
|
|
230
235
|
.ldt-data-table__spacer td {
|
|
231
236
|
padding: 0;
|
|
@@ -275,7 +280,7 @@
|
|
|
275
280
|
min-width: 1.25rem;
|
|
276
281
|
place-items: center;
|
|
277
282
|
margin-inline-start: 0.4rem;
|
|
278
|
-
padding-inline: 0.3rem;
|
|
283
|
+
padding-inline: 0.3rem; /* @literal count badge metrics */
|
|
279
284
|
color: var(--loidolt-on-accent);
|
|
280
285
|
background: var(--loidolt-accent);
|
|
281
286
|
font-size: var(--loidolt-font-size-xs);
|
|
@@ -301,8 +306,9 @@
|
|
|
301
306
|
gap: var(--loidolt-space-2);
|
|
302
307
|
color: var(--loidolt-text-muted);
|
|
303
308
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
304
|
-
|
|
305
|
-
|
|
309
|
+
font-weight: var(--loidolt-label-weight);
|
|
310
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
311
|
+
text-transform: var(--loidolt-label-transform);
|
|
306
312
|
}
|
|
307
313
|
.ldt-data-table-pagination__size .ldt-select {
|
|
308
314
|
width: auto;
|
package/src/components/docs.css
CHANGED
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
}
|
|
34
34
|
.ldt-code__header {
|
|
35
35
|
display: flex;
|
|
36
|
-
gap:
|
|
36
|
+
gap: var(--loidolt-space-3);
|
|
37
37
|
align-items: center;
|
|
38
38
|
justify-content: space-between;
|
|
39
39
|
min-height: 2rem;
|
|
40
|
-
padding: 0 0 0
|
|
40
|
+
padding: 0 0 0 var(--loidolt-space-3);
|
|
41
41
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
42
42
|
border-bottom: 0;
|
|
43
43
|
color: var(--loidolt-text-muted);
|
|
@@ -53,14 +53,15 @@
|
|
|
53
53
|
flex: none;
|
|
54
54
|
margin-inline-start: auto;
|
|
55
55
|
min-height: 2rem;
|
|
56
|
-
padding: 0
|
|
56
|
+
padding: 0 var(--loidolt-space-3);
|
|
57
57
|
border: 0;
|
|
58
58
|
border-inline-start: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
59
59
|
color: var(--loidolt-text);
|
|
60
60
|
background: none;
|
|
61
61
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
font-weight: var(--loidolt-label-weight);
|
|
63
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
64
|
+
text-transform: var(--loidolt-label-transform);
|
|
64
65
|
cursor: pointer;
|
|
65
66
|
}
|
|
66
67
|
.ldt-code__copy:hover {
|
|
@@ -68,7 +69,7 @@
|
|
|
68
69
|
}
|
|
69
70
|
.ldt-code__pre {
|
|
70
71
|
margin: 0;
|
|
71
|
-
padding: 0.9em 1.1em;
|
|
72
|
+
padding: 0.9em 1.1em; /* @literal em-based code rhythm */
|
|
72
73
|
overflow-x: auto;
|
|
73
74
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
74
75
|
color: var(--ldt-syntax-foreground);
|
|
@@ -97,12 +98,12 @@
|
|
|
97
98
|
|
|
98
99
|
/* --- Footnotes ------------------------------------------------------------------------------- */
|
|
99
100
|
.ldt-footnote-ref a {
|
|
100
|
-
padding-inline: 0.1em;
|
|
101
|
+
padding-inline: 0.1em; /* @literal optical nudge around the marker */
|
|
101
102
|
text-decoration: none;
|
|
102
103
|
}
|
|
103
104
|
.ldt-footnotes {
|
|
104
105
|
margin-top: 2em;
|
|
105
|
-
padding-top: 1em;
|
|
106
|
+
padding-top: 1em; /* @literal em-based prose rhythm */
|
|
106
107
|
border-top: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
107
108
|
color: var(--loidolt-text-muted);
|
|
108
109
|
font-size: 0.9em;
|
|
@@ -114,11 +115,12 @@
|
|
|
114
115
|
/* --- Diagrams -------------------------------------------------------------------------------- */
|
|
115
116
|
.ldt-mermaid {
|
|
116
117
|
display: grid;
|
|
117
|
-
gap:
|
|
118
|
+
gap: var(--loidolt-space-2);
|
|
118
119
|
margin: 0 0 1.1em;
|
|
119
|
-
padding:
|
|
120
|
+
padding: var(--loidolt-pad-surface);
|
|
120
121
|
overflow-x: auto;
|
|
121
122
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
123
|
+
border-radius: var(--loidolt-radius-surface);
|
|
122
124
|
background: var(--loidolt-background);
|
|
123
125
|
}
|
|
124
126
|
.ldt-mermaid__diagram[hidden] {
|
|
@@ -137,8 +139,9 @@
|
|
|
137
139
|
.ldt-mermaid__source summary {
|
|
138
140
|
color: var(--loidolt-text-muted);
|
|
139
141
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
140
|
-
|
|
141
|
-
|
|
142
|
+
font-weight: var(--loidolt-label-weight);
|
|
143
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
144
|
+
text-transform: var(--loidolt-label-transform);
|
|
142
145
|
cursor: pointer;
|
|
143
146
|
}
|
|
144
147
|
.ldt-mermaid__source pre,
|
|
@@ -157,8 +160,8 @@ pre.ldt-mermaid {
|
|
|
157
160
|
margin: 0 0 0.5rem;
|
|
158
161
|
color: var(--loidolt-text-muted);
|
|
159
162
|
font-size: var(--loidolt-font-size-xs);
|
|
160
|
-
letter-spacing: var(--loidolt-
|
|
161
|
-
text-transform:
|
|
163
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
164
|
+
text-transform: var(--loidolt-label-transform);
|
|
162
165
|
}
|
|
163
166
|
.ldt-toc__list {
|
|
164
167
|
margin: 0;
|
|
@@ -172,8 +175,8 @@ pre.ldt-mermaid {
|
|
|
172
175
|
display: flex;
|
|
173
176
|
align-items: center;
|
|
174
177
|
min-block-size: 1.5rem;
|
|
175
|
-
padding: 0.2rem 0 0.2rem 0.65rem;
|
|
176
|
-
border-inline-start:
|
|
178
|
+
padding: 0.2rem 0 0.2rem 0.65rem; /* @literal rail inset */
|
|
179
|
+
border-inline-start: var(--loidolt-stroke-indicator) solid var(--loidolt-border-soft);
|
|
177
180
|
color: var(--loidolt-text-muted);
|
|
178
181
|
text-decoration: none;
|
|
179
182
|
}
|
|
@@ -206,7 +209,7 @@ pre.ldt-mermaid {
|
|
|
206
209
|
/* --- The page -------------------------------------------------------------------------------- */
|
|
207
210
|
.ldt-markdown-page {
|
|
208
211
|
display: grid;
|
|
209
|
-
gap:
|
|
212
|
+
gap: var(--loidolt-space-6);
|
|
210
213
|
min-width: 0;
|
|
211
214
|
}
|
|
212
215
|
.ldt-markdown-page__main {
|
|
@@ -215,7 +218,7 @@ pre.ldt-mermaid {
|
|
|
215
218
|
@media (min-width: 1024px) {
|
|
216
219
|
.ldt-markdown-page--toc {
|
|
217
220
|
grid-template-columns: minmax(0, 1fr) 14rem;
|
|
218
|
-
gap:
|
|
221
|
+
gap: var(--loidolt-space-10);
|
|
219
222
|
align-items: start;
|
|
220
223
|
}
|
|
221
224
|
.ldt-markdown-page--toc .ldt-markdown-page__toc {
|
|
@@ -230,18 +233,19 @@ pre.ldt-mermaid {
|
|
|
230
233
|
.ldt-markdown-page__pager {
|
|
231
234
|
display: flex;
|
|
232
235
|
flex-wrap: wrap;
|
|
233
|
-
gap:
|
|
236
|
+
gap: var(--loidolt-space-3);
|
|
234
237
|
justify-content: space-between;
|
|
235
238
|
margin-top: 2.5rem;
|
|
236
|
-
padding-top:
|
|
239
|
+
padding-top: var(--loidolt-space-5);
|
|
237
240
|
border-top: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
238
241
|
}
|
|
239
242
|
.ldt-markdown-page__pager a {
|
|
240
243
|
display: grid;
|
|
241
|
-
gap: 0.15rem;
|
|
244
|
+
gap: 0.15rem; /* @literal label-to-title spacing */
|
|
242
245
|
min-width: min(14rem, 100%);
|
|
243
|
-
padding: 0.65rem 0.9rem;
|
|
246
|
+
padding: 0.65rem 0.9rem; /* @literal pager card metrics */
|
|
244
247
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
248
|
+
border-radius: var(--loidolt-radius-surface);
|
|
245
249
|
color: var(--loidolt-text);
|
|
246
250
|
text-decoration: none;
|
|
247
251
|
}
|
|
@@ -255,14 +259,15 @@ pre.ldt-mermaid {
|
|
|
255
259
|
.ldt-markdown-page__direction {
|
|
256
260
|
color: var(--loidolt-text-muted);
|
|
257
261
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
258
|
-
|
|
259
|
-
|
|
262
|
+
font-weight: var(--loidolt-label-weight);
|
|
263
|
+
letter-spacing: var(--loidolt-label-tracking);
|
|
264
|
+
text-transform: var(--loidolt-label-transform);
|
|
260
265
|
}
|
|
261
266
|
|
|
262
267
|
/* --- Docs index ------------------------------------------------------------------------------ */
|
|
263
268
|
.ldt-docs-hub {
|
|
264
269
|
display: grid;
|
|
265
|
-
gap: 2.25rem;
|
|
270
|
+
gap: 2.25rem; /* @literal hub section rhythm */
|
|
266
271
|
}
|
|
267
272
|
.ldt-docs-hub__title {
|
|
268
273
|
margin: 0;
|
|
@@ -274,7 +279,7 @@ pre.ldt-mermaid {
|
|
|
274
279
|
.ldt-docs-hub__grid {
|
|
275
280
|
display: grid;
|
|
276
281
|
grid-template-columns: repeat(auto-fill, minmax(min(16rem, 100%), 1fr));
|
|
277
|
-
gap:
|
|
282
|
+
gap: var(--loidolt-space-4);
|
|
278
283
|
margin: 1rem 0 0;
|
|
279
284
|
padding: 0;
|
|
280
285
|
list-style: none;
|
|
@@ -293,6 +298,7 @@ pre.ldt-mermaid {
|
|
|
293
298
|
margin: 0 0 0.35rem;
|
|
294
299
|
color: var(--loidolt-text-accent);
|
|
295
300
|
font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
|
|
296
|
-
|
|
297
|
-
|
|
301
|
+
font-weight: var(--loidolt-label-weight);
|
|
302
|
+
letter-spacing: var(--loidolt-label-tracking-wide);
|
|
303
|
+
text-transform: var(--loidolt-label-transform);
|
|
298
304
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
.ldt-alert {
|
|
2
|
-
padding:
|
|
2
|
+
padding: var(--loidolt-pad-callout);
|
|
3
3
|
border: var(--loidolt-border-width) solid var(--loidolt-border);
|
|
4
|
-
border-left:
|
|
4
|
+
border-left: var(--loidolt-stroke-accent) solid var(--loidolt-info);
|
|
5
|
+
border-radius: var(--loidolt-radius-surface);
|
|
5
6
|
color: var(--loidolt-text);
|
|
6
7
|
background: var(--loidolt-surface);
|
|
7
8
|
}
|
|
@@ -20,8 +21,9 @@
|
|
|
20
21
|
.ldt-alert__title {
|
|
21
22
|
margin: 0 0 0.2rem;
|
|
22
23
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
font-weight: var(--loidolt-label-weight);
|
|
25
|
+
letter-spacing: calc(var(--loidolt-label-tracking) * 0.6);
|
|
26
|
+
text-transform: var(--loidolt-label-transform);
|
|
25
27
|
}
|
|
26
28
|
.ldt-alert__description {
|
|
27
29
|
margin: 0;
|
|
@@ -145,15 +147,16 @@
|
|
|
145
147
|
bottom: 1rem;
|
|
146
148
|
display: grid;
|
|
147
149
|
width: min(24rem, calc(100vw - 2rem));
|
|
148
|
-
gap:
|
|
150
|
+
gap: var(--loidolt-space-2);
|
|
149
151
|
}
|
|
150
152
|
.ldt-toast {
|
|
151
153
|
display: grid;
|
|
152
154
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
153
|
-
gap: 0.4rem 1rem;
|
|
154
|
-
padding:
|
|
155
|
+
gap: 0.4rem 1rem; /* @literal title-to-description rhythm */
|
|
156
|
+
padding: var(--loidolt-pad-callout);
|
|
155
157
|
border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
|
|
156
|
-
border-left:
|
|
158
|
+
border-left: var(--loidolt-stroke-accent) solid var(--loidolt-border-strong);
|
|
159
|
+
border-radius: var(--loidolt-radius-overlay);
|
|
157
160
|
color: var(--loidolt-text);
|
|
158
161
|
background: var(--loidolt-surface);
|
|
159
162
|
box-shadow: var(--loidolt-shadow-popover);
|
|
@@ -172,8 +175,9 @@
|
|
|
172
175
|
}
|
|
173
176
|
.ldt-toast__title {
|
|
174
177
|
font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
|
|
175
|
-
|
|
176
|
-
|
|
178
|
+
font-weight: var(--loidolt-label-weight);
|
|
179
|
+
letter-spacing: calc(var(--loidolt-label-tracking) * 0.6);
|
|
180
|
+
text-transform: var(--loidolt-label-transform);
|
|
177
181
|
}
|
|
178
182
|
.ldt-toast__description {
|
|
179
183
|
grid-column: 1;
|
|
@@ -188,7 +192,7 @@
|
|
|
188
192
|
grid-column: 1;
|
|
189
193
|
display: flex;
|
|
190
194
|
flex-wrap: wrap;
|
|
191
|
-
gap: 0.4rem;
|
|
195
|
+
gap: 0.4rem; /* @literal button cluster */
|
|
192
196
|
margin-top: 0.2rem;
|
|
193
197
|
}
|
|
194
198
|
/* Logical insets, so `start`/`end` follow the writing direction. */
|
|
@@ -250,21 +254,21 @@
|
|
|
250
254
|
justify-content: center;
|
|
251
255
|
min-width: 1.25rem;
|
|
252
256
|
height: 1.25rem;
|
|
253
|
-
padding: 0
|
|
257
|
+
padding: 0 var(--loidolt-space-1);
|
|
254
258
|
border-radius: var(--loidolt-border-radius-pill);
|
|
255
259
|
color: var(--loidolt-on-accent);
|
|
256
260
|
background: var(--loidolt-accent);
|
|
257
261
|
font-size: var(--loidolt-font-size-xs);
|
|
258
|
-
font-weight: 700;
|
|
262
|
+
font-weight: 700; /* @literal a numeral in a 1.25rem chip needs the heaviest weight */
|
|
259
263
|
white-space: nowrap;
|
|
260
264
|
flex: none;
|
|
261
265
|
}
|
|
262
266
|
.ldt-marker--pin {
|
|
263
267
|
min-width: 1.5rem;
|
|
264
268
|
height: 1.5rem;
|
|
265
|
-
border-radius: 50% 50% 50% 0;
|
|
269
|
+
border-radius: 50% 50% 50% 0; /* @literal the pin silhouette */
|
|
266
270
|
box-shadow: var(--loidolt-shadow-popover);
|
|
267
271
|
}
|
|
268
272
|
.ldt-marker--active {
|
|
269
|
-
outline: 2px solid var(--loidolt-surface);
|
|
273
|
+
outline: 2px solid var(--loidolt-surface); /* @literal halo that lifts the pin off a canvas */
|
|
270
274
|
}
|