From a8b197592b0c7176e833bd49a4e6ca6fc6d30271 Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Mon, 8 Jun 2026 00:30:18 +0200 Subject: [PATCH] UI Skins --- UMSETZUNGSSTATUS.md | 6 + partials/desktop/shell.php | 43 ++++++- public/assets/desktop/desktop.css | 94 ++++++++++---- public/assets/desktop/desktop.js | 62 +++++---- public/assets/desktop/skins/apple/profile.php | 16 +++ public/assets/desktop/skins/apple/skin.css | 50 ++++++++ public/assets/desktop/skins/base/profile.php | 16 +++ public/assets/desktop/skins/base/skin.css | 24 ++++ public/assets/desktop/skins/linux/profile.php | 16 +++ public/assets/desktop/skins/linux/skin.css | 33 +++++ .../assets/desktop/skins/windows/profile.php | 16 +++ public/assets/desktop/skins/windows/skin.css | 37 ++++++ src/App/App.php | 2 + src/Desktop/SkinResolver.php | 118 ++++++++++++++++-- 14 files changed, 476 insertions(+), 57 deletions(-) create mode 100644 public/assets/desktop/skins/apple/profile.php create mode 100644 public/assets/desktop/skins/apple/skin.css create mode 100644 public/assets/desktop/skins/base/profile.php create mode 100644 public/assets/desktop/skins/base/skin.css create mode 100644 public/assets/desktop/skins/linux/profile.php create mode 100644 public/assets/desktop/skins/linux/skin.css create mode 100644 public/assets/desktop/skins/windows/profile.php create mode 100644 public/assets/desktop/skins/windows/skin.css diff --git a/UMSETZUNGSSTATUS.md b/UMSETZUNGSSTATUS.md index 1e63f732..1a663310 100644 --- a/UMSETZUNGSSTATUS.md +++ b/UMSETZUNGSSTATUS.md @@ -73,6 +73,7 @@ Offen: - frei platzierbare Icons sind noch nicht umgesetzt - Layout und App-Anordnung des Startmenues sind noch offen +- Skins muessen echte OS-Layouts 1:1 widerspiegeln: Farbschema, Leistenposition, Leistenverhalten, Fensterchrome und Desktop-Haptik fuer Windows, Apple und Linux Mint - persoenliche Startseite und oeffentliches Home sind noch nicht getrennt funktional - eingebettete Webseiten, Links, externe Integrationen und Dashboard-Inhalte fehlen @@ -93,12 +94,14 @@ Erfuellt: - `src/Desktop/` ist als globaler Desktop-Core vorhanden - `public/assets/desktop/` und `partials/desktop/` sind angelegt - Trennung zwischen globalem System, Desktop-UI und Modulen ist strukturell vorbereitet +- Skin-System wird auf gemeinsame Basis plus Skin-spezifische Ordnerstruktur vorbereitet Offen: - `modules//` im neuen Projekt enthalten noch keine wirklich angebundenen Module - `partials/landingpages/` und `partials/structure/` sind nur minimal vorbereitet - `tools/` und `debug/` sind noch nicht mit Funktion befuellt +- Skin-Ordnerkonzept mit `base`-Fallback sowie pro Skin getrennten Layout-/Asset-Dateien fachlich fertigziehen und abnehmen Nachweise: @@ -149,6 +152,7 @@ Phase 2 Desktop-Grundfunktionen: - `TEILWEISE`: Statusbereich - `ERLEDIGT`: Uhr - `ERLEDIGT`: erstes Hauptmenue oeffnet und schliesst per Menu-Button +- `OFFEN`: echte OS-spezifische Desktop-Layouts fuer Windows, Apple und Linux Mint Phase 3 Fenster-Manager: @@ -156,6 +160,7 @@ Phase 3 Fenster-Manager: - `ERLEDIGT`: Fenster fokussieren - `ERLEDIGT`: Fenster minimieren - `ERLEDIGT`: Fenster maximieren +- `ERLEDIGT`: Fenster-Layout und deckende Darstellung - `ERLEDIGT`: z-index-Verwaltung - `TEILWEISE`: Position und Groesse merken, technisch vorbereitet aber noch nicht abgenommen @@ -258,6 +263,7 @@ Hauptdateien: ### Prioritaet A +- echte OS-Skins mit eigenem Layout und Verhalten fuer Windows, Apple und Linux Mint fertigziehen - echtes Login mit Keycloak anbinden - persoenlichen Desktop-Zustand pro Nutzer speichern - Admin-App in echte Verwaltungsseiten zerlegen diff --git a/partials/desktop/shell.php b/partials/desktop/shell.php index 3a4337c2..f1eda32b 100644 --- a/partials/desktop/shell.php +++ b/partials/desktop/shell.php @@ -4,6 +4,8 @@ declare(strict_types=1); $payloadJson = json_encode($desktopPayload, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT); $activeSkin = $desktopPayload['meta']['active_skin']; +$baseSkinProfile = $desktopPayload['meta']['base_skin_profile']; +$skinProfile = $desktopPayload['meta']['skin_profile']; $wallpaper = $desktopPayload['desktop']['wallpaper']; ?> @@ -12,9 +14,37 @@ $wallpaper = $desktopPayload['desktop']['wallpaper']; <?= htmlspecialchars($desktopPayload['meta']['title'], ENT_QUOTES) ?> + + + + + + - +
+ +
+
+ + + Finder + Ablage + Bearbeiten + Fenster +
+
+
+ + +
+
+
@@ -61,7 +91,10 @@ $wallpaper = $desktopPayload['desktop']['wallpaper'];