<nav class="rtds-pagination rtds-justify-center" role="navigation" aria-label="Paginazione">
<ul class="rtds-pagination__list rtds-justify-center">
<li>
<a class="rtds-pagination__link rtds-pagination__link-button " href="#" aria-label="Pagina iniziale">
<svg class="rtds-icon rtds-fill-current rtds-w-4 rtds-h-5 md:rtds-w-5 md:rtds-h-5" aria-hidden="true" focusable="false" role="img">
<use href="../../icons.svg#mini--chevron-double-left" />
</svg>
</a>
</li>
<li>
<a class="rtds-pagination__link rtds-pagination__link-button" href="#" aria-label="Pagina precedente">
<svg class="rtds-icon rtds-fill-current rtds-w-4 rtds-h-5 md:rtds-w-5 md:rtds-h-5" aria-hidden="true" focusable="false" role="img">
<use href="../../icons.svg#mini--chevron-left" />
</svg>
</a>
</li>
<li>
<a class="rtds-pagination__link rtds-pagination__link-button rtds-pagination__link-text " href="#" aria-label="pagina 1">1</a>
</li>
<li>
<a class="rtds-pagination__link rtds-pagination__link-button rtds-pagination__link-text rtds-background-primary rtds-border-primary rtds-text-white hover:rtds-content-01" href="#" aria-label="Pagina corrente, pagina 2" aria-current="true">2</a>
</li>
<li>
<a class="rtds-pagination__link rtds-pagination__link-button rtds-pagination__link-text " href="#" aria-label="pagina 3">3</a>
</li>
<li>
<a class="rtds-pagination__link rtds-pagination__link-button rtds-pagination__link-text " href="#" aria-label="pagina 4">4</a>
</li>
<li>
<a class="rtds-pagination__link rtds-pagination__link-button" href="#" aria-label="Pagina successiva">
<svg class="rtds-icon rtds-fill-current rtds-w-4 rtds-h-5 md:rtds-w-5 md:rtds-h-5" aria-hidden="true" focusable="false" role="img">
<use href="../../icons.svg#mini--chevron-right" />
</svg>
</a>
</li>
<li>
<a class="rtds-pagination__link rtds-pagination__link-button " href="#" aria-label="Pagina finale">
<svg class="rtds-icon rtds-fill-current rtds-w-4 rtds-h-5 md:rtds-w-5 md:rtds-h-5" aria-hidden="true" focusable="false" role="img">
<use href="../../icons.svg#mini--chevron-double-right" />
</svg>
</a>
</li>
</ul>
</nav>
<nav class="rtds-pagination{% block classes %}{% if classes %} {{ classes }}{% endif %}{% endblock %}{% if padding %} {{ padding }}{% endif %}{% if centered %} rtds-justify-center{% endif %}" role="navigation" aria-label="Paginazione">
<ul class="rtds-pagination__list{% if centered %} rtds-justify-center{% endif %}">
{% if hasLabels %}
<li>
<a class="rtds-pagination__link rtds-pagination__link-text rtds-py-1 rtds-px-2" aria-label="Pagina precedente" href="">Prev</a>
</li>
{% else %}
<li>
<a class="rtds-pagination__link rtds-pagination__link-button {% if linkClasses %} {{ linkClasses }}{%- endif -%}" href="#" aria-label="Pagina iniziale">
{% render '@icon', { id: 'mini--chevron-double-left', size:'rtds-w-4 rtds-h-5 md:rtds-w-5 md:rtds-h-5'}, true %}
</a>
</li>
<li>
<a class="rtds-pagination__link rtds-pagination__link-button{% if linkClasses %} {{ linkClasses }}{%- endif -%}" href="#" aria-label="Pagina precedente">
{% render '@icon', { id: 'mini--chevron-left', size:'rtds-w-4 rtds-h-5 md:rtds-w-5 md:rtds-h-5'}, true %}
</a>
</li>
{% endif %}
{% for item in items %}
<li>
<a class="rtds-pagination__link rtds-pagination__link-button rtds-pagination__link-text {% if linkClasses %} {{ linkClasses }}{%- endif -%}{% if item.isCurrent %} rtds-background-primary rtds-border-primary rtds-text-white hover:rtds-content-01{% endif %}" href="#" aria-label="{% if item.isCurrent %}Pagina corrente, {% endif %}pagina {{ item.label }}"{% if item.isCurrent %} aria-current="true"{% endif %}>{{ item.label }}</a>
</li>
{% endfor %}
{% if hasLabels %}
<li>
<a class="rtds-pagination__link rtds-pagination__link-text rtds-py-1 rtds-px-2" aria-label="Pagina successiva" href="">Next</a>
</li>
{% else %}
<li>
<a class="rtds-pagination__link rtds-pagination__link-button{% if linkClasses %} {{ linkClasses }}{%- endif -%}" href="#" aria-label="Pagina successiva">
{% render '@icon', { id: 'mini--chevron-right', size:'rtds-w-4 rtds-h-5 md:rtds-w-5 md:rtds-h-5'}, true %}
</a>
</li>
<li>
<a class="rtds-pagination__link rtds-pagination__link-button {% if linkClasses %} {{ linkClasses }}{%- endif -%}" href="#" aria-label="Pagina finale">
{% render '@icon', { id: 'mini--chevron-double-right', size:'rtds-w-4 rtds-h-5 md:rtds-w-5 md:rtds-h-5'}, true %}
</a>
</li>
{% endif %}
</ul>
</nav>
{
"items": [
{
"label": 1
},
{
"label": 2,
"isCurrent": true
},
{
"label": 3
},
{
"label": 4
}
],
"centered": true
}
/**
* PAGINATION
*
*/
@layer components {
.rtds-pagination {
@apply rtds-flex rtds-p-2;
}
.rtds-pagination__list {
@apply rtds-flex rtds-gap-2 rtds-flex-wrap;
}
.rtds-pagination__link {
@apply rtds-flex rtds-items-center rtds-justify-center rtds-h-7 md:rtds-h-8 rtds-transition-all;
}
.rtds-pagination__link-button {
@apply rtds-w-7 md:rtds-w-8 rtds-border rtds-rounded rtds-border-gray-01 rtds-bg-white hover:rtds-background-02;
}
.rtds-pagination__link-text {
@apply rtds-text-xs md:rtds-text-sm rtds-font-medium hover:rtds-underline;
}
.rtds-pagination--rounded .rtds-pagination__link-button {
@apply rtds-rounded-full;
}
}
Il componente Paginazione è un elemento molecolare che gestisce la navigazione tra le pagine di un contenuto. Supporta diverse varianti di visualizzazione e offre una navigazione accessibile.
pagination--rounded: versione con bordi arrotondatipagination--text: versione con etichette testuali invece di iconepagination--centered: versione centrata orizzontalmenteIl componente utilizza una struttura semantica con:
<nav> come contenitore principale con ruolo di navigazione<ul> per la lista degli elementi di paginazione<li> per ogni elemento della lista<a> per i link di navigazioneLa struttura base del markup è:
<nav class="rtds-pagination [classi aggiuntive]" role="navigation" aria-label="Paginazione">
<ul class="rtds-pagination__list">
<!-- Elementi di navigazione -->
</ul>
</nav>I seguenti parametri possono essere utilizzati per configurare il componente:
classes: stringa - classi CSS aggiuntive per il componentepadding: stringa - classi per il paddingcentered: booleano - se true, centra la paginazione orizzontalmentehasLabels: booleano - se true, utilizza etichette testuali invece di iconelinkClasses: stringa - classi CSS aggiuntive per i linkitems: array di oggetti - elementi della paginazioneisCurrent: booleano - indica se l’elemento è la pagina correntelabel: stringa - etichetta dell’elementoIl file di configurazione supporta le seguenti impostazioni:
title: stringa - titolo del componentestatus: stringa - stato del componente (es. “wip”)context: oggetto - configurazione di defaultitems: array - elementi della paginazione con etichette e stato correntevariants: array - varianti del componentename: stringa - nome della variantecontext: oggetto - configurazione specifica della varianteclasses: stringa - classi CSS aggiuntivehasLabels: booleano - utilizzo di etichette testualicentered: booleano - centratura orizzontaleclasses: blocco per l’inserimento di classi CSS aggiuntive