GH GambleHub

Sistema di colori e tavolozza di marca

1) Perché formalizzare il colore

Il colore non è un insieme di «belle tonalità», ma un sistema gestito per:
  • riconoscibilità del marchio e consistenza visiva,
  • leggibilità e disponibilità (WCAG),
  • Scalabilità delle interfacce (argomenti, piattaforme, locali),
  • esperimenti A/B prevedibili (contrasto, CTR, errori).

2) Basi del sistema: modelli e metriche

OKLCH (consigliato): percettibile, comodo per controllare la luminosità «L» e la saturazione «C» mantenendo la tonalità «H».
Anche Lab/LCH è idoneo; OKLCH è più stabile in termini di percezione.
sRGB - Spazio di visualizzazione finale i valori totali valgono sempre nel sRGB e nel WCAG.
Contrasto (WCAG 2. 2): testo base ≥ 4. 5:1, grande ≥ 3:1; notifiche critiche - Prendere di mira AAA (7:1) ove possibile.

3) Livelli di sistema: dal marchio alla semantica

1. Brand kernel: 1-2 tonalità (+ accento di supporto).
2. Semantica interfaccia: ruoli («primary», «secondary», «success», «warning», «denger», «info», «neutral»).
3. Scala dei toni: passi di luce (ad esempio, 25/50/100...900).
4. Темы: `light` / `dark` (+ high-contrast, AMOLED).
5. Stati: 'default/hover/active/focus/disabled'.
6. Contesto: superfici ('bg/basè,' bg/subtle ',' bg/elevated ') e testo (' fg/primary ',' fg/secondary ',' fg/muted ').
7. Visualizzazione dei dati: singole tavolozze discrete e continue.

4) Brand kernel: selezione e limitatori

Seleziona la tonalità principale (Hue) e definisci la luminosità di lavoro del marchio in argomenti chiari e scuri (spesso '). 60–0. 70 per riempire i pulsanti in light e L≈0. 70–0. 80 'per testo/icona in dark).
Limitare il cromo «C»: l'alto «C» è bello sui banner, ma interrompe la lettura in UI - conserva le versioni «marketing» (intenso) e «prodotto» (ritardato).
Fissare le variazioni di base ('brand/primary'), alternativa ('brand/alt') e neutrale ('neutral').

5) Scala dei toni (tonal scales)

L'obiettivo è ottenere livelli uniformi di luce con saturazione controllata:
  • Per OKLCH, muovete le graduatorie «L» (ad esempio, 0. 98→0. 90→0. 80→…→0. 18) a «C» ridurlo leggermente ai bordi della scala per evitare la «sporcizia» nella luce e nella «turbolenza» nelle scure.
  • Fissa i punti di controllo: '50/100/300/500 (key )/700/900'.
  • In ogni fase, verificare il contrasto della coppia con lo sfondo di base e il colore del testo previsto.

Esempio di scala brand/primary (OKLCH, approssimativamente)


brand.primary.50  = oklch(0.98 0.03 230)
brand.primary.100 = oklch(0.94 0.05 230)
brand.primary.300 = oklch(0.86 0.08 230)
brand.primary.500 = oklch(0.74 0.10 230) # ключевой тон brand.primary.700 = oklch(0.56 0.09 230)
brand.primary.900 = oklch(0.32 0.07 230)

6) Ruoli semantici e mapping

Condividi il marchio e la semantica, il successo non deve essere un marchio verde.


role.primary.bg    -> brand.primary.500 role.primary.text   -> fg.on-primary     # ≥ 4.5:1 к role.primary.bg role.success.bg    -> green.500 role.warning.bg    -> amber.500 role.danger.bg    -> red.500 role.info.bg     -> blue.500 role.neutral.bg    -> gray.200/700 (light/dark)

I testi «on-» vengono calcolati automaticamente (vedere l'articolo 10).

7) Temi e superfici chiari/scuri

Definite la scala di Riferimento di superfici e testo:

light:
bg/base   = oklch(0.98 0.01 260)
bg/subtle  = oklch(0.96 0.01 260)
bg/elevated = oklch(0.93 0.01 260)
fg/primary  = oklch(0.18 0.03 260) # ≈7:1 к bg/base fg/secondary = oklch(0.32 0.03 260) # ≥4.5:1 border    = oklch(0.80 0.02 260)

dark:
bg/base   = oklch(0.16 0.01 260)
bg/subtle  = oklch(0.20 0.01 260)
bg/elevated = oklch(0.24 0.01 260)
fg/primary  = oklch(0.90 0.02 260)
fg/secondary = oklch(0.78 0.02 260)
border    = oklch(0.34 0.02 260)

Mantenere gli stessi obiettivi di contrasto in entrambi i temi; Evitate i bianchi ciechi su nero puro - alzate l'L "sfondo fino a} 0. 16.

8) Stati e interattività

Per ciascun ruolo, impostare gli stati controllati con il controllo di L e C:

button/primary:
default.bg = brand.primary.500 hover.bg  = brand.primary.500 with +ΔC(0.01) -ΔL(0.02)
active.bg = brand.primary.700 focus.ring = brand.primary.300 # контраст кольца ≥ 3:1 к окружению disabled.bg= neutral.200 (light) / neutral.700 (dark)
text.on  = auto-contrast(default.bg)    # ≥ 4.5:1

9) Responsabilità e WCAG

Il testo di base e le icone nei comandi sono ≥ 4. 5:1.
Notifiche di sistema chiave (KYC/AML, 18 +, errori di pagamento) - punta su AAA (7:1).
Gli stati e i bordi dei campi non sono inferiori a 3:1.
I collegamenti non sono solo un colore (sottolineare/focus-stile).

10) Controllo automatico del testo a contrasto ('on-')

Logica: quando si sceglie di riempire un componente, calcolare «on-color»:

1. Per OKLCH, definire un anticipo. il testo "L _ on" in modo che "(L _ text vs L _ bg) venga ≥ 4. 5:1`.

2. Se il cromo è alto, abbassare «C _ text» a 0. 01–0. 03.

3. Per il tema oscuro, alzare «L _ on» ancora di 0. 02–0. 04 per compensare il Glair.

Pseudo-token:

fg.on(colorX) = auto(colorX, targetContrast=4.5)

11) Visualizzazione dei dati

Tavolozza categorica: 8-12 colori resistenti al daltonismo (evitare la coppia rosso-verde senza segni alternativi).
Continuo da «bg/elevated» a un accento con controllo del contrasto delle firme.
Aggiungi pattern/marcatori per la variabilità senza colore.

12) Contesto internazionale (associazioni culturali)

Tenere conto dei connotati locali (ad esempio, rosso - pericolo/attenzione; oro - vincita/premio).
Evitare conflitti di successo/pericolo con accenti di marca in uno schermo; iconografia e firma sono più importanti della luminosità.

13) Integrazione con il design

13. 1 Denominazione token


color.{theme}.{role    surface    brand}.{state    step}
примеры color.light.brand.primary.500 color.dark.role.success.bg color.light.surface.bg.base color.light.fg.on-primary

13. 2 Token (JSON/Style Dictionary)

json
{
"color": {
"light": {
"surface": { "bg": { "base": "oklch(0.98 0.01 260)"} },
"brand":  { "primary": { "500": "oklch(0.74 0.10 230)" } },
"role":  { "primary": { "bg": "{color.light.brand.primary.500}" },
"danger": { "bg": "oklch(0.62 0.12 25)" } },
"fg": { "primary": "oklch(0.18 0.03 260)",
"on-primary": "auto({color.light.role.primary.bg},4.5)" }
}
}
}

13. 3 variabili CSS (livello temi)

css
:root[data-theme="light"] {
--bg-base: oklch(0.98 0.01 260);
--brand-primary-500: oklch(0.74 0.10 230);
--fg-primary: oklch(0.18 0.03 260);
--on-primary: color-contrast(var(--brand-primary-500)); / автоподбор /
}
[data-theme="dark"] {
--bg-base: oklch(0.16 0.01 260);
--brand-primary-500: oklch(0.74 0.10 230);
--fg-primary: oklch(0.90 0.02 260);
--on-primary: color-contrast(var(--brand-primary-500));
}

13. 4 Figma/documentazione

I componenti utilizzano solo i token, le dirette HEX/SRGB sono proibite dai linter.
Nella libreria, pagina Matrice contrasto, tabella fg x bg con coefficienti effettivi.

14) Processi di controllo qualità

Nel design: controllo del contrasto sugli artboard (entrambe le modalità), preset separati per il daltonismo.
In codice: unit helpers calcolano il contrasto e cadono in caso di violazioni; Snappshot visivi per schermi critici.
In CI/CD: verifica di tutte le coppie di token e stati, report con il componente, il tema e il valore effettivo.

15) Specificità del iGaming

Promozioni e tornei: usate l'overlay e il vincolo «C» sui fondi per evitare che il testo affondi.
Notifiche responsabili (limiti, 18 +, rischi) - sinceramente AAA.
Metriche/tabelle: numeri e caratteri di modifica (↑/↓) distinguere tra forma e contrasto e non solo colore.

16) Assegno-foglio di implementazione

  • Definite le tonalità del marchio e le relative tonalità (OKLCH).
  • Sono stati definiti ruoli, stati e superfici per due argomenti.
  • Generazione automatica'on- 'con contrasto di destinazione.
  • Matrix «fg x bg» e test WCAG in CI.
  • Singole tavolozze di datawise (supportate dal daltonismo).
  • Linter stile vieta i colori crudi.
  • Pagina «Eccezioni e motivi» nella haydline.

17) Anti-pattern

Mescolare l'accento del marchio con «successo/errore» in un solo segnale UX.
Affidarsi solo alla saturazione per la gerarchia.
Non sincronizzare light/dark (il contrasto è partito in uno dei temi).
HEX senza token è una deriva incontrollata dell'interfaccia.


Breve riepilogo

Costruite una tavolozza dall'alto verso il basso: il marchio kernel ha i ruoli semantici della scala dei toni e dei temi dello stato . Utilizzare OKLCH, fissare i token, automatizzare i controlli on- e WCAG. Individuate le tavolozze per il datawise. Ciò darà consistenza al marchio, leggibilità e scalabilità al prodotto.

Contact

Mettiti in contatto

Scrivici per qualsiasi domanda o richiesta di supporto.Siamo sempre pronti ad aiutarti!

Avvia integrazione

L’Email è obbligatoria. Telegram o WhatsApp — opzionali.

Il tuo nome opzionale
Email opzionale
Oggetto opzionale
Messaggio opzionale
Telegram opzionale
@
Se indichi Telegram — ti risponderemo anche lì, oltre che via Email.
WhatsApp opzionale
Formato: +prefisso internazionale e numero (ad es. +39XXXXXXXXX).

Cliccando sul pulsante, acconsenti al trattamento dei dati.