belviskhoremk 728fc31e83 feat: introduce admin design tokens and redesign AdminLayout/AdminLogin
Create AdminApp.module.css with admin-specific design tokens (--admin-bg, --admin-surface, --admin-border, --admin-text, --admin-text-muted, --admin-primary, --admin-primary-hover, --admin-danger, --admin-radius, --admin-shadow, --admin-font, --admin-space-xs/sm/md/lg/xl) scoped to .adminRoot wrapper class to avoid collisions with public site tokens.

Create adminShared.module.css with composable component classes (page, card, table, form, error, button, buttonSecondary, buttonDanger) that all later admin pages will build against.

Wrap AdminApp Routes in div with adminRoot class to establish token scope.

Redesign AdminLayout.module.css to use new admin tokens with improved sidebar styling (240px width, better spacing, hover states, active link highlighting).

Redesign AdminLogin.module.css to use new admin tokens with improved form styling (better card styling, focus states, proper typography).

No changes to AdminLayout.tsx or AdminLogin.tsx needed — existing JSX structure matches new CSS selectors.

Claude-Session: https://claude.ai/code/session_01NhxA4npAXAxmCDEJt6kxSH
2026-08-13 08:58:00 +02:00

Braids by Mira

Public marketing site for Braids by Mira — landing page, product showcase, booking flow, and salon policies.

Scripts

  • npm run dev — start the local dev server
  • npm test (or npx vitest run) — run the frontend test suite
  • npm run build — type-check and build for production
  • npm run lint — run ESLint
  • npm run test:functions — run the Deno tests for the Edge Functions' shared email builders (requires Deno installed)
  • npm run seed — seed products, services, and the default schedule into a Supabase project (see below). Re-running it after admin-panel edits will revert those rows to the hardcoded seed defaults — use it for initial setup / disaster recovery, not routine use.

Backend (Supabase)

The backend lives in supabase/ — Postgres schema/RLS migrations, pgTAP tests, and Deno Edge Functions for booking/inquiry email notifications.

  • npx supabase start — start the local Docker-based Supabase dev stack (Postgres, Studio, Auth, Storage, Edge Functions runtime). Requires Docker.
  • npx supabase db reset — replay all migrations from scratch against the local database.
  • npx supabase test db — run the pgTAP test suite in supabase/tests/database/ against the local database.

Environment variables

Copy .env.example to .env.local and fill in:

  • VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY — frontend Supabase client config (exposed to the browser).
  • SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY — used only by scripts/seed.ts (server-side, never expose the service role key to the browser). These are distinct from the VITE_-prefixed frontend variables above.
Description
No description provided
Readme 3.9 MiB
Languages
TypeScript 77.5%
PLpgSQL 14.6%
CSS 7.1%
HTML 0.5%
JavaScript 0.3%