Aller au contenu

theme

Les couleurs et les tailles du thème pour une grille, depuis le code, avec un type qui connaît chaque clé.

TypeGridTheme
Par défautnon défini
Modifiable en direct (update())Oui
Angularl’entrée [theme]
<dz-grid>la propriété theme
Déclaré danspackages/dom/src/settings.ts

Chaque clé est une variable CSS, écrite sur la racine de la grille : les clés de la palette partagée deviennent --tz-* (bgRaised → --tz-bg-raised), les autres --dzg-* (rowOddBg → --dzg-row-odd-bg). Une valeur est une valeur CSS ('light-dark(#0f766e, #5eead4)', '0.5rem') ou un nombre écrit tel quel (500). Écrite sur la racine, elle l’emporte sur vos feuilles de style pour cette grille seulement ; les autres grilles de la page gardent les leurs.

Il demande la fonction theming() de @dzgrid/dom/theme : sans elle, le réglage est signalé comme une fonction manquante et rien n’est écrit. Une clé que le type ne connaît pas, ou une valeur qui pourrait porter plus qu’une valeur (un ;, une {, un url(…), est signalée par un avertissement invalid-setting et écartée ; les autres clés s’appliquent. Les clés que lit la feuille @dzgrid/theme/variables.css demandent cette feuille.

Chaque clé, ce qu’elle change et sa valeur par défaut : le tableau des variables.

import { createGrid } from '@dzgrid/dom';
import { theming } from '@dzgrid/dom/theme';
import { FR } from '@dzgrid/dom/locales/fr';
import '@dzgrid/theme/dzgrid.css';
import '@dzgrid/theme/variables.css';
type Boat = { id: string; name: string; berth: number };
const grid = createGrid<Boat>(document.getElementById('bateaux')!, {
rows: [{ id: 'b1', name: 'Alouette de mer', berth: 12 }],
columns: [{ id: 'name', header: 'Bateau' }, { id: 'berth', header: 'Anneau', type: 'number' }],
getRowId: (b) => b.id,
messages: FR,
theme: { rowOddBg: 'color-mix(in srgb, var(--tz-accent) 8%, var(--tz-bg))', headerWeight: 500 },
features: [theming()],
});
grid.update({ theme: { headerCase: 'uppercase' } }); // tout le thème : rowOddBg et headerWeight reviennent à leur défaut

Lignes alternées, traits entre colonnes, un en-tête plus léger en capitales : quatre clés, cette grille seulement.