Integrierte Themes
Die DHTMLX Spreadsheet-Bibliothek bietet 4 vordefinierte Themes:
- Helles Theme ("light") - wird standardmassig verwendet
- Dunkles Theme ("dark")
- Helles Hochkontrast-Theme ("contrast-light")
- Dunkles Hochkontrast-Theme ("contrast-dark")
Die Spreadsheet-Themes wurden in Ubereinstimmung mit internationalen Standards entwickelt. Die Hochkontrast-Themes helfen Benutzern mit Sehbehinderungen. Informationen zum Kontrast der Themes und zum Indikator für den Tastaturfokus in Spreadsheet finden Sie im Abschnitt High contrast and focus des Leitfadens zur Barrierefreiheit. Informationen zur Barrierefreiheit der DHTMLX Suite-Widgets finden Sie im Artikel Barrierefreiheitsunterstutzung.
Sie konnen alle Themes im folgenden Beispiel ausprobieren:
Helles Theme (Standard)

Das Standard-Theme "light" wird mithilfe der unten aufgefuhrten CSS-Variablen konfiguriert:
:root, [data-dhx-theme] {
/* Basisfarben */
--dhx-color-white: #fff;
--dhx-color-gray-100: #e6e6e6;
--dhx-color-gray-200: #ccc;
--dhx-color-gray-300: #b3b3b3;
--dhx-color-gray-400: #999;
--dhx-color-gray-500: #808080;
--dhx-color-gray-600: #666;
--dhx-color-gray-700: #4d4d4d;
--dhx-color-gray-800: #333;
--dhx-color-gray-900: #1a1a1a;
--dhx-color-black: #000;
/* Ende Basisfarben */
/* Schrift */
--dhx-font-family: "Roboto", Arial, Tahoma, Verdana, sans-serif;
--dhx-font-weight-regular: 400;
--dhx-font-weight-medium: 500;
--dhx-font-weight-bold: 700;
--dhx-font-size-small: 12px;
--dhx-font-size-normal: 14px;
--dhx-font-size-large: 16px;
--dhx-line-height-small: 16px;
--dhx-line-height-normal: 20px;
--dhx-line-height-large: 24px;
--dhx-font-color-primary: rgba(0, 0, 0, .7);
--dhx-font-color-secondary: rgba(0, 0, 0, .5);
--dhx-font-color-additional: rgba(0, 0, 0, .3);
--dhx-font-color-disabled: rgba(0, 0, 0, .3);
--dhx-font-color-contrast: var(--dhx-color-white);
--dhx-font-color-contrast-disabled: var(--dhx-color-white);
/* Ende Schrift */
/* Symbol */
--dhx-icon-size-small: 16px;
--dhx-icon-size-normal: 20px;
--dhx-icon-size-large: 24px;
/* Ende Symbol */
/* Rahmen */
--dhx-border-width: 1px;
--dhx-border-radius: 2px;
--dhx-border-color: rgba(0, 0, 0, .1);
--dhx-border-color-focused: rgba(0, 0, 0, .3);
--dhx-border: var(--dhx-border-width) solid var(--dhx-border-color);
/* Ende Rahmen */
/* Rahmenschatten */
--dhx-border-shadow-small: 0 2px 4px rgba(0, 0, 0, .15);
--dhx-border-shadow-normal: 0 2px 5px rgba(0, 0, 0, .3);
--dhx-border-shadow-large: 0px 1px 6px rgba(0, 0, 0, 0.1), 0px 10px 20px rgba(0, 0, 0, 0.1);
--dhx-shadow-input-size: inset 0px 0px 0px var(--dhx-border-width);
/* Ende Rahmenschatten */
/* Ubergange */
--dhx-transition-time: 0.2s;
--dhx-transition-in: ease-in;
--dhx-transition-out: ease-out;
/* Ende Ubergange */
/* z-index */
--dhx-z-index-up: 1;
--dhx-z-index-force-up: 10;
--dhx-z-index-overlay: 999;
--dhx-z-index-overlay-total: 10000000;
/* Ende z-index */
/* Nur Servicefarbschema */
--dhx-l-contrast-offset: 0%; /* Helligkeits-Offset fur Kontrast-Theme */
--dhx-l-h-offset: 10%; /* Helligkeits-Hover-Offset */
--dhx-s-d-offset: 30%; /* Sattigungs-Deaktivierungs-Offset */
--dhx-l-d: 70%; /* Helligkeitswert deaktiviert */
--dhx-a-l-h: .15; /* Alpha-Wert fur helles Hover */
--dhx-a-l-a: .3; /* Alpha-Wert fur helles Aktiv */
/* Ende nur Servicefarbschema */
/* Farbschema */
--dhx-h-primary: 200;
--dhx-s-primary: 98%;
--dhx-l-primary: 40%;
--dhx-h-secondary: 0;
--dhx-s-secondary: 0%;
--dhx-l-secondary: 30%;
--dhx-h-danger: 0;
--dhx-s-danger: 100%;
--dhx-l-danger: 60%;
--dhx-h-success: 154;
--dhx-s-success: 89%;
--dhx-l-success: 37%;
--dhx-h-background: 0;
--dhx-s-background: 0%;
--dhx-l-background: 100%;
--dhx-a-background: 0.5;
/* Ende Farbschema */
/* Theme-Farben */
--dhx-background-primary: hsl(var(--dhx-h-background), var(--dhx-s-background), var(--dhx-l-background));
--dhx-background-secondary: hsl(var(--dhx-h-background), var(--dhx-s-background), calc(var(--dhx-l-background) - 3%));
--dhx-background-additional: hsl(var(--dhx-h-background), var(--dhx-s-background), calc(var(--dhx-l-background) - 10%));
--dhx-background-overlay: hsla(var(--dhx-h-background), var(--dhx-s-background), calc(var(--dhx-l-background) * -1), var(--dhx-a-background));
--dhx-background-overlay-light: rgba(255, 255, 255, .5);
--dhx-tooltip-background-dark: var(--dhx-color-gray-800);
--dhx-tooltip-background-light: var(--dhx-color-white);
--dhx-color-focused: hsl(calc(var(--dhx-h-primary) + 10), var(--dhx-s-primary), var(--dhx-l-primary));
--dhx-color-primary: hsl(var(--dhx-h-primary), var(--dhx-s-primary), calc(var(--dhx-l-primary) - var(--dhx-l-contrast-offset)));
--dhx-color-primary-hover: hsl(var(--dhx-h-primary), var(--dhx-s-primary), calc(var(--dhx-l-primary) + var(--dhx-l-h-offset) - var(--dhx-l-contrast-offset)));
--dhx-color-primary-active: var(--dhx-color-primary);
--dhx-color-primary-disabled: hsl(var(--dhx-h-primary), calc(var(--dhx-s-primary) - var(--dhx-s-d-offset)), var(--dhx-l-d));
--dhx-color-primary-light-hover: hsla(var(--dhx-h-primary), var(--dhx-s-primary), calc(var(--dhx-l-primary) - var(--dhx-l-contrast-offset)), var(--dhx-a-l-h));
--dhx-color-primary-light-active: hsla(var(--dhx-h-primary), var(--dhx-s-primary), calc(var(--dhx-l-primary) - var(--dhx-l-contrast-offset)), var(--dhx-a-l-a));
--dhx-color-secondary: hsl(var(--dhx-h-secondary), var(--dhx-s-secondary), calc(var(--dhx-l-secondary) - var(--dhx-l-contrast-offset)));
--dhx-color-secondary-hover: hsl(var(--dhx-h-secondary), var(--dhx-s-secondary), calc(var(--dhx-l-secondary) + var(--dhx-l-h-offset) - var(--dhx-l-contrast-offset)));
--dhx-color-secondary-active: var(--dhx-color-secondary);
--dhx-color-secondary-disabled: hsl(var(--dhx-h-secondary), calc(var(--dhx-s-secondary) - var(--dhx-s-d-offset)), var(--dhx-l-d));
--dhx-color-secondary-light-hover: hsla(var(--dhx-h-secondary), var(--dhx-s-secondary), calc(var(--dhx-l-secondary) - var(--dhx-l-contrast-offset)), var(--dhx-a-l-h));
--dhx-color-secondary-light-active: hsla(var(--dhx-h-secondary), var(--dhx-s-secondary), calc(var(--dhx-l-secondary) - var(--dhx-l-contrast-offset)), var(--dhx-a-l-a));
--dhx-color-danger: hsl(var(--dhx-h-danger), var(--dhx-s-danger), calc(var(--dhx-l-danger) - var(--dhx-l-contrast-offset)));
--dhx-color-danger-hover: hsl(var(--dhx-h-danger), var(--dhx-s-danger), calc(var(--dhx-l-danger) + var(--dhx-l-h-offset) - var(--dhx-l-contrast-offset)));
--dhx-color-danger-active: var(--dhx-color-danger);
--dhx-color-danger-disabled: hsl(var(--dhx-h-danger), calc(var(--dhx-s-danger) - var(--dhx-s-d-offset)), var(--dhx-l-d));
--dhx-color-danger-light-hover: hsla(var(--dhx-h-danger), var(--dhx-s-danger), calc(var(--dhx-l-danger) - var(--dhx-l-contrast-offset)), var(--dhx-a-l-h));
--dhx-color-danger-light-active: hsla(var(--dhx-h-danger), var(--dhx-s-danger), calc(var(--dhx-l-danger) - var(--dhx-l-contrast-offset)), var(--dhx-a-l-a));
--dhx-color-success: hsl(var(--dhx-h-success), var(--dhx-s-success), calc(var(--dhx-l-success) - var(--dhx-l-contrast-offset)));
--dhx-color-success-hover: hsl(var(--dhx-h-success), var(--dhx-s-success), calc(var(--dhx-l-success) + var(--dhx-l-h-offset) - var(--dhx-l-contrast-offset)));
--dhx-color-success-active: var(--dhx-color-success);
--dhx-color-success-disabled: hsl(var(--dhx-h-success), calc(var(--dhx-s-success) - var(--dhx-s-d-offset)), var(--dhx-l-d));
--dhx-color-success-light-hover: hsla(var(--dhx-h-success), var(--dhx-s-success), calc(var(--dhx-l-success) - var(--dhx-l-contrast-offset)), var(--dhx-a-l-h));
--dhx-color-success-light-active: hsla(var(--dhx-h-success), var(--dhx-s-success), calc(var(--dhx-l-success) - var(--dhx-l-contrast-offset)), var(--dhx-a-l-a));
/* Ende Theme-Farben */
/* DHTMLX Toolbar-Servicevariablen*/
--dhx-s-toolbar-background: var(--dhx-background-primary);
--dhx-s-toolbar-button-background-hover: rgba(0, 0, 0, .07);
--dhx-s-toolbar-button-background-active: rgba(0, 0, 0, .15);
/* Ende DHTMLX Toolbar-Servicevariablen */
/* DHTMLX Grid-Servicevariablen*/
--dhx-s-grid-header-background: var(--dhx-background-secondary);
--dhx-s-grid-selection-background: var(--dhx-color-gray-700);
/* Ende DHTMLX Grid-Servicevariablen*/
/* DHTMLX Calendar-Servicevariablen*/
--dhx-s-calendar-muffled: .6;
/* Ende DHTMLX Calendar-Servicevariablen*/
/* DHTMLX Slider-Servicevariablen*/
--dhx-s-tick-font-size: calc(var(--dhx-font-size-small) / 1.2);
/* Ende DHTMLX Slider-Servicevariablen*/
}
Helles Hochkontrast-Theme

Das Theme "contrast-light" wird mithilfe der Root-CSS-Variablen und der unten aufgefuhrten Variablen konfiguriert:
[data-dhx-theme='contrast-light'] {
/* Schrift */
--dhx-font-size-normal: 16px;
--dhx-font-size-small: var(--dhx-font-size-normal);
--dhx-font-color-secondary: rgba(0, 0, 0, .66);
--dhx-font-color-additional: var(--dhx-font-color-secondary);
/* Ende Schrift */
/* Rahmen */
--dhx-border-color: rgba(0, 0, 0, .4);
/* Ende Rahmen */
/* Farbschema */
--dhx-l-contrast-offset: 14%;
/* Ende Farbschema */
/* DHTMLX Toolbar-Servicevariablen*/
--dhx-s-toolbar-background: var(--dhx-background-primary);
--dhx-s-toolbar-button-background-hover: rgba(0, 0, 0, .07);
--dhx-s-toolbar-button-background-active: rgba(0, 0, 0, .15);
/* Ende DHTMLX Toolbar-Servicevariablen */
/* DHTMLX Grid-Servicevariablen*/
--dhx-s-grid-header-background: var(--dhx-background-secondary);
--dhx-s-grid-selection-background: var(--dhx-color-gray-700);
/* Ende DHTMLX Grid-Servicevariablen*/
/* DHTMLX Calendar-Servicevariablen*/
--dhx-s-calendar-muffled: .8;
/* Ende DHTMLX Calendar-Servicevariablen*/
/* DHTMLX Slider-Servicevariablen*/
--dhx-s-tick-font-size: var(--dhx-font-size-small);
/* Ende DHTMLX Slider-Servicevariablen*/
}
Dunkles Theme

Das Theme "dark" wird mithilfe der Root-CSS-Variablen und der unten aufgefuhrten Variablen konfiguriert:
[data-dhx-theme='dark'] {
/* Schrift */
--dhx-font-color-primary: var(--dhx-color-white);
--dhx-font-color-secondary: rgba(255, 255, 255, .7);
--dhx-font-color-additional: rgba(255, 255, 255, .5);
--dhx-font-color-disabled: rgba(255, 255, 255, .5);
--dhx-font-color-contrast: var(--dhx-color-white);
--dhx-font-color-contrast-disabled: var(--dhx-font-color-disabled);
/* Ende Schrift */
/* Rahmen */
--dhx-border-color: rgba(255, 255, 255, 0.3);
--dhx-border-color-focused: rgba(255, 255, 255, 0.5);
/* Ende Rahmen */
/* Farbschema */
--dhx-l-secondary: 60%; /* Helligkeits-Offset fur Kontrast-Theme */
--dhx-h-background: 226;
--dhx-s-background: 12%;
--dhx-l-background: 20%;
/* Ende Farbschema */
/* Theme-Farben */
--dhx-background-primary: hsl(var(--dhx-h-background), var(--dhx-s-background), var(--dhx-l-background));
--dhx-background-secondary: hsl(var(--dhx-h-background), var(--dhx-s-background), calc(var(--dhx-l-background) + 8%));
--dhx-background-additional: hsl(var(--dhx-h-background), var(--dhx-s-background), calc(var(--dhx-l-background) + 12%));
/* Ende Theme-Farben */
/* DHTMLX Toolbar-Servicevariablen*/
--dhx-s-toolbar-background: var(--dhx-color-black);
--dhx-s-toolbar-button-background-hover: rgba(255, 255, 255, .07);
--dhx-s-toolbar-button-background-active: rgba(255, 255, 255, .15);
/* Ende DHTMLX Toolbar-Servicevariablen */
/* DHTMLX Grid-Servicevariablen*/
--dhx-s-grid-header-background: #212329;
--dhx-s-grid-selection-background: var(--dhx-color-gray-100);
/* Ende DHTMLX Grid-Servicevariablen*/
/* DHTMLX Calendar-Servicevariablen*/
--dhx-s-calendar-muffled: .6;
/* Ende DHTMLX Calendar-Servicevariablen*/
/* DHTMLX Slider-Servicevariablen*/
--dhx-s-tick-font-size: calc(var(--dhx-font-size-small) / 1.2);
/* Ende DHTMLX Slider-Servicevariablen*/
}
Dunkles Hochkontrast-Theme

Das Theme "contrast-dark" wird mithilfe der Root-CSS-Variablen und der unten aufgefuhrten Variablen konfiguriert:
[data-dhx-theme='contrast-dark'] {
/* Schrift */
--dhx-font-size-normal: 16px;
--dhx-font-size-small: var(--dhx-font-size-normal);
--dhx-font-color-primary: var(--dhx-color-white);
--dhx-font-color-secondary: rgba(255, 255, 255, 0.86);
--dhx-font-color-additional: var(--dhx-font-color-secondary);
--dhx-font-color-disabled: rgba(255, 255, 255, .5);
--dhx-font-color-contrast: var(--dhx-color-black);
--dhx-font-color-contrast-disabled: var(--dhx-font-color-disabled);
/* Ende Schrift */
/* Rahmen */
--dhx-border-color: rgba(255, 255, 255, 0.5);
--dhx-border-color-focused: rgba(255, 255, 255, 0.7);
/* Ende Rahmen */
/* Farbschema */
--dhx-l-contrast-offset: -12%; /* Helligkeits-Offset fur Kontrast-Theme */
--dhx-l-secondary: 60%;
--dhx-h-background: 226;
--dhx-s-background: 12%;
--dhx-l-background: 20%;
/* Ende Farbschema */
/* Theme-Farben */
--dhx-background-primary: hsl(var(--dhx-h-background), var(--dhx-s-background), var(--dhx-l-background));
--dhx-background-secondary: hsl(var(--dhx-h-background), var(--dhx-s-background), calc(var(--dhx-l-background) + 8%));
--dhx-background-additional: hsl(var(--dhx-h-background), var(--dhx-s-background), calc(var(--dhx-l-background) + 12%));
/* Ende Theme-Farben */
/* DHTMLX Toolbar-Servicevariablen*/
--dhx-s-toolbar-background: var(--dhx-color-black);
--dhx-s-toolbar-button-background-hover: rgba(255, 255, 255, .07);
--dhx-s-toolbar-button-background-active: rgba(255, 255, 255, .15);
/* Ende DHTMLX Toolbar-Servicevariablen */
/* DHTMLX Grid-Servicevariablen*/
--dhx-s-grid-header-background: #212329;
--dhx-s-grid-selection-background: var(--dhx-color-gray-100);
/* Ende DHTMLX Grid-Servicevariablen*/
/* DHTMLX Calendar-Servicevariablen*/
--dhx-s-calendar-muffled: .8;
/* Ende DHTMLX Calendar-Servicevariablen*/
/* DHTMLX Slider-Servicevariablen*/
--dhx-s-tick-font-size: var(--dhx-font-size-small);
/* Ende DHTMLX Slider-Servicevariablen*/
}
Spreadsheet-spezifische Stile
Die Liste der fur die Spreadsheet-Komponente spezifischen Variablen umfasst folgende:
- fur das Standard-Hell-Theme und das helle Hochkontrast-Theme:
:root, [data-dhx-theme],[data-dhx-theme='contrast-light'] {
--dhx-spreadsheet-range-background-1: #8be3c9;
--dhx-spreadsheet-range-background-2: #f6f740;
--dhx-spreadsheet-range-background-3: #f7b69e;
--dhx-spreadsheet-range-background-4: #e0fcff;
--dhx-spreadsheet-range-background-5: #8fe9ff;
--dhx-spreadsheet-range-background-6: #d8ffa6;
--dhx-spreadsheet-range-background-7: #e4e4e4;
--dhx-spreadsheet-range-background-8: #ecb6ff;
--dhx-spreadsheet-range-color-1: #00815a;
--dhx-spreadsheet-range-color-2: #8b7300;
--dhx-spreadsheet-range-color-3: #a34729;
--dhx-spreadsheet-range-color-4: #007a8c;
--dhx-spreadsheet-range-color-5: #135db1;
--dhx-spreadsheet-range-color-6: #2f6500;
--dhx-spreadsheet-range-color-7: #6d767b;
--dhx-spreadsheet-range-color-8: #b82fe5;
--dhx-spreadsheet-focus-color: var(--dhx-color-primary);
}
- fur die dunklen und dunklen Hochkontrast-Themes:
[data-dhx-theme='contrast-dark'],
[data-dhx-theme='dark'] {
--dhx-spreadsheet-range-background-1: #00815a;
--dhx-spreadsheet-range-background-2: #bfc000;
--dhx-spreadsheet-range-background-3: #c55933;
--dhx-spreadsheet-range-background-4: #0cc1d6;
--dhx-spreadsheet-range-background-5: #0080a3;
--dhx-spreadsheet-range-background-6: #529a0a;
--dhx-spreadsheet-range-background-7: #6d767b;
--dhx-spreadsheet-range-background-8: #ba38e7;
--dhx-spreadsheet-range-color-1: #8be3c9;
--dhx-spreadsheet-range-color-2: #f6f740;
--dhx-spreadsheet-range-color-3: #f7b69e;
--dhx-spreadsheet-range-color-4: #e0fcff;
--dhx-spreadsheet-range-color-5: #8fe9ff;
--dhx-spreadsheet-range-color-6: #d8ffa6;
--dhx-spreadsheet-range-color-7: #e4e4e4;
--dhx-spreadsheet-range-color-8: #ecb6ff;
--dhx-spreadsheet-focus-color: hsl(var(--dhx-h-primary), var(--dhx-s-primary), calc(var(--dhx-l-primary) + 12% - var(--dhx-l-contrast-offset)));
}
Die Variablen --dhx-spreadsheet-range-color-* und --dhx-spreadsheet-range-background-* legen die Farben fest, mit denen die Zellbezüge einer Formel während der Bearbeitung markiert werden. In den hellen Themes haben die Farben --dhx-spreadsheet-range-color-* einen Kontrast von mindestens 4,5:1 gegenüber dem Hintergrund der Formelleiste.
Die Variable --dhx-spreadsheet-focus-color legt die Farbe des Tastaturfokus-Rahmens der Formelleiste sowie der Steuerelemente der Symbolleiste, der Menüleiste, der Tabellenblatt-Registerkarten, des Border-Popups, des Link-Popups und der Suchleiste fest. In den dunklen Themes ist die Farbe heller als die Primärfarbe, sodass der Rahmen einen Kontrast von mindestens 3:1 behält. Sie können die Variable in einem benutzerdefinierten Theme neu definieren:
[data-dhx-theme='custom-theme-dark'] {
--dhx-spreadsheet-focus-color: #7fc8ff;
}
Themes setzen
Um das gewunschte Theme zu setzen, sei es ein integriertes Spreadsheet-Theme oder ein benutzerdefiniertes, verwenden Sie eine der unten beschriebenen Methoden:
Verwendung des Attributs data-dhx-theme
Sie konnen zwischen den folgenden Varianten wahlen:
- Das Attribut
data-dhx-themefur den gewunschten Container setzen:
<!-- Komponenten-Container -->
<div data-dhx-theme="dark" style="height: 100%" id="spreadsheet_container"></div>
- Das Attribut
data-dhx-themefur ein HTML-Element setzen, z. B. furdocumentElement:
document.documentElement.setAttribute("data-dhx-theme", "dark");
Verwendung der Methode dhx.setTheme()
Die Methode dhx.setTheme() akzeptiert folgende Parameter:
theme: string- (erforderlich) der Name des Themes. Mogliche Werte:- der Name des Spreadsheet-Themes:
"light" | "contrast-light" | "dark" | "contrast-dark" - der Name eines benutzerdefinierten Themes
"light"- standardmassig
- der Name des Spreadsheet-Themes:
container: string | HTMLElement- (optional) der Container, auf den das Theme angewendet werden soll. Mogliche Werte:- ein HTMLElement
- ein Zeichenkettenwert mit der ID des Containers oder der ID einer Layout-Zelle
document.documentElement- standardmassig
Die folgenden Beispiele zeigen, wie die Methode dhx.setTheme() verwendet wird:
- Theme auf den Body oder den Container setzen
<div id="spreadsheet_container"></div>
<div>Other content</div>
<script>
new dhx.Spreadsheet("spreadsheet_container");
dhx.setTheme("dark"); // Wendet das "dark"-Theme auf den Body an
//or
// Wendet das "dark"-Theme auf den Container mit der ID "spreadsheet_container" an
dhx.setTheme("dark", "spreadsheet_container");
</script>
- Theme auf den via HTMLElement angegebenen Container setzen
<div id="spreadsheet_container"></div>
<div>Other content</div>
<script>
new dhx.Spreadsheet("spreadsheet_container");
const element = document.getElementById("spreadsheet_container");
// Wendet das "dark"-Theme auf den via HTMLElement angegebenen Container an
dhx.setTheme("dark", element);
</script>
Verwandte Beispiele: