Plan: Worker Portal Design Mockups (Issue #420)
On this page
Status
| Step | Description | Status |
|---|---|---|
1 |
Mockup adoc. New |
Done (2026-05-11) |
2 |
Kroki PNG generation. The Antora docs build already wires Kroki for Mermaid rendering. Confirm |
Done (2026-05-11) |
3 |
Docs nav. Add the new mockups page to |
Done (2026-05-11) |
Issue: #420
Branch: docs/worker-portal-design-mockups
Labels: type::documentation, priority::low, service::web, workflow::ready
As-built note (2026-05-11): deviation-free landing. Case Detail’s 16 tab partials were documented via the program → tab-subset table rather than per-tab inline screenshots; pixel-perfect mockups stay out-of-scope. The Antora playbook at antora-playbook.yml:14-15 already has asciidoctor-kroki wired, so Step 2 was confirm-only with no new configuration.
Context
The 8 worker-portal pages (dashboard, case search, case detail, application process, renewal queue, applications list, notices list, appeals list) plus the login surface were built without explicit design mockups; design choices live only in the templates and accumulated CSS. Case detail in turn renders a program-dependent subset of 16 tab partials (services/canopy-web/templates/cases/tab_*.html): SNAP shows 8 (household, income, determination, notices, appeals, activity, abawd, guidance); TANF adds work-req + time-limits; Medicaid adds categories; CAPS adds authorization; WIC adds nutrition. New contributors lack visual reference for any of this. UAT prep needs printable mockups so caseworkers can comment on layout before clicking through.
This plan documents what’s already in production rather than propose a redesign. Real design refresh (post-UAT, possibly under the Dioxus rewrite) is a separate concern.
Code references
-
services/canopy-web/templates/— Askama templates as the source of truth for current layout. -
services/canopy-web/static/css/— Orchard CSS rules. -
rulesets/georgia/notices/components/orchard.typ:1-32— design tokens (color palette). -
docs/modules/ROOT/pages/services/canopy-web.adoc— existing service-reference page.
Scope
In scope:
-
One mockup adoc covering 8 page types + login.
-
Case detail documented as the SNAP-rendering 8-tab subset with a program → extra-tab map for TANF / Medicaid / CAPS / WIC.
-
Mermaid layout diagrams.
-
Orchard color-token annotations.
-
Antora nav integration.
Out of scope:
-
Design refresh / new mockups for proposed future UI. This documents existing surfaces.
-
Detailed pixel-perfect specifications. Mermaid box diagrams are sufficient for layout reference; pixel-level fidelity belongs in a real design tool, not Antora.
-
Mobile / responsive layouts. Worker portal is desktop-first; if responsive becomes a goal, that’s a separate plan.
-
Constituent-portal mockups (canopy-portal). Different surface, different audience.
-
Accessibility audit annotation in the mockup. axe-core results live elsewhere.
Design
Adoc structure (sketch):
= Worker Portal Mockups
:toc:
== Dashboard
[mermaid]
....
flowchart TD
H[Header: Logo, User Menu]
S[Sidebar: Navigation]
M[Main: Stats Cards]
C[Content: Recent Activity Table]
H --> M
S --> M
M --> C
....
*Orchard tokens:*
* Primary: `--color-orchard-primary` (used in stats cards)
* Secondary: `--color-orchard-secondary` (used in table headers)
* Background: `--color-orchard-bg`
== Case Search
…
Each section captures the same shape: layout diagram, color tokens, htmx interactions, primary actions.
Files Touched
| File | Change |
|---|---|
|
New file |
|
Add Design section + mockups page link |
|
Cross-link to mockups page |
|
Confirm Kroki/Mermaid wiring |
|
|
Verification
-
cargo xtask check-docs— Tier 1 docs unchanged; new file passes structure check. -
Local Antora preview:
npx antora docs/antora-playbook.yml(or equivalent) — mockup pages render with Kroki PNGs inline. -
Manual visual check: every section’s Mermaid diagram resolves to a readable layout box.
-
Open the built Antora site (not just the source
.adoc) and confirm each mockup PNG actually renders in the browser — Kroki config claiming rendering is not sufficient; the rendered output must be visible.
Documentation Updates
-
docs/modules/ROOT/pages/design/worker-portal-mockups.adoc— new -
docs/modules/ROOT/nav.adoc— Design nav section -
docs/modules/ROOT/pages/services/canopy-web.adoc— cross-link -
CHANGELOG.adoc— entry under== Unreleased/=== Added -
Plan archive: move to
plans/archive/post-merge