Eigene Styles & Skripte
Während docmd-Themes flexible visuelle Standards bieten, können Sie benutzerdefinierte Stylesheets und interaktive Skripte über die Array-Optionen theme.customCss und theme.customJs in docmd.config.json injizieren.
Konfiguration für eigene Styles & Skripte
Eigene Stylesheets und clientseitige Skripte werden symmetrisch unter dem theme-Block konfiguriert:
{
"theme": {
"name": "default",
"customCss": [
"/assets/css/branding.css"
],
"customJs": [
"/assets/js/feedback-widget.js"
]
}
}
In früheren Versionen von docmd wurde benutzerdefiniertes JavaScript über ein Top-Level-Array "customJs" und eigenes CSS über "customCss" konfiguriert. Beide Top-Level-Schlüssel werden weiterhin vollständig als Fallbacks unterstützt, die Verschachtelung unter "theme" ist jedoch der empfohlene moderne Standard.
Benutzerdefinierte CSS-Überschreibungen
Verwenden Sie theme.customCss, um Standard-Theme-Variablen zu überschreiben oder neue Layoutregeln einzuführen:
{
"theme": {
"customCss": [
"/assets/css/branding.css"
]
}
}
Ausführungsschritte
- Platzieren Sie Ihre CSS-Datei im Assets-Verzeichnis Ihres Projekts (z. B.
docs/assets/css/branding.css). docmdkopiert Assets während des Builds in das kompilierte Ausgabeverzeichnis und fügt<link>-Tags automatisch in die Seitenheader ein.- Benutzerdefinierte CSS-Dateien werden nach den Theme-Stilen geladen, um sicherzustellen, dass Ihre benutzerdefinierten Regeln die Standard-Theme-Deklarationen sauber überschreiben.
Integration von eigenem JavaScript
Verwenden Sie theme.customJs für Skripte, die interaktive Funktionen hinzufügen oder Analytics von Drittanbietern integrieren:
{
"theme": {
"customJs": [
"/assets/js/feedback-widget.js"
]
}
}
Bewusstsein für den SPA-Router-Lebenszyklus
Benutzerdefinierte Skripte werden am Ende des <body>-Elements geladen. Da docmd während der Client-Navigation als Single Page Application (SPA) arbeitet:
- Vollständige Seitenneuladevorgänge finden beim Klicken auf interne Links nicht statt.
- Skripte, die DOM-Elemente untersuchen oder Event-Listener an diese anhängen, sollten SPA-Router-Lebenszyklus-Ereignisse abonnieren.
Vollständige Ereignissignaturen und Codebeispiele finden Sie unter Clientseitige Ereignisse.
Kaskaden-Reihenfolge
Stylesheets und Skripte werden in einer vorhersehbaren dreistufigen Reihenfolge geladen, sodass Ihre benutzerdefinierten Regeln immer Vorrang haben:
- Kern und Theme: Basisstile und Farbpaletten laden zuerst.
- Templates und Plugins: Strukturelle Layout-Templates und Plugin-Assets laden als Nächstes.
- Benutzerdefiniertes CSS und JS: Ihre
customCss- undcustomJs-Dateien laden zuletzt, sodass Ihre Deklarationen die Standardwerte sicher überschreiben.
Um mehr über strukturelle Layout-Überschreibungen zu erfahren, erkunden Sie Templates.
Bewahren Sie eine saubere Asset-Organisation durch die Trennung von /css- und /js-Unterverzeichnissen unter assets/ wahren. Die Verwendung expliziter Klassennamen in branding.css verhindert Stilkonflikte mit den Kern-docmd-Containerregeln.