GH GambleHub

Sistem de culori și palete de marcă

1) De ce să formalizați culoarea

Culoarea nu este un set de „nuanțe bune”, ci un sistem ușor de gestionat pentru:
  • conștientizarea mărcii și consistența vizuală,
  • lizibilitate și disponibilitate (WCAG)
  • interfețe de scalare (teme, platforme, localizări)
  • experimente A/B previzibile (contrast, CTR, erori).

2) Fundații de sistem: modele și metrici

OKLCH (recomandat): perceptual uniform, este convenabil să controlați ușurința 'L' și saturația 'C' în timp ce mențineți nuanța 'H'.
Lab/LCH: de asemenea, se potrivesc; OKLCH este mai stabil în percepție.
sRGB: spațiu de afișare finit; totalurile sunt întotdeauna validate în sRGB și WCAG.
Contrast (WCAG 2. 2): text de bază ≥ 4. 5:1, ≥ mare 3:1; notificări critice - scopul pentru AAA (7:1), acolo unde este posibil.

3) Straturi ale sistemului: de la marcă la semantică

1. Nucleul mărcii: 1-2 nuanțe de marcă (+ accent de susținere).
2. Semantica interfeței: roluri („primar”, „secundar”, „succes”, „avertizare”, „pericol”, „info”, „neutru”).
3. Cantare ton: trepte luminozitate (ex. 25/50/100...900).
4. Темы: „lumină ”/„ întuneric” (+ contrast ridicat, AMOLED).
5. State: 'default/hover/active/focus/disabled'.
6. Context: suprafeţe ('bg/base', 'bg/subtile', 'bg/elevated') şi text ('fg/primary', 'fg/secundar', 'fg/muted').
7. Vizualizarea datelor: palete separate discrete și continue.

4) Brand core: alegeri și restricții

Selectați Hue și definiți ușurința de lucru pentru brand în teme ușoare și întunecate (adesea "L≈0. 60–0. 70 'pentru umplerea butoanelor în lumină şi' L≈0. 70–0. 80 'pentru text/icoane în întuneric).
Limit chrome 'C': high 'C' este frumos pe bannere, dar rupe lizibilitatea în UI - păstrați 2 versiuni: „marketing” (bogat) și „băcănie” (mai reținut).
Fixați variabilele: principal („marcă/primar”), alternativ („marcă/alt”) și suport neutru („neutru”).

5) Cantare de tonuri

Scopul este de a obține etape uniforme de iluminare cu saturație controlată:
  • Pentru OKLCH, mutaţi paşii 'L' (ex. 0. 98→0. 90→0. 80→…→0. 18), iar „C” reduce ușor la marginile scării pentru a evita „murdăria” în lumină și „turbiditatea” în întuneric.
  • Fixați punctele de control: „50/100/300/500 (cheie )/700/900”.
  • La fiecare pas, verificați contrastul perechii cu fundalul de bază și cu culoarea textului așteptat.

Exemplu de marcă/scară primară (OKLCH, aproximativă)


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) # keytone brand. primary. 700 = oklch(0. 56 0. 09 230)
brand. primary. 900 = oklch(0. 32 0. 07 230)

6) Roluri semantice și cartografiere

Brand separat și semantică: „succesul” nu trebuie să fie verde de marcă.


role. primary. bg    -> brand. primary. 500 role. primary. text   -> fg. on-primary     # ≥ 4. 5-1 to the 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)

Textele „on” sunt calculate automat (a se vedea § 10).

7) Teme și suprafețe luminoase/întunecate

Definiţi scala de bază pentru suprafeţe şi text:

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)

Mențineți obiective de contrast egale în ambele teme; evita „orbitor” alb pe negru pur - ridica 'L' background la ~ 0. 16.

8) Stări și interactivitate

Pentru fiecare rol, setați statele să controleze „Δ L” și „Δ 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 # ring contrast ≥ 3:1 to the disabled environment. bg= neutral. 200 (light) / neutral. 700 (dark)
text. on  = auto-contrast(default. bg)    # ≥ 4. 5:1

9) Răspunderea și WCAG

Textul de bază și pictogramele din controale sunt ≥ 4. 5:1.
Notificările cheie ale sistemului (KYC/AML, 18 +, erori de plată) - vizează AAA (7:1).
Statele de câmp și limitele - cel puțin 3:1.
Distinge link-uri nu numai prin culoare (subliniere/focus-stil).

10) Text de contrast automat ('on-')

Logică: la selectarea umplerii componentei, se calculează „on-color”:

1. Potrivit OKLCH, determina predlag. text 'L _ on' so that '(L_text vs L_bg) ≥ 4. 5:1`.

2. Dacă crom este ridicat, mai mic 'C _ text' la 0. 01–0. 03.

3. Pentru o temă întunecată, ridica 'L _ on' un alt 0. 02–0. 04 pentru a compensa strălucirea.

Pseudo token:

fg. on(colorX) = auto(colorX, targetContrast=4. 5)

11) Vizualizarea datelor

Palete categorice: 8-12 culori rezistente la orbirea culorilor (evitați perechile roșu-verde fără semne alternative).
Continuu: de la 'bg/elevated' la accent cu control de contrast al semnăturilor.
Adăugați modele/markeri pentru discernământ fără culoare.

12) Context internațional (asociații culturale)

Luați în considerare conotațiile locale (ex. roșu - pericol/atenție; aur - câștig/premiu).
Pentru iGaming: Evitați conflictele de succes/pericol cu accente de marcă într-un singur ecran; iconografia și semnătura sunt mai importante decât „luminozitatea”.

13) Integrarea în sistemul de proiectare

13. 1 Numirea jetoanelor


color.{theme}.{role    surface    brand}.{state    step}
color examples. light. brand. primary. 500 color. dark. role. success. bg color. light. surface. bg. base color. light. fg. on-primary

13. 2 Jetoane (JSON/Dicționar de stil)

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 variabile CSS (strat tematic)

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)) ;/auto-fit/
}
[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/documentație

Componentele folosesc numai jetoane, direct HEX/SRGB sunt interzise de lintere.
În bibliotecă - pagina „Matrice de contrast”: tabelul „fg × bg” cu coeficienți reali.

14) Procesele de control al calității

În design: contrast check on artboards (ambele moduri), presetări separate pentru orbirea culorilor.
În cod: ajutoarele unitare calculează contrastul și cad în încălcări; instantanee vizuale pentru ecrane critice.
În CI/CD: verificarea tuturor perechilor de jetoane și stări, raport cu componentă, temă și valoare reală.

15) Specificul iGaming

Promoții și turnee: Utilizați suprapunerea și constrângerea „C” pe fundaluri pentru a împiedica textul să se scufunde.
Notificări responsabile (limite, 18 +, riscuri) - sincer AAA.
Metrici/tabele: Distinge între numere și semne de modificări (↑/↓) prin formă și contrast, nu doar culoare.

16) Lista de verificare a implementării

  • Nuanțele de marcă și cântarele lor tonale (OKLCH) sunt definite.
  • Rolurile, stările și suprafețele sunt stabilite pentru cele două teme.
  • Auto-generație „on-” cu contrast țintă.
  • 'fg × bg' matrice și teste WCAG în CI.
  • Palete individuale pentru dataviz (cu suport pentru orbirea culorilor).
  • Stilurile linter interzic culorile „crude”.
  • Excepții și motive pagina în ghid.

17) Anti-modele

Se amestecă accentul de brand cu succes/eroare într-un semnal UX.
Bazați-vă doar pe saturație pentru ierarhie.
Nu sincronizați lumina/întunericul (contrastul „stânga” într-una dintre teme).
Hard HEX fără token-uri → derivă interfață necontrolată.

Scurt rezumat

Construiți o paletă de sus în jos: bază de brand → roluri semantice → cântare ton → teme → stări. Lucrați în OKLCH, jetoane PIN, verificări automate 'on-' și WCAG. Separat, introduceți paletele pentru dataviz. Acest lucru va oferi consistență de brand, lizibilitate și scalabilitate produsului.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.