Audit focused on layout consistency and reusable UI structure across authenticated pages:
dashboardchatmealsstatsworkoutsgoalssettings
- Top navigation/back affordance was duplicated with small spacing/style differences across pages.
- Page-level header patterns were implemented ad hoc instead of reusable composition.
- Chat and meal workflows had mixed responsibilities in one screen, increasing cognitive load.
-
Atom:
web/src/components/ui/atoms/BackLink.tsx- Single source of truth for back navigation affordance.
-
Molecule:
web/src/components/ui/molecules/PageTopBar.tsx- Composes
BackLinkwith optional right-side action/content. - Used to stabilize top layout across pages.
- Composes
- Unified top bars on:
web/src/app/chat/page.tsxweb/src/app/meals/page.tsxweb/src/app/workouts/page.tsxweb/src/app/stats/page.tsxweb/src/app/goals/page.tsxweb/src/app/settings/page.tsx
Chatnow handles conversation intents (General/Coach).Mealsis a dedicated logging page with meal form + entries list.- Navigation updated to expose both
ChatandMealsas separate primary destinations.
- Extract reusable organisms:
PageSectionCardMetricsGridQuickActionGrid
- Extract reusable templates:
DataListTemplate(loading/empty/list/error states)FormTemplate(label/input/help/action slots)
- Remove remaining repeated inline card and heading markup from page files.
- Add Storybook-style examples (or local docs page) for each atom/molecule/organism.