DESIGN
Lo stile di start2impact

PANORAMICA

Panoramica

Questa guida si configura come un manuale d'uso in grado di offrire l'essenza del brand start2impact, il suo posizionamento e le informazioni necessarie all'uso corretto del brand dal punto di vista dell'identità: logo, colori, tipografia, elementi grafici e immagini. Il manuale rappresenta uno strumento essenziale per garantire coerenza e uniformità di tutta l'immagine del brand. Applicando correttamente le regole contenute, è possibile produrre materiali facilmente riconoscibili. In molti casi il manuale presenta diversi template il cui scopo è dare delle prime linee guida per guidare il team durante la progettazione di uno o più elaborati.

Struttura

Cosa contiene

Il manuale raccoglie il manifesto del brand, il design system e le linee guida di scrittura. Usa la barra in alto per spostarti.

Info

Il manuale è un progetto in continua evoluzione soggetto a periodici aggiornamenti. Si rivolge a tutto il team di start2impact e a coloro che collaborano con la società benefit. Per eventuali chiarimenti o utilizzi non menzionati, contattare il team di Design.

Manifesto

Missione

Diventa un professionista digitale e crea un impatto positivo sul mondo.

start2impact forma le persone a diventare professioniste del digitale attraverso progetti pratici, corretti da professionisti del settore. Impari facendo, costruisci un portfolio reale e acceleri la tua carriera — con l'obiettivo di generare un impatto positivo su società e ambiente.

Cosa ci guida

Valori

I valori sono la bussola del brand: orientano le decisioni, il tono di voce e il modo in cui start2impact si presenta — dentro e fuori dal team. Nascono dalla cultura di lavoro della società benefit e vanno applicati con coerenza in ogni materiale, digitale o stampato.

Prendersi cura di se stessi

Nessuno dà ciò che non ha.

Non possiamo aiutare gli altri se prima non stiamo bene con noi stessi. Ci impegniamo costantemente a migliorarci a livello umano e professionale.

Impatto oltre noi stessi

Persone. Prodotto. Profitto. In questo ordine.

Nel nostro lavoro mettiamo sempre le persone prima del profitto, sia quando rispondiamo ad un'email di una persona che ci chiede informazioni, sia quando facciamo pubblicità. Per noi questo è fondamentale per avere un impatto positivo nel lungo periodo.

Il metodo è la priorità

Avere metodo nel proprio lavoro fa lavorare tutti meglio.

Ognuno di noi è il migliore assistente personale di ogni membro del team: ci impegniamo a descrivere in modo chiaro e completo le attività che svolgiamo e quelle che chiediamo agli altri, dando feedback costanti e condividendo i nostri fallimenti per aiutare tutto il team a migliorare.

Liberi di essere noi stessi

Ogni persona porta un valore unico nel team.

In start2impact non vogliamo omologazione: vogliamo che tutti sentano di poter essere se stessi e di esprimersi liberamente. Crediamo che avere persone con punti di vista diversi permetta a tutti di avere una visione più ampia e di crescere insieme.

Sappiamo chiedere aiuto

La forza di una catena si misura sull'anello più debole.

Quando siamo in difficoltà, chiediamo aiuto. Perché chiedere aiuto non è solo utile a chi lo chiede, ma è anche un'opportunità di crescita per chi lo dà, giorno dopo giorno.

Trasparenza e sincerità

Diamo totale fiducia ad ogni membro del team.

Condividiamo con il team tutti i dati e i risultati del nostro lavoro, comprese informazioni aziendali che di solito non sono alla portata di tutti. Per rendere ognuno più consapevole del lavoro degli altri e permettere di prendere decisioni migliori.

Società Benefit

start2impact srl è una Società Benefit: integra nei propri obiettivi, oltre al profitto, la finalità di generare un impatto positivo su persone, società e ambiente. Questo orienta il tono del brand — ambizioso ma inclusivo, concreto e ottimista.

Font primario

I caratteri tipografici che guidano la comunicazione principale di start2impact. Sono utilizzati su sito, piattaforma, landing e Social Media.

Montserrat

Carattere utilizzato sui titoli, geometrico e deciso, dà struttura e gerarchia. Si usa in peso 700 per tutti gli heading (H1–H6).

Aa
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
‘?’“!”(%)[#]{@}/&\<-+÷×=>®©$€£¥¢:;,.*
Apri su Google FontsMontserrat · Open Font License

Inter Tight

La sua caratteristica con spaziatura ridotta aiuta ad avere titoli più grandi in meno spazio. Come varianti utilizziamo Bold, Extra Bold e Black.

Aa
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
‘?’“!”(%)[#]{@}/&\<-+÷×=>®©$€£¥¢:;,.*
Apri su Google FontsInter Tight · Open Font License

Font secondario

A supporto dei caratteri primari, ci sono Inter per testo, label e interfaccia e More Sugar per le informazioni di contorno che arricchiscono il concetto.

Inter

È il nostro carattere tipografico per il body. Questa versione ci consente di mantenere alta la leggibilità anche con i copy di dimensione ridotta.

Aa
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
‘?’“!”(%)[#]{@}/&\<-+÷×=>®©$€£¥¢:;,.*
Apri su Google FontsInter · Open Font License

More Sugar

Carattere utilizzato per informazioni di contorno, che arricchiscono il concetto.

Aa
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
‘?’“!”(%)[#]{@}/&\<-+÷×=>®©$€£¥¢:;,.*
Scarica More Sugar.ttf · font di brand

Uso della tipografia

Tutti gli stili di testo del design system, divisi per famiglia. Interlinea 125%, spaziatura 0% su ogni stile.

Montserrat · Titoli
StileFamigliaPesoDimensioneSpaziaturaInterlinea
H1Montserrat70032px0%125%
H2Montserrat70028px0%125%
H3Montserrat70025px0%125%
H4Montserrat70022px0%125%
H5Montserrat70020px0%125%
H6Montserrat70018px0%125%
Inter Tight · Titoli landing
StileFamigliaPesoDimensioneSpaziaturaInterlinea
H1Inter Tight900 · Black54px0%125%
H2Inter Tight800 · Extra Bold40px0%125%
H3Inter Tight700 · Bold32px0%125%
H4Inter Tight700 · Bold23px0%125%
H5Inter Tight700 · Bold21px0%125%
H6Inter Tight700 · Bold18px0%125%
Inter · Label
StileFamigliaPesoDimensioneSpaziaturaInterlinea
LabelInter60018px0%125%
Label 1Inter60016px0%125%
Label 2Inter60014px0%125%
Label 3Inter60012px0%125%
Label 4Inter60010px0%125%
Inter · Paragrafo
StileFamigliaPesoDimensioneSpaziaturaInterlinea
ParagraphInter40018px0%125%
Span 1Inter40016px0%125%
Span 2Inter40014px0%125%
Span 3Inter40012px0%125%
Span 4Inter40010px0%125%
Inter · Button (UPPERCASE)
StileFamigliaPesoDimensioneSpaziaturaInterlinea
Button 1Inter80016px0%125%
Button 2Inter80014px0%125%
Button 3Inter80012px0%125%
Button 4Inter80010px0%125%
More Sugar · Informazioni di contorno
StileFamigliaPesoDimensioneSpaziaturaInterlinea
More Sugar 1More Sugar40016px0%125%
More Sugar 2More Sugar40014px0%125%

Don'ts

Errori da evitare per mantenere coerenza e leggibilità del testo.

  • No
    Non usare Montserrat per blocchi di testo lungo: è pensato per i titoli.
  • No
    Non usare More Sugar per il corpo testo o la UI: è riservato alle informazioni di contorno che arricchiscono il concetto.
  • No
    Non introdurre font fuori sistema (Inter, Montserrat, More Sugar sono gli unici ammessi).
  • No
    Non comprimere l'interlinea sotto 125% né allargare la spaziatura: la scala è 0% / 125%.
  • No
    Non saltare la gerarchia (es. H2 → H5): scegli lo stile in base al livello, non alla dimensione.

Concept

Il razzo rappresenta ognuno di noi, i cerchi rappresentano i quadranti dell'ikigai e la luce dall'alto ci indica la direzione.

RAZZO
+
VECCHIO LOGO
+
IKIGAI

Caratteristiche

Area di rispetto

Mantieni intorno al logo un'area libera da altri elementi, pari almeno all'altezza del marchio.

Scalabilità

La dimensione può essere ridotta a patto che resti sempre leggibile. Altezza minima: 70px.

LEGGIBILE
h: 90px
h: 80px
h: 70px → altezza minima
NON LEGGIBILE
h: 60px
h: 50px
h: 40px

Do & Don'ts

✓ Fai

Usa i file ufficiali, rispetta l'area di rispetto e scegli la variante (gradient / bianco / nero) con il giusto contrasto sul fondo.

✗ Evita

Non distorcere o ruotare il logo, non cambiarne i colori, non aggiungere ombre o contorni, non ricolorare solo il marchio.

Foundations

Colori primari

Questi colori sono stati scelti con cura per rappresentare il brand e i Neutral.

Per il Digital usare i valori RGB; per la stampa (cancelleria o logo) i valori Pantone; i valori CMYK per tutte le altre applicazioni di stampa.

base · mint-500
#6E5DC6rgb(4, 181, 133)Pantone 3395 CCMYK 98, 0, 27, 29
primary · mint-400
#28CC9Ergb(40, 204, 158)Pantone 3385 CCMYK 80, 0, 23, 20
neon mint · mint-300
#08F7A1rgb(8, 247, 161)Pantone 7479 CCMYK 52, 0, 50, 0
mint-600
#1A8366rgb(26, 131, 102)Pantone 7726 CCMYK 80, 0, 22, 49
mint-800
#0E4938rgb(14, 73, 56)Pantone 3435 CCMYK 81, 0, 23, 71
seafoam
#85E1C8rgb(133, 225, 200)Pantone 3375 CCMYK 41, 0, 11, 12

Color matching

Su fondi mint chiari usa il testo navy #060233 per la massima leggibilità.

start2impact
start2impact
start2impact

Gradienti

I gradienti del brand nascono dal logo (verde pino → mint elettrico) e si estendono nelle profondità mint per superfici e sfondi.

Per il Digital usare i valori RGB; per la stampa (cancelleria o logo) i valori Pantone; i valori CMYK per tutte le altre applicazioni di stampa.

Logo gradient
#007369 → #08F7A1rgb(0, 115, 105) → rgb(8, 247, 161)Pantone 3295 C → 7479 C45°
Mint deep
#1A8366 → #0E4938rgb(26, 131, 102) → rgb(14, 73, 56)Pantone 7726 C → 3435 C120°
Iris glow
#7070E0 → #2A2570rgb(112, 112, 224) → rgb(42, 37, 112)Pantone 2368 C → 2745 Cradiale

Colori secondari

L'accento viola per azioni, link e navigazione attiva, con le sue varianti espressive iris e neon.

Per il Digital usare i valori RGB; per la stampa (cancelleria o logo) i valori Pantone; i valori CMYK per tutte le altre applicazioni di stampa.

accent-mid
#6E5DC6rgb(110, 93, 198)Pantone 2715 CCMYK 44, 53, 0, 22
accent-dark
#4E3BA9rgb(78, 59, 169)Pantone 2725 CCMYK 54, 65, 0, 34
iris
#7070E0rgb(112, 112, 224)Pantone 2368 CCMYK 50, 50, 0, 12
neon violet
#6743F7rgb(103, 67, 247)Pantone 2665 CCMYK 58, 73, 0, 3

Color matching

Sui fondi viola e navy usa il testo bianco per garantire il contrasto.

start2impact
start2impact
start2impact

Topic

Un colore per categoria di corso: tingono tag e accenti.

Marketing
#EA7317rgb(234, 115, 23)Pantone 152 CCMYK 0, 51, 90, 8
Design
#E86A92rgb(232, 106, 146)Pantone 1775 CCMYK 0, 54, 37, 9
Sviluppo
#3066BErgb(48, 102, 190)Pantone 7455 CCMYK 75, 46, 0, 25
Data Science
#2AB29Drgb(42, 178, 157)Pantone 3275 CCMYK 76, 0, 12, 30
Blockchain
#5938BCrgb(89, 56, 188)Pantone 2090 CCMYK 53, 70, 0, 26
Startup
#CA054Drgb(202, 5, 77)Pantone 1925 CCMYK 0, 98, 62, 21
Mindset
#D68E6Brgb(214, 142, 107)Pantone 7515 CCMYK 0, 34, 50, 16

Neutrali

La scala neutra che porta tutta la UI: superfici, bordi e testo. Testo primario su #25302D, secondario su #5D7870.

Per il Digital usare i valori RGB; per la stampa (cancelleria o logo) i valori Pantone; i valori CMYK per tutte le altre applicazioni di stampa.

white · grey-100
#FFFFFFrgb(255, 255, 255)Pantone WhiteCMYK 0, 0, 0, 0
canvas · grey-00
#FAFCFBrgb(250, 252, 251)Pantone 11-0601CMYK 1, 0, 0, 1
extralight · grey-200
#F1F5F4rgb(241, 245, 244)Pantone Cool Gray 1 CCMYK 2, 0, 0, 4
light · grey-400
#B0C2BDrgb(176, 194, 189)Pantone Cool Gray 5 CCMYK 9, 0, 3, 24
mid · grey-600
#5D7870rgb(93, 120, 112)Pantone 5477 CCMYK 23, 0, 7, 53
dark · grey-800
#25302Drgb(37, 48, 45)Pantone 5535 CCMYK 23, 0, 6, 81
darkest · grey-900
#222222rgb(34, 34, 34)Pantone Neutral Black CCMYK 0, 0, 0, 87
midnight
#060233rgb(6, 2, 51)Pantone 2767 CCMYK 88, 96, 0, 80

Contrasto colore

Testo scuro su fondi chiari, testo bianco su fondi scuri o colorati. Verifica sempre un contrasto sufficiente.

Aa
bianco / mint
ok
Aa
bianco / midnight
ok
Aa
dark / bianco
ok
Aa
bianco / mint-300
evita

Don'ts

  • No
    Non usare il viola accento come grande campitura di sfondo: è un colore d'azione.
  • No
    Non mettere testo chiaro su mint chiaro (300/400): contrasto insufficiente.
  • No
    Non introdurre colori fuori palette per i topic: usa i token --topic-*.

Foundations

Pattern

Due texture di brand danno materia a copertine, hero e badge: Onde si applica in soft-light (α 0.9) sopra un colore di tema, Carta in multiply. Qui sono mostrate in grigio per leggere l'effetto.

Onde
waves-texturesoft-light · α 0.9 sul colore
Carta
paper-texturemultiply sul colore
Scarica le texture.zip · Onde + Carta

Social

Linee guida

I post di start2impact hanno un'identità forte e riconoscibile: fondo a tema con texture, soggetto ritagliato in contrasto e titolo oversize. La gerarchia guida sempre la lettura.

Esempi di post social start2impact

Composizione

Fondo a tema (mint o iris) con texture Onde · logo in alto · soggetto ritagliato in bianco e nero (foto o illustrazione) · titolo in Montserrat 900 maiuscolo · parole chiave evidenziate con pill/badge mint.

Gerarchia

1. Titolo — il messaggio, sempre dominante. 2. Soggetto visivo — foto o illustrazione che incornicia il titolo. 3. Evidenziazioni — badge mint con le parole chiave. 4. Logo — firma discreta in alto.

Formati

I formati social per ogni piattaforma.

Instagram
Post
1080 × 1080
1:1
Portrait
1080 × 1350
4:5
Story
1080 × 1920
9:16
Facebook
Post
1200 × 630
1.91:1
Cover
1640 × 624
2.6:1
YouTube
Thumbnail
1280 × 720
16:9
Banner
2560 × 1440
16:9
LinkedIn
Post
1200 × 627
1.91:1
Cover
1584 × 396
4:1
X
Post
1600 × 900
16:9
Header
1500 × 500
3:1
Generale
Quadrato
1080 × 1080
1:1

Introduzione

Panoramica

Il Design System è un insieme di regole e linee guida che permettono di mantenere coerenza e continuità all'interno di un ecosistema digitale, migliorando le performance produttive e fornendo all'utente una brand experience familiare e coerente su tutte le piattaforme.

"Styles come and go. Good design is a language, not a style."

— Massimo Vignelli

Il valore del design system

  • Semplificare e migliorare l'esperienza degli utenti.
  • Comunicare il brand in modo univoco.
  • Semplificare ed efficientare la realizzazione e l'evoluzione dei prodotti digitali.
  • Rafforzare la collaborazione interna e la standardizzazione dei flussi operativi.

Foundations

Spaziature

Definiamo un'unità di base con lo scopo di definire una scala utile a posizionare e dimensionare gli elementi in pagina.

Utilizziamo una scala lineare di 4 / 8px (8, 16, 24, 32, 48 …).

space-14px
space-28px
space-312px
space-416px
space-520px
space-624px
space-832px
space-1040px
space-1248px
space-1664px
space-2080px

Foundations

Raggi

I raggi di arrotondamento ammorbidiscono gli angoli di superfici e controlli. Scala derivata dall'unità di base: card e input a radius-lg (8px), pill e avatar radius-full.

radius-sm
4px · button, tag
radius-md
6px · progress bar
radius-lg
8px · card, input, modal
radius-xl
12px
radius-2xl
16px · alert
radius-full
pill · avatar, toggle

Design system

Design token

I Design Token sono tutti i valori utili a costruire un sistema di progettazione. Definiti come gettoni poiché rispecchiano in maniera atomica tutti gli attributi estetici che costituiscono i componenti del Design System. Sono espressi in valori e fanno riferimento a: colori, tipografia, spaziature, animazioni e qualsiasi altro attributo di stile definito in fase di design.

Esempio

Dal valore grezzo al token globale, al token semantico, fino al componente.

#6E5DC6
purple-400
accent-mid

Tipologie di token

Di seguito riportiamo le tipologie di Design Token sulla quale il Design System di start2impact si basa. Questi corrispondono non solo ai valori ma riflettono le scelte di progettazione che costituiscono il linguaggio e la scalabilità del DS.

Globali

I token globali costituiscono tutti quei valori che sono "assoluti", non dipendenti da nessun altro valore e da cui possono essere definiti token figli. Sono i valori primitivi e da questi vengono declinati i token alias. In genere si definiscono globali gli attributi primari come: colore, tipografia e valori delle animazioni.

#6E5DC6
purple-400

Alias

I token alias costituiscono tutti quei token che discendono dai token globali e che hanno una specifica responsabilità. Possono far riferimento ad uno specifico contesto o azione. Sono utili per comunicare lo scopo del token e quindi rendere chiaro il contesto di utilizzo.

#6E5DC6
purple-400
accent-mid

Specifici del componente

I token specifici del componente costituiscono i token che rappresentano una proprietà associata ad un componente. Anche se hanno lo stesso valore di un token alias il loro scopo è differente: raccontare e definire una specifica proprietà di un componente. Spesso sono declinati da un token alias, ma non sempre questa regola deve/può essere applicata. Nel nostro caso eviteremo dove possibile di incapsulare i token oltre il secondo livello di innesto.

#6E5DC6
purple-400
accent-mid
button-primary-background

Caso reale di applicazione dei token

Associamo al componente Bottone Primario ↗ un set di token utili a fornire tutte le informazioni che costituiscono la sua struttura e il suo design.

font-size
Aabutton-2
color
greyscale-base
font-weight
Aaweight-semibold
background-color
accent-mid
padding · verticale
space-4
border-radius
radius-sm
padding-left
space-8
padding-right
space-8

Foundations

Colori

I colori hanno un'unica fonte canonica: Brand Guidelines → Palette (primari, gradienti, secondari, neutrali, con Pantone, CMYK e color matching). Questa pagina vi rimanda per evitare divergenze.

Apri la palette completa Brand Guidelines → Palette →

Foundations

Tipografia

La tipografia ha un'unica fonte canonica: Brand Guidelines → Tipografia (font primario, secondario, uso della tipografia, don'ts). Questa pagina vi rimanda per evitare divergenze.

Apri la tipografia completa Brand Guidelines → Uso della tipografia →

Foundations

Icone

Le icone sono uno strumento utile a comunicare ed enfatizzare concetti, supportare la navigazione ed aggiungere valore concettuale all'interfaccia.

Stile

Utilizziamo Font Awesome, un servizio di icone commerciali che ci consente di utilizzare icone vettoriali scalabili in qualsiasi dimensione.

Apri l'Icon set130 icone Font Awesome 6 · solid / regular / brands

Griglie

Utilizziamo la griglia per costruire icone che siano consistenti tra di loro e che creino un linguaggio visivo coerente.

La griglia Font Awesome si basa su una dimensione 16×16 e ha un overflow orizzontale incorporato che permette di portare la sua larghezza massima a 20 pixel.

GRIGLIA DI BASE Larghezza 16px Altezza 16px Overflow 4px *2px per lato 16 px 16 px

Forme

Font Awesome ha definito le dimensioni delle forme (come cerchi, quadrati e rettangoli) utilizzando la griglia di icone vista in precedenza.

Quando si creano nuove icone utilizzando la griglia di icone di riferimento, vanno tenute a mente le forme e le dimensioni definite.

QUADRATA
14 pixels by 14 pixels
14 px 14 px
CIRCOLARE
15px diameter
15 px 15 px
RETTANGOLARE (V)
12 pixels by 16 pixels
12 px 16 px
RETTANGOLARE (H)
16 pixels by 12 pixels
16 px 12 px

Dimensione

Essendo icone disegnate su una griglia base di 16px, si prevede l'utilizzo delle icone seguendo multipli di 8.

Per la realizzazione di interfacce accessibili è quindi consigliato l'uso delle seguenti dimensioni:

16px
24px
32px
64px

Foundations

Griglie

Layout responsive su breakpoint Tailwind. Contenuto centrato in un container da 1110px.

sm
40rem · 640px
md
48rem · 768px
lg
64rem · 1024px
xl
80rem · 1280px

Griglia 12 colonne

La griglia base per le pagine: 12 colonne con gutter da 24px.

Foundations

Superfici

Una sola ombra morbida per le card; gli input usano bordi interni (inner-shadow) invece di outline.

Card
--shadow-card
Modale
--shadow-modal
Input
--shadow-input-border
Input · focus
--shadow-input-focus

Foundations

Strutture

Lo scheletro dell'app: sidebar fissa a sinistra, contenuto scrollabile, header di pagina.

Header di pagina

Sidebar 256px espansa / 80px collassata · container contenuto 1110px · background pagina --ui-secondary, card --ui-primary.

Components

Alert

Banner di feedback inline per i cinque stati di prodotto: fondo tinto, icona satura, testo scuro, rounded-2xl.

Anatomia

Icona guida + titolo + descrizione.

Elementi
Requisiti
Needs
Più info
1
Container
Larghezza variabile in base al contenuto
Larghezza minima pari all'altezza
2
Icona
Dimensione fissa · Allineamento a sinistra
Non usare due icone
3
Titolo
Larghezza variabile in base al contenuto · Allineamento a sinistra · Label / 2
Il contenuto può estendersi su più righe rispettando il padding verticale minimo
4
Descrizione
Larghezza variabile in base al contenuto · Allineamento a sinistra · Paragraph / span3 / regular
Il contenuto può estendersi su più righe rispettando il padding verticale minimo

Configurazioni

I tipi di configurazione del componente.

Stati

Varianti: success · error · warning · waiting · info. Taglie sm/md.

Accessibilità

Markup semantico

L’Alert è un componente non interattivo usato per comunicare un messaggio. Va implementato con un <div> o <p> e un role ARIA adatto all’urgenza: role="status" (aria-live “polite”) per messaggi informativi o a bassa priorità, annunciati senza interrompere l’attività; role="alert" (aria-live “assertive”) per messaggi critici, annunciati subito. Essendo non interattivo non deve ricevere focus: evita tabindex="0" o ruoli che implicano interattività.

Quando l’alert viene iniettato dinamicamente nel DOM, la live region deve essere già presente prima dell’inserimento del messaggio: iniettare contenitore e contenuto insieme può impedire il corretto annuncio.

Icona

L’icona dell’alert non deve essere letta dallo screen reader (alternativa testuale vuota): è il testo a veicolare il messaggio. Le icone decorative vanno nascoste con aria-hidden="true".

Contenuto

Il messaggio dev’essere chiaro, conciso e autoesplicativo: comunica cosa è successo e, dove utile, cosa l’utente può o deve fare. Evita un linguaggio vago o puramente tecnico, poco comprensibile fuori contesto.

Components

Avatar

Immagine profilo tonda; mostra le iniziali su fondo mint quando manca src. L’avatar in sidebar usa ring.

Anatomia

Cerchio con immagine o iniziali; ring opzionale.

Configurazioni

I tipi di configurazione del componente.

Stati

Taglie sm/md/lg; con/senza ring; con/senza immagine.

Accessibilità

Fornisci alt con il nome; le iniziali sono decorative.

Components

Badge

Chip solido per stati, conteggi o il flag NEW; uppercase di default.

Anatomia

Pill pieno con testo breve.

Configurazioni

I tipi di configurazione del componente.

Stati

Toni: neutral · brand · success · error · warning · info.

Accessibilità

Affianca sempre un testo esplicito al colore del tono.

Components

Button

Componente usato per eseguire un’azione specifica con un click o un tap.

Anatomia

La composizione del componente.

LABEL
1
2
3
Elementi
Requisiti
Needs
Più info
1
Container
Larghezza variabile in base al contenuto
Larghezza minima pari all’altezza
2
Icona centrale
Dimensione fissa
Non usare due icone
3
Label
Larghezza variabile in base al contenuto
Larghezza minima pari all’altezza

Configurazioni

I tipi di configurazione del componente.

Primary
Secondary
Feedback
Error
Success
lg
LABEL
LABEL
LABEL
LABEL
with icon
LABEL
LABEL
md
LABEL
LABEL
LABEL
LABEL
sm
LABEL
LABEL
LABEL
LABEL

Stati

I comportamenti del componente.

lg
Primary
Secondary
Feedback
Error
Success
Default
LABEL
LABEL
LABEL
LABEL
Hover
LABEL
LABEL
LABEL
LABEL
Focus
LABEL
LABEL
LABEL
LABEL
Disabled
LABEL
LABEL
LABEL
LABEL
md
Primary
Secondary
Feedback
Error
Success
Default
LABEL
LABEL
LABEL
LABEL
Hover
LABEL
LABEL
LABEL
LABEL
Focus
LABEL
LABEL
LABEL
LABEL
Disabled
LABEL
LABEL
LABEL
LABEL
sm
Primary
Secondary
Feedback
Error
Success
Default
LABEL
LABEL
LABEL
LABEL
Hover
LABEL
LABEL
LABEL
LABEL
Focus
LABEL
LABEL
LABEL
LABEL
Disabled
LABEL
LABEL
LABEL
LABEL

Accessibilità

Markup semantico

Per consentire l’uso del bottone con le tecnologie assistive va usato un tag appropriato: in HTML è corretto associare il tag <button>, che ammette stili diversi, può ricevere il focus, è azionabile ed è leggibile da uno screen reader.

Per ogni bottone, indipendentemente dal tipo, è possibile specificare un nome accessibile (es. aria-label) per chiarirne scopo e contesto.

Icona

L’icona presente nei bottoni non deve essere letta dallo screen reader (alternativa testuale vuota) perché:

  • se il bottone ha anche testo visibile, va letto quello — o il nome accessibile del bottone;
  • se il bottone ha solo icona, va letto il nome accessibile del bottone.

Contenuto

Un bottone, per essere accessibile, deve avere un contenuto chiaro che evochi un’azione, usare parole specifiche legate all’azione ed essere conciso.

Per i bottoni con sola icona, oltre al nome accessibile, fornisci un testo di accompagnamento chiaro che ne descriva la funzione (es. «Modifica»): verrà mostrato come tooltip.

Components

Card

La superficie bianca usata ovunque: rounded-lg, l’unica ombra morbida del sistema, nessun bordo, padding 24px.

Anatomia

Contenitore + contenuto libero; variante interactive cliccabile.

Elementi
Requisiti
Needs
Più info
1
Container
Dimensione fissa
Larghezza minima pari all'altezza
2
Icona
Dimensione fissa · Allineamento a sinistra
Non usare due icone
3
Titolo
Larghezza variabile in base al contenuto · Allineamento a sinistra · H5
Il contenuto può estendersi su più righe rispettando il padding verticale minimo
4
Sottotitolo
Larghezza variabile in base al contenuto · Allineamento a sinistra · Paragraph / span3 / regular
Il contenuto può estendersi su più righe rispettando il padding verticale minimo
5
Label
Larghezza variabile in base al contenuto · Allineamento a sinistra · Label / 4
Il contenuto può estendersi su più righe rispettando il padding verticale minimo
6
Nome del gruppo
Larghezza variabile in base al contenuto · Allineamento a sinistra · H5
Il contenuto può estendersi su più righe rispettando il padding verticale minimo
7
Lista membri (avatar stack)
Dimensione fissa
Non usare tre o più avatar
8
Primary Button
Dimensione fissa
Non usare due bottoni

Configurazioni

I tipi di configurazione del componente.

Stati

Statica · Interactive (si solleva all’hover).

Accessibilità

Markup semantico

La Card è un componente contenitore: l’elemento giusto dipende dal contesto. Usa <article> quando rappresenta un contenuto autonomo; <section> quando fa parte di una struttura raggruppata; un <div> generico quando non serve veicolare significato semantico. La card in sé non è interattiva: l’interattività è sempre delegata ai singoli elementi che contiene — non rendere focusabile o azionabile l’intero contenitore.

Elementi interni

Ogni elemento dentro la card (bottoni, link, input, icone, immagini) deve rispettare le linee guida di accessibilità del proprio componente. La card funge solo da contenitore di layout e non sostituisce i requisiti dei suoi figli: un bottone segue le regole del Button, un’immagine fornisce un’alternativa testuale, un link segue le regole del Link.

Components

Checkbox

Selezione multipla: riempimento mint e segno di spunta bianco quando attiva.

Anatomia

Box 20px + label cliccabile.

Configurazioni

I tipi di configurazione del componente.

Stati

Default · Checked (mint) · Focus · Disabled.

Accessibilità

Label associata e cliccabile; lo stato è comunicato da checked, non solo visivamente. Area di tocco ≥ 44px.

Components

Drawer

Pannello che scorre dal bordo dello schermo per ospitare contenuti o azioni secondarie senza lasciare la pagina.

Anatomia

Header con titolo e chiusura, corpo scorrevole e azione primaria in basso a destra.

Elementi
Requisiti
Needs
Più info
1
Container
Larghezza fissa · altezza piena · ancorato al bordo
Larghezza minima pari all'altezza
2
Titolo
Larghezza variabile in base al contenuto · Allineamento a sinistra
Larghezza minima pari all'altezza
3
Icona di chiusura
Dimensione fissa · Allineamento a destra
Non usare due icone
4
Corpo
Altezza variabile · scorrevole
Il contenuto può estendersi su più righe rispettando il padding verticale minimo
5
Primary Button
Dimensione fissa · in basso a destra
Non usare due bottoni

Configurazioni

Pannello ancorato a destra con header, corpo e azione primaria.

Stati

Chiuso · Aperto (scorre dal bordo, scrim sul contenuto sottostante).

Accessibilità

Markup semantico

Come la modale, il drawer va definito come contenitore separato con role="dialog" e aria-modal="true", così che il resto della pagina risulti inerte. Associa il titolo via aria-labelledby e un’eventuale descrizione via aria-describedby.

Icona

L’icona di chiusura deve avere un nome accessibile (es. aria-label="Chiudi"). Le illustrazioni decorative vanno marcate aria-hidden="true".

Contenuto

Ad apertura sposta il focus dentro al pannello e intrappolalo (Tab non esce); alla chiusura riportalo sull’elemento che l’ha attivato. Esc chiude sempre. Contenuto conciso, azione primaria distinguibile.

Components

Dropdown

Componente per selezionare informazioni, dati e valori generici da un elenco a comparsa.

Anatomia

Container, label, help text, icona chevron e lista a comparsa.

Elementi
Requisiti
Needs
Più info
1
Container
Larghezza variabile in base al contenuto
Larghezza minima pari all'altezza
2
Label
Larghezza variabile in base al contenuto · Allineamento a sinistra · Paragraph / span3 / regular
Larghezza minima pari all'altezza
3
Help text
Larghezza variabile in base al contenuto · Allineamento a sinistra · caption / Regular
Può estendersi su più righe. Mostra aiuto, info precompilate o testo d’errore; gli ultimi due sostituiscono il primo
4
Icona
Dimensione fissa
Non usare due icone
5
Lista dropdown
Larghezza/altezza variabile in base al contenuto
Larghezza minima pari all'altezza

Configurazioni

Stato chiuso e aperto, con help text ed errore.

Stati

Default · Filling/Active · Filled/Active · Error · Disabled; lista in Open Hover/Pressed.

Accessibilità

Markup semantico

Il campo va associato a una label esplicita tramite for/id: è questo legame a comunicare il nome del campo alle tecnologie assistive. Il placeholder non sostituisce la label. Se obbligatorio, indicalo visivamente (asterisco + legenda) e semanticamente con required/aria-required="true"; in errore usa aria-invalid="true" e collega il messaggio con aria-describedby, annunciandolo con role="alert". Il campo resta navigabile da tastiera con focus visibile.

Icona

Le icone di stato non sono mai l’unico mezzo per comunicare uno stato: vanno accompagnate da testo. Le decorative usano aria-hidden="true"; quelle funzionali un’etichetta via aria-label o aria-describedby.

Contenuto

Messaggi d’errore chiari e associati al campo, in linguaggio non tecnico. In contesti multilingua imposta lang; help text e tooltip accessibili via aria-describedby quando il campo è a fuoco.

Components

IconButton

Bottone con sola icona: ghost per toolbar e chiusure, secondary bordato, primary come CTA iconica.

Anatomia

Container quadrato (lato pari all’altezza) con una sola icona centrata.

Configurazioni

I tipi di configurazione del componente.

Stati

Default · Hover (fondo tinto o più scuro) · Focus (outline midnight) · Disabled.

Accessibilità

Specifica sempre un aria-label che descriva l’azione: senza testo visibile è l’unica fonte per lo screen reader. L’icona ha alternativa testuale vuota.

Components

Input

Campo a riga singola, senza bordo: un ring inner-shadow 2px che diventa mint al focus e rosso in errore. Supporta label, password reveal e icona finale.

Anatomia

Label, campo con ring e messaggio d’errore opzionale.

Elementi
Requisiti
Needs
Più info
1
Container
Larghezza variabile in base al contenuto
Larghezza minima pari all'altezza
2
Label
Larghezza variabile in base al contenuto · Allineamento a sinistra · Paragraph / span3 / regular
Larghezza minima pari all'altezza
3
Help text
Larghezza variabile in base al contenuto · Allineamento a sinistra · Paragraph / span4
Può estendersi su più righe. Mostra aiuto, info precompilate o testo d’errore; gli ultimi due sostituiscono il primo
4
Icona
Dimensione fissa
Non usare due icone
5
Icona info/tooltip
Dimensione fissa
Non usare due icone

Configurazioni

I tipi di configurazione del componente.

Stati

Default · Focus (ring mint) · Invalid (ring rosso + messaggio) · Disabled.

Accessibilità

Markup semantico

In HTML l’<input> va associato a una label esplicita tramite for, che punta all’id del campo: è questo legame a far leggere il nome del campo alle tecnologie assistive. Ogni campo deve avere una label visibile; il placeholder non la sostituisce (sparisce al focus). Se il campo è obbligatorio, indicalo sia visivamente (asterisco + legenda) sia semanticamente con required o aria-required="true"; in errore marca l’input con aria-invalid="true" e collegalo al messaggio via aria-describedby. I messaggi d’errore vanno annunciati con role="alert" e il campo deve restare navigabile da tastiera con un focus visibile.

Icona

Le icone di stato (errore, successo, warning) non devono mai essere l’unico mezzo per comunicare lo stato: accompagnale sempre con testo o un messaggio associato. Le icone decorative usano aria-hidden="true"; se l’icona ha funzione (es. tooltip al click) fornisci un’etichetta accessibile via aria-label o aria-describedby.

Contenuto

Il placeholder può mostrare un esempio del formato atteso ma non sostituisce la label. I messaggi d’errore vanno associati al campo che li genera, con linguaggio comprensibile e non tecnico (“Questo campo è obbligatorio” invece di “Validation error”). In contesti multilingua imposta correttamente l’attributo lang; eventuale help text o tooltip va reso accessibile via aria-describedby.

Components

Modal

Dialog centrato — header (titolo + chiusura xmark rossa), body diviso da hairline, footer con Annulla/Conferma. Scrim greyscale-dark/40.

Anatomia

Header + body + footer CTA; chiusura in alto a destra.

Elementi
Requisiti
Needs
Più info
1
Container
Larghezza variabile in base al contenuto
Larghezza minima pari all'altezza
2
Titolo
Larghezza variabile in base al contenuto
Larghezza minima pari all'altezza
3
Icona
Dimensione fissa · Allineamento a destra
Non usare due icone
4
Descrizione
Larghezza variabile in base al contenuto · Allineamento a sinistra · Paragraph / span2
Il contenuto può estendersi su più righe rispettando il padding verticale minimo
5
Primary Button
Dimensione fissa
Non usare due bottoni
6
Secondary Button
Dimensione fissa
Non usare due bottoni

Configurazioni

I tipi di configurazione del componente.

Stati

Nascosto · Visibile (fade + scale); content-only con showCta={false}.

Accessibilità

Markup semantico

Per essere accessibile la modale va definita come contenitore separato dal resto della pagina, con role="dialog" (oppure role="alertdialog" se contiene un messaggio critico che richiede conferma). Imposta aria-modal="true" per indicare che il contenuto esterno è temporaneamente inerte. Associa un titolo via aria-labelledby (puntando all’id dell’heading interno) e, se serve, una descrizione via aria-describedby.

Icona

Se per chiudere si usa un’icona (es. la “X”) deve avere un nome accessibile chiaro (es. aria-label="Chiudi") e non essere letta come “immagine” o “bottone senza nome”. Eventuali illustrazioni di sfondo vanno marcate aria-hidden="true". L’indicatore di focus dev’essere sempre visibile sui bottoni.

Contenuto

A modale aperta, il Tab deve spostare il focus solo tra gli elementi interni, senza uscire sulla pagina sottostante. All’apertura sposta il focus sul primo elemento interattivo o sul titolo; alla chiusura riportalo esattamente sull’elemento che l’ha attivata. Dev’essere sempre possibile chiudere con Esc oltre che col bottone visibile. Il contenuto sia conciso e l’azione primaria (“Salva”, “Elimina”, “Conferma”) facilmente distinguibile da quella di annullamento.

Components

ProgressBar

Track grigio con riempimento mint; nel prodotto indica “Percorso completo al: X%”.

Anatomia

Track + fill + label percentuale opzionale.

Configurazioni

I tipi di configurazione del componente.

Stati

Valore 0–100; label opzionale.

Accessibilità

Usa role="progressbar" con aria-valuenow/min/max.

Components

Radio

Selezione singola: ring mint e dot mint quando attivo. Lo stesso name raggruppa le opzioni.

Anatomia

Cerchio 20px + label; un gruppo condivide il name.

Configurazioni

I tipi di configurazione del componente.

Stati

Default · Selected (mint) · Focus · Disabled.

Accessibilità

Raggruppa con fieldset/legend; naviga le opzioni con le frecce.

Components

Spinner

Piccolo anello mint rotante per il caricamento inline.

Anatomia

Anello con segmento mint in rotazione continua.

Configurazioni

I tipi di configurazione del componente.

Stati

Dimensione configurabile.

Accessibilità

Usa role="status" + testo “Caricamento” per lo screen reader.

Components

Tabs

Navigazione underline: il tab attivo è scuro con sottolineatura mint.

Anatomia

Lista di tab con indicatore attivo e contenuto associato.

Configurazioni

I tipi di configurazione del componente.

Stati

Default · Attivo (scuro + underline mint) · Hover.

Accessibilità

Usa role="tablist/tab/tabpanel"; naviga con le frecce, attiva con Invio/Spazio.

Components

Tag

Pill outline per categorie/topic: bordo e testo condividono un colore su fondo trasparente.

Anatomia

Bordo 1px + label; il colore guida sia bordo sia testo.

Elementi
Requisiti
Needs
Più info
1
Container
Larghezza variabile in base al contenuto
Larghezza minima pari all'altezza
2
Label
Larghezza variabile in base al contenuto
Larghezza minima pari all'altezza

Configurazioni

I tipi di configurazione del componente.

Stati

Tre taglie (sm/md/lg); un colore per topic.

Accessibilità

Markup semantico

Essendo un componente puramente informativo che non innesca azioni o navigazione, il Tag va implementato con un elemento neutro come <span> o, dentro una lista, <li>. Non usare elementi interattivi come <button> o <a>, che implicano un’interattività che il componente non offre. Non deve ricevere focus da tastiera (evita tabindex="0" o ruoli interattivi); un aria-label può essere aggiunto solo se la label visibile da sola non basta a comunicarne il significato.

Icona

Un’eventuale icona nel tag non va letta dallo screen reader (alternativa testuale vuota): se c’è una label visibile basta quella; se il tag usa solo l’icona, fornisci un’etichetta accessibile.

Contenuto

La label dev’essere concisa e autoesplicativa, con parole specifiche che descrivono un attributo, una categoria o uno stato. Evita abbreviazioni o termini ambigui senza contesto.

Components

Textarea

Campo multilinea con lo stesso ring dell’Input (mint al focus, rosso in errore).

Anatomia

Label, area di testo ridimensionabile e messaggio d’errore opzionale.

Configurazioni

I tipi di configurazione del componente.

Stati

Default · Focus (ring mint) · Invalid (ring rosso + messaggio) · Disabled.

Accessibilità

Associa label e campo; comunica l’errore con aria-describedby, non col solo colore.

Components

Toggle

Interruttore on/off: track mint quando attivo, knob bianco che scorre a destra.

Anatomia

Track + knob; due taglie (sm/md).

Configurazioni

I tipi di configurazione del componente.

Stati

Off · On (mint) · Disabled.

Accessibilità

Usa role="switch" + aria-checked ed etichetta cosa attiva il controllo.

Tiles

Menu Spallawip

Il menu laterale dell'app-shell: logo, blocco utente (avatar, punti, streak) e navigazione verticale con la barra attiva viola. È il componente Sidebar del Design System.

Prodotto

UI Kit

Ricostruzioni interattive ad alta fedeltà dei prodotti reali.

Piattaforma · dashboard & corsiApri a schermo intero ↗
Marketing landingApri a schermo intero ↗

Linea guida di scrittura

Tono di voce

La voce di start2impact è calda, incoraggiante e da mentore. Spinge la persona in avanti senza essere "hypey": motiva con concretezza. La lingua è l'italiano.

Fai il primo passo. Inizia ora.

Persona

Diamo del tu

Ci si rivolge alla persona in modo informale, con il tu. I possessivi sono personali — il tuo Master, i tuoi progetti. Per la voce del brand si usa la prima persona plurale (noi).

Regole

Regole di copy

✓ Fai

Bottoni in MAIUSCOLO (INIZIA ORA). Brand sempre minuscolo start2impact. Titoli in sentence case. Numeri con uno scopo (120 pt, 64%, streak).

✗ Evita

Emoji nella UI. Tono pomposo o "markettaro". Maiuscole nei titoli (Title Case). Dati e statistiche decorativi.

Esempi

Microcopy

  • CTA
    INIZIA ORA · CONFERMA · ANNULLA — bottoni in maiuscolo.
  • Onboarding
    Parti dal Corso introduttivo — incoraggiante, concreto.
  • Gamification
    12 giorni consecutivi su start2impact! · Percorso completo al: 64%
  • Personale
    Il Master che hai scelto è: — dai del tu, possessivo personale.