Catalogo dei componenti v0.5.2
Tutti i componenti di design-laravel-kit. Questa pagina è realizzata interamente con i componenti del pacchetto.
Layout
Pagina completa: <x-italia::layout> combina l'header (slim + center + navbar), un contenitore principale con skip link accessibile e un footer. Questa pagina è renderizzata tramite <x-italia::layout>: l'header in alto e il footer in fondo sono demo interattive.
Mostra il codice
<x-italia::layout title="Titolo della pagina">
<x-slot:slim ente="Comune di Roma" ente-url="/" login-url="/login"></x-slot:slim>
<x-slot:center title="Comune di Roma" tagline="Portale istituzionale" url="/" search-url="/cerca">
<x-italia::header-social-link url="https://facebook.com" icon="it-facebook" label="Facebook" />
</x-slot:center>
<x-slot:navbar>
<x-italia::header-nav-item text="Amministrazione" url="/amministrazione" />
<x-italia::header-nav-item text="Servizi" url="/servizi" />
</x-slot:navbar>
<x-slot:footer title="Comune di Roma">
<x-italia::footer-legal-link url="/privacy" text="Privacy policy" data-element="privacy-policy-link" />
</x-slot:footer>
<x-slot:breadcrumbs>...</x-slot:breadcrumbs>
Contenuto della pagina
</x-italia::layout>
Layout senza footer
Accesso al servizio
Pagina di esempio senza footer, ideale per il login e per i layout minimali.
<x-italia::layout title="Pagina senza footer" :show-footer="false">
<h2 class="h4">Accesso al servizio</h2>
<p>Pagina di esempio senza footer, ideale per il login e per i layout minimali.</p>
</x-italia::layout>
Header
Header a tre livelli: HeaderSlim (ente + link + lingue + accesso), HeaderCenter (brand + tagline + social + ricerca), HeaderNavbar (menu con dropdown). L'header in cima a questa pagina mostra i tre livelli combinati tramite <x-italia::header>.
Mostra il codice
<x-italia::header-slim ente="Comune di Roma" login-url="/login">
<x-slot:links><li><a href="/servizi">Servizi</a></li></x-slot:links>
<x-slot:languages><li><a href="/en">English</a></li></x-slot:languages>
</x-italia::header-slim>
<x-italia::header-center title="Comune di Roma" tagline="Portale istituzionale" search-url="/search">
<x-slot:social-links>
<x-italia::header-social-link url="https://facebook.com" icon="it-facebook" label="Facebook" />
</x-slot:social-links>
</x-italia::header-center>
<x-italia::header-navbar>
<x-italia::header-nav-item text="Home" url="/" active />
<x-italia::header-nav-item text="Servizi" url="/servizi" dropdown>
<li><a class="dropdown-item list-item" href="/anagrafe">Anagrafe</a></li>
</x-italia::header-nav-item>
</x-italia::header-navbar>
// Oppure combina tutti e tre insieme:
<x-italia::header>
<x-slot:slim ente="Comune di Roma" login-url="/login"></x-slot:slim>
<x-slot:center title="Comune di Roma" search-url="/search">
<x-italia::header-social-link url="https://facebook.com" icon="it-facebook" label="Facebook" />
</x-slot:center>
<x-slot:navbar>
<x-italia::header-nav-item text="Home" url="/" active />
</x-slot:navbar>
</x-italia::header>
Alert
Messaggi di notifica con quattro varianti, titolo opzionale e versione chiudibile. L'icona della variante è resa dal CSS di Bootstrap Italia.
Fatto!
Errore
Mostra il codice
<x-italia::alert variant="info">Informazione importante.</x-italia::alert>
<x-italia::alert variant="success" title="Fatto!">Operazione completata.</x-italia::alert>
<x-italia::alert variant="warning">Attenzione a questo elemento.</x-italia::alert>
<x-italia::alert variant="danger" title="Errore" dismissible>Qualcosa è andato storto.</x-italia::alert>
Badge
Etichette di stato in otto varianti, formato pillola e versione link.
Mostra il codice
<x-italia::badge>Principale</x-italia::badge>
<x-italia::badge variant="success">Successo</x-italia::badge>
<x-italia::badge variant="danger" pill>3 nuovi</x-italia::badge>
<x-italia::badge variant="info" href="/foo">Badge con link</x-italia::badge>
Card
Contenitore flessibile per i contenuti: titolo, sottotitolo, immagine, azioni e variante completamente cliccabile. La card con immagine utilizza la struttura img-responsive-wrapper di Bootstrap Italia (ritaglio 31:19).
Titolo della card
Sottotitolo
Card con immagine
Card con azioni
Card link
Mostra il codice
<x-italia::card title="Titolo della card" subtitle="Sottotitolo">
Contenuto della card con testo descrittivo.
</x-italia::card>
<x-italia::card title="Card con immagine" image="https://..." image-alt="Immagine descrittiva della card">
Testo della card con immagine sopra.
</x-italia::card>
<x-italia::card title="Card con azioni">
Card con slot per azioni in fondo.
<x-slot:actions>
<x-italia::button size="sm">Azione</x-italia::button>
<x-italia::button variant="outline" size="sm">Annulla</x-italia::button>
</x-slot:actions>
</x-italia::card>
<x-italia::card title="Card link" href="/catalog">
Cliccabile nella sua interezza.
</x-italia::card>
// Varianti
<x-italia::card big>Card grande</x-italia::card>
<x-italia::card teaser>Card teaser</x-italia::card>
Modal
Finestra di dialogo con focus trap automatico (JS di Bootstrap Italia) e supporto ARIA completo. Si apre con data-bs-toggle="modal" e data-bs-target="#id" su qualsiasi pulsante o link.
Mostra il codice
<x-italia::button data-bs-toggle="modal" data-bs-target="#my-modal">Apri</x-italia::button>
<x-italia::modal id="my-modal" title="Conferma">
Sei sicuro?
<x-slot:footer>
<x-italia::button>Conferma</x-italia::button>
<x-italia::button variant="outline" data-bs-dismiss="modal">Annulla</x-italia::button>
</x-slot:footer>
</x-italia::modal>
<x-italia::button data-bs-toggle="modal" data-bs-target="#demo-modal-description">
Apri modal con descrizione
</x-italia::button>
<x-italia::modal
id="demo-modal-description"
title="Modal con descrizione ARIA"
description="Questo testo è collegato all'attributo aria-describedby della modale, per gli screen reader."
size="lg"
centered
>
Il parametro description è opzionale e viene collegato all'attributo aria-describedby.
</x-italia::modal>
// Varianti
<x-italia::modal title="..." size="lg" centered />
<x-italia::modal title="..." size="xl" scrollable />
<x-italia::modal title="..." static />
Spinner
Indicatore di caricamento in quattro dimensioni, cerchio doppio come impostazione predefinita, con etichetta per screen reader.
:double="false")
Mostra il codice
<x-italia::spinner size="sm" />
<x-italia::spinner />
<x-italia::spinner size="lg" />
<x-italia::spinner size="xl" label="Caricamento in corso" />
<x-italia::spinner :double="false" size="lg" />
Icon
Icone dallo sprite SVG di Bootstrap Italia. Dimensioni: sm, md (predefinita), lg e xl.
Mostra il codice
<x-italia::icon name="it-search" />
<x-italia::icon name="it-search" size="lg" />
<x-italia::icon name="it-search" size="xl" label="Cerca" />
<x-italia::icon name="it-close" spacing="right" />
Input
Campi di testo con etichetta flottante, vari tipi di input, suggerimenti, stato obbligatorio e gestione degli errori di validazione.
Mostra il codice
<x-italia::input name="nome" label="Nome" />
<x-italia::input name="cf_demo" label="Codice Fiscale (demo)" placeholder="RSSMRA80A01H501U" />
<x-italia::input name="email" type="email" label="Email" hint="name@example.com" required />
<x-italia::input name="password" type="password" label="Password" />
<x-italia::input name="eta" type="number" label="Età" hint="Minimo 18 anni" />
<x-italia::input name="semplice" label="Senza etichetta flottante" :floating="false" />
Select
Menu a discesa: semplice, con optgroup, selezione multipla e placeholder.
Mostra il codice
<x-italia::select name="paese" label="Paese" required :options="['it' => 'Italia', ...]" placeholder="Seleziona..." />
<x-italia::select name="citta" label="Città" :options="['Nord' => ['mi' => 'Milano', ...], ...]" />
<x-italia::select name="ruoli" label="Ruoli" :options="[...]" multiple />
Mostra il codice
<x-italia::select name="citta-slot" label="Città (slot)">
<option value="mi">Milano</option>
<option value="na">Napoli</option>
<option value="rm">Roma</option>
<option value="to">Torino</option>
</x-italia::select>
<x-italia::select name="citta-filtro" label="Città (filtro)" placeholder="Tutte le città" :placeholder-disabled="false" :options="['mi' => 'Milano', 'na' => 'Napoli', 'rm' => 'Roma']" />
Textarea
Area di testo con numero di righe configurabile e suggerimento.
Mostra il codice
<x-italia::textarea name="bio" label="Biografia" hint="Max 500 caratteri" />
<x-italia::textarea name="note" label="Note" :rows="5" />
Checkbox
Checkbox: singola, preselezionata, disabilitata o raggruppata con un nome array.
Gruppo (interessi[])
Mostra il codice
<x-italia::checkbox name="termini" label="Accetto i termini" required />
<x-italia::checkbox name="newsletter" label="Iscriviti alla newsletter" value="yes" />
<x-italia::checkbox name="promo" label="Pre-selezionata" checked />
<x-italia::checkbox name="sms" label="Disabilitata" disabled />
// Gruppo: usa [] nel nome per un array
<x-italia::checkbox name="interessi[]" value="sport" label="Sport" />
<x-italia::checkbox name="interessi[]" value="musica" label="Musica" />
<x-italia::checkbox name="interessi[]" value="viaggi" label="Viaggi" />
Gruppo checkbox
Gruppo di checkbox in un fieldset con un solo messaggio di errore di validazione.
Mostra il codice
<form method="get" action="/catalog">
<x-italia::checkbox-group name="demo" legend="Interessi" hint="Seleziona uno o più interessi">
<x-italia::checkbox name="demo[]" value="sport" label="Sport" />
<x-italia::checkbox name="demo[]" value="musica" label="Musica" />
<x-italia::checkbox name="demo[]" value="viaggi" label="Viaggi" />
</x-italia::checkbox-group>
</form>
Radio
Gruppo di radio con lo stesso name: è possibile selezionare una sola opzione.
Mostra il codice
<x-italia::radio name="genere" value="m" label="Maschio" />
<x-italia::radio name="genere" value="f" label="Femmina" />
<x-italia::radio name="genere" value="o" label="Altro" />
<x-italia::radio name="genere" value="x" label="Disabilitata" disabled />
Gruppo radio
Gruppo di radio accessibile con fieldset, legend e un unico messaggio di errore.
Mostra il codice
<form method="get" action="/catalog">
<x-italia::radio-group name="demo" legend="Genere" hint="Seleziona un'opzione" required>
<x-italia::radio name="demo" value="m" label="Maschio" />
<x-italia::radio name="demo" value="f" label="Femmina" />
<x-italia::radio name="demo" value="o" label="Altro" />
</x-italia::radio-group>
</form>