MOTIR-285Done
5.3.4 Design — Fields admin page (`design/projects/fields.mock.html`: field list + create/edit + options editor + caps/delete states)
Estimate: 35m
The design asset for the settings surface. The projects design area covers only Members + Access (6.4.1) — no Fields page exists anywhere, the design-gate NONE-exists case. Output: design/projects/fields.mock.html (built from components/ui/* + --el-*/element-shape tokens) + PNG + a section in design/projects/design-notes.md. Render checklist + AA + dark parity. Mirror: Jira team-managed Project settings → Fields.
Specify, panel by panel:
- Entry — the new "Fields" card on the project-settings hub (the existing card+link grammar — sixth card beside Workflow/Board/Estimation/Members/Archive) and the Fields page shell (the settings detail-page chrome 6.4.1 set).
- Field list — one row per definition: type glyph (per-type icon), label, type name, value-count gloss, drag/reorder handle (the board-settings reorder grammar), row actions (rename, options for select, delete). Position order. Empty state ("No custom fields yet" + Add field). The cap state (50 reached → Add disabled + explanatory line).
- Add/edit field — the create affordance (inline form or modal — match the 6.4.1 grammar): label, type picker (the five types w/ glyphs + one-line descriptions), description (optional); type immutable after create (stated in the edit state); select type reveals the options editor.
- Options editor (select fields) — option rows: label, drag-reorder, rename inline, archive toggle (archived rows muted + badged, "hidden from new selection"), delete (enabled only when unused — disabled state carries the "in use on N issues — archive instead" tooltip), Add option (+ the 55-cap state).
- Delete field confirm — names the value count ("Deletes the field and its values on N issues. This can't be undone." — the team-managed hard-delete truth);
--el-dangerconfirm + ghost cancel (the 2.4.9 grammar). - Read-only — the non-admin state (controls absent/disabled + the quiet permission line, the 6.4 read-only grammar); loading skeleton;
ErrorState.
Acceptance criteria
design/projects/fields.mock.html+ PNG + the design-notes section exist; composed from shipped primitives + token tiers only; render checklist + AA + dark parity pass.- Panels cover: the hub card, the field list (populated + empty + cap), add/edit with the five-type picker, the options editor (reorder/rename/archive/delete-when-unused/cap), the delete-field confirm naming the value count, and the read-only state.
design-notes.mdnames primitives + copy strings, the per-type glyph map (shared with 5.3.5), and records the deliberate non-features (no required flag, no layouts, no create-form placement — the 6.5 extension).- No improvised primitive; new token needs recorded for the code subtasks.
Context refs
design/projects/access-members.mock.html+ design-notes (6.4.1) — the settings page grammar to extend;app/(authed)/settings/project/page.tsx(the hub cards)- The board-settings reorder grammar (3.6 design) for drag handles
- The verified mirror behaviours in the Story 5.3 description (caps, hard delete, archive-vs-delete)
- Findings #35/#54; the design-mockup render checklist