Header
Header applicativi Web.
Area di intestazione principale di un sito o servizio che presenta l’identità visiva e il menu di navigazione primaria.
Il logotipo di Regione Lombardia si trova nella topbar per lasciare spazio al logo dell’applicativo.
In questo modo la brand identity del sito rimane riconoscibile sottolineando la sua affiliazione con l’ecosistema digitale.
Navigazione orizzontale
Se le voci di menu di primo livello non sono più di 5, sono disposte orizzontalmente nell’header.
Solo se necessario l’header può ospitare fino a un massimo di tre logotipi.
In caso l’applicativo non abbia un logo può essere usato un acronimo e/o il nome dell’applicativo.
Menu Orizzontale
Il Menu orizzontale è il menu principale di navigazione. Esso può contenere, oltre a semplici link, il menu dropdown ed il megamenu.
Su desktop il menu è sempre visualizzato e a scorrimento in basso e rimane posizionato fisso sotto la barra istituzionale. Se la pagina scorre, il menu si sposta di conseguenza, rimanendo sotto la barra istituzionale.
Questa tipologia di menu viene preferita al menu verticale quando le voci del menu sono poche e le label sono brevi.
Su smartphone la visualizzazione del menu orizzontale è comandata dal bottone hamburger nella barra istituzionale e le voci sono visualizzate in verticale per questioni di spazio. In questo caso il pannello comparirà con uno scorrimento laterale da sinistra ed oscuramento della pagina sottostante.
Si vedano le voci menu orizzontale e form nella pagina degli esempi per una migliore comprensione del possibile utilizzo.
Hamburger button
Se le voci di menu di primo livello sono più di 5, vanno collocate in un menù verticale a comparsa, comandato da un hamburger button.
Menu Verticale
Il Menu verticale può incorporare liste semplici e liste innestate.
Si utilizza quando si ha l’esigenza di trattare in forma di lista le voci del menu, quindi all’interno di applicativi con molte sezioni cui si deve dare accesso in qualsiasi punto della navigazione.
Lo si preferisce per garantire la leggibilità delle voci nella lista, che può scorrere per una visualizzazione completa.
Questo tipo di menu è sempre collocato a sinistra dello schermo; può essere utilizzato in modalità a scomparsa o sidebar.
Si vedano le voci menu verticale e sidebar nella pagina degli esempi per una migliore comprensione del possibile utilizzo.
Semplice
Annidato
Accesso area privata
La topbar può essere impiegata come toolbar di servizio inserendo voci quali login, cambio lingua, assistenza ecc.
Il menu dropdown può contenere link utili per il logout e la gestione del profilo e delle impostazioni utente.
Comportamento scroll
Allo scroll down:
- la topbar sparisce
- il center header
- se il menù è orizzontale, sparisce
e logo e pulsante cerca vengono clonati nella navbar orizzontale - se il menu è verticale, diminuisce in altezza.
- se il menù è orizzontale, sparisce
Scrollando al top della pagina l’header torna alla versione completa.
Per vedere il comportamento dell’header e dei diversi tipi di menù di navigazione, e il loro funzionamento all’interno di pagine complete, si vedano le pagine degli esempi.
Esempi
Nota:
Per ogni link si apre un tab separato in cui compare una pagina intera di esempio.
Può essere utile “staccarla” dalle altre per provare anche vedere la responsività della stessa quando si variano le dimensioni della finestra portandole a livello tablet e smartphone.
menu orizzontale
menu verticale
sidebar
Utilizzo del componente
L’header è costruito sulla base del componente header di bootstrap-italia che è composto da tre parti:
- topbar equivalente allo slim header
- header centrale
- navbar il menu di navigazione che può essere orizzontale, verticale o sidebar.
Sticky header
Il Design System di Regione Lombardia prevede l’utilizzo dell’header di tipo sticky.
Quindi gli attributi html del tag <header> tipicamente sono:
<header class="it-header-wrapper it-header-sticky"
data-bs-position-type="fixed"
data-bs-toggle="sticky"
data-bs-target="#header-nav-wrapper"
data-bs-sticky-class-name="is-sticky">cui segue, a seconda del tipo di menù utilizzato:
orizzontale
{% include html_docs/header/topbar.html %}
<div class="it-nav-wrapper">
{% include html_docs/header/center_menu-oriz.html %}
{% include html_docs/header/navbar_oriz.html %}
</div>
</header>verticale
{% include html_docs/header/topbar.html %}
{% include html_docs/header/center_menu-vert.html %}
<div id="it25-menu-vert">
{% include html_docs/menu-verticale/menu-verticale-annidato.html %}
</div>
</header>sidebar
{% include html_docs/header/topbar.html %}
{% include html_docs/header/center_sidebar.html %}
</header>
<main>
<div class="container-fluid">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 it25-sidebar">
{% include html_docs/menu-verticale/menu-verticale-annidato.html %}
</div>
<div class="col-12 col-md-9">
<h1>Nome form</h1>
<form class="my-5 px-5" id="justValidate" action="index.html" method="post">
. . .In questo caso il menu-verticale-annidato è inserito nel <main> della pagina.
Topbar
La stuttura html della topbar è la seguente:
<div class="it-header-slim-wrapper it25-top-bar">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="it-header-slim-wrapper-content">
<a class="navbar-brand" href="#" aria-label="link sito regione lombardia">
<img src="/bootstrap-lombardia/dist/assets/img/logo-rl-negativo.svg" alt="logo regione lombardia" />
</a>
<div class="it-header-slim-right-zone">
</div>
</div>
</div>
</div>
</div>
</div>All’interno del <div class="it-header-slim-right-zone"> vanno posti i dropdown adatti all’applicativo:
<div class="nav-item">
<a href="#" class="d-none d-md-block">Esplora i siti di Regione
<svg class="icon"><use href="/bootstrap-lombardia/dist/svg/sprites.svg#it-external-link"></use></svg>
</a>
</div>
<!-- scelta lingua -->
<div class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
<span class="visually-hidden">Selezione lingua: lingua selezionata</span>
<span>ITA</span>
<svg class="icon"><use href="/bootstrap-lombardia/dist/svg/sprites.svg#it-expand"></use></svg>
</a>
<div class="dropdown-menu">
<div class="row">
<div class="col-12">
<div class="link-list-wrapper">
<ul class="link-list">
<li><a class="dropdown-item list-item" href="#"><span>ITA<span class="visually-hidden">selezionata</span></span></a></li>
<li><a class="dropdown-item list-item" href="#"><span>ENG</span></a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- funzioni per utente loggato -->
<div class="nav-item dropdown d-inline">
<a aria-expanded="false" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" href="#" data-bs-display="static">
<span>Nome Cognome</span>
<svg class="icon icon-white" aria-label="utente">
<use xlink:href="/bootstrap-lombardia/dist/svg/sprites.svg#it-user"></use>
</svg>
<svg class="icon icon-white" aria-label="espandi">
<use xlink:href="/bootstrap-lombardia/dist/svg/sprites.svg#it-expand"></use>
</svg>
</a>
<div class="dropdown-menu" data-popper-placement="bottom-end">
<div class="link-list-wrapper">
<ul class="link-list">
<li>
<a class="list-item" href="#"><span>Impostazioni</span></a>
</li>
<li>
<a class="list-item" href="#"><span>Voce 2</span></a>
</li>
<li>
<a class="list-item" href="#"><span>Voce 3</span></a>
</li>
<li>
<a class="list-item" href="#"><span>Voce 4</span></a>
</li>
<li>
<span class="divider" role="separator"></span>
</li>
<li>
<a class="list-item" href="#">
<svg class="icon icon-primary">
<use href="/bootstrap-lombardia/dist/svg/sprites.svg#it-logout"></use>
</svg>
<span>Logout</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<!-- pulsante login utente -->
<div class="it-access-top-wrapper">
<a class="btn btn-primary" href="#">ACCEDI
<svg class="icon icon-white d-inline" aria-label="utente">
<use xlink:href="/bootstrap-lombardia/dist/svg/sprites.svg#it-user"></use>
</svg>
</a>
</div>Center
Il codice per la parte centrale cambia leggermente a seconda del tipo di menù di navigazione pincipale scelto.
orizzontale
<div class="it-header-center-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="it-header-center-content-wrapper d-flex justify-content-between">
<div class="it25-left-zone d-flex justify-content-start">
<div class="it-brand-wrapper d-flex">
<a href="#">
<img src="/bootstrap-lombardia/dist/assets/img/logo_inlombardia.svg" alt="logo in lombardia" class="it25-header-logo" />
</a>
<div class="it-brand-text">
<div class="it-brand-title d-inline">
<span class="it25-text-logo">Text Logo </span>
<span class="it25-app-name d-none d-md-inline">Nome applicativo</span>
</div>
</div>
</div>
</div>
<div class="it-right-zone">
</div>
</div>
</div>
</div>
</div>
</div>verticale
<div class="it-header-center-wrapper it25-header-menu-vert py-1" id="header-nav-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="it-header-center-content-wrapper d-flex justify-content-between">
<div class="it25-left-zone d-flex justify-content-start">
<div class="it25-hamburger-btn-wrapper">
<button
id="btn-hamburger"
class="btn btn-xs"
type="button"
aria-controls="it25-main-nav"
aria-expanded="false"
aria-label="Apri menù"
data-bs-toggle="collapse"
data-bs-target="#it25-main-nav"
>
<svg class="icon icon-sm icon-primary" role="presentation">
<use xlink:href="/bootstrap-lombardia/dist/svg/sprites.svg#it-burger"></use>
</svg>
</button>
</div>
<div class="it-brand-wrapper d-flex justify-content-start">
<a href="#">
<img src="/bootstrap-lombardia/dist/assets/img/logo_inlombardia.svg" alt="logo in lombardia" class="it25-header-logo" />
</a>
<div class="it-brand-text">
<div class="it-brand-title d-inline">
<span class="it25-text-logo">Text Logo </span>
<span class="it25-app-name d-none d-md-inline">Nome applicativo</span>
</div>
</div>
</div>
</div>
<div class="it-right-zone">
<div class="it-search-wrapper">
<span class="d-none d-md-block">Cerca</span>
<a class="search-link rounded-icon" aria-label="Cerca nel sito" href="#">
<svg class="icon icon-sm"><use href="/bootstrap-lombardia/dist/svg/sprites.svg#it-search"></use></svg>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>sidebar
<div class="it-header-center-wrapper it25-header-sidebar" id="header-nav-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="it-header-center-content-wrapper d-flex justify-content-between">
<div class="it25-left-zone d-flex justify-content-start">
<div class="it25-hamburger-btn-wrapper">
<button
id="btn-hamburger"
class="custom-navbar-toggler btn btn-xs d-md-none"
type="button"
aria-controls="it25-main-nav"
aria-expanded="false"
aria-label="Apri menù"
data-bs-toggle="collapse"
data-bs-target="#it25-main-nav"
>
<svg class="icon icon-primary" role="presentation">
<use xlink:href="/bootstrap-lombardia/dist/svg/sprites.svg#it-burger"></use>
</svg>
</button>
</div>
<div class="it-brand-wrapper d-flex justify-content-start">
<a href="#">
<img src="/bootstrap-lombardia/dist/assets/img/logo_inlombardia.svg" alt="logo in lombardia" class="it25-header-logo" />
</a>
<div class="it-brand-text">
<div class="it-brand-title d-inline">
<span class="it25-text-logo">Text Logo </span>
<span class="it25-app-name d-none d-md-inline">Nome applicativo</span>
</div>
</div>
</div>
</div>
<div class="it-right-zone">
<div class="it-search-wrapper">
<span class="d-none d-md-block">Cerca</span>
<a class="search-link rounded-icon" aria-label="Cerca nel sito" href="#">
<svg class="icon icon-sm"><use href="/bootstrap-lombardia/dist/svg/sprites.svg#it-search"></use></svg>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>Nota: Nel caso non esistano né logo né acronimo, e quindi l’unica cosa che compare nel center sia il nome dell’applicativo, vanno tolte le classi d-none d-md-inline dal tag
<span class="it25-app-name d-inline">Nome applicativo</span>
e sostituite con d-inline, in modo che il nome applicativo compaia anche sugli schermi di piccole dimensioni.
Naturalmente, se il nome apllicativo è molto lungo, si può decidere di visualizzarne, sugli schermi piccoli, una versione abbreviata sempre giocando sulle classi Display
Attivazione
Per attivare il funzionamento di tutti i tipi di menù, è necessario invocare la funzione :
bootstrap.it25Header()
Breaking change
Nuovo Header
- Cambiamento struttura
- Comportamento di default: riduzione dimensioni allo scroll verso il basso.
- Duplicazione del logo applicativo nella navbar del menu orizzontale.