What it is
A page whose entire body is one form, committed once — new campaign, integration settings, a routing rule with several independent fields. It’s the surface CRUD: Create’s tree lands on when an object is permanent enough to earn its own page and dense enough that a modal can’t hold it, but its sections don’t depend on each other in order. It’s also CRUD: Update’s surface for the same object once it already has data. You’re building one if the page’s job is “capture everything, then commit.” A page whose sections must be visited in a fixed order is a Wizard, not this.Region vocabulary
This archetype adds no regions. It uses the page frame as published. One addition is worth naming even though it isn’t a frame region: when the form has several independent sections, this archetype resolves CRUD: Create: TITAN-CREATE-03’s “a Table of Contents” into a concrete in-page anchor nav — see Contents — the form below.Choose this view when
- The object is permanent — it gets its own page and URL after this — per CRUD: Create’s Permanence axis.
- It needs more room than a modal — several fields, or several sections — per that same tree’s Density axis.
- Those sections don’t depend on each other in a fixed order. A reader could fill them in any sequence and the form would still make sense.
Choose something else when
Regions
What fills each region
Header — Left
Header — Right
Right is typically empty, or holds a secondary action that doesn’t commit the page — something
like “Preview,” never Save.
The page-level Save and Cancel belong in Footer, not here. This is worth stating directly
because it’s the most common instinct to violate: a form’s primary commit reads, at a glance,
like a page-level action, and Right is where page-level actions live per
TITAN-VIEW-03. But Right sits above a form
the reader hasn’t finished filling in — a Save button there implies the commit is available
before the page’s own footer says it is, and it’s out of reach once the reader has scrolled past
the header on a long form. The footer is anchored (or reachable) at the point where the reader
has actually finished, which is the only point committing should be possible.
Contents — the form
The form is the whole body. When it has several independent sections,Contents carries both
the sections and a way to move between them — resolving what
CRUD: Create: TITAN-CREATE-03 already
states (“a form with several independent sections is one page with a Table of Contents, not a
Wizard”) into a concrete answer.
Why an anchor nav rather than tabs. Tabs show one section and hide the rest, which is the
sectioned-but-not-sequential case the frame already reserves for a different signal — a tab bar
means “this page has sections of its own subject,” and here the sections are all one object being
authored together, not separate views of it. An anchor nav keeps every section visible on scroll,
which also means Form validation’s “surface
every invalid field” guidance never has to reveal a hidden tab to show an error — nothing is ever
hidden in the first place.
Footer
The default trailing-only arrangement per Views overview: Footer — Cancel and the commit action, commit last, per TITAN-VIEW-09 and TITAN-VIEW-10. This archetype is a single unit of work, not a step in a sequence, so the leading-and-trailing arrangement with aBack
action doesn’t apply here — that’s Wizard’s footer, not
this one.
Responsive and density behavior
Titan is desktop-first — most surfaces live atlg and xl, and xs/sm are rarely exercised
(see Layout & grid). What follows
is proposed with that in mind.
The anchor nav is a convenience, not a route. Per
TITAN-VIEW-07, a region dropped or
collapsed at a narrow viewport is never the only path to a function — scrolling reaches every
section with or without the nav, so collapsing it costs navigation speed, not access.
Accessibility
The page-level decisions are the frame’s, and they apply unchanged — see Views overview → Accessibility. Onemain,
one h1 on Title, region order matching visual order.
What is specific to this archetype:
- Each section heading is a real heading, descending from
Title’sh1without skipping a level, so a screen-reader user outlining the page sees the same structure the anchor nav exposes visually. - The anchor nav is a navigation landmark with an accessible name — “Form sections,” not “Navigation” — and its links move focus to the target section’s heading, not just scroll position, so a keyboard or screen-reader user lands somewhere announced.
- An invalid field is never hidden from view. Because every section renders on scroll rather than behind a tab or a step, Form validation’s error-surfacing guidance never has to additionally reveal a hidden section — the field is already visible or one scroll away.
- The commit button’s disabled or loading state is announced, per Form validation’s general rule for a page-level submit — a screen-reader user waiting on a long form’s submission needs the same feedback a sighted user gets from the button’s own state.
Constraints
Composed example
Related
- Views overview — the frame this archetype fills, including Footer’s trailing-only arrangement
- Wizard — the sibling archetype for dependent, ordered sections
- CRUD: Create — the decision tree that resolves to this page
- CRUD: Update — what changes when the object already has data
- Form validation — how fields on this page report errors
- Destructive confirmation — the unsaved-edits guidance this page inherits
Why it works this way
Independent sections stay on one page because hiding them costs more than scrolling does. Tabs and steps both imply an order or a boundary the reader has to reason about — which section am I on, is there another one, did I finish it. A form whose sections don’t depend on each other has none of that structure to communicate, so hiding them behind a control that implies structure teaches the reader a relationship that isn’t there. An anchor nav gives the same fast-access benefit — jump to Budget without scrolling past Overview — without pretending the sections are anything but parts of one form. The commit lives in the footer, not the header, because the header is available before the form is finished and the footer is not. A Save button inRight is reachable from the moment
the page loads, on a form that isn’t valid yet. The footer’s presence at the end of the scroll —
or its stickiness, where the page uses one — matches the commit’s own precondition: there’s
something to commit only once the reader has gotten there.