feat(portal-shell): app-shell layout with collapsable sidebar #83

Merged
julien merged 1 commits from feat/portal-shell/app-shell-layout into main 2026-05-11 00:36:42 +02:00

1 Commits

Author SHA1 Message Date
Julien Gautier c144cdcbd5 feat(portal-shell): app-shell layout with collapsable sidebar
CI / commits (pull_request) Successful in 1m39s
CI / scan (pull_request) Successful in 1m51s
CI / check (pull_request) Successful in 2m10s
CI / a11y (pull_request) Successful in 1m9s
CI / perf (pull_request) Successful in 2m7s
Switch the SPA from header+main+footer to a fixed header above a
sidebar/main split. The sidebar carries grouped navigation, can be
collapsed to an icon-only rail (state persisted in localStorage), and
hosts the accessibility-statement links the footer used to own. Adds
brand palette tokens (primary teal #12546c, accent orange #f7a919) as
Tailwind v4 @theme entries, an <app-icon> façade over lucide-angular
so the future icomoon sprite migration is a single-file change, and
the APF logo asset under public/logos/.

Menu data is static for v1 — items point to '#' placeholders, with the
Dashboard entry routerLink-bound so the active-state styling is
visible on the home page. The MenuItem shape already carries an
optional requiredPermissions field so the permission-aware filter (to
land alongside the auth flow per ADR-0009) plugs in without
restructuring. WCAG-relevant choices preserved: skip-link, role/aria
landmarks, aria-current="page" on active links, aria-expanded on the
toggle, prefers-reduced-motion respected on width transitions, and a
44px minimum hit-target on every interactive element (ADR-0016).

Footer component removed — its links migrated to the sidebar bottom.
2026-05-11 00:17:15 +02:00