Overview
Matter Vault uses a system of shared components that enforce consistent design across the entire application. Every authenticated page, panel, modal, badge, and form field must use these components. If a component doesn’t support what you need, extend it — don’t bypass it.Page Structure
PageHeader
Used on every authenticated page. Renders the H1 title and gold rule divider. Never build a page header inline.Eyebrow labels are not used. The breadcrumb provides page context.
PanelHeader
Used on every panel, table, or list section. Companion to PanelFooter.PanelFooter
Used on every panel with pagination or item counts.Forms
Field
Wraps every form label + input pair. Handles label, required indicator, hint text, and error messages.Input classes
Always import — never redeclare locally:FieldRow
Used for display-mode label + value pairs in detail cards and sidebars.Modals
Modal
All modals use this wrapper. Never use DialogContent directly.
Enforced behaviors:
- ESC always closes
- Click outside: blocked on form modals (
disableOutsideClick={true}), allowed on read-only modals - First input gets
autoFocus - Submit always has
disabled={!isValid || isPending} - No eyebrow text inside modals
- Always vertically centered
ConfirmModal
Every destructive action must use this. Never show a delete button without confirmation.Badges
Badge
All colored chips, status labels, and role badges use this component.Empty States
EmptyState
All empty panel states use this. Never build inline empty states.row size renders a single italic line for in-panel one-liners.