Shell UI
Intent
Own global application chrome and cross-cutting UI state (navigation, theme, notifications) without leaking business logic.
Responsibilities
-
Layout composition, global navigation, and app-level UI scaffolding.
-
Global UI state stores (theme, toasts/snackbars, search UI state) when truly cross-cutting.
Boundaries
-
Shell does not own capability business logic.
-
Shell consumes application-facing signals; it does not call repositories directly.
UI Rules
-
Standalone components only.
-
Bind templates to signals only using Angular control flow.
-
Use Material 3 tokens; avoid hardcoded CSS values for color/typography.
Navigation
-
Prefer router-driven composition and lazy loading.
-
Use functional guards/resolvers with inject() .
Accessibility
- Ensure keyboard navigation, focus visibility, semantic landmarks, and skip links for global layout.