Skip to content
GRAPHIC WALKER
Guides
Thèmes et apparence

Thèmes et apparence

Graphic Walker offre plusieurs niveaux de personnalisation visuelle : le mode sombre, les thèmes de rendu des graphiques et la personnalisation complète des couleurs de l'interface.

Mode sombre

Contrôlez le mode sombre avec la prop appearance :

// Follow user's OS preference (default)
<GraphicWalker appearance="media" />
 
// Always light
<GraphicWalker appearance="light" />
 
// Always dark
<GraphicWalker appearance="dark" />

Thèmes de graphiques

La prop vizThemeConfig contrôle le rendu des graphiques. Choisissez un thème intégré ou fournissez un objet de configuration Vega personnalisé :

Thèmes intégrés

ThèmeDescription
'vega'Thème Vega-Lite par défaut
'g2'Thème inspiré de G2 (AntV)
'streamlit'Thème inspiré de Streamlit
<GraphicWalker vizThemeConfig="streamlit" data={data} fields={fields} />

Configuration Vega personnalisée

Passez un objet complet de configuration Vega/Vega-Lite pour un contrôle granulaire du rendu des graphiques :

const customTheme = {
  arc: { fill: '#4c78a8' },
  area: { fill: '#4c78a8' },
  bar: { fill: '#4c78a8' },
  line: { stroke: '#4c78a8' },
  point: { fill: '#4c78a8' },
  axis: {
    domainColor: '#888888',
    gridColor: '#e0e0e0',
    tickColor: '#888888',
  },
};
 
<GraphicWalker vizThemeConfig={customTheme} data={data} fields={fields} />

Couleurs d'interface personnalisées

La prop uiTheme vous permet de personnaliser les éléments d'interface (boutons, panneaux, texte) séparément du thème des graphiques. Elle accepte un IUIThemeConfig avec des jeux de couleurs pour les modes clair et sombre :

const uiTheme = {
  light: {
    background: '#ffffff',
    foreground: '#1a1a1a',
    primary: '#6366f1',
    'primary-foreground': '#ffffff',
    muted: '#f1f5f9',
    'muted-foreground': '#64748b',
    border: '#e2e8f0',
    ring: '#6366f1',
  },
  dark: {
    background: '#0f172a',
    foreground: '#f8fafc',
    primary: '#818cf8',
    'primary-foreground': '#0f172a',
    muted: '#1e293b',
    'muted-foreground': '#94a3b8',
    border: '#334155',
    ring: '#818cf8',
  },
};
 
<GraphicWalker uiTheme={uiTheme} data={data} fields={fields} />

Propriétés du jeu de couleurs

PropriétéRequisDescription
backgroundOuiCouleur de fond de la page/du composant
foregroundOuiCouleur du texte principal
primaryOuiCouleur d'action principale (boutons, liens)
primary-foregroundOuiTexte sur les éléments de couleur principale
mutedOuiFonds atténués (éléments sélectionnés, séparateurs)
muted-foregroundOuiCouleur du texte de description/secondaire
borderOuiCouleur de bordure des conteneurs
ringOuiCouleur de l'anneau de focus
cardNonFond de carte (par défaut background)
card-foregroundNonCouleur du texte de carte (par défaut foreground)
popoverNonFond de popover (par défaut background)
popover-foregroundNonCouleur du texte de popover (par défaut foreground)
secondaryNonFond de bouton secondaire (par défaut muted)
secondary-foregroundNonTexte de bouton secondaire (par défaut primary)
accentNonFond d'état de survol (par défaut muted)
accent-foregroundNonTexte d'état de survol (par défaut primary)
destructiveNonCouleur d'action danger/suppression
destructive-foregroundNonTexte sur les éléments destructifs
dimensionNonCouleur du badge de champ dimension
measureNonCouleur du badge de champ mesure
inputNonCouleur de bordure d'entrée (par défaut border)

Palettes de couleurs

Contrôlez la palette de couleurs utilisée dans l'encodage des graphiques avec la propriété colorPalette dans IVisualLayout, ou utilisez la prop scales pour un contrôle par canal.

Palettes catégorielles

Pour les données nominales : accent, category10, category20, category20b, category20c, dark2, paired, pastel1, pastel2, set1, set2, set3, tableau10, tableau20

Séquentielles mono-teinte

Pour les valeurs quantitatives croissantes : blues, tealblues, teals, greens, browns, oranges, reds, purples, warmgreys, greys

Séquentielles multi-teintes

Pour les données quantitatives dans les cartes de chaleur : viridis, magma, inferno, plasma, cividis, turbo, bluegreen, bluepurple, goldgreen, goldorange, goldred, greenblue, orangered, purplebluegreen, purpleblue, purplered, redpurple, yellowgreenblue, yellowgreen, yelloworangebrown, yelloworangered, darkblue, darkgold, darkgreen, darkmulti, darkred, lightgreyred, lightgreyteal, lightmulti, lightorange, lighttealblue

Divergentes

Pour les données avec un point médian significatif : blueorange, brownbluegreen, purplegreen, pinkyellowgreen, purpleorange, redblue, redgrey, redyellowblue, redyellowgreen, spectral

Cycliques

Pour les motifs périodiques : rainbow, sinebow

Exemple d'échelles personnalisées

<GraphicWalker
  data={data}
  fields={fields}
  scales={{
    color: {
      scheme: 'tableau10',
    },
    size: {
      rangeMin: 10,
      rangeMax: 100,
    },
  }}
/>

Les échelles peuvent également être des fonctions qui reçoivent les informations du champ :

<GraphicWalker
  data={data}
  fields={fields}
  scales={{
    color: (info) => ({
      scheme: info.semanticType === 'nominal' ? 'tableau10' : 'viridis',
    }),
  }}
/>