Il Regione Toscana Design System distribuisce il CSS tramite CDN versionata. I siti consumer (enti, portali RT) includono il CSS della versione stabile e possono personalizzare il tema tramite un file di override separato.
Stato attuale: il modello CDN descritto in questa pagina è l’assetto a regime, ancora in fase di definizione insieme a enti e partner (onboarding, versioning per consumer, dominio CDN). Finché questo percorso non è strutturato, in ambiente di sviluppo si includono i CSS copiandoli localmente dal pacchetto ZIP (vedi Pacchetti di distribuzione disponibili) e riferendoli con percorso relativo al posto dell’URL CDN. È un approccio transitorio, da sostituire con i
<link>a CDN non appena il canale sarà attivo per il proprio ente/partner.
Il DS distribuisce quattro file CSS separati, da includere in sequenza:
| File | Contenuto | Obbligatorio |
|---|---|---|
custom-properties.css |
Token layer — tutte le CSS Custom Properties | Sempre |
core.css |
Tailwind base + utilities + componenti atoms, molecules, organisms, portale | Per siti istituzionali / portali RT |
servizi.css |
Componenti 07-widgets e 08-servizi | Per applicativi servizi (richiede core.css) |
font.css |
Regole @font-face del font di default (Open Sans) |
Se si vuole il font di default del DS — senza, il testo usa il fallback di sistema del browser, senza altre conseguenze |
font.cssnon è importato dentrocore.css/servizi.css: va sempre incluso come<link>a parte. Senza, la libreria funziona comunque (nessun errore, nessun layout rotto) ma il testo non usa Open Sans. Dettagli sui font in Font.
<link rel="stylesheet" href="https://cdn.rt.toscana.it/rtds/1.x/custom-properties.css">
<link rel="stylesheet" href="https://cdn.rt.toscana.it/rtds/1.x/core.css">
<link rel="stylesheet" href="https://cdn.rt.toscana.it/rtds/1.x/font.css">
<link rel="stylesheet" href="/css/ente-theme.css"><link rel="stylesheet" href="https://cdn.rt.toscana.it/rtds/1.x/custom-properties.css">
<link rel="stylesheet" href="https://cdn.rt.toscana.it/rtds/1.x/core.css">
<link rel="stylesheet" href="https://cdn.rt.toscana.it/rtds/1.x/servizi.css">
<link rel="stylesheet" href="https://cdn.rt.toscana.it/rtds/1.x/font.css">
<link rel="stylesheet" href="/css/ente-theme.css">
servizi.cssdipende dacore.css— va sempre caricato dopo.
Il file ente-theme.css (o come lo chiama il sito consumer) contiene gli override delle custom properties ed è sempre l’ultimo della catena.
La fonte unica di verità per tutte le custom properties è:
public/css/custom-properties.cssQuesto file è l’unico posto dove definire custom properties nel DS. Nessun altro file le ridefinisce. tailwind.config.js le consuma via var(--…).
Non modificare questo file per personalizzazioni di enti specifici: usare il file di override lato consumer.
ente-theme.cssSovrascrivere le custom properties in :root con i valori dell’ente:
/* ente-theme.css — personalizzazione per [Nome Ente] */
:root {
/* Colori brand ente */
--color-primary-500: #0057A8;
--color-primary-600: #004A90;
--color-primary-700: #003D78;
/* I colori semantici si aggiornano automaticamente */
/* (--color-button-primary: var(--color-primary-500) ecc.) */
}Non è necessario ridefinire i colori semantici se cambiano solo i colori base: i token semantici già puntano ai token primitivi via var(--color-primary-*).
Le custom properties sono organizzate in livelli:
Valori concreti (hex, rem, font name). Nessuna dipendenza da altre proprietà.
--color-primary-500: #D0131A;
--spacing-base: 0.25rem;
--fontfamily-sans: 'Open Sans';Puntano ai token primitivi. Comunicano l’intenzione d’uso (contenuto, sfondo, bordo…).
--color-content-01: var(--color-neutral-900);
--color-background-01: var(--color-neutral-50);
--color-button-primary: var(--color-primary-500);Pattern usato da diversi componenti servizi per permettere override dal CMS ospitante — non è ancora presente su tutti i componenti 08-servizi/ né sui 07-widgets/ esistenti. Vedi copertura reale e dettagli nella sezione Architettura bundle CSS → Pattern triple fallback.
--_card-smart-bg: var(--card-smart-bg, var(--color-background-01, var(--color-neutral-50)));| Token | Default RT | Descrizione |
|---|---|---|
--color-primary-500 |
#D0131A |
Colore primario — pulsanti, link, accenti |
--color-primary-600 |
#AD1016 |
Primario hover |
--color-primary-700 |
#8B0D11 |
Primario active |
--color-secondary-500 |
#305D9F |
Colore secondario — navigazione, highlights |
--color-secondary-600 |
#284E84 |
Secondario hover |
| Token | Default | Descrizione |
|---|---|---|
--spacing-base |
0.25rem (4px) |
Unità base — tutte le spaziature derivano da questa |
| Token | Default | Descrizione |
|---|---|---|
--fontfamily-sans |
'Open Sans' |
Font principale — caricare il font separatamente se si cambia |
Quando si sovrascrivono i colori, verificare che il contrasto rispetti WCAG 2.1 AA:
Strumento consigliato: Colour Contrast Analyser
| Canale | Contenuto | Uso |
|---|---|---|
| Pacchetto ZIP | Gli stessi CSS + sprite SVG icons.svg |
Attuale — ambiente di sviluppo, in attesa della strutturazione CDN per enti/partner |
| CDN RT | custom-properties.css + core.css + servizi.css + font.css versionati |
A regime — produzione, includi in <link> |
| Sito documentale | UI Fractal con componenti e documentazione | Consultazione pattern e codice |
Per la lista delle versioni disponibili e gli URL CDN, fare riferimento al sito documentale RTDS.