Generatore di Gradienti CSS

Costruisci visivamente gradienti CSS lineari e radiali e copia il codice

Prova un esempio
Tipo
Angolo135°

Punti colore

0%
100%

Output CSS

background: linear-gradient(135deg, #6366f1 0%, #ec4899 100%);

Cos'è un gradiente CSS?

Un generatore di gradienti CSS è uno strumento visivo che aiuta a costruire transizioni di colore fluide senza dover scrivere la sintassi dei gradienti a mano. In CSS, un gradiente è una transizione progressiva tra due o più colori, renderizzata direttamente dal browser senza alcun file immagine. La specifica CSS Image Module Level 4 definisce le funzioni gradiente come un tipo di valore immagine, il che significa che possono comparire ovunque sia accettato un valore background-image, list-style-image o border-image. Poiché il browser rasterizza i gradienti al momento del rendering, si adattano a qualsiasi risoluzione senza produrre artefatti sfocati su schermi ad alta densità di pixel. Usare un generatore di gradienti CSS risparmia tempo ed elimina le congetture — si regolano i colori e le posizioni visivamente, poi si copia la regola CSS finale.

CSS supporta tre forme di gradiente principali: lineare (lungo una retta), radiale (verso l'esterno da un punto centrale) e conico (una rotazione attorno a un punto centrale). Ogni forma accetta un elenco di punti colore, dove si specificano il colore e, facoltativamente, una posizione (percentuale o lunghezza). Il browser interpola i colori tra i punti usando lo spazio colore sRGB per impostazione predefinita, anche se CSS Color Level 4 consente di specificare altri spazi colore come oklch e lab per transizioni percettivamente più uniformi.

I gradienti sostituiscono gli sfondi basati su immagini per la maggior parte degli scopi decorativi sul web. Una singola regola CSS produce ciò che un tempo richiedeva un'esportazione da Photoshop e una richiesta HTTP. Sono indipendenti dalla risoluzione, non richiedono larghezza di banda aggiuntiva oltre al CSS stesso, e possono essere animati con le proprietà CSS standard. La sintassi dei gradienti è stabile in tutti i principali browser dal 2013 e la forma senza prefissi funziona in Chrome, Firefox, Safari ed Edge senza fallback.

Perché usare questo generatore di gradienti CSS?

Scrivere la sintassi dei gradienti a mano significa indovinare le posizioni dei punti, verificare i valori degli angoli e aggiornare ripetutamente il browser per vedere il risultato. Un costruttore visivo permette di vedere il gradiente mentre lo si costruisce, regolare i punti trascinandoli e copiare il CSS finale quando il risultato è soddisfacente.

Anteprima visiva in tempo reale
Vedi il gradiente aggiornarsi in tempo reale mentre cambi colori, posizioni e angoli. Nessun bisogno di passare continuamente tra editor e browser.
🔒
Elaborazione orientata alla privacy
Tutto il rendering avviene nel browser. Nessun dato di colore o configurazione di gradiente viene inviato a server esterni.
🎨
Più tipi di gradiente
Costruisci gradienti lineari e radiali con pieno controllo su direzione, angolo e posizioni dei punti colore. Copia il CSS con un clic.
📋
Nessun account richiesto
Apri la pagina e inizia subito. Nessuna registrazione, nessuna barriera email, nessun limite di utilizzo. Funziona anche offline una volta caricata.

Casi d'uso del generatore di gradienti CSS

Sviluppo frontend
Costruisci sfondi per sezioni hero, overlay su card e stati hover dei pulsanti. Visualizza in anteprima il gradiente nelle dimensioni target, poi incolla il CSS direttamente nel tuo foglio di stile o nella configurazione di Tailwind.
Design di template email
Alcuni client di posta supportano i gradienti CSS negli stili inline. Genera il codice del gradiente esatto e inseriscilo direttamente sull'elemento, con un colore di fallback solido per i client che non renderizzano i gradienti.
Prototipazione del design
Quando si itera sulle combinazioni di colori nel browser invece che in Figma, si possono generare sfondi sfumati rapidamente. Confronta più opzioni affiancate senza esportare asset.
Stile per dashboard DevOps
Dashboard di stato e interfacce di monitoraggio usano gradienti di colore per rappresentare range di severità (dal verde al rosso) o densità dei dati. Genera i valori del gradiente e applicali agli sfondi dei grafici o alle barre di stato.
Visualizzazione dati
Librerie di grafici come D3.js e Recharts accettano definizioni di gradienti CSS per riempimenti di aree e heatmap. Costruisci il gradiente visivamente, poi estrai i colori dei punti per la tua funzione di scala.
Apprendimento del CSS
Gli studenti che studiano il CSS possono sperimentare con la sintassi dei gradienti, vedere come le variazioni dell'angolo influenzano la direzione e capire il posizionamento dei punti colore. Il CSS generato è un riferimento funzionante.

Riferimento ai tipi di gradiente CSS

CSS definisce cinque funzioni gradiente. I tre tipi principali (linear, radial, conic) hanno ciascuno una variante ripetuta che affianca il pattern. repeating-linear-gradient() e repeating-radial-gradient() sono utili per sfondi a strisce e anelli concentrici. Tutte le funzioni gradiente accettano punti colore in qualsiasi formato CSS: HEX, RGB, HSL, colori con nome o oklch. Il supporto browser per tutte e cinque le funzioni è praticamente universale tra Chrome, Firefox, Safari ed Edge — non sono necessari prefissi vendor.

FunzioneSintassi di esempioDirezioneUso comune
linear-gradient()to right, #f00, #00fStraight lineBackgrounds, hero sections, progress bars
radial-gradient()circle, #f00, #00fOutward from centerSpotlight effects, buttons, badges
conic-gradient()from 0deg, #f00, #00fSweep around centerPie charts, color wheels, spinners
repeating-linearto right, #f00 0 10px, #00f 10px 20pxTiled lineStripes, progress indicators, decorative borders
repeating-radialcircle, #f00 0 10px, #00f 10px 20pxTiled circleConcentric ring patterns, retro textures

Gradienti lineari vs radiali vs conici

Ogni tipo di gradiente associa i colori alla geometria in modo diverso. La scelta del tipo giusto dipende dall'effetto visivo desiderato, non da una differenza di qualità tra di loro. Per la maggior parte degli sfondi di pagina e dei divisori di sezione, il gradiente lineare è l'impostazione predefinita corretta — è la più semplice da gestire e la più prevedibile su elementi di dimensioni variabili. I gradienti radiali e conici sono più adatti a effetti visivi specifici in cui la geometria circolare o rotazionale è significativa piuttosto che decorativa.

linear-gradient()
I colori passano da un colore all'altro lungo una retta definita da un angolo (0deg = dal basso verso l'alto, 90deg = da sinistra a destra) o una parola chiave come 'to right'. Il tipo più comune, usato per sfondi, overlay e indicatori di avanzamento. Supporta più punti colore in posizioni arbitrarie.
radial-gradient()
I colori si irradiano verso l'esterno da un punto centrale in un cerchio o un'ellisse. Controlla la forma, le dimensioni e la posizione del centro con la sintassi. Utile per effetti spotlight, vignettature ed elementi UI circolari come badge o anelli intorno ad avatar.
conic-gradient()
I colori ruotano attorno a un punto centrale come le lancette di un orologio. L'angolo di partenza è configurabile con 'from Xdeg'. Utile per segmenti di grafici a torta, ruote cromatiche e indicatori di caricamento rotazionali. Richiede almeno due punti; ripetere il primo colore alla fine crea un ciclo continuo.

Esempi di codice

Esempi di generazione e applicazione di gradienti CSS a livello programmatico in JavaScript, Python, CSS e Go. Ognuno produce stringhe di gradiente CSS valide da usare direttamente nei fogli di stile o negli stili inline.

JavaScript
// Generate a CSS linear-gradient string from an array of stops
function buildGradient(angle, stops) {
  const parts = stops.map(s => `${s.color} ${s.position}%`)
  return `linear-gradient(${angle}deg, ${parts.join(', ')})`
}

const stops = [
  { color: '#6366f1', position: 0 },
  { color: '#ec4899', position: 50 },
  { color: '#f59e0b', position: 100 },
]
buildGradient(90, stops)
// -> "linear-gradient(90deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"

// Apply to an element
document.querySelector('.hero').style.background = buildGradient(135, stops)
Python
# Generate a CSS gradient string for use in templates or SVGs
def build_gradient(angle: int, stops: list[tuple[str, int]]) -> str:
    parts = [f"{color} {pos}%" for color, pos in stops]
    return f"linear-gradient({angle}deg, {', '.join(parts)})"

stops = [("#6366f1", 0), ("#ec4899", 50), ("#f59e0b", 100)]
print(build_gradient(135, stops))
# -> "linear-gradient(135deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"

# Interpolate N colors between two endpoints
def interpolate_hex(c1: str, c2: str, steps: int) -> list[str]:
    r1, g1, b1 = int(c1[1:3], 16), int(c1[3:5], 16), int(c1[5:7], 16)
    r2, g2, b2 = int(c2[1:3], 16), int(c2[3:5], 16), int(c2[5:7], 16)
    return [
        f"#{int(r1+(r2-r1)*i/(steps-1)):02x}"
        f"{int(g1+(g2-g1)*i/(steps-1)):02x}"
        f"{int(b1+(b2-b1)*i/(steps-1)):02x}"
        for i in range(steps)
    ]

interpolate_hex("#6366f1", "#f59e0b", 4)
# -> ['#6366f1', '#9a7399', '#d18042', '#f59e0b']
CSS
/* Linear gradient — left to right */
.hero {
  background: linear-gradient(90deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%);
}

/* Radial gradient — circular spotlight */
.badge {
  background: radial-gradient(circle at 30% 30%, #6366f1, #312e81);
}

/* Conic gradient — color wheel */
.wheel {
  background: conic-gradient(from 0deg, #ef4444, #f59e0b, #22c55e, #3b82f6, #8b5cf6, #ef4444);
  border-radius: 50%;
}

/* Multi-stop with transparency */
.overlay {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.6) 60%,
    rgba(0, 0, 0, 0.9) 100%
  );
}

/* Repeating stripes */
.stripes {
  background: repeating-linear-gradient(
    45deg,
    #6366f1 0 10px,
    transparent 10px 20px
  );
}
Go
package main

import "fmt"

// Stop represents one color stop in a gradient.
type Stop struct {
	Color    string
	Position int // percent 0-100
}

func buildGradient(angle int, stops []Stop) string {
	result := fmt.Sprintf("linear-gradient(%ddeg", angle)
	for _, s := range stops {
		result += fmt.Sprintf(", %s %d%%", s.Color, s.Position)
	}
	return result + ")"
}

func main() {
	stops := []Stop{
		{"#6366f1", 0},
		{"#ec4899", 50},
		{"#f59e0b", 100},
	}
	fmt.Println(buildGradient(135, stops))
	// -> "linear-gradient(135deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"
}

Domande frequenti

Qual è la differenza tra linear-gradient e radial-gradient?
linear-gradient() fa passare i colori lungo una retta con un angolo definito, mentre radial-gradient() li irradia verso l'esterno da un punto centrale in un cerchio o un'ellisse. I gradienti lineari sono la scelta standard per sfondi di pagina e overlay. I gradienti radiali funzionano meglio per effetti spotlight ed elementi UI circolari.
Come si imposta la direzione di un gradiente lineare?
Usa un angolo in gradi (ad es. 90deg per da sinistra a destra, 180deg per dall'alto verso il basso) o una parola chiave (to right, to bottom left). L'angolo ruota in senso orario dal basso: 0deg punta verso l'alto, 90deg punta a destra. Puoi anche usare 'to top right' per puntare a un angolo, e il browser calcola l'angolo esatto in base alle proporzioni dell'elemento.
È possibile animare un gradiente CSS?
I browser non possono interpolare direttamente tra due valori gradiente con le transizioni CSS. Le soluzioni comuni sono: animare la background-position di un gradiente sovradimensionato, usare @property per animare i valori dei singoli punti colore come proprietà personalizzate, oppure dissolvere incrociando con l'opacità su uno pseudo-elemento. L'approccio con @property (supportato in Chrome ed Edge dal 2020, Firefox dal 2024) è la soluzione più pulita.
Quanti punti colore può avere un gradiente?
La specifica CSS non impone un massimo. I browser gestiscono gradienti con decine di punti senza problemi di prestazioni. In pratica, la maggior parte dei gradienti usa da 2 a 5 punti. Ogni punto può specificare un colore e una posizione facoltativa come percentuale o valore di lunghezza. Si possono anche definire due posizioni per punto, creando una banda di colore netta senza transizione.
Qual è la differenza tra un gradiente e un'immagine?
In CSS, un gradiente è un'immagine calcolata. Condivide la stessa pipeline di rendering delle immagini url() e può essere usato ovunque sia valido un valore immagine: background-image, list-style-image, border-image e mask-image. La differenza è che un gradiente viene generato dal browser al momento del rendering, si adatta a qualsiasi dimensione senza perdita di qualità e non aggiunge byte al peso della pagina poiché non viene scaricato alcun file.
Come si crea un gradiente con un punto colore netto (senza transizione)?
Posiziona due punti colore nella stessa posizione. Ad esempio, linear-gradient(to right, #6366f1 50%, #ec4899 50%) crea una divisione netta senza sfumatura tra i colori. Puoi anche usare la sintassi a due posizioni: linear-gradient(to right, #6366f1 0% 50%, #ec4899 50% 100%) per definire ogni banda in modo esplicito.
La funzione conic-gradient è supportata da tutti i browser?
conic-gradient() è supportata in Chrome 69+, Firefox 83+, Safari 12.1+ ed Edge 79+. A partire dal 2024, il supporto browser globale supera il 95% secondo i dati di Can I Use. Non è necessario alcun prefisso vendor. Per la piccola percentuale di utenti su browser datati, imposta un background-color solido come fallback prima della dichiarazione del gradiente.