Ab Version 9.0 verwenden Gantt-Skins CSS-Variablen, wodurch Sie die Komponente einfach anpassen und gestalten können.
Related sample: Change skin dynamically
Wichtige CSS-Variablen:
:root {
--dhx-gantt-theme: terrace;
--dhx-gantt-font-family: Inter, Helvetica, Arial, sans-serif;
--dhx-gantt-font-size: 14px;
--dhx-gantt-base-colors-white: #FFFFFF;
--dhx-gantt-base-colors-select: #EFF3FF;
--dhx-gantt-base-colors-hover-color: #e0e0e0;
--dhx-gantt-base-colors-border-light: #F0F0F0;
--dhx-gantt-base-colors-border: #DFE0E1;
--dhx-gantt-base-colors-icons: #A1A4A6;
--dhx-gantt-base-colors-disabled: #E9E9E9;
--dhx-gantt-base-colors-select: #E0E5F3;
--dhx-gantt-base-colors-text-light: #555D63;
--dhx-gantt-base-colors-text-base: #23272A;
--dhx-gantt-base-colors-text-on-fill: rgba(255, 255, 255, 0.90);
--dhx-gantt-base-colors-background: #FFFFFF;
--dhx-gantt-base-colors-background-alt: #F2F2F2;
--dhx-gantt-base-colors-primary: #537CFA;
--dhx-gantt-base-colors-warning: #FAB936;
--dhx-gantt-base-colors-error: #E3334E;
--dhx-gantt-base-colors-success: #1BC297;
--dhx-gantt-container-background: var(--dhx-gantt-base-colors-background);
--dhx-gantt-container-color: var(--dhx-gantt-base-colors-text-base);
--dhx-gantt-offtime-background: var(--dhx-gantt-base-colors-background-alt);
--dhx-gantt-scale-background: var(--dhx-gantt-container-background);
--dhx-gantt-scale-border-vertical: 1px solid var(--dhx-gantt-base-colors-border-light);
--dhx-gantt-scale-border-horizontal: 1px solid var(--dhx-gantt-base-colors-border);
--dhx-gantt-scale-color: var(--dhx-gantt-base-colors-text-light);
--dhx-gantt-grid-body-background: transparent;
--dhx-gantt-grid-scale-background: var(--dhx-gantt-scale-background);
--dhx-gantt-grid-scale-color: var(--dhx-gantt-scale-color);
--dhx-gantt-grid-scale-border-vertical: var(--dhx-gantt-scale-border-vertical);
--dhx-gantt-timeline-scale-background: var(--dhx-gantt-scale-background);
--dhx-gantt-timeline-scale-color: var(--dhx-gantt-scale-color);
--dhx-gantt-timeline-scale-border-vertical: var(--dhx-gantt-scale-border-vertical);
/* tasks */
--dhx-gantt-task-blue: linear-gradient(180deg, #527CFF 0%, #9751FC 100%);
--dhx-gantt-task-green: linear-gradient(180deg, #12D979 0%, #1ECDEB 100%);
--dhx-gantt-task-violet: linear-gradient(180deg, #D071EF 0%, #EE71D5 100%);
--dhx-gantt-task-yellow: linear-gradient(180deg, #FFB725 0%, #FFBB25 31.25%, #FAEA27 100%);
--dhx-gantt-task-background: var(--dhx-gantt-task-blue);
--dhx-gantt-task-border: none;
--dhx-gantt-task-color: var(--dhx-gantt-base-colors-text-on-fill);
--dhx-gantt-project-color: var(--dhx-gantt-task-color);
--dhx-gantt-task-line-text: var(--dhx-gantt-container-color);
--dhx-gantt-task-row-border: 1px solid var(--dhx-gantt-base-colors-border);
--dhx-gantt-task-row-background: var(--dhx-gantt-container-background);
--dhx-gantt-task-row-background--odd: var(--dhx-gantt-container-background);
--dhx-gantt-project-background: var(--dhx-gantt-task-green);
--dhx-gantt-milestone-background: var(--dhx-gantt-task-violet);
--dhx-gantt-task-marker-color: var(--dhx-gantt-task-background);
--dhx-gantt-popup-background: var(--dhx-gantt-container-background);
--dhx-gantt-popup-color: var(--dhx-gantt-container-color);
--dhx-gantt-tooltip-background: var(--dhx-gantt-base-colors-text-base);
--dhx-gantt-tooltip-color: var(--dhx-gantt-container-background);
--dhx-gantt-link-background: var(--dhx-gantt-base-colors-icons);
--dhx-gantt-link-background-hover: var(--dhx-gantt-base-colors-icons-hover);
--dhx-gantt-link-critical-background: var(--dhx-gantt-base-colors-error);
}
Alle diese Variablen befinden sich in der Datei codebase/sources/less/src/themes/variables.less innerhalb des Pakets.
Die einfachste Möglichkeit, das Aussehen des Gantt-Diagramms zu verändern, besteht darin, die CSS-Variablen in Ihrem Stylesheet zu überschreiben. Zum Beispiel:
<style>:root {
/* Skalen */
--dhx-gantt-scale-background: #8E8E8E;
--dhx-gantt-base-colors-border-light: #C5C5C5;
--dhx-gantt-base-colors-border: #DFE0E1;
--dhx-gantt-scale-color: #FFF;
--dhx-gantt-base-colors-icons: #00000099;
/* Aufgaben */
--dhx-gantt-task-background: #3db9d3;
--dhx-gantt-task-color: #FFFFFF;
--dhx-gantt-project-background: #6AA84F;
--dhx-gantt-project-color: #FFFFFF;
/* Verbindungen */
--dhx-gantt-link-background: #ffa011;
--dhx-gantt-link-background-hover: #ffa011;
}
</style>
Related sample: Change skin dynamically
Wenn Sie Variablen auf diese Weise setzen, werden die Standardstile durch Ihre eigenen ersetzt, sodass das Gantt-Diagramm Ihr bevorzugtes Aussehen verwendet.
Um eine korrekte Vererbung der Werte im gesamten Theme zu gewährleisten, definieren Sie die Variablen auf dem :root-Element.
Wenn Sie diese Styles auf :root-Ebene definieren, ist sichergestellt, dass sie im gesamten Komponentenbaum korrekt vererbt werden. So werden alle abhängigen Styles automatisch aktualisiert, wenn Sie eine Variable ändern, von der andere abhängen.
Beispielsweise erbt die Variable --dhx-gantt-scale-color
vom Haupt-Textfarben-Variable --dhx-gantt-container-color
.
--dhx-gantt-container-color
auf :root-Ebene neu definieren, wird --dhx-gantt-scale-color
entsprechend angepasst.<style>:root {
/* --dhx-gantt-scale-color und andere
Variablen, die von `--dhx-gantt-container-color` erben,
werden beeinflusst
*/
--dhx-gantt-container-color: #222;
}
</style>
--dhx-gantt-container-color
weiter unten im DOM, zum Beispiel innerhalb von .gantt_container, neu definieren, hat dies keinen Einfluss auf --dhx-gantt-scale-color
.<style>.gantt_container {
/* Nur Elemente, die direkt
--dhx-gantt-container-color verwenden, werden beeinflusst
*/
--dhx-gantt-container-color: #222;
}
</style>
dhtmlxGantt enthält Style-Dateien in verschiedenen Formaten:
Die Less-Dateien sind nützlich, wenn Sie bestehende Skins umfassend anpassen oder einen neuen Skin von Grund auf erstellen möchten.
Sie können codebase/sources/less wie ein NPM-Paket behandeln. Es enthält zwei Arten von Dateien:
Führen Sie in codebase/sources/less/ folgenden Befehl aus:
> npm install
Nach Abschluss der Installation können Sie die CSS-Dateien neu erstellen mit:
> npm run build
Oder um Änderungen zu überwachen und automatisch neu zu bauen:
> npm run watch
Diese Skripte kompilieren die CSS-Dateien aus den Quellen und legen sie im codebase-Ordner des Gantt-Pakets ab, wobei die bestehenden Dateien überschrieben werden.
Hier ist die Ordnerstruktur für less in Version 9.0 (kann sich in zukünftigen Versionen ändern):
Die Standardvariablen sind im Skin terrace
gesetzt, während andere Skins diese Variablen überschreiben und zusätzliche Styles hinzufügen.
terrace
Um einen neuen Skin zu erstellen, kopieren und benennen Sie einen bestehenden Skin aus sources/less/src/themes um. Gehen Sie folgendermaßen vor:
1) Kopieren und benennen Sie eine bestehende Datei 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";
Fügen Sie dann folgenden Inhalt hinzu:
:root[data-gantt-theme='custom'] {
--dhx-gantt-theme: custom;
--dhx-gantt-font-family: Roboto, Helvetica, Arial, sans-serif;
--dhx-gantt-base-colors-primary: #0288D1;
}
Beachten Sie, dass Skin-Variablen unter :root
mit dem Attributselektor data-gantt-theme
definiert werden sollten.
Jedes neue Theme muss die Variable --dhx-gantt-theme mit dem Namen des Themes enthalten.
3) Bauen Sie die Skins neu mit:
npm run build
Beachten Sie, dass Gantt je nach verwendetem Skin einige Voreinstellungen für den Kalender anwenden kann. Wenn Sie einen neuen Skin durch Kopieren eines bestehenden erstellen, müssen Sie diese Einstellungen möglicherweise manuell im Gantt anpassen.
Einige Stil-Aspekte des Gantt-Diagramms werden über JavaScript-Konfigurationen und nicht über CSS gesteuert. Beispiele sind:
Zurück nach oben