Sistema delle branche¶
Come funziona¶
Il tema supporta cinque branche/ambiti, ciascuno con il proprio colore primario tratto dal Manuale Immagine Coordinata AGESCI 2011. Il meccanismo funziona interamente via CSS custom properties: nessun file Sass va ricompilato per cambiare branca.
Il flusso è:
settings.pydefinisceAGESCI_THEME_BRANCA = "eg".Il context processor lo espone come variabile
agesci_theme_branca.base.htmlscrive<html data-branca="eg">._branche.scssha generato (a build time) un blocco CSS per ogni valore:[data-branca="eg"] { --ag-primary: #3D8E33; --ag-primary-hover: #2e6c26; /* ... */ }
Tutti i componenti Bootstrap (pulsanti, link, badge…) usano
--bs-primaryche è rimappato su--ag-primaryda_bootstrap-overrides.scss.
Tabella branche¶
|
Colore |
Pantone |
HEX |
Uso |
|---|---|---|---|---|
|
Azzurro |
279C |
|
Default, uffici, zone |
|
Viola |
527C |
|
Capi / Comunità Capi |
|
Giallo |
109C |
|
Lupetti / Coccinelle |
|
Verde |
363C |
|
Esploratori / Guide |
|
Rosso |
032C |
|
Rover / Scolte |
|
Viola |
527C |
|
Alias di |
Variabili CSS generate¶
Per ogni branca _branche.scss genera queste custom properties:
Variabile |
Descrizione |
|---|---|
|
Colore primario della branca |
|
Versione più scura per hover ( |
|
Versione ancora più scura per stato active ( |
|
Versione molto chiara per sfondi ( |
|
Colore del testo sul primario (nero o bianco, calcolato automaticamente) |
|
Ridirezione Bootstrap verso |
|
Colore dei link Bootstrap |
|
Hover dei link Bootstrap |
Usare --ag-primary nei componenti custom¶
Nei tuoi SCSS o CSS inline usa sempre le variabili del tema invece di colori hardcoded: in questo modo il componente risponde automaticamente alla branca.
/* Nel tuo CSS custom */
.mio-componente {
background-color: var(--ag-primary);
color: var(--ag-on-primary);
border: 2px solid var(--ag-primary-hover);
}
.mio-componente:hover {
background-color: var(--ag-primary-hover);
}
.mio-pannello {
background-color: var(--ag-primary-subtle);
border-left: 4px solid var(--ag-primary);
}
Aggiungere una nuova branca¶
Se in futuro servisse una nuova branca, occorre intervenire in tre punti:
_branche.scss— aggiungi una voce alla mappa$branche:$branche: ( // ... branche esistenti ... "nuova": p.$agesci-nuovo-colore, );
context_processors.py— aggiungi alla costanteBRANCHE_VALIDE:BRANCHE_VALIDE = {"generico", "capi", "lc", "eg", "rs", "viola", "nuova"}
templatetags/agesci_tags.py— aggiungi alla mappa_BRANCA_BG:_BRANCA_BG = { # ... voci esistenti ... "nuova": "bg-ag-nuovo-colore", }
Aggiungi la classe utility in
_bootstrap-overrides.scss:.bg-ag-nuovo-colore { background-color: p.$agesci-nuovo-colore !important; color: ...; }Esegui
npm run build:csse committa i CSS compilati.