Files
ToxicCrzay270 ba4616bfeb
Some checks failed
Codex Template Compliance / template-compliance (push) Successful in 5s
GUI Smoke Test / gui-smoke (push) Failing after 23m39s
Release Dry Run / release-dry-run (push) Successful in 16s
Build / build (push) Failing after 27m29s
Scheduled Security Scan / security-scan (push) Failing after 8s
Scheduled Repository Cleanup Check / cleanup-check (push) Successful in 6s
Scheduled Dependency Check / dependency-check (push) Successful in 15s
Document SSH Gitea remote
2026-05-27 15:17:04 +02:00

148 lines
3.4 KiB
Markdown

# League of Legends GUI Overhaul
A React/Vite prototype for a modern, dark, MOBA-/fantasy-inspired client interface. The goal of iteration 1 is a stable base GUI: routing, layout, reusable components, mock data, centralized theme tokens, tests, and documentation.
This project does not use Riot assets and is not a 1:1 clone of the official League of Legends client.
Repository:
```text
https://git.wilkensxl.de/Toxic/league-of-legends-gui-overhaul.git
```
Git SSH remote:
```text
ssh://git@git.wilkensxl.de:2222/Toxic/league-of-legends-gui-overhaul.git
```
## Tech Stack
- React
- Vite
- TypeScript
- React Router
- Vitest
- Testing Library
- CSS Custom Properties
## Setup
For detailed installation steps, see [INSTALL.md](INSTALL.md).
Install dependencies:
```powershell
npm install
```
Start the dev server:
```powershell
npm run dev
```
Build:
```powershell
npm run build
```
Lint/typecheck:
```powershell
npm run lint
```
Run tests:
```powershell
npm test
```
Audit production dependencies:
```powershell
npm run audit
```
CI verification runs on the Gitea runner through `.gitea/workflows/build.yml`.
GUI smoke verification runs on the Gitea runner through `.gitea/workflows/gui-smoke.yml`. It builds the app, starts `vite preview`, opens the UI in Chromium, and uploads a screenshot artifact.
## Project Structure
```text
src/
|-- app/
|-- components/
| `-- ui/
|-- config/
|-- data/
|-- features/
|-- layouts/
|-- pages/
|-- styles/
|-- test/
`-- types/
```
## Extending The App
Add a page:
1. Create a component in `src/pages/`.
2. Register it in `src/config/routes.tsx`.
3. Add a navigation item in `src/config/navigation.ts` only if it should appear in the sidebar.
Add a navigation item:
1. Add an entry with `id`, `label`, `path`, and optional `iconName`, `section`, `enabled`.
2. Keep sidebar rendering generic; do not hardcode menu entries in `AppShell`.
Adjust theme tokens:
1. Edit `src/styles/theme.css`.
2. Add preset overrides with `[data-theme="preset-name"]`.
3. Prefer tokens over page-level hardcoded colors, spacing, shadows, or radii.
Extend mock data:
1. Add or edit records in `src/data/`.
2. Keep display logic in pages or feature modules, not inside mock files.
## Iteration 1 Includes
- App Shell with header, sidebar, content area, and status footer
- Routes for Home, Play, Champions, Profile, and Settings
- A mock champion detail route at `/champions/:championId`
- A right-side Social Sidebar powered by friend mock data
- Session-only theme presets from Settings
- Prototype Toast flows from header, settings, and social actions
- Base UI components: Button, Panel, SearchInput, Dropdown, Modal, Tabs, Tooltip, Toast
- Mock data for champions, friends, news, and match history
- Central CSS theme tokens
- Smoke tests for rendering, navigation, routing, and core UI components
## Iteration 1 Does Not Include
- Login
- Riot API integration
- Matchmaking
- Persistence
- Full champion detail content beyond the first placeholder route
- Plugin engine
- Final visual polish
- Official Riot or League assets
## Next Iterations
- Polish the App Shell visuals
- Add ability, skin, and progression modules to champion detail pages
- Expand the social sidebar with parties, invites, and richer presence
- Add persisted theme preferences
- Use Modal flows in more page-level actions
- Improve responsive behavior
- Add subtle transitions and animation states
- Plan a lightweight plugin/module extension layer