2.4 KiB
2.4 KiB
Lovable — Settings Page UX Kit (Micro-App)
Before you start: read and follow DESIGN_SYSTEM_BRIEF.md, UX_TOKEN_CONTRACT.md, REPO_SCOPING_RULES.md, and ACCEPTANCE_CHECKLIST.md.
Goal
Build a UI/UX-rich settings dashboard micro-app demonstrating premium settings patterns that we can reuse across dashboards and product web apps.
This is design-led: prioritize spacing, typography, states, and interaction polish.
Constraints
- Only modify files in this repository.
- pnpm only.
- Next.js 16 App Router, React 19, TypeScript strict.
- TailwindCSS v4.
- No network calls.
- No
console.log. - No hardcoded colors — use
--ux-*CSS variables fromUX_TOKEN_CONTRACT.md. - Avoid unnecessary dependencies. If you add a dependency, justify why it is required.
Must-have routes
/overview landing/settingsmain settings dashboard/settings/accountaccount settings section/settings/notificationsnotifications settings section/settings/privacyprivacy settings section/settings/appearanceappearance settings section
App shell / IA
- Left settings nav (section list)
- Main content area
- Sticky top header with:
- search settings (filters visible settings rows)
- “Reset changes” (revert local edits)
- save status indicator (Saved / Saving / Error)
Core UX requirements
Settings layout patterns
- Section headers with description
- Rows with:
- label
- description
- control (toggle/select/input)
- optional inline error
Autosave behavior (local-only)
- Changes persist to localStorage
- Simulate async save:
- show “Saving…” for 400–800ms
- then “Saved”
- provide a demo toggle to simulate “Save failed” state
Danger zone
- “Delete local profile” action
- confirm dialog (destructive)
- requires typing a confirmation word (e.g. DELETE)
Accessibility
- Full keyboard navigation
- Correct labels for inputs
- Focus rings are token-driven
Visual / UX bar
- Premium spacing/typography
- Subtle animations
- Mobile responsive (nav collapses to drawer on small screens)
Deliverables
- Full Next.js app with scripts:
devcheck(must runtsc --noEmit+eslint)build(must runnext build --webpack)
Verification
From repo root:
pnpm installpnpm run checkpnpm run build
Output expectation
Open a PR that only changes files in this repo.