Ab Version 7.0 werden die Skins des Schedulers mithilfe von CSS-Variablen erstellt, was eine einfache Anpassung und Gestaltung ermöglicht.
Related sample: Customize and switch between themes
Wichtige CSS-Variablen:
:root {
--dhx-scheduler-font-family: Inter, Helvetica, Arial, sans-serif;
--dhx-scheduler-font-size: 14px;
--dhx-scheduler-base-colors-primary: #537CFA;
--dhx-scheduler-base-colors-warning: #FAB936;
--dhx-scheduler-base-colors-error: #E3334E;
--dhx-scheduler-base-colors-error-text: #FFFFFF;
--dhx-scheduler-base-colors-success: #1BC297;
--dhx-scheduler-base-colors-secondary: rgba(0, 0, 0, 0.04);
--dhx-scheduler-base-colors-select: #EFF3FF;
--dhx-scheduler-base-colors-border: #D0DBE3;
--dhx-scheduler-base-colors-icons: #A1A4A6;
--dhx-scheduler-base-colors-disabled: #E9E9E9;
--dhx-scheduler-base-colors-readonly: var(--dhx-scheduler-base-colors-icons);
--dhx-scheduler-base-colors-text-light: #44494E;
--dhx-scheduler-base-colors-text-base: #23272A;
--dhx-scheduler-base-colors-background: #FFFFFF;
--dhx-scheduler-container-background: var(--dhx-scheduler-base-colors-background);
--dhx-scheduler-container-color: var(--dhx-scheduler-base-colors-text-base);
--dhx-scheduler-scale-color: var(--dhx-scheduler-container-color);
--dhx-scheduler-base-padding: 4px;
--dhx-scheduler-border-radius: var(--dhx-scheduler-base-module);
--dhx-scheduler-event-colors-primary: #537CFA;
--dhx-scheduler-event-text-primary: rgba(255, 255, 255, 0.90);
--dhx-scheduler-toolbar-height: 40px;
--dhx-scheduler-header-border: var(--dhx-scheduler-default-border);
--dhx-scheduler-halfhour-border: 1px dotted var(--dhx-scheduler-base-colors-border);
/* events */
--dhx-scheduler-event-background-primary: var(--dhx-scheduler-base-colors-primary);
--dhx-scheduler-event-blue: linear-gradient(180deg, #527CFF 0%, #9751FC 100%);
--dhx-scheduler-event-green: linear-gradient(180deg, #12D979 0%, #1ECDEB 100%);
--dhx-scheduler-event-violet: linear-gradient(180deg, #D071EF 0%, #EE71D5 100%);
--dhx-scheduler-event-yellow: linear-gradient(180deg, #FFB725 0%, #FFBB25 31.25%,
#FAEA27 100%);
--dhx-scheduler-event-menu-background: var(--dhx-scheduler-popup-background);
--dhx-scheduler-event-menu-color: var(--dhx-scheduler-base-colors-primary);
--dhx-scheduler-event-background: var(--dhx-scheduler-event-blue);
--dhx-scheduler-event-border: none;
--dhx-scheduler-event-color: var(--dhx-scheduler-event-text-primary);
--dhx-scheduler-event-line-text: var(--dhx-scheduler-container-color);
--dhx-scheduler-event-marker-color: var(--dhx-scheduler-event-background);
--dhx-scheduler-popup-background: var(--dhx-scheduler-container-background);
--dhx-scheduler-popup-color: var(--dhx-scheduler-container-color);
--dhx-scheduler-popup-border: none;
--dhx-scheduler-popup-border-radius: var(--dhx-scheduler-border-radius);
}
Alle diese Variablen befinden sich in der Datei codebase/sources/less/src/themes/variables.less innerhalb des Pakets.
Die einfachste Möglichkeit, das Erscheinungsbild des Schedulers zu ändern, besteht darin, die CSS-Variablen in Ihrem eigenen Stylesheet zu überschreiben. Zum Beispiel:
<style>:root {
--dhx-scheduler-base-colors-primary: #01579B;
--dhx-scheduler-event-background: #33B579;
--dhx-scheduler-event-color: #FFFFFF;
--dhx-scheduler-base-colors-border: #B0B8CD;
--dhx-scheduler-border-radius:2px;
}
</style>
Related sample: Customize and switch between themes
Wenn Sie Variablen auf diese Weise setzen, ersetzen Sie die Standardstile durch Ihre eigenen, und diese Änderungen werden im gesamten Scheduler angewendet.
Für eine konsistente Vererbung der Werte im gesamten Theme ist es am besten, Variablen auf dem :root-Element zu definieren.
Wenn Sie diese Styles auf der :root-Ebene definieren, wird sichergestellt, dass sie im gesamten Component korrekt vererbt werden. So werden Änderungen richtig weitergegeben, wenn eine Variable von einer anderen abhängt.
Zum Beispiel erbt die Variable --dhx-scheduler-scale-color
ihren Wert von --dhx-scheduler-container-color
.
--dhx-scheduler-container-color
auf der :root-Ebene neu definieren, wird auch --dhx-scheduler-scale-color
entsprechend aktualisiert.<style>:root {
/* --dhx-scheduler-scale-color und andere
Variablen, die von `--dhx-scheduler-container-color` erben,
werden beeinflusst
*/
--dhx-scheduler-container-color: #222;
}
</style>
--dhx-scheduler-container-color
tiefer im DOM, z.B. innerhalb von .dhx_cal_container, neu definieren, wird --dhx-scheduler-scale-color
nicht geändert.<style>.dhx_cal_container {
/* Nur Elemente, die direkt
--dhx-scheduler-container-color verwenden, werden beeinflusst
*/
--dhx-scheduler-container-color: #222;
}
</style>
dhtmlxScheduler stellt Styles in folgenden Formaten bereit:
Die LESS-Quelldateien sind nützlich, wenn Sie bestehende Skins umfassend anpassen oder einen neuen Skin erstellen möchten.
Sie können codebase/sources/less als NPM-Paket einrichten. Dieser Quellordner enthält zwei Arten von Dateien:
Führen Sie im Verzeichnis codebase/sources/less/ folgenden Befehl aus:
> npm install
Nach Abschluss der Installation können Sie die CSS-Dateien mit diesen Befehlen neu erstellen:
> npm run build
Oder um Änderungen zu überwachen und automatisch neu zu bauen:
> npm run watch
Diese Skripte kompilieren CSS aus den Quellen und legen das Ergebnis im codebase-Ordner des Scheduler-Pakets ab, wobei die bestehenden CSS-Dateien ersetzt werden.
Die Ordnerstruktur von less für Version 7.0 (kann sich in zukünftigen Versionen ändern) sieht wie folgt aus:
Die Standardvariablen sind im terrace
-Skin definiert, während andere Skins diese Variablen überschreiben und eigene Styles hinzufügen.
terrace
Um einen neuen Skin zu erstellen, kopieren und benennen Sie zunächst einen bestehenden Skin aus sources/less/src/themes um. Gehen Sie wie folgt vor:
1) Kopieren und benennen Sie eine der vorhandenen Skin-Dateien um. Zum Beispiel:
-> kopieren:
codebase/sources/less/src/themes/material.less
-> umbenennen in:
codebase/sources/less/src/themes/custom.less
2) Importieren Sie Ihre neue Datei in sources/less/src/themes/index.less wie folgt:
@import "./custom";
Definieren Sie dann Ihre eigenen Variablen wie folgt:
:root[data-scheduler-theme='custom'] {
--dhx-scheduler-theme: custom;
--dhx-scheduler-font-family: Roboto, Helvetica, Arial, sans-serif;
--dhx-scheduler-base-colors-primary: #0288D1;
}
Denken Sie daran, Skin-Variablen unter dem :root
-Selektor mit dem Attribut data-scheduler-theme
zu definieren.
Jedes neue Theme sollte die Variable --dhx-scheduler-theme enthalten, die auf den Namen des Themes gesetzt ist.
3) Erstellen Sie die Skins neu mit:
npm run build
Beachten Sie, dass der Scheduler je nach verwendetem Skin einige vordefinierte Einstellungen anwenden kann. Wenn Sie einen neuen Skin durch Kopieren eines bestehenden erstellen, müssen Sie ggf. die entsprechenden Scheduler-Einstellungen manuell anpassen.
Einige Styling-Optionen im Scheduler werden nicht ausschließlich über CSS gesteuert, sondern über JavaScript-Konfigurationen gesetzt. Dazu gehören: