Files
apf_portal/apps
Julien Gautier 5795e3c19a
CI / commits (pull_request) Successful in 1m54s
CI / scan (pull_request) Successful in 2m3s
CI / check (pull_request) Successful in 2m10s
CI / a11y (pull_request) Successful in 2m31s
CI / perf (pull_request) Successful in 4m43s
feat(portal-shell): align header logo zone with the sidebar rail
Promote the sidebar's collapsed state to a shell-level
`LayoutStateService` (signal + localStorage persistence) so the header
can read it. Split the header into two zones: a logo zone whose width
matches the sidebar (16rem expanded / 4rem collapsed) and the
existing search + actions cluster on the right. The logo glyph stays
visible at both widths; the "APF Portal" wordmark hides when the
rail is collapsed.

The logo-zone right border and the sidebar right border share the
same x coordinate, so they read as one continuous column separator
running the full height of the shell. The width transition matches
the sidebar's (0.18s ease-out) and is skipped under
`prefers-reduced-motion: reduce`.

Side-effect: cleans up `<app-sidebar>` — its own signal + effect +
storage glue is gone; it now just delegates reads and the toggle
click to the service. Same UX, single source of truth, ready to
absorb future shared shell state (density, theme, ...) without
prop-drilling.
2026-05-11 01:11:05 +02:00
..