2.0 KiB
DCalc frontend-ui
frontend-ui is the progressive UI refactor of the current frontend application. The original
project remains available as the behavior baseline.
Foundation
- Vue 3, Vue Router, Pinia, Vite and TypeScript track the current stable release line.
- Reka UI provides accessible interaction primitives.
- Tailwind CSS 4 provides layout utilities without Preflight during the migration period.
- CSS variables define the stable semantic contract between components and themes.
- SCSS/CSS remains available for game textures, image borders and state effects.
class-variance-authoritydefines component variants in the local, source-owned UI layer.- Oxc (
oxlintandoxfmt) handles linting and formatting.
Theme model
Components consume --ui-* semantic variables. Each skin maps its own palette and effects to that
contract under [data-theme]. Add a theme stylesheet and register it in useTheme.ts; component
code should not need to change.
The initial themes are:
dcalc: tokens captured fromdesign/src-web.midnight: a second skin used to verify that components are not coupled to the classic palette.
Commands
pnpm install
pnpm dev
pnpm check
pnpm build
Open /components for the complete catalog of currently introduced components and their live
interactions. /ui-preview remains the smaller foundation smoke-test page.
See docs/ui-migration-standard.md for the reusable component
migration, theming, responsive implementation and browser QA standard.
The current catalog covers Button, Badge, Panel, Input, NumberField, Checkbox, RadioGroup, Switch, Rating, Select, Slider, Progress, Tabs, ItemSlot, DataTable, Tooltip, DropdownMenu and Dialog.
Migration rule
New UI components live under src/components/ui. Route changes, keyboard shortcuts and DNF data
mapping belong to pages, composables or domain components instead of generic primitives. Existing
calc-* components remain only until their business call sites are migrated.