Accento viola decorativo (categorie/CTA secondari NON semantici — es. badge
CERT, bottoni "Aggiungi" di contesto). Non è success/warning/danger/info:
è una tinta brand-adiacente. Light violet-600, override dark violet-400.
Ombra leggera per card statiche (Foundation L1 raised): sottile, quasi
hairline. Da preferire su superfici NON transitorie. cardShadow resta
(più marcata) per retrocompat dei consumer esistenti.
6px — gap icona↔testo (off-grid intenzionale).
Usato per: spaziatura tra icona leading e label in bottoni/chip/dropdown,
dove gapSm (8) è troppo largo e gapXs (4) troppo stretto. Consolida i
vari spacing: 6 / SizedBox(width: 6) sparsi (e l'iconTextGap locale).
0.50 — scrim / stato disabilitato.
Usato per: bordo e sfondo di controlli disabilitati (input, card border
disabled), overlay arco di loading, dimming di elementi non interattivi.
0.04 — tinta quasi impercettibile.
Usato per: wash di sfondo pagina su tinta semantica (error page),
fondo gradiente di card tonali nel punto più tenue, hint di colore.
0.20 — bordo tonale / hover fill.
Usato per: bordo di pill/alert/info banner, hover fill su superfici neutre,
avatar role badge, separatori tinti su tinta.
0.14 — fill tonale enfatizzato.
Usato per: sfondo container icona in card metriche/summary, stato selezionato
di view toggle, avatar tinti, evidenziazioni leggermente più marcate.
0.10 — fill tonale standard (cluster dominante del DS).
Usato per: sfondo di badge/chip/pill tinti, alert soft, stato selezionato
di voci lista/menu/calendario, container icona tenue. Default per tinta su superficie.
0.28 — bordo tonale forte / hover.
Usato per: bordo di summary card, bordo hover di action chip, bordo
info banner in dark mode, contorni che devono restare leggibili.
Colore contrasto su primary (checkmark checkbox, testo su fill primario).
Bianco in light e dark: primary è blu mid-sat in entrambi. Allineato al
primaryForeground dello ShadColorScheme.
36px — radius delle bolle shell (header/menu/contenuto/AI). Pari a metà
dell'altezza della bolla header (≈ buttonHeightDefault + 2·gapLg) così
l'header risulta tondo alle estremità (capsula); le bolle più alte
condividono lo stesso raggio per coerenza visiva.
Bridge tema CL → Shad ("budella"). Produce lo shad.ShadThemeData che
l'app monta via ShadTheme(...): gli internal Shad dentro i widget CL*
(es. ShadInput in CLTextField) ereditano palette/raggio/font dai token CL.
I 20 token Shad sono mappati deliberatamente sulla palette CL (grigio Shad
= muted, non il blu brand). Reattivo a light/dark: la brightness è
derivata dalla luminanza dello sfondo — nessun getter dedicato, non tocca
la gerarchia CLTheme.