mirror of
https://github.com/Dvorinka/Dash.git
synced 2026-06-03 15:02:56 +00:00
refactor(frontend): restructure project layout and update API schema
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
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user