diff --git a/.planning/research/v1427-r4-ui-conformity.md b/.planning/research/v1427-r4-ui-conformity.md new file mode 100644 index 000000000..b8971420c --- /dev/null +++ b/.planning/research/v1427-r4-ui-conformity.md @@ -0,0 +1,639 @@ +# R4 UI-conformity sweep — v1.4.27 + +Read-only walk of every same-class surface in the app on `develop` (HEAD +`617d4518`). Compares each concrete instance against its siblings and +flags visual / structural drift: heading weight, card chrome, form +rhythm, spacing scale, typography scale, button positions, icon sizes, +Dialog / Sheet chrome, table chrome, empty-state shape, loading +skeleton shape, colour tokens, dark-mode parity. + +Maintainer framing: "no duplicates, everything looks the same, +everything is conform." Intentional variants (admin dense tables, +narrative copy in Coach) are noted and skipped from the drift list. + +--- + +## Severity legend + +- **P0** — same-class instances diverge enough that the surfaces no + longer read as one app; fix before tagging v1.4.27. +- **P1** — token / weight / spacing drift the user notices when + switching between two routes of the same family; queue inside the + v1.4.27 polish bucket. +- **P2** — minor inconsistency that surveys cleanly under a single + rule once codified; defer or roll into the next pass. +- **P3** — informational / convention note, no user-visible action. + +--- + +## Headline drift (top of the sweep) + +1. **P0** — Settings vs Admin section chrome diverge on heading + element + page-header presence. Settings sections open with + `
` + `

` + a description `

`; admin + sections open with `

` directly and use `
` (not an `

`) for the card title. Result: + semantic landmark + Marc-Voice page-header on `/settings/*`, no + landmark + visual-only title on `/admin/*`. (See §3.) +2. **P0** — Two tab-strip implementations coexist. Insights tab + strip is a custom `