You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(admin): smoke-test driven API alignment for v2 migration
- posts/notes/drafts: switch list sort params to wire-format
sort_by/sort_order (snake_case enums) to match server's
createPagerSchema; previous camelCase + numeric -1/1 was rejected
- manage-posts/notes list views: pass the new sort keys through
- webhook create: always send `secret: ''` when the form leaves it
blank; server's WebhookSchema requires `z.string()` and the admin
form intentionally treats the field as optional
- docs/superpowers: capture in-progress React migration specs (status,
layout shell, data flow, datatable, list filter bar, recovery banner,
rightpane quick edit) so they survive across machines
**Admin context override**: most admin surfaces will live in `body` / `bodySm`; `display*` tokens exist for the rare oversized empty state, marketing-style auth screen, or onboarding hero. Keep them in the contract; use sparingly.
140
+
**Admin context override**: most admin surfaces live in `body` / `bodySm`; `display*` tokens exist for the rare oversized empty state, marketing-style auth screen, or onboarding hero. Keep them in the contract; use sparingly.
141
+
142
+
**Compact-list density rules** (Linear inbox-aligned — applies to every read-list view: posts / notes / pages / says / recently / comments / etc.)
143
+
144
+
- Use `listTitle` (13/500/normal/`ink`) for the row's primary text. It is the only text on a row that uses `medium` weight.
145
+
- Use `listMeta` (13/450/normal/`inkSubtle`) for everything else on the meta line — status, id, time, counts. Same metric as the title; only color differentiates it.
146
+
-`listLabel` (12/450/normal/`inkMuted`) is reserved for chip / pill bodies on coloured backgrounds.
147
+
- Never introduce a third list size. If you feel like you need 11 px or 14 px for a list element, change the **color** instead.
148
+
- Row height: `min-height: 57px` with `padding: 10px 16px` and `gap: 4px` between the title line and the meta line. This is the "B variant" used by `2026-05-10-posts-list-design.md`.
149
+
- Icon-in-text uses `iconSize.sm` (12). Row-start semantic icons use `iconSize.lg` (16). Right-of-row status / action glyphs use `iconSize.md` (14).
115
150
116
151
### spacing
117
152
@@ -364,6 +399,101 @@ A short header at the top of DESIGN.md will state:
364
399
365
400
## Open questions
366
401
367
-
-**Surface ladder calibration**: the four surface step values need confirmation against linear.app computed styles. Owner: whoever picks up implementation. Resolves in P1 calibration window.
-**Light theme priority**: defer to 02b. Decide post-P1 whether light theme is part of v1 cutover or a follow-up.
369
404
-**Charts theme**: `@antv/g2` and CodeMirror One Dark have their own theme APIs. Spec 09/10 own the bridge from `themeContract.color.*` into those libraries.
405
+
406
+
---
407
+
408
+
## v1 calibrated · 2026-05-10
409
+
410
+
Calibration pass per spec §7 of [`2026-05-09-p1-layout-shell-design.md`](../2026-05-09-p1-layout-shell-design.md). Targets: color surface ladder + hairlines + canvas + active-nav background. Spacing / typography / radius / motion / zIndex unchanged.
Typography pass triggered by Linear inbox-row anatomy: visual hierarchy in compact lists must come from **weight + color**, not size. Posts-list v1 first surfaced the gap (rows felt crowded, 14/500 title vs 12/400 meta read as two competing weights). Source: live-fetched computed styles from `linear.app/lobehub/reviews` of the "Ready to merge" list. Only typography & icon-size tokens shift — color / spacing / radius / motion / zIndex unchanged.
0 commit comments