Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changeset/23753-navigation-record-surface.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
'@objectstack/skills': patch
---

docs(skills): the `objectstack-ui` navigation rule states the derived record surface per flow — viewing routes to a page, creating or editing opens a modal bounded on desktop and full-screen on mobile, a light record uses a drawer (#23753)

Clause-②: no

`skills/objectstack-ui/rules/navigation.md`'s Surface bullet said a field-heavy object opens create/edit/detail as a full page and that mobile always pages. The platform's derivation (`deriveRecordFlowSurface` in `@objectstack/spec`) routes only the `view` flow to a page; the create, edit and child task flows never route — a field-heavy record, or any record on mobile, opens them in a modal that is bounded on desktop and full-screen on mobile, and a light record on desktop opens every flow in a drawer. The bullet now states that mapping and names the override only where the spec declares it: `navigation.mode` on the list view (`navigation` is not an object key). Text only; nothing an author writes changes.
8 changes: 4 additions & 4 deletions skills/objectstack-ui/rules/navigation.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,10 +128,10 @@ at runtime from how heavy the record is + the client viewport, because an author
(especially an AI) cannot know the client's screen. **Write the data (fields,
`fieldGroups`); let the platform lay it out.**

- **Surface (page vs drawer).** Derived from field count: a field-heavy object
opens create/edit/detail as a **full page**; a light one as a **drawer**. Mobile
always pages. Don't set it. To force it for a specific object, set
`navigation.mode` (`page` | `drawer` | `modal`) on the list view (or object) — or,
- **Surface.** Derived from field count and viewport. A field-heavy record, or
any on mobile, is viewed on a **page** and created/edited in a **modal**
(bounded on desktop, full-screen on mobile); otherwise a **drawer**. To force
it, set `navigation.mode` (`page` | `drawer` | `modal`) on the list view — or,
for bespoke layout, assign a record `Page`.
- **Field width.** **Omit it** (`auto` sizes by widget type × current columns —
textarea / rich-text / file take the row). Both keys are valid: `colSpan`
Expand Down
Loading