2.9 KiB
Lovable — Notifications + UI States Kit
GitHub repo: saravanakumardb/temp_lovable-notify-states-kit
Push Instructions
- Push directly to
main— do NOT open a PR - Only modify files in this repo
Rules
- No
console.log - No network calls — mock data / localStorage only
- No hardcoded colors — no hex, no rgb/rgba/hsl, no
bg-[#123456]Tailwind classes - Do NOT commit
.env*,.next/,node_modules/,.vercel/ - pnpm only
pnpm run checkmust pass (tsc --noEmit+eslint)pnpm run buildmust pass (next build --webpack)
CSS Token Contract
Define in src/app/globals.css under :root (add .dark override):
--ux-bg— page background--ux-surface— card/panel surface--ux-surface-2— elevated surface--ux-border— borders--ux-text— primary text--ux-text-muted— secondary text--ux-accent— primary accent--ux-accent-foreground— text on accent--ux-danger— destructive/error--ux-warning— warning--ux-success— success--ux-ring— focus ring--ux-shadow— shadows
Use only via Tailwind: bg-[var(--ux-surface)], text-[var(--ux-text)], border-[var(--ux-border)]
Component Architecture
- Reusable components →
src/components/ - Pages in
src/app/**compose components only - Components must NOT import from
src/app/**
Stack
- Next.js 16 App Router, React 19, TypeScript strict
- TailwindCSS v4, pnpm
Goal
Build a UI/UX-rich Notifications + UI States Kit reusable across dashboards/admin-web, dashboards/tracker-web, and product web dashboards. Design-led: prioritize interaction polish, spacing, typography, accessibility.
Pages
/overview landing + links/toaststoast system demos/bannersinline banner demos/statesloading/empty/error patterns/dialogsconfirm dialog patterns/formsvalidation + helper text patterns
App Shell
Left sidebar nav, top bar: theme toggle, "Shortcuts" button
Toast System
- Variants: info, success, warning, error
- Title + optional description, optional action button (Undo), optional progress bar
- Stacking/queue (max visible + overflow count)
- Dismiss: close button, timeout
- Position demo: top-right, bottom-right, bottom-center
- ARIA live region (
politeinfo/success,assertiveerror); toasts must not steal focus
Banners
Inline page-level banners: info/success/warn/error variants, optional Retry action, dismissible
States Gallery
Skeleton primitives (text, avatar, card), EmptyState (icon + title + CTA), ErrorState (retry + copy JSON)
Demos: table loading, card grid loading, detail drawer loading
Dialogs
Destructive confirm, non-destructive confirm — focus trap + Esc close
Forms
Required fields + inline errors, disabled state, helper text, success state
Verification
pnpm install && pnpm run check && pnpm run build