From 40eb44cb6ac637997b00083da0fb268b5e26e973 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 4 Feb 2026 09:01:00 +0100 Subject: [PATCH] vue3-migration planning document --- packages/ui/PROJEKT.md | 517 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 517 insertions(+) create mode 100644 packages/ui/PROJEKT.md diff --git a/packages/ui/PROJEKT.md b/packages/ui/PROJEKT.md new file mode 100644 index 000000000..14104ccb1 --- /dev/null +++ b/packages/ui/PROJEKT.md @@ -0,0 +1,517 @@ +# @ocelot-social/ui - Projektdokumentation + +> Dieses Dokument dient als zentrale Planungs- und Statusübersicht für das UI-Library Subprojekt. +> Es ermöglicht das Pausieren und Wiederaufnehmen der Arbeit zu jedem Zeitpunkt. + +--- + +## 1. Projektziel & Vision + +**Kurzbeschreibung:** +Neue Vue 3 Komponentenbibliothek aufbauen, die später die Vue 2 Komponenten in der Webapp ersetzen soll. + +**Hintergrund:** +- Bestehendes Projekt nutzt Vue 2.6 mit Nuxt 2 +- Existierender `styleguide` Ordner als Git-Submodul (Vue 2, Vue CLI 3) +- Design-Token-System mit Theo vorhanden +- Branding erfolgt über SCSS-Dateien mit Variablen-Overrides +- **Problem:** Viele doppelte Komponenten, inkonsistente Styles, nicht konsequent genutztes Design-System + +**Vision:** +Ein stark definiertes und flexibles Design-System, das den Branding-Anforderungen von ocelot.social gerecht wird und eine saubere, schrittweise Migration von Vue 2 nach Vue 3 ermöglicht. + +**Geplanter Ansatz:** +Migration vorbereiten - schrittweise neue Komponenten in Vue 3 entwickeln, die das bestehende Design-System respektieren und flexible Branding-Optionen bieten. + +--- + +## 2. Tech-Stack + +| Komponente | Entscheidung | Notizen | +|------------|--------------|---------| +| Framework | **Vue 3 + Vite** | Schnellstes Setup, modernes Tooling | +| Build-Tool | **Vite** | Schnelles HMR, einfache Konfiguration | +| Dokumentation | **Histoire** | Vite-native Storybook-Alternative | +| Styling | **Tailwind CSS** | Mit CSS Custom Properties für Branding | +| Testing | **Vitest** | Vite-nativ, Jest-kompatible API | +| Paket-Name | **@ocelot-social/ui** | Unter ocelot-social npm Org | +| Komponenten-Prefix | **Os** | OsButton, OsCard, etc. | +| Vue 2 Kompatibilität | **vue-demi** | Library funktioniert in Vue 2 und Vue 3 | +| Linting | **eslint-config-it4c** | Enthält: TypeScript, Vue, Prettier, weitere Regeln | +| Release | **release-please** | Automatische Versionen und Changelogs | +| Icons | **unplugin-icons** | Eigene SVGs + Icon-Libraries kombinierbar | +| Browser-Support | **Modern only** | Chrome, Firefox, Safari, Edge (letzte 2 Versionen) | +| SSR | **Ja** | Nuxt-kompatibel | +| Dark Mode | **Ja, von Anfang an** | Alle Komponenten mit Light/Dark Varianten | +| Lizenz | **Apache 2.0** | Permissiv mit Patent-Schutz | +| Repository | **Monorepo** | Ocelot-Social/packages/ui/ | + +### Konventionen + +| Aspekt | Entscheidung | Notizen | +|--------|--------------|---------| +| Vue API | **`