Mercato
Prezzi
AccediInizia
Guida praticaCSS e web
CSS e web

color-mix() in CSS: mescolare i colori nel browser

color-mix() lascia al browser i calcoli sul colore che prima facevi in un preprocessore o a occhio. Scegli lo spazio colore giusto e un solo colore del brand genera un'intera palette di tinte, toni scuri e versioni traslucide.

GradientlyAccount Gradiently verificato·1 ottobre 2026·5 min di lettura
Copertina: Rain Rampart · GR·A80B·X7

In breve

  • La funzione CSS color-mix mescola due colori in uno spazio colore indicato, per esempio color-mix(in oklab, #7c3aed 40%, white).
  • Se indichi una sola percentuale, l'altro colore prende il resto; senza percentuali, il mix è metà e metà.
  • Mescolare in oklab mantiene uniforme la luminosità ed evita i grigi spenti che l'sRGB produce a metà strada tra tonalità lontane.
  • Mescolare un colore con transparent è il modo più pulito per ottenere una versione traslucida di un colore salvato in una proprietà personalizzata.
  • color-mix() funziona in tutti i principali browser attuali, quindi è sicuro in produzione, con un colore semplice come riserva per quelli molto vecchi.
In questa pagina
Sintassi di color-mix()In quale spazio colore mescolareTinte e toni scuri da un solo colore del brandTrasparenza con color-mix()Errori comuni con color-mix()Supporto dei browser e alternativeMescolare i colori per i gradienti

La funzione color-mix CSS, color-mix(), mescola due colori nello spazio colore che scegli e restituisce un colore nuovo. Scrivi color-mix(in oklab, #7c3aed 40%, white) e ottieni un viola pallido fatto al 40 percento di viola e al 60 percento di bianco, mescolati in modo percettivo. Funziona in tutti i principali browser attuali. Insieme alle proprietà personalizzate trasforma un solo colore del brand in tinte, toni scuri, stati hover e sovrapposizioni traslucide, senza un solo esadecimale scritto a mano.

Sintassi di color-mix()

css
/* color-mix(in <colour space>, <colour> [<percentage>], <colour> [<percentage>]) */

.a { color: color-mix(in oklab, #7c3aed, white); }          /* 50% each */
.b { color: color-mix(in oklab, #7c3aed 40%, white); }      /* 40% violet, 60% white */
.c { color: color-mix(in oklab, #7c3aed, black 30%); }      /* 70% violet, 30% black */
.d { color: color-mix(in srgb, #7c3aed 50%, transparent); } /* violet at half opacity */
.e { color: color-mix(in oklch shorter hue, #2563eb, #f59e0b); }
Lo spazio colore va per primo e si scrive per esteso. Gli spazi basati sulla tonalità, come oklch e hsl, accettano anche una direzione della tonalità: shorter, longer, increasing o decreasing.
Nessuna percentuale

Cosa usa il browser

50% e 50%

Note

Un mix uniforme
Una percentuale, per esempio 30%

Cosa usa il browser

30% e 70%

Note

L'altro colore prende il resto
Due che sommano 100%

Cosa usa il browser

Come scritto

Note

La forma più chiara da rileggere
Due che sommano più di 100%

Cosa usa il browser

Riportate a 100%

Note

60% e 60% si comporta come 50% e 50%
Due che sommano meno di 100%

Cosa usa il browser

Riportate a 100%, poi rese traslucide

Note

20% e 30% dà un risultato al 50% di opacità
Cosa scriviCosa usa il browserNote
Nessuna percentuale50% e 50%Un mix uniforme
Una percentuale, per esempio 30%30% e 70%L'altro colore prende il resto
Due che sommano 100%Come scrittoLa forma più chiara da rileggere
Due che sommano più di 100%Riportate a 100%60% e 60% si comporta come 50% e 50%
Due che sommano meno di 100%Riportate a 100%, poi rese traslucide20% e 30% dà un risultato al 50% di opacità
Come si risolvono le percentuali. L'ultima riga sorprende: un totale sotto 100 rende il risultato in parte trasparente.

In quale spazio colore mescolare

Lo spazio colore decide il percorso tra i due colori. In sRGB il browser fa la media dei numeri di rosso, verde e blu: è facile da ragionare ma non è come vedono gli occhi. Due tonalità lontane passano per un grigio spento. In oklab il mix segue la luminosità e il colore percepiti, quindi il centro resta pulito e i passaggi sembrano regolari. L'interpolazione dei gradienti spiega la stessa scelta per i gradienti, dove l'effetto si vede meglio.

Dal blu al giallo in tre spazi. Il punto centrale di ogni striscia è esattamente ciò che color-mix() restituisce al 50 percento in quello spazio: #808080 in sRGB, un grigio azzurro chiaro in oklab.
  • oklab per tinte, toni scuri e la maggior parte dei mix quotidiani. Luminosità uniforme, nessun calo verso il grigio.
  • oklch quando vuoi che la tonalità viaggi, per esempio per fondere due colori del brand in un terzo che sta tra loro sulla ruota.
  • srgb per mescolare con transparent o per allinearsi a strumenti di design più vecchi che miscelano in sRGB.
  • srgb-linear per un mix di luce fisicamente corretto, che al centro risulta più luminoso.

Per capire perché gli spazi percettivi funzionano meglio, leggi OKLCH spiegato. Le versioni recenti della specifica permettono di omettere lo spazio colore e usare oklab come predefinito, ma il supporto a questa scorciatoia è più recente, quindi scrivi in oklab in modo esplicito.

Tinte e toni scuri da un solo colore del brand

Lo schema più utile è una scala costruita da una sola variabile. Mescola verso il bianco per le tinte, verso il nero per i toni scuri. Cambia la variabile e ogni gradino si aggiorna: è l'ideale per prodotti con più brand o per temi scelti dall'utente.

css
:root {
  --brand: #7c3aed;

  --brand-100: color-mix(in oklab, var(--brand) 20%, white);
  --brand-200: color-mix(in oklab, var(--brand) 40%, white);
  --brand-300: color-mix(in oklab, var(--brand) 60%, white);
  --brand-400: color-mix(in oklab, var(--brand) 80%, white);
  --brand-500: var(--brand);
  --brand-600: color-mix(in oklab, var(--brand) 80%, black);
  --brand-700: color-mix(in oklab, var(--brand) 60%, black);
}
Una scala in sette gradini da un solo colore. Sostituisci --brand con qualsiasi esadecimale e la scala lo segue.
Ciò a cui la scala qui sopra si risolve per #7c3aed, calcolato in oklab. Mescolate in sRGB, le tinte escono un po' più grigie e i toni scuri un po' più piatti.

Mescolare con bianco e nero puri è solo un punto di partenza. Per tinte più calde, mescola verso un bianco sporco come #fdf6ec; per toni scuri più ricchi, verso un blu notte profondo invece del nero. Così la scala resta del tuo brand e non diventa una rampa generica. Tinte, toni e sfumature approfondisce la teoria del colore.

Trasparenza con color-mix()

Prima di color-mix(), ottenere una versione traslucida di un colore salvato in una variabile significava memorizzare i canali separatamente. Ora mescoli con transparent. La quantità che mantieni è l'opacità.

css
.badge {
  color: var(--brand);
  background: color-mix(in srgb, var(--brand) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand) 30%, transparent);
}

.button:hover {
  background: color-mix(in oklab, var(--brand), black 12%);
}
Un badge colorato e uno stato hover dalla stessa variabile. Nessun secondo colore da mantenere.

Errori comuni con color-mix()

  • Omettere lo spazio colore in codice che deve girare su browser più vecchi. Viene scartata l'intera dichiarazione, non solo lo spazio.
  • Mescolare con il nero per ogni tono scuro. I toni scuri dei colori saturi si spengono; mescola verso una versione scura della stessa tonalità.
  • Aspettarsi che percentuali sotto 100 restino opache. color-mix(in oklab, red 20%, blue 30%) è trasparente a metà.
  • Usare hsl per le tinte. La luminosità in hsl non è percettiva, quindi un giallo e un blu con lo stesso mix non sembrano affatto lo stesso gradino.

Supporto dei browser e alternative

color-mix() è disponibile in Chrome, Edge, Firefox e Safari dal 2023, e il supporto attuale è elencato su caniuse. Se devi coprire browser molto vecchi, dichiara prima un colore semplice e lascia che quello mescolato lo sostituisca. I browser che non capiscono la seconda riga la ignorano.

css
.card {
  background: #ede9fe;
  background: color-mix(in oklab, var(--brand) 15%, white);
}
Prima la riserva, poi il miglioramento. Al resto pensa la cascata.

Un tema completo costruito su questi schemi, con modalità chiara e scura, è in Variabili CSS per i temi.

Mescolare i colori per i gradienti

color-mix() è comodo dentro i gradienti, dove può calcolare un punto centrale da due colori del brand così che la sfumatura non passi mai per il fango. linear-gradient(135deg, var(--a), color-mix(in oklch, var(--a), var(--b)), var(--b)) ti dà un terzo punto sul percorso della tonalità tra i due. Il problema di fondo è trattato in gradienti sporchi.

Se il colore del tuo brand vive in un Mark di Gradiently, la ricetta del Mark contiene già una famiglia di colori affini scelti per stare bene insieme, e il Mercato ti permette di cercare con parole di colore come «viola profondo» per trovarne uno costruito attorno alla tonalità da cui parti.

Trova un gradiente solo tuo

Sfoglia migliaia di Mark, progetta gratis con uno qualsiasi e riserva quello in cui ti riconosci.

Sfoglia il Mercato

Le domande più frequenti

Che cosa fa color-mix() in CSS?

Mescola due colori in uno spazio colore che indichi e restituisce il risultato, per esempio color-mix(in oklab, red 30%, white).

Quale spazio colore usare con color-mix()?

Usa oklab per tinte, toni scuri e la maggior parte dei mix, oklch quando vuoi che la tonalità viaggi e srgb per mescolare con transparent.

Come rendo trasparente un colore con color-mix()?

Mescolalo con transparent: color-mix(in srgb, var(--brand) 20%, transparent) dà il colore del brand al 20 percento di opacità.

color-mix() è supportato in tutti i browser?

Funziona nelle versioni attuali di Chrome, Edge, Firefox e Safari. Dichiara prima un colore semplice come riserva per i browser più vecchi.

Che succede se le percentuali non sommano 100?

I totali sopra 100 vengono ridotti. I totali sotto 100 vengono portati a 100 e il risultato diventa in parte trasparente.

Condividi questa guida

Scritto da GradientlyAccount Gradiently verificato

Il team dietro Gradiently, uno strumento di design costruito attorno ai Mark: gradienti vivi che fanno sembrare tuo tutto ciò che progetti.

Vedi il nostro profilo

In questa pagina

Sintassi di color-mix()In quale spazio colore mescolareTinte e toni scuri da un solo colore del brandTrasparenza con color-mix()Errori comuni con color-mix()Supporto dei browser e alternativeMescolare i colori per i gradienti

Condividi questa guida

Il prossimo in CSS e web

Tema con variabili CSS: modalità chiara, scura e colori del brand

Continua a leggere

Tutte le guide su CSS e web
CSS e web

Tema con variabili CSS: modalità chiara, scura e colori del brand

5 min di lettura

I temi si rompono quando i colori prendono il nome da come appaiono invece che da ciò che fanno. Dai un nome ai ruoli, puntali a una palette, e modalità chiara, scura e un secondo brand diventano poche righe ciascuno.

Colore

OKLCH spiegato: il colore percettivo per designer

6 min di lettura

HSL prometteva un colore leggibile e ci è andato vicino. OKLCH conserva la parte leggibile e corregge la bugia sulla luminosità: per questo i design system lo stanno adottando.

Gradienti

Interpolazione dei gradienti: sRGB, OKLab e perché conta

5 min di lettura

Scegli blu e giallo, miscelali e il centro diventa grigio. Non è colpa dei tuoi colori: è la matematica dello spazio colore che fa la miscela, e dai tempi di CSS Color 4 puoi cambiarla.

Trova lo stile che è solo tuo.

Ogni Mark è uno sfondo vivo con un solo proprietario. Prova un Mark ancora disponibile e riserva il tuo quando ti senti pronto.

Inizia a progettare

Verifica un certificato

Scrivi il numero di un certificato o il codice di un Mark per scoprire di chi è.

Funziona con ChatGPT e Claude

Chiedi un design alla tua AI. Lo crea nel tuo Mark, pronto da modificare.

ChatGPTClaude
Come collegarla

Prodotto

  • Mercato
  • Esplora
  • Prezzi
  • Certificati

Scopri

  • Guida pratica
  • Centro assistenza
  • Novità

Sviluppatori

  • Panoramica
  • ChatGPT e Claude
  • Riferimento API
  • Chiavi API

Azienda

  • Chi siamo
  • Contattaci
  • Accedi

Note legali

  • Termini
  • Privacy
  • Rimborsi
  • Protezione dei Mark
  • Cookie
  • Tutte le policy
Passa sopra le lettere. Ognuna indossa un vero Mark.Tocca una lettera per vedere il suo Mark.Un nome. Dieci Mark al suo interno.
© 2026 Gradiently