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
2026-05-27 15:17:04 +02:00
2026-05-19 23:38:14 +02:00
2026-05-27 15:17:04 +02:00
2026-05-15 00:41:38 +02:00
2026-05-15 00:41:38 +02:00
2026-05-19 23:38:14 +02:00
2026-05-15 00:41:38 +02:00
2026-05-15 00:41:38 +02:00
2026-05-15 00:41:38 +02:00
2026-05-15 00:58:19 +02:00
2026-05-27 15:17:04 +02:00
2026-05-15 00:41:38 +02:00
2026-05-15 00:41:38 +02:00
2026-05-15 00:41:38 +02:00

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:

https://git.wilkensxl.de/Toxic/league-of-legends-gui-overhaul.git

Git SSH remote:

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 dependencies:

npm install

Start the dev server:

npm run dev

Build:

npm run build

Lint/typecheck:

npm run lint

Run tests:

npm test

Audit production dependencies:

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

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
Description
No description provided
Readme 123 KiB
Languages
TypeScript 72.1%
CSS 27.3%
HTML 0.6%