2 Thèmes
Claude edited this page 2026-05-16 12:31:27 +02:00

Thèmes

NoxIRC utilise un système de thèmes basé sur des CSS custom properties. Les thèmes sont stockés en base de données et synchronisés entre tous les appareils de l'utilisateur.

Variables CSS disponibles

Couleurs de fond

Variable Description
--color-bg-primary Fond principal de l'application
--color-bg-sidebar Fond des sidebars et panneaux
--color-bg-input Fond des champs de saisie
--color-surface Fond des cartes et zones élevées

Couleurs de texte

Variable Description
--color-text-primary Texte principal
--color-text-secondary Texte secondaire / muted
--color-text-highlight Couleur des mentions

Interface

Variable Description
--color-border Bordures
--color-accent Accentuation (boutons, liens, focus)

Nicks par genre (coloration optionnelle)

Variable Défaut Description
--color-nick-female #ff80c0 Nicks avec genre féminin détecté
--color-nick-male #80b3ff Nicks avec genre masculin détecté
--color-nick-unknown #888888 Nicks sans genre détecté (mode coloration actif)

La détection de genre s'appuie sur la présence de F ou M isolé dans le champ realname IRC (ex: "Prénom F", "30M Lyon"). Un tiret exclut les faux positifs (Saint-Felix).

Typographie et forme

Variable Description
--font-family Police principale
--font-size-base Taille de base
--border-radius-theme Rayon des coins

Créer ou modifier un thème

Via Paramètres → Apparence :

  1. Modifier les couleurs via les color pickers
  2. Les changements s'appliquent en temps réel (debounce 500ms)
  3. Sauvegarder pour persister
  4. Exporter pour partager le JSON

Format JSON

{
  "name": "Mon thème sombre",
  "tokens": {
    "--color-bg-primary": "#1a1a2e",
    "--color-bg-sidebar": "#16213e",
    "--color-bg-input": "#0f3460",
    "--color-surface": "#1a1a2e",
    "--color-border": "#2a2a4a",
    "--color-accent": "#e94560",
    "--color-text-primary": "#eaeaea",
    "--color-text-secondary": "#8892a4",
    "--color-text-highlight": "#e94560",
    "--font-family": "Geist, sans-serif",
    "--font-size-base": "14px",
    "--border-radius-theme": "6px"
  }
}

Import / Export

# Importer
curl -X POST /api/themes/import \
  -H "Authorization: Bearer <token>" \
  -d @mon-theme.json

# Exporter
curl /api/themes/{theme_id}/export \
  -H "Authorization: Bearer <token>" > mon-theme.json

Surcharges utilisateur

Surcharges appliquées par-dessus le thème de base :

PUT /api/users/me/theme/overrides
{"tokens": {"--color-accent": "#ff6b35"}}

DELETE /api/users/me/theme/overrides