In breve
- Per rendere trasparente un gradiente CSS usa come stop un colore con alfa zero, come transparent o rgb(124 58 237 / 0).
- I browser moderni interpolano i colori del gradiente con alfa premoltiplicato, quindi sfumare un colore verso la parola chiave transparent non produce più una banda grigia.
- Un gradiente di sfondo può sfumare solo lo sfondo; per sfumare il contenuto vero di un elemento usa mask-image con un gradiente.
- Uno scrim con più stop dolci appare più morbido di una sfumatura a due stop, che mostra un bordo visibile dove finisce lo scurimento.
- Un gradiente radiale trasparente al centro e scuro all’esterno crea un riflettore che attira l’attenzione su una sola zona.
In questa pagina
Per rendere trasparente un gradiente CSS, dai a uno dei suoi stop un colore con alfa zero: linear-gradient(to bottom, #7c3aed, transparent) sfuma il viola nel nulla e lascia vedere ciò che sta sotto. Lo stesso principio vale per le dissolvenze a fine testo, gli scrim scuri dietro le didascalie e i veli colorati sulle foto. Per sfumare il contenuto di un elemento e non il suo sfondo, usa invece mask-image con un gradiente.
Modi di scrivere un colore trasparente
transparentSignifica
Usalo quando
rgb(124 58 237 / 0)Significa
Usalo quando
rgb(124 58 237 / 0.4)Significa
Usalo quando
#7c3aed66Significa
Usalo quando
color-mix(in srgb, var(--brand) 40%, transparent)Significa
Usalo quando
color-mix() è l’unica che funziona su un colore noto solo come variabile; vedi color-mix() in CSS.Perché le sfumature diventavano grigie
La parola chiave transparent è nero con alfa zero. I primi browser mescolavano separatamente i canali rosso, verde e blu e il canale alfa, così una sfumatura da bianco a transparent passava per un grigio semitrasparente. Per questo i vecchi tutorial insistono su rgba(255, 255, 255, 0).
La specifica ora richiede l’alfa premoltiplicato: ogni colore è pesato in base alla sua opacità prima della miscelazione, quindi uno stop completamente trasparente non porta alcun colore. Tutti i browser attuali lo fanno. Scrivere il colore corrispondente con alfa zero resta un’abitudine innocua e ti protegge nei client di posta e nei vecchi WebView.
Comportamento vecchio
- Da bianco a
transparentpassa per il grigio - Canali di colore mescolati senza tener conto dell’opacità
- Soluzione: ripeti il colore con alfa zero
Browser attuali
- Da bianco a
transparentresta bianco mentre svanisce - Alfa premoltiplicato, come richiede la specifica
- Vanno bene entrambe le forme; quella esplicita è più portabile
Conta quanto dove finisce la sfumatura e quali colori usa. Uno stop al 70 percento chiude la sfumatura in anticipo e lascia il resto del box completamente libero, ideale per una tinta che deve toccare solo un bordo. Due stop nella stessa posizione creano un taglio netto dal colore al nulla, utile per barre riempite a metà e sfondi divisi. Le posizioni degli stop sono spiegate in Gradienti lineari in CSS.
Sfumare i contenuti con mask-image
Un gradiente di sfondo sta dietro al contenuto, quindi non può sfumare testo, immagini o un elenco scorrevole. Una maschera sì. Con mask-image, le parti opache del gradiente mantengono visibile l’elemento e quelle trasparenti lo nascondono. Il colore della maschera non conta, conta solo l’alfa.
/* Fade the last lines of a teaser paragraph */
.teaser {
max-height: 9rem;
overflow: hidden;
mask-image: linear-gradient(to bottom, #000 60%, transparent);
}
/* Soft edges on a horizontally scrolling row */
.carousel {
overflow-x: auto;
mask-image: linear-gradient(to right, transparent, #000 48px, #000 calc(100% - 48px), transparent);
}
/* Fade a photo into the page on any background colour */
.hero-photo {
mask-image: linear-gradient(to bottom, #000 50%, transparent 95%);
}mask-image senza prefisso funziona nei browser attuali; aggiungi -webkit-mask-image per i Safari più vecchi.La vecchia alternativa era un gradiente bianco sopra il contenuto. Si rompe appena la pagina non è bianca, per esempio nella modalità scura, e blocca i clic se non ricordi pointer-events: none. Una maschera non ha nessuno dei due problemi.
Scrim: gradienti trasparenti per il testo
Uno scrim scurisce una parte di un’immagine perché il testo sopra si legga, e svanisce fino alla trasparenza totale perché il resto della foto resti luminoso. Una sfumatura a due stop funziona, ma la sua rampa dritta lascia una linea visibile dove finisce lo scurimento. Più stop, distribuiti in modo dolce, nascondono quel bordo.
linear-gradient(to top, rgb(2 6 23 / 0.8) 0%, rgb(2 6 23 / 0.62) 15%, rgb(2 6 23 / 0.42) 30%, rgb(2 6 23 / 0.24) 48%, rgb(2 6 23 / 0.1) 66%, rgb(2 6 23 / 0.03) 82%, rgb(2 6 23 / 0) 100%).card {
background-image:
linear-gradient(to top,
rgb(2 6 23 / 0.8) 0%, rgb(2 6 23 / 0.62) 15%, rgb(2 6 23 / 0.42) 30%,
rgb(2 6 23 / 0.24) 48%, rgb(2 6 23 / 0.1) 66%, rgb(2 6 23 / 0.03) 82%,
rgb(2 6 23 / 0) 100%),
url("/images/coast.jpg");
background-size: cover;
color: #f8fafc;
}Tingi lo scrim con una versione profonda del colore della foto invece del nero puro e sembrerà parte dell’immagine. Su una foto di tramonto caldo, un marrone scuro come rgb(41 20 8 / 0.75) si fonde con l’immagine, mentre il nero sembrerebbe un filtro appoggiato sopra. Overlay a gradiente in CSS tratta i veli di colore e le modalità di fusione, e testo sulle immagini la posizione.
Buchi trasparenti e riflettori
Capovolgi l’idea: trasparente al centro, scuro fuori. Un gradiente radiale steso su una pagina o un’immagine lascia illuminata una zona e attenua con discrezione tutto il resto, perfetto per i suggerimenti di onboarding, i primi piani di prodotto e le slide.
.spotlight::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background: radial-gradient(
circle at var(--x, 50%) var(--y, 40%),
transparent 0 140px,
rgb(2 6 23 / 0.72) 220px
);
}--x e --y da JavaScript per spostare il riflettore. La miscela di 80 pixel tra gli stop mantiene morbido il bordo.Senza alcuna modellazione, le parole competono con la parte più luminosa dello sfondo.
Lo sfondo si calma dietro le parole, il lavoro che uno scrim fa su un sito web.
Per i post social e la stampa raramente serve costruire a mano gli scrim. In Gradiently è il Mark stesso a fare spazio alle tue parole, approfondendo o schiarendo i colori vicino alle lettere, senza alcun livello di overlay da regolare per ogni formato.
Le domande più frequenti
Come faccio sfumare un gradiente CSS verso il trasparente?
Usa un colore con alfa zero come ultimo stop: linear-gradient(#7c3aed, transparent) oppure, per essere espliciti, linear-gradient(#7c3aed, rgb(124 58 237 / 0)).
Perché il mio gradiente verso il trasparente sembra grigio?
I browser più vecchi mescolano senza alfa premoltiplicato, quindi transparent (nero trasparente) fa diventare grigio il centro. Sfuma invece verso il tuo colore con alfa zero.
Come sfumo un testo o un’immagine con il CSS?
Usa mask-image con un gradiente, per esempio mask-image: linear-gradient(#000 60%, transparent). L’elemento sfuma su qualsiasi colore di sfondo.
Che cos’è uno scrim in CSS?
Un gradiente che scurisce una parte di un’immagine dietro il testo e svanisce fino alla trasparenza altrove, così il testo si legge e l’immagine resta luminosa.
Un gradiente CSS può avere un buco trasparente?
Sì. Un gradiente radiale trasparente al centro e scuro più all’esterno lascia un riflettore libero sopra ciò che sta sotto.
Scritto da Gradiently
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