From 7e2ca4c9e2c43622465595820a26f273ebaa0015 Mon Sep 17 00:00:00 2001 From: Jonas <77726472+kobolol@users.noreply.github.com> Date: Tue, 28 Apr 2026 21:52:22 +0200 Subject: [PATCH] Rename hoard- to ui- and add UI components Mass rename of CSS classes, tokens and animations from the hoard- namespace to ui- (classes, variables like --ui-*, and keyframes). Introduces new UI components: EmptyState, StatusPill, and UserAvatar and updates admin views to import and use them. Updates many route/layout components and global.css to use the new ui- patterns and responsive variables. Also updates Impressum contact emails and adds .claude/settings.local.json to allow running npm scripts in the Claude local settings. --- .claude/settings.local.json | 7 ++ CLAUDE.md | 16 ++-- GUI/src/Layout.vue | 68 +++++--------- GUI/src/components/ui/EmptyState.vue | 16 ++++ GUI/src/components/ui/StatusPill.vue | 11 +++ GUI/src/components/ui/UserAvatar.vue | 9 ++ GUI/src/global.css | 66 +++++++------- GUI/src/routes/404NotFound.vue | 20 ++-- GUI/src/routes/Forbidden.vue | 20 ++-- GUI/src/routes/Home.vue | 70 +++++++------- GUI/src/routes/Impressum.vue | 48 +++++----- GUI/src/routes/admin/AdminUserDetail.vue | 48 ++++------ GUI/src/routes/admin/AdminUsers.vue | 91 ++++++++----------- .../routes/authentication/ChangePassword.vue | 18 ++-- GUI/src/routes/authentication/Login.vue | 35 +++---- GUI/src/routes/dashboard/Dashboard.vue | 52 +++++------ GUI/src/styles/global/page-layouts.css | 84 ++++++++--------- GUI/src/styles/global/surface-patterns.css | 72 +++++++-------- GUI/style.md | 12 +-- 19 files changed, 381 insertions(+), 382 deletions(-) create mode 100644 .claude/settings.local.json create mode 100644 GUI/src/components/ui/EmptyState.vue create mode 100644 GUI/src/components/ui/StatusPill.vue create mode 100644 GUI/src/components/ui/UserAvatar.vue diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..5f15b9d --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,7 @@ +{ + "permissions": { + "allow": [ + "Bash(npm run *)" + ] + } +} diff --git a/CLAUDE.md b/CLAUDE.md index 4f504a5..c850c06 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -45,18 +45,18 @@ Hoard ist ein bewusst einfach gehaltenes Solo-Projekt neben einer Ausbildung. Es - Der modernisierte Look (siehe `GUI/style.md` → „Modernisierungs-Direktive") darf hochwertiger und visuell präziser wirken, bleibt aber ruhig, klar und produktiv – kein Gaming-, Glassmorphism- oder Marketing-Look. ## Globale CSS-Basis -- `GUI/src/global.css` hält alle Design-Tokens (`:root`/`[data-theme='dark']`), Basis-Resets, Vuetify-Anpassungen und wiederverwendbare Patterns (`hoard-panel`, `hoard-toolbar`, `hoard-list-row`, `hoard-empty-state`, `hoard-status`, …). -- `GUI/src/styles/global/page-layouts.css` enthält Page-Shells (`hoard-page`, `hoard-page--centered`, `hoard-shell-grid`). -- `GUI/src/styles/global/surface-patterns.css` enthält wiederkehrende Surface-/Inhaltsbausteine (`hoard-kicker`, `hoard-action-row`, `hoard-panel-gradient`, `hoard-chip`, `hoard-spotlight` …). +- `GUI/src/global.css` hält alle Design-Tokens (`:root`/`[data-theme='dark']`), Basis-Resets, Vuetify-Anpassungen und wiederverwendbare Patterns (`ui-panel`, `ui-toolbar`, `ui-list-row`, `ui-empty-state`, `ui-status`, …). +- `GUI/src/styles/global/page-layouts.css` enthält Page-Shells (`ui-page`, `ui-page--centered`, `ui-shell-grid`). +- `GUI/src/styles/global/surface-patterns.css` enthält wiederkehrende Surface-/Inhaltsbausteine (`ui-kicker`, `ui-action-row`, `ui-panel-gradient`, `ui-chip`, `ui-spotlight` …). - Alle drei werden in `GUI/src/main.ts` einmalig importiert. - Neue Layouts/Patterns immer **zuerst** dort ergänzen, nicht in `scoped`-Styles duplizieren. ## Anleitung: CSS-Patterns verwenden -- Neue Seiten standardmäßig mit `hoard-page` aufbauen; für zentrierte Vollhöhen-Ansichten zusätzlich `hoard-page--centered`. -- Karten-/Shell-Container als `hoard-shell-grid hoard-panel` verwenden; Breite/Abstände pro Seite über CSS-Variablen setzen (`--hoard-shell-width`, `--hoard-shell-gap`, `--hoard-shell-padding`). -- Wiederkehrende Headlines/Kicker mit `hoard-kicker` (+ ggf. `--wide`/`--xs`). -- Aktionszeilen mit `hoard-action-row` bauen statt eigene Flex-Definitionen pro Seite. -- Gradient-Flächen über `hoard-panel-gradient` + Variablen steuern. +- Neue Seiten standardmäßig mit `ui-page` aufbauen; für zentrierte Vollhöhen-Ansichten zusätzlich `ui-page--centered`. +- Karten-/Shell-Container als `ui-shell-grid ui-panel` verwenden; Breite/Abstände pro Seite über CSS-Variablen setzen (`--ui-shell-width`, `--ui-shell-gap`, `--ui-shell-padding`). +- Wiederkehrende Headlines/Kicker mit `ui-kicker` (+ ggf. `--wide`/`--xs`). +- Aktionszeilen mit `ui-action-row` bauen statt eigene Flex-Definitionen pro Seite. +- Gradient-Flächen über `ui-panel-gradient` + Variablen steuern. - Lokales `scoped` CSS nur für wirklich seitenspezifische Sonderfälle. ## Aktueller Stand (Identity-Branch) diff --git a/GUI/src/Layout.vue b/GUI/src/Layout.vue index e37d60d..4199c9f 100644 --- a/GUI/src/Layout.vue +++ b/GUI/src/Layout.vue @@ -176,8 +176,8 @@ watch(