Anpassung Erste Schritte
Passe die Benutzeroberfläche von Insight mithilfe von Design-Tokens, Komponenten-Themes und Vorlagen-Überschreibungen an deine Marke an.
Insight UI nutzt ein tokenbasiertes Designsystem, welches auf Tailwind CSS aufbaut. Farben, Abstände oder die Typografie können an einer Stelle angepasst werden, und die gesamte Benutzeroberfläche passt sich entsprechend an. Es gibt vier Ebenen der Anpassung:
1. Konfiguration über settings.py
Das INSIGHT_UI-Dictionary in den Django-Einstellungen steuert Optionen auf App-Ebene wie Branding-Elemente, SEO-Metadaten und Feature-Flags.
Laden der Konfiguration in Views
Um die Konfiguration in den Templates verfügbar zu machen, importiere get_config aus insight_ui.config und füge es diese View-Kontext hinzu.
Die Funktion get_config() führt deine settings.INSIGHT_UI mit den Standardwerten der Bibliothek zusammen und gibt ein Dictionary mit dem Schlüssel INSIGHT_UI zurück.
Die Templates können dann über {{ INSIGHT_UI.title }} usw. auf die Konfiguration zugreifen.
2. Design-Tokens (input.css)
Die Datei input.css ist die einzige verlässliche Quelle für das visuelles Design. Alle Tokens werden im Block @theme definiert und gelten automatisch für alle Komponenten.
Einrichtung: Tailwind-CLI
Um das Theme anzupassen, wird der Tailwind-Compiler benötigt. Wir empfehlen django-tailwind-cli.
- Paket installieren:
uv add django-tailwind-cli - Zu INSTALLED_APPS hinzufügen:
"django_tailwind_cli" - Die „input.css“ Datein in das Projekt kopieren (siehe unten)
- Setup ausführen:
python manage.py tailwind setup - Entwicklungsserver starten:
python manage.py tailwind runserver
input.css kopieren
Kopiere die Standarddatei input.css aus dem installierten Insight-UI-Paket in das Verzeichnis „static“ deines Projekts.
Passe anschließend die Anweisung @source am Anfang der kopierten Datei so an, dass sowohl deine Templates als auch die Insight-UI-Templates einbezogen werden:
Die Anweisung @source teilt Tailwind mit, welche Dateien nach Hilfsklassen durchsucht werden sollen. Ohne diese Anweisung werden nicht verwendete Klassen aus dem endgültigen CSS entfernt.
Farbsystem
Das Farbsystem umfasst Markenfarben, Statusfarben, Oberflächenfarben und Textfarben. Jede Farbe verfügt über Zustände für Hover- und aktive Interaktionen.
Markenfarben
--color-insight-primary
--color-insight-secondary
Statusfarben
--color-insight-success
--color-insight-warning
--color-insight-danger
--color-insight-info
Oberflächen- und Umrandungsfarben
Flächen schaffen eine visuelle Hierarchie. Jede Ebene hat eine passende Umrandungsfarbe.
bg-insight-base
bg-insight-surface
border-insight-surface
bg-insight-raised
border-insight-raised
bg-insight-overlay
border-insight-overlay
Diese Hilfsklassen können direkt verwendet werden oder du nutzt unsere kombinierten Oberflächenklassen, um Container schnell zu gestalten.
Textfarben
text-insight-headline
text-insight-body
text-insight-muted
text-insight-disabled
text-link
Typografie
Insight UI verwendet eine benutzerdefinierte Schriftart, welche über @font-face geladen wird.
Um eine eigene Schriftart zu verwenden, muss die Schriftartdatei ersetzt und die Verweise in input.css aktualisiert werden.
Schritt 1: Die Schriftart laden
Füge eine @font-face-Deklaration mit dem Pfad zu deiner Schriftartdatei hinzu (relativ zu input.css).
Schritt 2: Als Standard festlegen
Aktualisiere die Variable „--font-sans“ im @theme-Block, um deine Schriftart zu verwenden.
Die Standardschriftart Atkinson Hyperlegible Next ist auf Lesbarkeit und Barrierefreiheit optimiert. Achte bei der Auswahl einer Ersatzschriftart auf die Lesbarkeit in verschiedenen Schriftgrößen und -stärken.
Verwendung mehrerer Schriftarten
Es können mehrere Schriftfamilien für unterschiedliche Zwecke definiert werden. Tailwind bietet integrierte Variablen für serifenlose, serifenbehaftete und monospaced Schriftarten. Außerdem können benutzerdefinierte Schriftfamilien für bestimmte Anwendungsfälle wie Überschriften festlegen werden.
Verwende die Schriftarten in den Templates mit Tailwind-Klassen:
Textgröße und Zeilenabstand
Tokens für Textgröße und Zeilenabstand sind geplant, aber noch nicht verfügbar. Verwende bis dahin die Standard-Text-Utilities von Tailwind (text-sm, text-base, text-lg usw.).
Abstandsskala
Ein einheitliches Abstandsschema für Ränder, Innenabstände und Lücken.
xs
0.25rem (4px)
s
0.5rem (8px)
m
1rem (16px)
l
2rem (32px)
xl
4rem (64px)
Randradius
Radiuswerte für Ecken, von dezent bis vollständig abgerundet.
xs
s
m
l
xl
full
Semantische Radius-Token lassen sich bestimmten Anwendungsfällen zuordnen:
rounded-insight-controlfür Schaltflächen, Eingabefelderrounded-insight-surfacefür Karten, Panelrounded-insight-raisedfür erhöhte Elementerounded-insight-overlayfür Modalfenster, Dropdown-Menüs
Schatten
Schattierungen erzeugen Tiefe und eine visuelle Hierarchie.
subtle
surface
raised
overlay
Dunkelmodus
Jedes Farb-Token verfügt über eine dunkle Variante. Das Design wechselt automatisch basierend auf dem Attribut data-theme=„dark“ am Stammelement.
Dunkelmodus aktivieren
Set the data-theme attribute on the <html> element. You can use JavaScript to toggle it or respect the user's system preference.
Insight UI includes a theme_toggle component that handles this automatically. See the component documentation for usage.
Komponentenklassen
Der Block @layer components definiert wiederverwendbare CSS-Klassen für Schaltflächen, Badges, Eingabefelder und mehr. Diese Klassen nutzen die Design-Tokens.
Button-Varianten
Badge-Varianten
Oberflächenklassen
Kombinierte Klassen, welche für jede Höhenstufe Hintergrund, Rahmen, Schatten und Rahmenradius anwenden. Verwende diese für eine schnelle und einheitliche Gestaltung von Containern.
.insight-surface
.insight-raised
Du kannst einzelne Eigenschaften mithilfe von Utility-Klassen überschreiben:
3. Vorlagen überschreiben
Für strukturelle Änderungen, welche über das Styling hinausgehen, überschreibe die Komponentenvorlagen in deinem Projekt. Der Template-Loader von Django räumt deine Templates Vorrang vor den Standardvorlagen des Pakets ein.
Verwende vorzugsweise Tokens statt Template-Überschreibungen. Die meisten Anforderungen an das Branding lassen sich durch Anpassungen in der Datei „input.css“ erfüllen. Überschreibe die Templates nur, wenn sich die HTML-Struktur ändern soll, ARIA-Attribute hinzufügen werden oder das Verhalten von Komponenten anpassen werden muss.
Der Pfad zum Template muss genau übereinstimmen: templates/insight_ui/components/<component>.html
4. Benutzerdefinierte Icons
Insight UI enthält über 280 Icons von Heroicons. Mit dem Verwaltungsbefehl compile_icons können eigene Symbole hinzufügt oder vorhandene ersetzt werden.
Benutzerdefinierte Icons überschreiben mitgelieferte Icons mit demselben Namen. Die Namen der Icons werden aus den Dateinamen abgeleitet und normalisiert (Kleinbuchstaben, Bindestriche statt Unterstriche).
Sie dir alle verfügbaren Icons und die ausführliche Dokumentation an →
Kurzübersicht
Alle verfügbaren Design-Tokens auf einen Blick.
| Kategorie | Tokens | Muster für CSS-Variablen |
|---|---|---|
| Colors | primary, secondary, success, warning, danger, info | --color-insight-{name} |
| Surfaces | base, surface, raised, overlay | --color-insight-bg-{level} |
| Borders | surface, raised, overlay | --color-insight-border-{level} |
| Text | text-insight-headline, text-insight-body, text-insight-muted, text-insight-link | --color-insight-text-{role} |
| Spacing | xs, s, m, l, xl | --spacing-insight-{size} |
| Radii | xs, s, m, l, xl, full, control, surface, raised, overlay | --radius-insight-{size} |
| Shadows | subtle, surface, raised, overlay, focus | --shadow-insight-{level} |
Hilfsklassen
Vereinfachte Utility-Klassen für gängige Styling-Aufgaben.
| Kategorie | Klassen | Beschreibung |
|---|---|---|
| Background | bg-insight-{base|surface|raised|overlay} |
Hintergrundfarben der Oberflächen |
| Border | border-insight-{surface|raised|overlay} |
Farben der Oberflächenränder |
| Text | text-insight-headline, text-insight-body |
Kurzschreibweise für Textfarben |
| Combined | insight-{surface|raised|overlay} |
Alles in einem: Hintergrund + Rahmen + Schatten + Radius |