Documentation Index
Fetch the complete documentation index at: https://grantmaster.dev/llms.txt
Use this file to discover all available pages before exploring further.
UI Pattern Selection Guide
Quick-reference for choosing the right layout primitive. This is a routing document — for component APIs and detailed rules, follow the See also links in each pattern card.Decision Flowchart
Comparison Table
| Pattern | Best For | Avoid When | Screen Coverage | Page Context? | Component |
|---|---|---|---|---|---|
| Bento Grid | KPI dashboards, role-based widget layouts | Single-purpose pages, linear content | Full page | N/A (is the page) | WidgetGrid |
| Kanban Board | Pipeline views, stage-based workflows, status tracking | Static lists, non-sequential data, dashboards | Full page | N/A (is the page) | KanbanBoard |
| Wizard | Onboarding, grant applications, multi-step setup | < 3 steps or independent fields | Full page | No — replaces page | TenantOnboardingWizard, BaseStep |
| Full-Screen Modal | Complex editing, multi-section forms, document review | Simple forms (≤ 5 fields) | ~96vw overlay | No — covers page | AppModal size full |
| Drawer | Record details, settings panels, read-heavy inspection | Complex editing, multi-step flows | Side panel (28rem) / bottom sheet | Yes — page visible | AppDrawer |
| Popover | Tooltips, contextual help, small menus | Forms, detail views, anything > 2 actions | Small floating panel | Yes — inline | Popover |
Pattern Cards
Bento Grid
Use when:- Building a role-based dashboard with multiple independent widgets
- Users need to customise, reorder, or hide content blocks
- Displaying KPIs, charts, and activity feeds in a scannable layout
- Content is widget-sized and does not require linear reading order
- The page has a single purpose or linear narrative
- Content is a form, table, or detail view
Kanban Board
Use when:- Items move through discrete stages or statuses (pipelines, approval queues)
- Users need spatial awareness of distribution across stages
- Drag-and-drop stage transitions are the primary interaction
- The data is naturally columnar by status (e.g. grant pipeline, task board)
- Items don’t have a clear stage/status progression (use a table or Bento Grid)
- The primary task is data entry or editing (use a form page or modal)
- There are more than ~7 columns — horizontal scrolling degrades usability
src/components/ui/KanbanBoard.tsx JSDoc for the full props interface.
Wizard
Use when:- The task has 3+ sequential steps with validation between them
- Progressive disclosure improves comprehension (onboarding, applications)
- Steps have dependencies — later steps depend on earlier input
- The user should not see the underlying page during the flow
- Fields are independent and can be filled in any order (use a page or modal)
- There are fewer than 3 steps (use a standard modal or page form)
Full-Screen Modal
Use when:- Editing a complex entity with multiple sections or nested sub-entities
- The user needs full focus without page distractions
- The form exceeds what fits in a standard
lgorxlmodal - Document review or side-by-side comparison layouts
- The form has ≤ 5 fields (use a standard
AppModal) - The user needs to reference the page behind (use a Drawer)
- The task is a multi-step workflow (use a Wizard)
Drawer
Use when:- Inspecting a record’s details while keeping the list or page visible
- Settings or configuration panels that augment the current view
- Read-heavy content where the user may return to the page frequently
- Mobile: bottom sheet for quick actions or previews
- The task requires full focus or complex form editing (use a full-screen modal)
- The content is a multi-step workflow (use a Wizard)
- The interaction is a simple confirmation (use
ConfirmDialog)
Popover
Use when:- Showing contextual help, definitions, or tooltips on hover/click
- Small inline menus or date pickers
- Non-blocking supplementary information
- Content fits in a small floating panel (default
w-72)
- Content requires scrolling or has more than 2-3 actions (use a Drawer)
- The user needs to fill a form (use a Modal)
- Information is critical and must not be missed (use
SurfaceNotice)
Cross-Reference Index
| Existing Doc | Patterns Covered |
|---|---|
| CRUD Interaction Matrix | Modal vs Page vs Wizard (field-count rules) |
| Modal System | Full-Screen Modal, Drawer, ConfirmDialog, DecisionDialog |
| Widget System | Bento Grid (sizes, registry, role templates) |
| Surface System | Page sections, metric grids, toolbars, empty states |
| Design System | Tokens, buttons, cards, badges, animation rules |