# 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 from `UX_TOKEN_CONTRACT.md`.
- Avoid unnecessary dependencies. If you add a dependency, justify why it is required.

## Must-have routes

- `/` overview landing
- `/settings` main settings dashboard
- `/settings/account` account settings section
- `/settings/notifications` notifications settings section
- `/settings/privacy` privacy settings section
- `/settings/appearance` appearance 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:
  - `dev`
  - `check` (must run `tsc --noEmit` + `eslint`)
  - `build` (must run `next build --webpack`)

## Verification

From repo root:

- `pnpm install`
- `pnpm run check`
- `pnpm run build`

## Output expectation

Open a PR that only changes files in this repo.
