Skip to content

moooon

Motir

Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.

  • Vibe Project
  • Open Source
  • AI Agent
  • AI Loop
1
requests
0
upvotes
145
planned
1,361
shipped

Motir · Work items

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-danger confirm + 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.md names 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