@ponchia/ui 0.9.0 → 0.11.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/CHANGELOG.md +107 -4
- package/MIGRATIONS.json +127 -18
- package/README.md +17 -9
- package/behaviors/index.d.ts +0 -2
- package/behaviors/index.d.ts.map +1 -1
- package/behaviors/index.js +0 -2
- package/behaviors/popover.js +4 -4
- package/classes/classes.json +53 -9
- package/classes/index.d.ts +20 -3
- package/classes/index.js +33 -3
- package/classes/vscode.css-custom-data.json +10 -10
- package/css/annotations.css +2 -2
- package/css/app.css +55 -31
- package/css/base.css +10 -14
- package/css/command.css +4 -4
- package/css/content.css +23 -21
- package/css/disclosure.css +17 -17
- package/css/discussion.css +150 -0
- package/css/feedback.css +15 -15
- package/css/figure.css +6 -4
- package/css/forms.css +8 -7
- package/css/generated.css +19 -12
- package/css/legend.css +13 -5
- package/css/navigation.css +3 -3
- package/css/overlay.css +13 -29
- package/css/primitives.css +48 -28
- package/css/report.css +91 -53
- package/css/sources.css +1 -1
- package/css/state.css +95 -6
- package/css/table.css +3 -3
- package/css/tokens.css +10 -10
- package/css/workbench.css +21 -9
- package/dist/bronto.css +1 -1
- package/dist/css/analytical.css +1 -1
- package/dist/css/annotations.css +1 -1
- package/dist/css/app.css +1 -1
- package/dist/css/base.css +1 -1
- package/dist/css/command.css +1 -1
- package/dist/css/content.css +1 -1
- package/dist/css/disclosure.css +1 -1
- package/dist/css/discussion.css +1 -0
- package/dist/css/feedback.css +1 -1
- package/dist/css/figure.css +1 -1
- package/dist/css/forms.css +1 -1
- package/dist/css/generated.css +1 -1
- package/dist/css/legend.css +1 -1
- package/dist/css/navigation.css +1 -1
- package/dist/css/overlay.css +1 -1
- package/dist/css/primitives.css +1 -1
- package/dist/css/report-kit.css +1 -1
- package/dist/css/report.css +1 -1
- package/dist/css/sources.css +1 -1
- package/dist/css/state.css +1 -1
- package/dist/css/table.css +1 -1
- package/dist/css/tokens.css +1 -1
- package/dist/css/workbench.css +1 -1
- package/docs/adr/0004-prune-unused-adapters.md +5 -1
- package/docs/adr/0005-productive-tools-and-editorial-reports.md +58 -0
- package/docs/adr/0006-trusted-publishing.md +92 -0
- package/docs/architecture.md +16 -23
- package/docs/command.md +1 -2
- package/docs/compositions.md +131 -0
- package/docs/discussion.md +64 -0
- package/docs/figure.md +10 -1
- package/docs/frontier-primitives.md +1 -2
- package/docs/migrations/0.10-to-0.11.md +61 -0
- package/docs/migrations/0.9-to-0.10.md +47 -0
- package/docs/package-contract.md +16 -13
- package/docs/reference.md +47 -18
- package/docs/reporting.md +15 -9
- package/docs/stability.md +20 -55
- package/docs/state.md +47 -0
- package/docs/usage.md +18 -30
- package/llms.txt +7 -18
- package/package.json +18 -54
- package/tokens/figma.variables.json +20 -20
- package/tokens/index.js +10 -10
- package/tokens/index.json +20 -20
- package/tokens/resolved.json +10 -10
- package/tokens/tokens.dtcg.json +20 -20
- package/behaviors/modal.d.ts +0 -45
- package/behaviors/modal.d.ts.map +0 -1
- package/behaviors/modal.js +0 -373
- package/qwik/index.d.ts +0 -48
- package/qwik/index.d.ts.map +0 -1
- package/qwik/index.js +0 -227
- package/react/index.d.ts +0 -45
- package/react/index.d.ts.map +0 -1
- package/react/index.js +0 -165
- package/solid/index.d.ts +0 -75
- package/solid/index.d.ts.map +0 -1
- package/solid/index.js +0 -172
- package/svelte/index.d.ts +0 -114
- package/svelte/index.d.ts.map +0 -1
- package/svelte/index.js +0 -197
- package/vue/index.d.ts +0 -116
- package/vue/index.d.ts.map +0 -1
- package/vue/index.js +0 -266
package/classes/index.js
CHANGED
|
@@ -55,6 +55,7 @@ export const cls = Object.freeze({
|
|
|
55
55
|
badgeDot: 'ui-badge--dot',
|
|
56
56
|
chip: 'ui-chip',
|
|
57
57
|
chipAccent: 'ui-chip--accent',
|
|
58
|
+
chipDense: 'ui-chip--dense',
|
|
58
59
|
link: 'ui-link',
|
|
59
60
|
linkArrow: 'ui-link--arrow',
|
|
60
61
|
linkCta: 'ui-link--cta',
|
|
@@ -399,6 +400,19 @@ export const cls = Object.freeze({
|
|
|
399
400
|
legendTrack: 'ui-legend__track',
|
|
400
401
|
legendTicks: 'ui-legend__ticks',
|
|
401
402
|
legendTick: 'ui-legend__tick',
|
|
403
|
+
// discussions (opt-in discussion.css; host-owned state)
|
|
404
|
+
discussion: 'ui-discussion',
|
|
405
|
+
discussionHeader: 'ui-discussion__header',
|
|
406
|
+
discussionActions: 'ui-discussion__actions',
|
|
407
|
+
discussionQuote: 'ui-discussion__quote',
|
|
408
|
+
discussionMessages: 'ui-discussion__messages',
|
|
409
|
+
discussionList: 'ui-discussion__list',
|
|
410
|
+
discussionMessage: 'ui-discussion__message',
|
|
411
|
+
discussionMeta: 'ui-discussion__meta',
|
|
412
|
+
discussionHint: 'ui-discussion__hint',
|
|
413
|
+
discussionState: 'ui-discussion__state',
|
|
414
|
+
discussionItem: 'ui-discussion__item',
|
|
415
|
+
discussionComposer: 'ui-discussion__composer',
|
|
402
416
|
annotation: 'ui-annotation',
|
|
403
417
|
annotationSubject: 'ui-annotation__subject',
|
|
404
418
|
annotationConnector: 'ui-annotation__connector',
|
|
@@ -617,6 +631,14 @@ export const cls = Object.freeze({
|
|
|
617
631
|
severityRow: 'ui-severity-row',
|
|
618
632
|
severityRowTitle: 'ui-severity-row__title',
|
|
619
633
|
severityRowMeta: 'ui-severity-row__meta',
|
|
634
|
+
// The tone as a value, for a mark Bronto does not ship (an SVG shape, a
|
|
635
|
+
// gradient stop): it paints nothing and only resolves `--severity-tone`.
|
|
636
|
+
severityTone: 'ui-severity-tone',
|
|
637
|
+
// timestrip — WHEN, beside the ladder's HOW BAD (css/state.css)
|
|
638
|
+
timestrip: 'ui-timestrip',
|
|
639
|
+
timestripAxis: 'ui-timestrip__axis',
|
|
640
|
+
timestripNow: 'ui-timestrip__now',
|
|
641
|
+
timestripEvent: 'ui-timestrip__event',
|
|
620
642
|
// generated content / AI-trust surfaces (css/generated.css)
|
|
621
643
|
generated: 'ui-generated',
|
|
622
644
|
generatedLabel: 'ui-generated__label',
|
|
@@ -985,7 +1007,7 @@ export const ui = {
|
|
|
985
1007
|
compare: ({ cols } = {}) => j(cls.compare, cols === 2 && cls.compare2up),
|
|
986
1008
|
reportFinding: ({ severity } = {}) => j(cls.reportFinding, reportFindingSeverity(severity)),
|
|
987
1009
|
claim: ({ status } = {}) => j(cls.claim, claimStatus(status)),
|
|
988
|
-
chip: ({ accent } = {}) => j(cls.chip, accent && cls.chipAccent),
|
|
1010
|
+
chip: ({ accent, dense } = {}) => j(cls.chip, accent && cls.chipAccent, dense && cls.chipDense),
|
|
989
1011
|
link: ({ arrow, cta } = {}) => j(cls.link, arrow && cls.linkArrow, cta && cls.linkCta),
|
|
990
1012
|
dot: ({ tone, live } = {}) => j(cls.dot, dotTone(tone), live && cls.dotLive),
|
|
991
1013
|
dotgrid: ({ accent, dense } = {}) =>
|
|
@@ -1010,7 +1032,7 @@ export const ui = {
|
|
|
1010
1032
|
dotspinner: ({ size } = {}) =>
|
|
1011
1033
|
j(cls.dotspinner, size === 'sm' && cls.dotspinnerSm, size === 'lg' && cls.dotspinnerLg),
|
|
1012
1034
|
dotbar: ({ indeterminate } = {}) => j(cls.dotbar, indeterminate && cls.dotbarIndeterminate),
|
|
1013
|
-
modal: ({ drawer
|
|
1035
|
+
modal: ({ drawer } = {}) => j(cls.modal, drawer && cls.modalDrawer),
|
|
1014
1036
|
tab: ({ active } = {}) => j(cls.tab, active && 'is-active'),
|
|
1015
1037
|
avatar: ({ size } = {}) =>
|
|
1016
1038
|
j(cls.avatar, size === 'sm' && cls.avatarSm, size === 'lg' && cls.avatarLg),
|
|
@@ -1157,8 +1179,16 @@ export const SEVERITY_LEVELS = Object.freeze(['critical', 'error', 'warning', 'n
|
|
|
1157
1179
|
/** `data-level` + the severity class, bundled so the attribute that carries the
|
|
1158
1180
|
* meaning cannot be forgotten — the class alone paints the neutral tone and
|
|
1159
1181
|
* silently loses the level. Unknown/absent levels resolve to `unknown`. */
|
|
1182
|
+
const SEVERITY_PARTS = {
|
|
1183
|
+
chip: 'severity',
|
|
1184
|
+
dot: 'severityDot',
|
|
1185
|
+
row: 'severityRow',
|
|
1186
|
+
// Paints nothing; resolves the tone for a mark Bronto does not ship.
|
|
1187
|
+
tone: 'severityTone',
|
|
1188
|
+
};
|
|
1189
|
+
|
|
1160
1190
|
export const severity = (level, { part = 'chip' } = {}) => ({
|
|
1161
|
-
class:
|
|
1191
|
+
class: cls[SEVERITY_PARTS[part] ?? 'severity'],
|
|
1162
1192
|
'data-level': SEVERITY_LEVELS.includes(level) ? level : 'unknown',
|
|
1163
1193
|
});
|
|
1164
1194
|
|
|
@@ -239,11 +239,11 @@
|
|
|
239
239
|
},
|
|
240
240
|
{
|
|
241
241
|
"name": "--radius-lg",
|
|
242
|
-
"description": "Global scale token. Value: `
|
|
242
|
+
"description": "Global scale token. Value: `6px`"
|
|
243
243
|
},
|
|
244
244
|
{
|
|
245
245
|
"name": "--radius-md",
|
|
246
|
-
"description": "Global scale token. Value: `
|
|
246
|
+
"description": "Global scale token. Value: `4px`"
|
|
247
247
|
},
|
|
248
248
|
{
|
|
249
249
|
"name": "--radius-pill",
|
|
@@ -251,11 +251,11 @@
|
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
253
|
"name": "--radius-sm",
|
|
254
|
-
"description": "Global scale token. Value: `
|
|
254
|
+
"description": "Global scale token. Value: `2px`"
|
|
255
255
|
},
|
|
256
256
|
{
|
|
257
257
|
"name": "--radius-xl",
|
|
258
|
-
"description": "Global scale token. Value: `
|
|
258
|
+
"description": "Global scale token. Value: `8px`"
|
|
259
259
|
},
|
|
260
260
|
{
|
|
261
261
|
"name": "--safe-area-bottom",
|
|
@@ -371,11 +371,11 @@
|
|
|
371
371
|
},
|
|
372
372
|
{
|
|
373
373
|
"name": "--text-2xs",
|
|
374
|
-
"description": "Global scale token. Value: `0.
|
|
374
|
+
"description": "Global scale token. Value: `0.75rem`"
|
|
375
375
|
},
|
|
376
376
|
{
|
|
377
377
|
"name": "--text-base",
|
|
378
|
-
"description": "Global scale token. Value: `
|
|
378
|
+
"description": "Global scale token. Value: `1rem`"
|
|
379
379
|
},
|
|
380
380
|
{
|
|
381
381
|
"name": "--text-dim",
|
|
@@ -383,11 +383,11 @@
|
|
|
383
383
|
},
|
|
384
384
|
{
|
|
385
385
|
"name": "--text-lg",
|
|
386
|
-
"description": "Global scale token. Value: `1.
|
|
386
|
+
"description": "Global scale token. Value: `1.125rem`"
|
|
387
387
|
},
|
|
388
388
|
{
|
|
389
389
|
"name": "--text-sm",
|
|
390
|
-
"description": "Global scale token. Value: `0.
|
|
390
|
+
"description": "Global scale token. Value: `0.875rem`"
|
|
391
391
|
},
|
|
392
392
|
{
|
|
393
393
|
"name": "--text-soft",
|
|
@@ -395,11 +395,11 @@
|
|
|
395
395
|
},
|
|
396
396
|
{
|
|
397
397
|
"name": "--text-xl",
|
|
398
|
-
"description": "Global scale token. Value: `1.
|
|
398
|
+
"description": "Global scale token. Value: `1.5rem`"
|
|
399
399
|
},
|
|
400
400
|
{
|
|
401
401
|
"name": "--text-xs",
|
|
402
|
-
"description": "Global scale token. Value: `0.
|
|
402
|
+
"description": "Global scale token. Value: `0.8125rem`"
|
|
403
403
|
},
|
|
404
404
|
{
|
|
405
405
|
"name": "--tracking-wide",
|
package/css/annotations.css
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
--annotation-stroke-width: 1.5;
|
|
15
15
|
|
|
16
16
|
color: var(--annotation-color);
|
|
17
|
-
font-family: var(--
|
|
17
|
+
font-family: var(--sans);
|
|
18
18
|
font-size: var(--text-xs);
|
|
19
19
|
overflow: visible;
|
|
20
20
|
}
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
stroke: var(--annotation-note-bg);
|
|
97
97
|
stroke-linejoin: round;
|
|
98
98
|
stroke-width: 3;
|
|
99
|
-
text-transform:
|
|
99
|
+
text-transform: none;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
.ui-annotation__label {
|
package/css/app.css
CHANGED
|
@@ -64,20 +64,22 @@
|
|
|
64
64
|
|
|
65
65
|
.ui-app-nav__section {
|
|
66
66
|
color: var(--text-dim);
|
|
67
|
-
font-family: var(--
|
|
67
|
+
font-family: var(--sans);
|
|
68
68
|
font-size: var(--text-2xs);
|
|
69
|
-
letter-spacing:
|
|
69
|
+
letter-spacing: 0;
|
|
70
70
|
margin: var(--space-sm) 0 0.3rem;
|
|
71
71
|
padding: 0 0.5rem;
|
|
72
|
-
text-transform:
|
|
72
|
+
text-transform: none;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
.ui-app-nav a {
|
|
76
|
+
min-inline-size: 0;
|
|
77
|
+
overflow-wrap: anywhere;
|
|
76
78
|
align-items: center;
|
|
77
79
|
border-inline-start: 2px solid transparent;
|
|
78
80
|
color: var(--text-soft);
|
|
79
81
|
display: flex;
|
|
80
|
-
font-family: var(--
|
|
82
|
+
font-family: var(--sans);
|
|
81
83
|
font-size: var(--text-sm);
|
|
82
84
|
gap: 0.55rem;
|
|
83
85
|
padding: 0.5rem 0.6rem;
|
|
@@ -148,7 +150,7 @@
|
|
|
148
150
|
.ui-app-rail__foot {
|
|
149
151
|
border-block-start: 1px solid var(--line);
|
|
150
152
|
color: var(--text-dim);
|
|
151
|
-
font-family: var(--
|
|
153
|
+
font-family: var(--sans);
|
|
152
154
|
font-size: var(--text-2xs);
|
|
153
155
|
margin-block-start: auto;
|
|
154
156
|
padding-block-start: var(--space-sm);
|
|
@@ -163,9 +165,15 @@
|
|
|
163
165
|
display: flex;
|
|
164
166
|
gap: var(--space-xs);
|
|
165
167
|
margin-block-start: auto;
|
|
168
|
+
min-inline-size: 0;
|
|
169
|
+
overflow-wrap: anywhere;
|
|
166
170
|
padding-block-start: var(--space-sm);
|
|
167
171
|
}
|
|
168
172
|
|
|
173
|
+
.ui-app-rail__account > * {
|
|
174
|
+
min-inline-size: 0;
|
|
175
|
+
}
|
|
176
|
+
|
|
169
177
|
.ui-app-rail__account + .ui-app-rail__foot {
|
|
170
178
|
margin-block-start: 0;
|
|
171
179
|
}
|
|
@@ -204,17 +212,17 @@
|
|
|
204
212
|
|
|
205
213
|
.ui-app-topbar__title {
|
|
206
214
|
color: var(--text);
|
|
207
|
-
font-family: var(--
|
|
208
|
-
font-size: 1.
|
|
209
|
-
font-weight:
|
|
210
|
-
letter-spacing:
|
|
215
|
+
font-family: var(--sans);
|
|
216
|
+
font-size: 1.25rem;
|
|
217
|
+
font-weight: 650;
|
|
218
|
+
letter-spacing: 0;
|
|
211
219
|
margin: 0;
|
|
212
|
-
text-transform:
|
|
220
|
+
text-transform: none;
|
|
213
221
|
}
|
|
214
222
|
|
|
215
223
|
.ui-app-content {
|
|
216
224
|
display: grid;
|
|
217
|
-
gap: var(--space-
|
|
225
|
+
gap: var(--space-xl);
|
|
218
226
|
padding: var(--space-lg);
|
|
219
227
|
}
|
|
220
228
|
|
|
@@ -222,14 +230,12 @@
|
|
|
222
230
|
|
|
223
231
|
.ui-app-toolbar {
|
|
224
232
|
align-items: center;
|
|
225
|
-
|
|
226
|
-
border: 1px solid var(--line);
|
|
227
|
-
border-radius: var(--radius-md);
|
|
233
|
+
border-block-end: 1px solid var(--line);
|
|
228
234
|
display: flex;
|
|
229
235
|
flex-wrap: wrap;
|
|
230
236
|
gap: 0.7rem;
|
|
231
237
|
justify-content: space-between;
|
|
232
|
-
padding:
|
|
238
|
+
padding-block-end: var(--space-md);
|
|
233
239
|
}
|
|
234
240
|
|
|
235
241
|
.ui-app-toolbar__group {
|
|
@@ -242,29 +248,43 @@
|
|
|
242
248
|
/* --- Panel --- */
|
|
243
249
|
|
|
244
250
|
.ui-app-panel {
|
|
245
|
-
background: var(--panel);
|
|
246
|
-
border: 1px solid var(--line);
|
|
247
|
-
border-radius: var(--radius-md);
|
|
248
251
|
display: grid;
|
|
249
|
-
gap:
|
|
250
|
-
|
|
252
|
+
gap: var(--space-md);
|
|
253
|
+
min-inline-size: 0;
|
|
251
254
|
}
|
|
252
255
|
|
|
253
256
|
.ui-app-panel__head {
|
|
254
257
|
align-items: flex-start;
|
|
255
258
|
display: flex;
|
|
259
|
+
flex-wrap: wrap;
|
|
256
260
|
gap: 0.7rem;
|
|
257
261
|
justify-content: space-between;
|
|
258
262
|
}
|
|
259
263
|
|
|
260
264
|
.ui-app-panel__title {
|
|
261
265
|
color: var(--text);
|
|
262
|
-
font-family: var(--
|
|
263
|
-
font-size:
|
|
264
|
-
font-weight:
|
|
265
|
-
letter-spacing:
|
|
266
|
+
font-family: var(--sans);
|
|
267
|
+
font-size: 1.125rem;
|
|
268
|
+
font-weight: 650;
|
|
269
|
+
letter-spacing: 0;
|
|
266
270
|
margin: 0;
|
|
267
|
-
text-transform:
|
|
271
|
+
text-transform: none;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/* A service overview needs a compact scan, including on a phone. Keep the
|
|
275
|
+
generic stat tile available elsewhere; avoid framing every metric twice. */
|
|
276
|
+
.ui-app-panel > .ui-statgrid,
|
|
277
|
+
.ui-app-panel > .ui-app-metrics {
|
|
278
|
+
grid-template-columns: repeat(auto-fit, minmax(min(100%, 6rem), 1fr));
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.ui-app-panel > .ui-statgrid > .ui-stat,
|
|
282
|
+
.ui-app-panel > .ui-app-metrics > .ui-app-metric {
|
|
283
|
+
background: none;
|
|
284
|
+
border: 0;
|
|
285
|
+
border-block-start: 1px solid var(--line);
|
|
286
|
+
border-radius: 0;
|
|
287
|
+
padding: var(--space-md) 0;
|
|
268
288
|
}
|
|
269
289
|
|
|
270
290
|
.ui-app-panel__head p {
|
|
@@ -285,7 +305,7 @@
|
|
|
285
305
|
permanent admin-shell alias (grouped on the canonical rules there —
|
|
286
306
|
identical output). Nothing app-specific left to define here. */
|
|
287
307
|
|
|
288
|
-
/* --- Mobile rail:
|
|
308
|
+
/* --- Mobile rail: navigation wraps instead of hiding destinations offscreen. --- */
|
|
289
309
|
|
|
290
310
|
@media (max-width: 880px) {
|
|
291
311
|
.ui-app-shell {
|
|
@@ -300,10 +320,10 @@
|
|
|
300
320
|
}
|
|
301
321
|
|
|
302
322
|
.ui-app-rail {
|
|
303
|
-
flex-
|
|
323
|
+
flex-flow: row wrap;
|
|
304
324
|
block-size: auto;
|
|
305
|
-
overflow
|
|
306
|
-
position:
|
|
325
|
+
overflow: visible;
|
|
326
|
+
position: static;
|
|
307
327
|
inset-block-start: 0;
|
|
308
328
|
z-index: calc(var(--z-raised) + 1);
|
|
309
329
|
}
|
|
@@ -321,7 +341,9 @@
|
|
|
321
341
|
}
|
|
322
342
|
|
|
323
343
|
.ui-app-nav {
|
|
324
|
-
|
|
344
|
+
display: flex;
|
|
345
|
+
flex: 1 0 100%;
|
|
346
|
+
flex-wrap: wrap;
|
|
325
347
|
gap: 0.15rem;
|
|
326
348
|
}
|
|
327
349
|
|
|
@@ -330,9 +352,11 @@
|
|
|
330
352
|
}
|
|
331
353
|
|
|
332
354
|
.ui-app-nav a {
|
|
355
|
+
flex: 1 1 auto;
|
|
356
|
+
justify-content: center;
|
|
333
357
|
border-inline-start: 0;
|
|
334
358
|
border-block-end: 2px solid transparent;
|
|
335
|
-
white-space:
|
|
359
|
+
white-space: normal;
|
|
336
360
|
}
|
|
337
361
|
|
|
338
362
|
.ui-app-nav a.is-active,
|
package/css/base.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
|
-
base — reset + element defaults
|
|
2
|
+
base — reset + readable element defaults
|
|
3
3
|
========================================================================== */
|
|
4
4
|
|
|
5
5
|
*,
|
|
@@ -13,9 +13,8 @@ html {
|
|
|
13
13
|
color: var(--text);
|
|
14
14
|
font-family: var(--sans);
|
|
15
15
|
|
|
16
|
-
/*
|
|
17
|
-
|
|
18
|
-
font-size: 0.9375rem;
|
|
16
|
+
/* Preserve the browser's preferred reading size. Compact controls use tokens. */
|
|
17
|
+
font-size: 1rem;
|
|
19
18
|
line-height: 1.55;
|
|
20
19
|
scroll-behavior: smooth;
|
|
21
20
|
text-rendering: optimizeLegibility;
|
|
@@ -74,27 +73,25 @@ li {
|
|
|
74
73
|
line-height: 1.65;
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
/*
|
|
76
|
+
/* Everyday headings are readable text. .ui-display owns the brand face. */
|
|
78
77
|
h1,
|
|
79
78
|
h2,
|
|
80
79
|
h3,
|
|
81
80
|
h4 {
|
|
82
81
|
color: var(--text);
|
|
83
|
-
font-family: var(--
|
|
84
|
-
font-weight:
|
|
85
|
-
letter-spacing: 0.
|
|
86
|
-
line-height: 1.
|
|
82
|
+
font-family: var(--sans);
|
|
83
|
+
font-weight: 650;
|
|
84
|
+
letter-spacing: -0.02em;
|
|
85
|
+
line-height: 1.2;
|
|
87
86
|
margin: 0;
|
|
88
|
-
text-transform: uppercase;
|
|
89
87
|
}
|
|
90
88
|
|
|
91
89
|
h1 {
|
|
92
|
-
font-size: clamp(
|
|
93
|
-
letter-spacing: 0.02em;
|
|
90
|
+
font-size: clamp(2rem, 4vw, 3rem);
|
|
94
91
|
}
|
|
95
92
|
|
|
96
93
|
h2 {
|
|
97
|
-
font-size: clamp(1.
|
|
94
|
+
font-size: clamp(1.5rem, 3vw, 2rem);
|
|
98
95
|
}
|
|
99
96
|
|
|
100
97
|
h3 {
|
|
@@ -103,7 +100,6 @@ h3 {
|
|
|
103
100
|
|
|
104
101
|
h4 {
|
|
105
102
|
font-size: 1rem;
|
|
106
|
-
letter-spacing: var(--tracking-wide);
|
|
107
103
|
}
|
|
108
104
|
|
|
109
105
|
strong,
|
package/css/command.css
CHANGED
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
|
|
44
44
|
.ui-command__group {
|
|
45
45
|
color: var(--text-dim);
|
|
46
|
-
font-family: var(--
|
|
47
|
-
font-size: var(--text-
|
|
48
|
-
letter-spacing:
|
|
46
|
+
font-family: var(--sans);
|
|
47
|
+
font-size: var(--text-xs);
|
|
48
|
+
letter-spacing: 0;
|
|
49
49
|
padding: 0.5rem 0.6rem 0.25rem;
|
|
50
|
-
text-transform:
|
|
50
|
+
text-transform: none;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
.ui-command__item {
|
package/css/content.css
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
========================================================================== */
|
|
10
10
|
|
|
11
11
|
.ui-prose {
|
|
12
|
+
/* A prose block must shrink as a grid/flex item; its pre blocks scroll locally. */
|
|
13
|
+
min-inline-size: 0;
|
|
12
14
|
color: var(--text-soft);
|
|
13
15
|
font-size: var(--text-base);
|
|
14
16
|
line-height: 1.7;
|
|
@@ -41,27 +43,27 @@
|
|
|
41
43
|
max-inline-size: none;
|
|
42
44
|
}
|
|
43
45
|
|
|
44
|
-
/* --- Headings —
|
|
46
|
+
/* --- Headings — readable hierarchy inside narrative content --- */
|
|
45
47
|
|
|
46
48
|
.ui-prose :is(h1, h2, h3, h4, h5, h6) {
|
|
47
49
|
color: var(--text);
|
|
48
|
-
font-family: var(--
|
|
50
|
+
font-family: var(--sans);
|
|
49
51
|
line-height: 1.12;
|
|
50
52
|
text-wrap: balance;
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
.ui-prose h1 {
|
|
54
56
|
font-size: var(--text-xl);
|
|
55
|
-
letter-spacing:
|
|
56
|
-
text-transform:
|
|
57
|
+
letter-spacing: 0;
|
|
58
|
+
text-transform: none;
|
|
57
59
|
}
|
|
58
60
|
|
|
59
61
|
.ui-prose h2 {
|
|
60
62
|
font-size: var(--text-lg);
|
|
61
|
-
letter-spacing:
|
|
63
|
+
letter-spacing: 0;
|
|
62
64
|
padding-block-end: 0.3rem;
|
|
63
65
|
border-block-end: 1px solid var(--line);
|
|
64
|
-
text-transform:
|
|
66
|
+
text-transform: none;
|
|
65
67
|
}
|
|
66
68
|
|
|
67
69
|
.ui-prose h3 {
|
|
@@ -70,8 +72,8 @@
|
|
|
70
72
|
|
|
71
73
|
.ui-prose :is(h4, h5, h6) {
|
|
72
74
|
font-size: var(--text-base);
|
|
73
|
-
letter-spacing:
|
|
74
|
-
text-transform:
|
|
75
|
+
letter-spacing: 0;
|
|
76
|
+
text-transform: none;
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
.ui-prose :is(h5, h6) {
|
|
@@ -185,11 +187,11 @@
|
|
|
185
187
|
|
|
186
188
|
.ui-prose dt {
|
|
187
189
|
color: var(--text-dim);
|
|
188
|
-
font-family: var(--
|
|
190
|
+
font-family: var(--sans);
|
|
189
191
|
font-size: var(--text-2xs);
|
|
190
192
|
font-weight: 700;
|
|
191
|
-
letter-spacing:
|
|
192
|
-
text-transform:
|
|
193
|
+
letter-spacing: 0;
|
|
194
|
+
text-transform: none;
|
|
193
195
|
}
|
|
194
196
|
|
|
195
197
|
.ui-prose dd {
|
|
@@ -241,10 +243,10 @@
|
|
|
241
243
|
|
|
242
244
|
.ui-prose figcaption {
|
|
243
245
|
color: var(--text-dim);
|
|
244
|
-
font-family: var(--
|
|
246
|
+
font-family: var(--sans);
|
|
245
247
|
font-size: var(--text-2xs);
|
|
246
|
-
letter-spacing:
|
|
247
|
-
text-transform:
|
|
248
|
+
letter-spacing: 0;
|
|
249
|
+
text-transform: none;
|
|
248
250
|
}
|
|
249
251
|
|
|
250
252
|
/* --- Table — raw Markdown tables look like ui-table ---
|
|
@@ -262,7 +264,7 @@
|
|
|
262
264
|
border-collapse: collapse;
|
|
263
265
|
border-radius: var(--radius-md);
|
|
264
266
|
display: block;
|
|
265
|
-
font-family: var(--
|
|
267
|
+
font-family: var(--sans);
|
|
266
268
|
font-size: var(--text-sm);
|
|
267
269
|
inline-size: 100%;
|
|
268
270
|
overflow-x: auto;
|
|
@@ -280,8 +282,8 @@
|
|
|
280
282
|
color: var(--text-dim);
|
|
281
283
|
font-size: var(--text-2xs);
|
|
282
284
|
font-weight: 700;
|
|
283
|
-
letter-spacing:
|
|
284
|
-
text-transform:
|
|
285
|
+
letter-spacing: 0;
|
|
286
|
+
text-transform: none;
|
|
285
287
|
}
|
|
286
288
|
|
|
287
289
|
.ui-prose td {
|
|
@@ -316,7 +318,7 @@
|
|
|
316
318
|
.ui-quote {
|
|
317
319
|
color: var(--text);
|
|
318
320
|
display: grid;
|
|
319
|
-
font-family: var(--
|
|
321
|
+
font-family: var(--sans);
|
|
320
322
|
font-size: var(--text-xl);
|
|
321
323
|
font-weight: var(--display-weight);
|
|
322
324
|
gap: var(--space-sm);
|
|
@@ -335,9 +337,9 @@
|
|
|
335
337
|
|
|
336
338
|
.ui-quote__cite {
|
|
337
339
|
color: var(--text-dim);
|
|
338
|
-
font-family: var(--
|
|
340
|
+
font-family: var(--sans);
|
|
339
341
|
font-size: var(--text-2xs);
|
|
340
342
|
font-style: normal;
|
|
341
|
-
letter-spacing:
|
|
342
|
-
text-transform:
|
|
343
|
+
letter-spacing: 0;
|
|
344
|
+
text-transform: none;
|
|
343
345
|
}
|
package/css/disclosure.css
CHANGED
|
@@ -32,13 +32,13 @@
|
|
|
32
32
|
cursor: pointer;
|
|
33
33
|
display: inline-flex;
|
|
34
34
|
flex: 0 0 auto;
|
|
35
|
-
font-family: var(--
|
|
35
|
+
font-family: var(--sans);
|
|
36
36
|
font-size: var(--text-xs);
|
|
37
37
|
gap: 0.4rem;
|
|
38
|
-
letter-spacing:
|
|
38
|
+
letter-spacing: 0;
|
|
39
39
|
margin-block-end: -1px;
|
|
40
40
|
padding: 0.6rem 0.85rem;
|
|
41
|
-
text-transform:
|
|
41
|
+
text-transform: none;
|
|
42
42
|
transition:
|
|
43
43
|
color var(--duration-fast) var(--ease-standard),
|
|
44
44
|
border-color var(--duration-fast) var(--ease-standard);
|
|
@@ -104,13 +104,13 @@
|
|
|
104
104
|
color: var(--text);
|
|
105
105
|
cursor: pointer;
|
|
106
106
|
display: flex;
|
|
107
|
-
font-family: var(--
|
|
107
|
+
font-family: var(--sans);
|
|
108
108
|
font-size: var(--text-sm);
|
|
109
109
|
gap: 0.6rem;
|
|
110
|
-
letter-spacing:
|
|
110
|
+
letter-spacing: 0;
|
|
111
111
|
list-style: none;
|
|
112
112
|
padding: 0.85rem 0.2rem;
|
|
113
|
-
text-transform:
|
|
113
|
+
text-transform: none;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
.ui-accordion__summary::-webkit-details-marker {
|
|
@@ -192,12 +192,12 @@
|
|
|
192
192
|
color: var(--text-soft);
|
|
193
193
|
cursor: pointer;
|
|
194
194
|
flex: 1 0 auto;
|
|
195
|
-
font-family: var(--
|
|
195
|
+
font-family: var(--sans);
|
|
196
196
|
font-size: var(--text-xs);
|
|
197
|
-
letter-spacing:
|
|
197
|
+
letter-spacing: 0;
|
|
198
198
|
padding: 0.42rem 0.8rem;
|
|
199
199
|
text-align: center;
|
|
200
|
-
text-transform:
|
|
200
|
+
text-transform: none;
|
|
201
201
|
transition:
|
|
202
202
|
background-color var(--duration-fast) var(--ease-standard),
|
|
203
203
|
color var(--duration-fast) var(--ease-standard);
|
|
@@ -233,14 +233,14 @@
|
|
|
233
233
|
color: var(--text-dim);
|
|
234
234
|
display: flex;
|
|
235
235
|
flex-wrap: wrap;
|
|
236
|
-
font-family: var(--
|
|
236
|
+
font-family: var(--sans);
|
|
237
237
|
font-size: var(--text-2xs);
|
|
238
238
|
gap: 0.5rem;
|
|
239
|
-
letter-spacing:
|
|
239
|
+
letter-spacing: 0;
|
|
240
240
|
list-style: none;
|
|
241
241
|
margin: 0;
|
|
242
242
|
padding: 0;
|
|
243
|
-
text-transform:
|
|
243
|
+
text-transform: none;
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
.ui-breadcrumb__item {
|
|
@@ -302,7 +302,7 @@
|
|
|
302
302
|
color: var(--text-soft);
|
|
303
303
|
cursor: pointer;
|
|
304
304
|
display: inline-flex;
|
|
305
|
-
font-family: var(--
|
|
305
|
+
font-family: var(--sans);
|
|
306
306
|
font-size: var(--text-xs);
|
|
307
307
|
justify-content: center;
|
|
308
308
|
min-block-size: 2rem;
|
|
@@ -370,14 +370,14 @@
|
|
|
370
370
|
color: var(--text);
|
|
371
371
|
display: inline-flex;
|
|
372
372
|
flex: 0 0 auto;
|
|
373
|
-
font-family: var(--
|
|
373
|
+
font-family: var(--sans);
|
|
374
374
|
font-size: calc(var(--av-size) * 0.38);
|
|
375
375
|
font-weight: 700;
|
|
376
376
|
block-size: var(--av-size);
|
|
377
377
|
justify-content: center;
|
|
378
378
|
letter-spacing: 0.04em;
|
|
379
379
|
overflow: hidden;
|
|
380
|
-
text-transform:
|
|
380
|
+
text-transform: none;
|
|
381
381
|
inline-size: var(--av-size);
|
|
382
382
|
}
|
|
383
383
|
|
|
@@ -528,11 +528,11 @@
|
|
|
528
528
|
background: color-mix(in srgb, var(--panel-strong) 75%, transparent);
|
|
529
529
|
border-radius: var(--radius-pill);
|
|
530
530
|
color: var(--text);
|
|
531
|
-
font-family: var(--
|
|
531
|
+
font-family: var(--sans);
|
|
532
532
|
font-size: var(--text-2xs);
|
|
533
533
|
inset-block-end: var(--space-xs);
|
|
534
534
|
inset-inline-start: var(--space-xs);
|
|
535
|
-
letter-spacing:
|
|
535
|
+
letter-spacing: 0;
|
|
536
536
|
padding: 0.2rem 0.5rem;
|
|
537
537
|
position: absolute;
|
|
538
538
|
}
|