Files
SteUP_Dotnet/SteUp.Shared/wwwroot/css/tokens.css
T
MarcoE 811d8a86d8 Correzioni alla UI dopo la verifica sul terminale
Prime correzioni fatte guardando l'app su un Honeywell EDA52 (720x1440
@320dpi, cioe' 360 punti logici di larghezza) invece che a occhio.

- Barra di stato: era tinta di corallo da colorPrimaryDark, cioe' l'accento
  usato come decorazione della cornice di sistema. Ora si fonde con lo
  sfondo dell'app, con icone scure (WindowInsetsController).
- Gradino compatto sotto i 380px: la scala di STILE_UI e' tarata su telefoni
  piu' larghi, e a misura piena i titoli si troncavano e in una schermata
  entrava pochissimo lavoro. Le proporzioni restano, cambia la taglia.
  Sui telefoni normali non cambia nulla.
- Icone delle azioni costruttive: usavano il fondo del tono danger, quindi
  "Nuova scheda" e "Aggiungi una foto" erano identiche a "Elimina
  ispezione". Ora usano il tono info. Un --primary-surface non risolveva:
  il primario di SteUP e' gia' un rosso, quindi un suo fondo tenue resta
  indistinguibile da quello danger.
- Testata: il titolo puo' andare su due righe prima di troncare. Il nome del
  punto vendita e' l'ancora del compito, "D11-PRIMO PREZ..." non aiuta.
- Schermata ispezione: il nome del punto vendita non e' piu' ripetuto nel
  pannello di riepilogo, dove era gia' in testata.
- Padding dei gruppi di form e della barra azioni ridotti su schermo stretto.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 11:52:31 +02:00

206 lines
7.7 KiB
CSS

/* =============================================================================
SteUP — Token di design
Implementa STILE_UI.md §2 (ruoli colore) e §3 (scale) sulla palette SteUP.
Regola: nelle pagine si usano SOLO questi token. Un colore o un raggio
scritto a mano in una schermata e' un difetto, non una scorciatoia.
========================================================================== */
:root {
/* -------------------------------------------------------------------------
COLORE — ruoli semantici (STILE_UI §2)
La palette storica di SteUP resta intatta: corallo azione, navy ancora,
azzurro tenue informativo. Sono stati aggiunti solo i ruoli che
mancavano: workspace, surfaceMuted, divider, inkMuted e le coppie
(foreground forte / superficie tenue) dei toni semantici.
---------------------------------------------------------------------- */
/* Accento unico di azione. La sua rarita' e' cio' che lo rende un segnale. */
--primary: #ec4c41;
--primary-pressed: #d23a30;
--on-primary: #ffffff;
/* Ancora della struttura: testo forte, icone metrica, foreground su info. */
--primary-dark: #002339;
/* Superfici: lo sfondo pagina e' piu' freddo delle superfici di lavoro.
Tre gradini netti, cosi' i pannelli staccano senza bisogno di ombre. */
--workspace: #e9edf2;
--surface: #ffffff;
--surface-muted: #f4f6f9;
--divider: #d9e0e8;
/* Testo. Inchiostro pieno per la lettura in pieno sole (Regola del
Contrasto da Sole): niente grigio chiaro sul corpo del testo. */
--ink: #000000;
--ink-muted: #465563; /* 8.3:1 su surface, 7.4:1 su workspace */
/* --- Toni semantici -----------------------------------------------------
Ogni tono e' una tripletta:
-ink foreground forte: testo e icone sopra la superficie tenue
-surface riempimento tenue: badge, pannelli, cerchi-icona dei dialog
-solid riempimento pieno: toast (testo bianco sopra)
Gli -ink sono scelti per superare 4.5:1 sulla propria superficie tenue:
i colori "puri" della palette restano per icone e riempimenti pieni,
dove il contrasto di testo non e' in gioco.
-------------------------------------------------------------------- */
/* Danger — errori, azioni distruttive, priorita' massima */
--danger-ink: #b3120c;
--danger-surface: #fdeceb;
--danger-solid: #e50000;
/* Warning — attenzione, dati incompleti, bozze da completare */
--warning-ink: #8a4f00;
--warning-surface: #fdf0db;
--warning-solid: #b26a00;
/* Success — conferme, completamenti, sincronizzato */
--success-ink: #10702f;
--success-surface: #e4f5e9;
--success-solid: #26b050;
/* Info — stato informativo, pannelli di riepilogo, selezione */
--info-ink: #002339;
--info-surface: #dff2ff;
--info-solid: #1877d8;
/* Neutral — stati senza carica semantica */
--neutral-ink: #465563;
--neutral-surface: #f4f6f9;
--neutral-solid: #465563;
/* Focus da tastiera */
--focus-ring: #258cfb;
/* -------------------------------------------------------------------------
SPAZIATURA (STILE_UI §3)
---------------------------------------------------------------------- */
--space-xs: 8px;
--space-sm: 12px;
--space-md: 16px;
--space-lg: 24px;
--space-xl: 32px;
/* Micro-distanze derivate, d'uso frequente */
--space-2: 2px;
--space-4: 4px;
--space-6: 6px;
--space-10: 10px; /* tra le card di una lista */
--space-14: 14px;
--space-18: 18px; /* padding dei pannelli di testata */
--space-20: 20px;
--space-22: 22px;
/* -------------------------------------------------------------------------
RAGGI (STILE_UI §3)
Superfici piu' arrotondate dei controlli; stati completamente stondati.
---------------------------------------------------------------------- */
--radius-compact: 8px;
--radius-control: 16px;
--radius-surface: 20px;
--radius-pill: 999px;
/* -------------------------------------------------------------------------
TIPOGRAFIA (STILE_UI §4)
Scala fissa: si legge a colpo d'occhio, non fa effetto editoriale.
---------------------------------------------------------------------- */
--font-sans: "Inter", "SF Pro Display", "Roboto", system-ui, sans-serif;
--headline-md-size: 34px;
--headline-md-height: 1.2;
--headline-sm-size: 28px;
--headline-sm-height: 1.25;
--title-lg-size: 22px;
--title-lg-height: 1.3;
--title-md-size: 18px;
--title-md-height: 1.35;
--body-lg-size: 16px;
--body-lg-height: 1.5;
--body-md-size: 15px;
--body-md-height: 1.45;
--label-lg-size: 14px;
--label-md-size: 13px;
--label-sm-size: 12px;
/* -------------------------------------------------------------------------
MISURE STRUTTURALI
---------------------------------------------------------------------- */
--appbar-height: 80px;
--navbar-height: 68px;
--touch-min: 44px;
--button-height: 48px;
--content-max: 920px;
/* Spazio che le pagine lasciano in fondo per non finire sotto la barra
flottante di navigazione (STILE_UI §6.15). */
--nav-clearance: 116px;
/* -------------------------------------------------------------------------
MOVIMENTO
Curve esponenziali in uscita: il movimento serve allo stato, mai alla
scena. Durate da prodotto, l'utente e' dentro un compito.
---------------------------------------------------------------------- */
--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
--duration-fast: 120ms;
--duration-base: 200ms;
--duration-slow: 280ms;
/* -------------------------------------------------------------------------
PROFONDITA' — scala semantica, mai valori arbitrari
Le superfici sono piatte (STILE_UI §1): questi livelli ordinano solo
cio' che galleggia davvero.
---------------------------------------------------------------------- */
--z-base: 0;
--z-sticky: 10;
--z-navbar: 20;
--z-connection: 30;
--z-overlay: 40;
--z-modal: 50;
--z-toast: 60;
/* L'unica ombra del sistema: il toast (STILE_UI §6.9). */
--shadow-toast: 0 6px 20px rgba(0, 0, 0, 0.24);
/* Breakpoint (STILE_UI §3) — documentati qui, usati nelle media query:
rail 720px · twoColumn 900px · contentMax 1180px */
}
/* =============================================================================
Gradino compatto — schermi stretti (≤380px)
Il terminale da campo (Honeywell EDA52) ha 360 punti logici di larghezza,
molto meno dei telefoni per cui la scala di STILE_UI è tarata: a misura
piena i titoli si troncano, il testo va a capo e in una schermata entra
pochissimo lavoro. Qui la scala scende di un gradino — le proporzioni e i
rapporti restano quelli del documento, cambia solo la taglia.
È l'"Adattamento locale" del §8: i componenti si riorganizzano sotto le
soglie invece di pretendere lo spazio che non c'è.
========================================================================== */
@media (max-width: 380px) {
:root {
--headline-md-size: 28px;
--headline-sm-size: 22px;
--title-lg-size: 18px;
--title-md-size: 16px;
--body-lg-size: 15px;
--body-md-size: 14px;
--label-lg-size: 13px;
--label-md-size: 12px;
--label-sm-size: 11px;
--space-lg: 20px;
--space-xl: 24px;
--space-18: 14px;
--space-20: 16px;
--space-22: 18px;
--appbar-height: 64px;
--button-height: 44px;
--navbar-height: 62px;
--nav-clearance: 104px;
}
}