# Frontend Design Rules This file is the single source of truth for UI implementation conventions in the dashboard (`dashboard/src/`). It applies to all feature work, including new pages, settings tabs, dialogs, and management surfaces. When proposing or implementing frontend changes, follow these rules unless a specific exception is documented below. This file should be updated whenever a new Syncfusion component is adopted, a color or pattern changes, or an exception is ratified. --- ## 1. Component Library — Syncfusion First Use Syncfusion components as the default choice for every UI element. The project uses the Syncfusion Material3 theme, registered globally in `dashboard/src/main.tsx`. The following CSS packages are imported there and cover all components currently in use: `base`, `navigations`, `buttons`, `inputs`, `dropdowns`, `popups`, `kanban`, `grids`, `schedule`, `filemanager`, `notifications`, `layouts`, `lists`, `calendars`, `splitbuttons`, `icons`. When adding a new Syncfusion component, add its CSS import here — and add the new npm package to `optimizeDeps.include` in `vite.config.ts` to avoid Vite import-analysis errors in development. Use non-Syncfusion elements only when: - The Syncfusion equivalent does not exist (e.g., native `` for file upload) - The Syncfusion component would require significantly more code than a simple HTML element for purely read-only or structural content (e.g., `