mirror of
https://github.com/Dvorinka/Dash.git
synced 2026-06-04 07:22:56 +00:00
17a579880f
Relocate frontend source code from `next-app/` to `frontend/` to align with the new project structure. This includes removing the old Next.js boilerplate files and establishing a cleaner workspace. Additionally, updates the OpenAPI specification to include support for the `immich` widget type and its corresponding configuration schema. - Move frontend files to `frontend/` - Delete obsolete `next-app/` directory and its configuration - Add `immich` widget type to `openapi.yaml` - Update `FrontendPlan.md` with dashboard refactor and UX direction
39 lines
1.4 KiB
Markdown
39 lines
1.4 KiB
Markdown
# Dash Frontend – Agent Rules
|
||
|
||
## Scope
|
||
- This agent may edit: `/frontend`
|
||
- This agent must not edit `/backend`, `/db`, or `/openapi`
|
||
|
||
## Tech Stack
|
||
- Next.js 15 App Router + React 19 + TypeScript strict
|
||
- Tailwind CSS v4 + shadcn/ui (new-york style)
|
||
- `@tanstack/react-query` for server state
|
||
- `@dnd-kit` for drag-and-drop
|
||
- `openapi-typescript` + `openapi-fetch` for API client (generated from `../openapi/openapi.yaml`)
|
||
|
||
## Commands
|
||
- `npm run dev` — start dev server (Turbopack)
|
||
- `npm run build` — production build
|
||
- `npm run typecheck` — `tsc --noEmit`
|
||
- `npm run lint` — Next.js lint
|
||
- `npm run api:generate` — regenerate API types from OpenAPI spec
|
||
|
||
## Design
|
||
- Dark-first, Vercel-inspired aesthetic
|
||
- 3 themes: light, dark, casaos (glassmorphism)
|
||
- Geist Sans + Geist Mono fonts
|
||
- Shadow-as-border technique (no visible borders, use box-shadow)
|
||
- See `../Design.md` for full design system
|
||
|
||
## API Contract
|
||
- All types come from `../openapi/openapi.yaml`
|
||
- Do not invent contract fields outside OpenAPI
|
||
- API base URL: `NEXT_PUBLIC_API_BASE_URL` (default `http://localhost:8080`)
|
||
|
||
## Component Rules
|
||
- Use shadcn/ui primitives, do not rebuild from scratch
|
||
- All interactive elements must have focus rings
|
||
- Prefer `font-mono uppercase tracking-wide` for labels/badges
|
||
- Service cards are square aspect-ratio, icon + name + URL badges
|
||
- Groups are collapsible sections with chevron toggle
|