# Card System Komponenten ## BaseCard Die zentrale Komponente des Card Systems. ### Import ```svelte ``` ### Props | Prop | Type | Default | Beschreibung | | ------------ | ------------------ | ----------- | ------------------------------------------------------------------------------- | | `variant` | `string` | `'default'` | Visuelle Variante: `default`, `compact`, `hero`, `minimal`, `glass`, `gradient` | | `theme` | `ThemeConfig` | `{}` | Theme-Konfiguration | | `modules` | `ModuleConfig[]` | `[]` | Array von Modul-Konfigurationen | | `layout` | `LayoutConfig` | `{}` | Layout-Einstellungen | | `animations` | `AnimationConfig` | `{}` | Animations-Konfiguration | | `responsive` | `ResponsiveConfig` | `{}` | Responsive-Einstellungen | | `className` | `string` | `''` | Zusätzliche CSS-Klassen | | `style` | `string` | `''` | Inline-Styles | ### Varianten #### Default ```svelte ``` #### Compact ```svelte ``` #### Hero ```svelte ``` #### Minimal ```svelte ``` #### Glass ```svelte ``` #### Gradient ```svelte ``` ## CardBuilder Interaktiver Builder zum Erstellen von Karten. ### Import ```svelte ``` ### Props | Prop | Type | Default | Beschreibung | | --------------- | ------------- | ------- | ----------------------- | | `initialConfig` | `CardConfig` | `{}` | Initiale Konfiguration | | `theme` | `ThemeConfig` | `{}` | Theme für Preview | | `onSave` | `Function` | - | Callback beim Speichern | | `onCancel` | `Function` | - | Callback beim Abbrechen | ### Beispiel ```svelte saveCard(config)} onCancel={() => goto('/cards')} /> ``` ### Features - Drag & Drop für Module - Live-Preview - Modul-Editor - Export als JSON oder Svelte-Code - Theme-Auswahl ## ThemeProvider Stellt Theme-Kontext für Kinder-Komponenten bereit. ### Import ```svelte ``` ### Verwendung ```svelte ``` ### Theme-Struktur ```javascript const theme = { colors: { primary: '#3b82f6', secondary: '#8b5cf6', accent: '#ec4899', background: '#ffffff', surface: '#f9fafb', text: '#111827', textMuted: '#6b7280', border: '#e5e7eb', hover: '#f3f4f6', }, typography: { fontFamily: 'Inter, sans-serif', fontSize: { xs: '0.75rem', sm: '0.875rem', md: '1rem', lg: '1.125rem', xl: '1.25rem', }, }, spacing: { xs: '0.25rem', sm: '0.5rem', md: '1rem', lg: '1.5rem', xl: '2rem', }, borderRadius: { sm: '0.25rem', md: '0.5rem', lg: '0.75rem', xl: '1rem', full: '9999px', }, }; ``` ## ModuleEditor Editor für einzelne Module innerhalb des CardBuilders. ### Features - Prop-Editor für jedes Modul - Visuelle Konfiguration - Echtzeit-Vorschau - Validierung ## ProfileInfoCard Spezialisierte Karte für Benutzerprofile. ### Import ```svelte ``` ### Props ```typescript interface ProfileInfoCardProps { user: { username?: string; name?: string; avatar?: string; bio?: string; location?: string; website?: string; github?: string; twitter?: string; linkedin?: string; instagram?: string; showClickStats?: boolean; created?: string; }; totalLinks?: number; totalFolders?: number; totalClicks?: number; memberSince?: string; } ``` ### Beispiel ```svelte ``` ## LinksCard Karte zur Anzeige von Link-Sammlungen. ### Import ```svelte ``` ### Props ```typescript interface LinksCardProps { links: Link[]; folders: Folder[]; username: string; showClickStats?: boolean; oneLinkQR?: string; } ``` ### Features - Suche und Filter - Sortierung (Recent, Clicks, Title) - Ordner-Filter - QR-Code-Anzeige - Click-Statistiken ## Komposition ### Beispiel: Dashboard-Karte ```svelte ``` ## Styling ### CSS-Variablen Alle Komponenten nutzen CSS-Variablen für Theming: ```css --card-primary: #3b82f6; --card-secondary: #8b5cf6; --card-accent: #ec4899; --card-background: #ffffff; --card-surface: #f9fafb; --card-text: #111827; --card-text-muted: #6b7280; --card-border: #e5e7eb; ``` ### Tailwind-Integration Die Komponenten verwenden Tailwind-Klassen mit Theme-Präfix: - `bg-theme-primary` - `text-theme-text` - `border-theme-border` - etc. ## Best Practices 1. **Verwende die richtige Variante** für deinen Use-Case 2. **Halte Module fokussiert** - Ein Modul, eine Aufgabe 3. **Nutze Theme-Provider** für konsistentes Styling 4. **Teste Responsive-Verhalten** auf verschiedenen Geräten 5. **Optimiere Performance** durch lazy loading großer Module