Foglia & Vino
Brand identity completa e sito e-commerce per una cantina artigianale toscana.
Component Library — copia, incolla, spedisci.
Library · v1.0 · 2026Cinque colori core. Ogni superficie cliccabile usa una shade derivata per gli stati hover/active. Clicca uno swatch per copiarne l'HEX.
Core palette
Shade derivate — default / hover / active
Codice — usa i token colore
/* I colori vivono come CSS custom properties globali */
.mio-blocco {
background: var(--green); /* #A6C93A — primario */
color: var(--black); /* #111111 */
border: var(--bw) solid var(--black);
border-radius: var(--r-lg);
box-shadow: var(--shadow);
}
/* palette: --green --lilac --peach --ivory --black
stati: --green-hover / --green-active (idem lilac/peach/black)
semantici: --error --success · focus: --ring */Satoshi per i display in MAIUSCOLO, Inter per il body, JetBrains Mono per dettagli tecnici. Scala modulare con line-height e letter-spacing definiti.
Scala di spacing su base 4/8px, angoli morbidi generosi, ombre solide offset e movimenti tattili. Passa il mouse sulla card "Motion" per vedere l'easing.
Quattro varianti, cinque stati ciascuna. Hover solleva di -2px e fa crescere l'ombra; active schiaccia di +1px.
Codice — copia & incolla
<!-- 4 varianti · aggiungi disabled per lo stato disabilitato -->
<button class="btn btn--primary">Avvia</button>
<button class="btn btn--secondary">Scopri</button>
<button class="btn btn--dark">Contatti</button>
<button class="btn btn--ghost">Annulla</button>
<!-- con icona a destra -->
<button class="btn btn--primary">
Make it spicy
<svg class="arr" viewBox="0 0 24 24" fill="none">
<path d="M6 18 18 6M8 6h10v10" stroke="currentColor"
stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" />
</svg>
</button>Colori di stato coerenti: bordo nero a riposo, verde + ring lilla in focus, rosso in errore, verde con check in success, grigio desaturato in disabled.
Text · stati
Textarea & select
Checkbox · radio · toggle
Codice — copia & incolla
<!-- campo di testo -->
<div class="field">
<label>Nome</label>
<input class="inp" type="text" placeholder="Mario Rossi" />
</div>
<!-- stati: aggiungi .is-error o .is-success all'input -->
<input class="inp is-error" type="email" value="hello@wazhubi" />
<!-- select -->
<select class="inp">
<option>Brand Identity</option>
<option>Sito Web</option>
</select>
<!-- checkbox -->
<label class="check">
<input type="checkbox" />
<span class="box">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none">
<path d="M5 12.5 10 17.5 19 7" stroke="#111" stroke-width="3"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</span>
<span>Accetto la privacy policy</span>
</label>
<!-- toggle -->
<label class="toggle">
<input type="checkbox" />
<span class="track"><span class="knob"></span></span>
<span>Notifiche email</span>
</label>Frame arrotondati con bordo nero spesso e ombra solida. Hover li solleva in diagonale — la firma "sticker" del brand.
Brand identity completa e sito e-commerce per una cantina artigianale toscana.
Automazioni intelligenti che fanno risparmiare 30 ore a settimana al team.
Negozio online veloce e responsive, costruito per convertire i visitatori.
Codice — copia & incolla
<!-- card sticker: bordo nero, ombra, lift in hover -->
<article class="uicard">
<h4>Titolo della card</h4>
<p>Una breve descrizione del contenuto.</p>
</article>
<!-- superficie base senza hover -->
<div class="frame" style="padding: 32px">
Contenuto dentro un frame.
</div>Pill, tag e indicatori di stato per etichettare categorie, filtri e condizioni di sistema.
Badge / pill
Tag
Stato di sistema
Codice — copia & incolla
<!-- badge / pill -->
<span class="badge badge--green"><span class="dot-i"></span>Primary</span>
<span class="badge badge--lilac"><span class="dot-i"></span>Secondary</span>
<span class="badge badge--dark"><span class="dot-i"></span>Dark</span>
<!-- tag -->
<span class="tag">Strategia</span>
<!-- stato di sistema -->
<span class="status status--ok"><span class="led"></span>Online</span>
<span class="status status--warn"><span class="led"></span>In coda</span>
<span class="status status--err"><span class="led"></span>Errore</span>