42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
# Demo Runtime Flows
|
|
|
|
## Demo App Purpose
|
|
|
|
The demo app (`demo/`) is a runnable reference for shared UI patterns. It is not the public
|
|
integration surface for host repositories.
|
|
|
|
## HTTP Routes (initial)
|
|
|
|
- `GET /` - pattern bundle catalog page
|
|
- `GET /healthz` - health endpoint
|
|
- `GET /static/*` - static assets
|
|
|
|
## Demo Shell Visual Mode (Current Baseline)
|
|
|
|
- The main demo shell uses a dual visual baseline:
|
|
- `Vapor Soft` for light/system-light mode
|
|
- `Vapor Night` for dark/system-dark mode
|
|
- Theme selection in the main demo shell is system-driven (`prefers-color-scheme`) only.
|
|
- The style playground route may exist for internal experimentation, but it is not part of the
|
|
primary demo navigation/catalog when the baseline is under active refinement.
|
|
|
|
## Page Render Flow (`GET /`)
|
|
|
|
1. Request hits `net/http` server mux
|
|
2. Handler prepares bundle/pattern catalog view model
|
|
3. Embedded templates render HTML response
|
|
4. Static CSS/JS loaded from embedded assets
|
|
|
|
## Interaction Flow Guardrail (Server-Rendered UI)
|
|
|
|
- Query-driven interactions (filters, pagination, segmented tabs, bulk actions, modal open/step state)
|
|
must preserve the user's reading position on the page.
|
|
- Canonical mechanism in this repo: anchor-to-module links/forms (for example `#table-filters`,
|
|
`#table-list`, `#controls-selection`, `#timeline-drilldown`).
|
|
- JS scroll restoration is optional and not required for the base contracts.
|
|
|
|
## Failure Behavior
|
|
|
|
- Template parse/render errors return `500`
|
|
- No DB calls or external services in bootstrap demo
|