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.