The repository had no root README at all, and frontend/README.md was still the stock Vite template. Add a bilingual (EN/RU) overview covering the mod, site, and backend plus how they connect (%link, %config save/load), replace the frontend README with the actual stack, layout, and scripts, and fix the mod README's broken DEVELOPMENT.md link to point at DEV_GUIDE.md.
49 lines
2 KiB
Markdown
49 lines
2 KiB
Markdown
# LoVisual Website
|
|
|
|
The frontend for [LoVisual](../README.md) - a marketing site with a live in-game GUI demo,
|
|
download page, documentation, themes/showcase pages, and an account dashboard with a cloud
|
|
config manager. UI is fully bilingual (Russian default, English toggle, persisted in the URL).
|
|
|
|
## Stack
|
|
|
|
- **React 19 + TypeScript + Vite**, package manager: **bun**
|
|
- **Tailwind CSS v4** with custom design tokens (radii, glass panels, control sizing)
|
|
- **TanStack Query** for backend calls, **react-router** for pages
|
|
- **react-i18next** - `ru`/`en` resources per feature, compile-time key parity via `satisfies`
|
|
- **motion/react** for animation, **vitest + Testing Library** for tests
|
|
- **oxlint** for linting
|
|
|
|
## Layout
|
|
|
|
```
|
|
src/
|
|
├── app/ router, providers, App shell
|
|
├── features/ one folder per domain (account, cloud, demo, themes, ...)
|
|
│ └── <f>/ api.ts · i18n/{ru,en}.ts · components/ · tests/
|
|
├── pages/ route-level pages composing features
|
|
├── shared/ ui primitives, i18n bootstrap, easter eggs, helpers
|
|
└── test/ vitest setup and utilities
|
|
```
|
|
|
|
Feature-folder rules: API calls, translations and components live together; no cross-feature
|
|
imports except through `shared/`.
|
|
|
|
## Scripts
|
|
|
|
```bash
|
|
bun install # install dependencies
|
|
bun run dev # dev server on http://localhost:5173 (proxies /api to the backend)
|
|
bun run test # vitest run
|
|
bun run build # tsc -b + vite build → dist/
|
|
bun run lint # oxlint
|
|
bun run gen:themes # regenerate theme tokens from the mod palette (scripts/extract-themes.ts)
|
|
```
|
|
|
|
The dev server expects the Rust gateway on `127.0.0.1:8080` (see [`backend/`](../backend));
|
|
without it, API-backed pages degrade to demo/offline states by design.
|
|
|
|
## Testing
|
|
|
|
Unit and component tests are colocated in `features/*/tests/` and `shared/**/tests/`;
|
|
run a single file with `bunx vitest run src/features/account/tests/account.test.tsx`.
|
|
Translation parity (ru ↔ en key sets) is enforced at compile time and in tests.
|