Design System · v1

Onbordi UI

Fonte di verità dei token, dei componenti e degli stati. Ogni pagina deve consumare solo token da qui, nessun valore hardcoded.

Token

Colore

Semantici, organizzati per ruolo. Cambiali in globals.css → tutta l'app si adegua.

Background

Sfondi di superfici e container

background
--background
card
--card
popover
--popover
muted
--muted
secondary
--secondary
accent
--accent

Text

Colori testo corrispondenti agli sfondi

foreground
--foreground
dark
card-foreground
--card-foreground
dark
muted-foreground
--muted-foreground
dark
secondary-foreground
--secondary-foreground
dark
accent-foreground
--accent-foreground
dark
primary-foreground
--primary-foreground

Border

Bordi, input, anelli di focus

border
--border
input
--input
ring
--ring
dark

Brand

Colori identità, unici e usati con parsimonia

primary
--primary
dark

Status

Segnali: errore, successo, avviso

destructive
--destructive
dark

Platform

Una coppia per ogni canale di prenotazione (OTA + diretta)

platform-booking
--platform-booking
dark
platform-airbnb
--platform-airbnb
dark
platform-vrbo
--platform-vrbo
dark
platform-expedia
--platform-expedia
dark
platform-direct
--platform-direct
dark
platform-other
--platform-other
dark

Token

Typography

Host Grotesk · scala armonica Tailwind · pesi 400/500/600

Famiglia

Un solo font per tutto: coerenza prima di tutto

--font-sans
Host Grotesk
--font-mono
const check = true

Scala

Usa sempre le utility Tailwind, niente font-size custom

text-6xl
60px
Titolone hero
text-5xl
48px
Titolo pagina
text-4xl
36px
Sezione
text-3xl
30px
Sotto-sezione
text-2xl
24px
Card title
text-xl
20px
Lead paragraph
text-lg
18px
Intro
text-base
16px
Body · lettura normale
text-sm
14px
Metadata, helper, label
text-xs
12px
Caption, note, micro

Peso

Ne bastano tre

font-normal
400
Peso normale
font-medium
500
Peso medio
font-semibold
600
Peso semibold

Token

Radius

--radius: 0.875rem · tutti gli altri derivano da qui

rounded-sm
rounded-md
rounded-lg
rounded-xl
rounded-2xl
rounded-full

Componenti

Button

Tutte le varianti shadcn

Componenti

FloatingInput

Default per tutti i form. Stile Airbnb: alto, label che galleggia all'interno, bordo grigio chiaro che diventa primary in focus.

Lo usiamo per mandarti il link di accesso.

Numero non valido.

Es. Via Brera 1

Componenti

FloatingSelect

Dropdown con la stessa estetica del FloatingInput. Da usare ovunque accanto a un FloatingInput per mantenere allineamento visivo.

Componenti

Input compatto + Textarea

Versione piccola per tabelle, dropdown, filtri. NON usare nei form principali.

Componenti

OTP Input

Per inserire il codice ricevuto via email/SMS. 6 caselle di default, auto-advance al digitare, supporta paste del codice intero.

Valore corrente: vuoto

Componenti

Checkbox

Componenti

Badge

DefaultSecondaryOutlineDestructive

Componenti

Platform badge

Iniziale + colore canale. Usato nelle pillole del calendario e nelle liste prenotazioni.

DirettaDiretta
Booking.comBooking.com
AirbnbAirbnb
VrboVrbo
ExpediaExpedia
AltroAltro
Periodo chiusoPeriodo chiuso
Esempio pillola calendario
Booking.comMaria Juliana Londoño Rodriguez
AirbnbMaria Juliana Londoño Rodriguez
DirettaMaria Juliana Londoño Rodriguez

Componenti

Card

Check-in inviato
Via Roma 12 · 3 ospiti
Dati trasmessi a ROSS 1000 e Alloggiati Web alle 14:32.
Pagamento ricevuto
€ 42,00 · tassa soggiorno
Stripe ha accreditato l'importo sul tuo account.