Generatore di palette Material Design
Trasformi un colore esadecimale in una scala completa di tonalità Material Design per interfacce, token di progettazione, prototipi e documentazione.
Esegui gratis nel browser
Il generatore mantiene il colore indicato al livello 500 e calcola i livelli chiari da 50 a 400 e quelli scuri da 600 a 900. Ogni risultato viene restituito come testo #RRGGBB in maiuscolo, pronto da copiare in CSS, in un file di tema o in un sistema di token. Il calcolo è immediato, ripetibile e non dipende da servizi di rete o scelte cromatiche soggettive.
Parta da un colore di base affidabile
Inserisca un colore esadecimale di sei cifre preceduto dal cancelletto, come #3F51B5. Questo valore diventa la tonalità 500, il riferimento visivo della scala generata. Un formato rigoroso elimina le ambiguità tra notazioni abbreviate, codici con canale alfa e valori esadecimali privi di cancelletto. Prima di scegliere la base, consideri dove verrà usata più spesso. Un colore distintivo del marchio applicato ai pulsanti potrebbe richiedere contrasto sufficiente sia sulle superfici chiare sia su quelle scure, mentre un colore decorativo per grafici potrebbe dover risaltare rispetto alle serie vicine. Il generatore non modifica silenziosamente il riferimento per soddisfare obiettivi di contrasto; mantenere intatto il livello 500 rende la palette riconducibile alla scelta iniziale. I livelli con numero inferiore diventano progressivamente più chiari, quelli superiori più scuri. L'output usa valori di sei cifre in maiuscolo, pronti per proprietà CSS, file JSON di token, temi dei componenti o documentazione. Le stringhe non valide vengono rifiutate invece di essere interpretate parzialmente o per supposizione.
Comprenda come viene prodotta la scala
La palette segue le consuete etichette Material: 50, 100, 200, 300, 400, 500, 600, 700, 800 e 900. Il livello 500 coincide esattamente con la base fornita. Per il lato chiaro, ciascun canale rosso, verde e blu viene miscelato con il bianco in proporzioni fisse, con la schiaritura più intensa al livello 50. Per il lato scuro, gli stessi canali vengono miscelati con il nero e il livello 900 riceve l'oscuramento maggiore. Ogni canale viene arrotondato all'intero più vicino e riconvertito in formato esadecimale. L'interpolazione RGB fissa rende l'algoritmo trasparente e deterministico: lo stesso input produce sempre gli stessi dieci valori nello stesso ordine. Evita inoltre dipendenze nascoste da profili dello schermo, gestione cromatica del browser, API di rete o impostazioni variabili dei programmi di design. La scala risultante è una famiglia tonale pratica in stile Material, ma non implica che ogni intervallo abbia identica luminosità percepita. La vista umana reagisce diversamente alle varie tinte; in presenza di requisiti percettivi rigorosi, usi il risultato come punto di partenza stabile e lo valuti nel contesto effettivo.
Applichi la palette tutelando l'accessibilità
Associ i valori restituiti a token semantici invece di distribuire i numeri delle tonalità in tutta l'applicazione. Un tema può, per esempio, assegnare una tonalità allo sfondo interattivo, un'altra allo stato di passaggio del puntatore e una più chiara alla superficie selezionata. Conservare questa mappatura in un unico livello di token consente di regolare il sistema visivo senza modificare ogni componente. Verifichi sempre le combinazioni di primo piano e sfondo con la dimensione e il peso del carattere realmente pubblicati. Il numero della tonalità non garantisce uno specifico rapporto di contrasto e due colori di base possono produrre risultati di accessibilità molto diversi allo stesso livello. Esamini separatamente indicatori di messa a fuoco, controlli disabilitati, visualizzazioni di dati, modalità scura e impostazioni ad alto contrasto. La palette generata accelera l'esplorazione fornendo rapidamente opzioni coerenti, ma la scelta finale deve comunque considerare contesto e significato. Non usi il colore come unico segnale per errori o stati. Quando progettazione e sviluppo condividono la palette, registri insieme la base originale e i valori generati affinché le modifiche future siano riproducibili.
Casi d'uso
Creare token per l'interfaccia
Converta un colore del marchio approvato in una scala prevedibile di dieci livelli per stati e superfici dei componenti.
Prototipare un tema Material
Produca tonalità esadecimali pronte da copiare prima di assegnare gli stati principale, attivo e selezionato.
Uniformare la consegna tecnica
Condivida una palette riproducibile e adatta a JSON anziché campioni cromatici dai nomi imprecisi.
Domande frequenti
Quale formato di input è accettato?
Usi esattamente un cancelletto seguito da sei cifre esadecimali, per esempio #3F51B5. Le forme a tre cifre, i canali alfa e i valori senza cancelletto vengono rifiutati.
Quale tonalità contiene il colore originale?
La tonalità 500 è la forma normalizzata in maiuscolo del colore originale. Il generatore non la modifica mai.
Come vengono calcolate le tonalità chiare e scure?
I canali RGB vengono miscelati in proporzioni fisse con il bianco per i livelli da 50 a 400 e con il nero per quelli da 600 a 900.
Una tonalità generata garantisce un contrasto accessibile?
No. Il contrasto dipende da primo piano, sfondo, dimensione e peso del testo; verifichi ogni combinazione prevista.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. La versione per browser esegue localmente lo stesso calcolo deterministico.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/color/material-palette-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base_color":"#3F51B5"}'const res = await fetch("https://api.kit.forhosting.com/color/material-palette-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base_color": "#3F51B5"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/material-palette-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base_color": "#3F51B5"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/material-palette-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base_color":"#3F51B5"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base_color":"#3F51B5"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/material-palette-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"base_color": "#3F51B5"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.material_palette_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |