What Patterns governs
A pattern is a named composition of two or more components, with rules, but no export. It sits between Components and Views in Titan’s four-tier ladder: a pattern tells you which components to combine, in what order, and how they behave together, but it ships nothing of its own — no import, no props API, no tokens. If you canimport it, it’s a Component. If it
defines a page’s regions, it’s a View. If it’s a recurring, rule-bound arrangement of existing
components that answers to neither of those tests, it’s a Pattern.
Patterns exist because component pages answer “what does a Button do” and views answer “what
regions does this page have,” and neither answers “how do these five components work together
to let someone delete a campaign safely” or “what happens across a whole form when three
fields are invalid at once.” That composition-level question is this section’s job.
Choosing a pattern
The reader’s intent, not the component name, is the useful index. Use this table before the card grid below — it is written in the words of the problem, not the solution.Coverage, stated honestly
Every pattern on this site carries the same standing right now: a first-pass proposal, not a decision confirmed against a shipped screen. Nothing here is generated, and nothing here has been signed off — the column below exists so that changes later, not so it reads as settled today.Choosing where to look
Destructive confirmation
Undo versus confirm, and three tiers of friction matched to consequence.
Bulk selection
Selecting many rows and acting on them as one batch.
Empty & zero states
Nothing here yet, versus nothing matched, versus something went wrong.
Error handling
Where a failure is shown, and what it must tell the user next.
Filtering & search
Narrowing a list, and keeping the narrowing visible and reversible.
Form validation
When an error appears, where it appears, and how many places say it at once.
Inline editing
Editing a value in place, and when that stops being the right idea.
Loading & skeletons
Matching a loading placeholder to the shape of what’s coming.
Notifications
Toast, banner, or alert — and what decides which.
Progressive disclosure
Keeping a screen simple without hiding what people actually need.
CRUD
Full page, drawer, modal, or inline — the decision tree for Create, Read, Update, and Delete.