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).
abcdefghijklmnopqrstuvwxyz
0123456789
‘?’“!”(%)[#]{@}/&\<-+÷×=>®©$€£¥¢:;,.*
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.
abcdefghijklmnopqrstuvwxyz
0123456789
‘?’“!”(%)[#]{@}/&\<-+÷×=>®©$€£¥¢:;,.*
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.
abcdefghijklmnopqrstuvwxyz
0123456789
‘?’“!”(%)[#]{@}/&\<-+÷×=>®©$€£¥¢:;,.*
More Sugar
Carattere utilizzato per informazioni di contorno, che arricchiscono il concetto.
abcdefghijklmnopqrstuvwxyz
0123456789
‘?’“!”(%)[#]{@}/&\<-+÷×=>®©$€£¥¢:;,.*
Uso della tipografia
Tutti gli stili di testo del design system, divisi per famiglia. Interlinea 125%, spaziatura 0% su ogni stile.
| Stile | Famiglia | Peso | Dimensione | Spaziatura | Interlinea |
|---|---|---|---|---|---|
| H1 | Montserrat | 700 | 32px | 0% | 125% |
| H2 | Montserrat | 700 | 28px | 0% | 125% |
| H3 | Montserrat | 700 | 25px | 0% | 125% |
| H4 | Montserrat | 700 | 22px | 0% | 125% |
| H5 | Montserrat | 700 | 20px | 0% | 125% |
| H6 | Montserrat | 700 | 18px | 0% | 125% |
| Stile | Famiglia | Peso | Dimensione | Spaziatura | Interlinea |
|---|---|---|---|---|---|
| H1 | Inter Tight | 900 · Black | 54px | 0% | 125% |
| H2 | Inter Tight | 800 · Extra Bold | 40px | 0% | 125% |
| H3 | Inter Tight | 700 · Bold | 32px | 0% | 125% |
| H4 | Inter Tight | 700 · Bold | 23px | 0% | 125% |
| H5 | Inter Tight | 700 · Bold | 21px | 0% | 125% |
| H6 | Inter Tight | 700 · Bold | 18px | 0% | 125% |
| Stile | Famiglia | Peso | Dimensione | Spaziatura | Interlinea |
|---|---|---|---|---|---|
| Label | Inter | 600 | 18px | 0% | 125% |
| Label 1 | Inter | 600 | 16px | 0% | 125% |
| Label 2 | Inter | 600 | 14px | 0% | 125% |
| Label 3 | Inter | 600 | 12px | 0% | 125% |
| Label 4 | Inter | 600 | 10px | 0% | 125% |
| Stile | Famiglia | Peso | Dimensione | Spaziatura | Interlinea |
|---|---|---|---|---|---|
| Paragraph | Inter | 400 | 18px | 0% | 125% |
| Span 1 | Inter | 400 | 16px | 0% | 125% |
| Span 2 | Inter | 400 | 14px | 0% | 125% |
| Span 3 | Inter | 400 | 12px | 0% | 125% |
| Span 4 | Inter | 400 | 10px | 0% | 125% |
| Stile | Famiglia | Peso | Dimensione | Spaziatura | Interlinea |
|---|---|---|---|---|---|
| Button 1 | Inter | 800 | 16px | 0% | 125% |
| Button 2 | Inter | 800 | 14px | 0% | 125% |
| Button 3 | Inter | 800 | 12px | 0% | 125% |
| Button 4 | Inter | 800 | 10px | 0% | 125% |
| Stile | Famiglia | Peso | Dimensione | Spaziatura | Interlinea |
|---|---|---|---|---|---|
| More Sugar 1 | More Sugar | 400 | 16px | 0% | 125% |
| More Sugar 2 | More Sugar | 400 | 14px | 0% | 125% |
Don'ts
Errori da evitare per mantenere coerenza e leggibilità del testo.
- NoNon usare Montserrat per blocchi di testo lungo: è pensato per i titoli.
- NoNon usare More Sugar per il corpo testo o la UI: è riservato alle informazioni di contorno che arricchiscono il concetto.
- NoNon introdurre font fuori sistema (Inter, Montserrat, More Sugar sono gli unici ammessi).
- NoNon comprimere l'interlinea sotto 125% né allargare la spaziatura: la scala è 0% / 125%.
- NoNon saltare la gerarchia (es. H2 → H5): scegli lo stile in base al livello, non alla dimensione.
Brand
Logo
Logo principale a gradient (marchio + wordmark). Varianti monocrome bianco/nero per contesti a colore singolo. Su fondo chiaro usa la versione nera; su fondo scuro o colorato la versione bianca.
Full
Marchio
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 LOGOCaratteristiche
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.
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.
Color matching
Su fondi mint chiari usa il testo navy #060233 per la massima leggibilità.
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.
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.
Color matching
Sui fondi viola e navy usa il testo bianco per garantire il contrasto.
Topic
Un colore per categoria di corso: tingono tag e accenti.
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.
Contrasto colore
Testo scuro su fondi chiari, testo bianco su fondi scuri o colorati. Verifica sempre un contrasto sufficiente.
Don'ts
- NoNon usare il viola accento come grande campitura di sfondo: è un colore d'azione.
- NoNon mettere testo chiaro su mint chiaro (300/400): contrasto insufficiente.
- NoNon 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.
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 …).
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.
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.
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.
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.
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.
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.
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 / brandsGriglie
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.
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.
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:
Icon set
Abbiamo identificato un set minimo di icone del pack di Font Awesome (versione 6 — apri il kit ↗); l'obiettivo è fornire un pack minimo di icone da utilizzare negli scenari più comuni all'interno di start2impact.
Solid
79 iconeRegular
43 iconeBrands
8 iconeFoundations
Griglie
Layout responsive su breakpoint Tailwind. Contenuto centrato in un container da 1110px.
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.
Foundations
Strutture
Lo scheletro dell'app: sidebar fissa a sinistra, contenuto scrollabile, 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.
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
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.
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.
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.
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
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.
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
Link
Link testuale inline: accento viola, semibold, sottolineato; scurisce all’hover. Per la navigazione dentro al testo o come link autonomo.
Anatomia
Label testuale con icona opzionale per i link esterni.
Configurazioni
Default, esterno e disabilitato; inline nel testo.
Stati
Default · Hover (scurisce verso accent-dark) · Focus (outline visibile) · Disabled.
Accessibilità
Markup semantico
Usa sempre un <a> con href valido: un link senza destinazione va trattato come bottone. Il testo del link dev’essere descrittivo e comprensibile fuori contesto — evita “clicca qui” o “scopri di più” isolati. Il focus dev’essere sempre visibile da tastiera.
Link esterni
I link che aprono in una nuova scheda (target="_blank") vanno segnalati — con un’icona o un testo — così l’utente sa cosa aspettarsi; aggiungi rel="noopener noreferrer". L’icona accanto al testo è decorativa (aria-hidden="true").
Contenuto
La label deve descrivere la destinazione o l’azione in modo conciso. Non affidare il significato al solo colore: la sottolineatura distingue il link dal testo circostante.
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.
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.
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
Carouselwip
Sequenza scorrevole di card (corsi, master, testimonianze) con controlli avanti/indietro. Da costruire sopra il componente Card.
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.
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
- CTAINIZIA ORA · CONFERMA · ANNULLA — bottoni in maiuscolo.
- OnboardingParti dal Corso introduttivo — incoraggiante, concreto.
- Gamification12 giorni consecutivi su start2impact! · Percorso completo al: 64%
- PersonaleIl Master che hai scelto è: — dai del tu, possessivo personale.
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.
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.