<section class="rtds-context-menu">
<div class="rtds-context-menu__container rtds-container">
<div class="rtds-context-menu__header rtds-flex-2 md:rtds-flex-none">
<div class="rtds-site-logo rtds-max-w-16 md:rtds-max-w-20 lg:rtds-max-w-24">
<img class="rtds-w-full rtds-h-full rtds-object-contain rtds-object-left-top" src="/images/icona-tema-sociale.svg" alt="Alt logo image" width="118" height="24" />
</div>
<div class="rtds-flex rtds-items-baseline rtds-gap-2">
<span class="rtds-context-menu__title rtds-text-sm md:rtds-text-base xl:rtds-text-lg rtds-leading-none rtds-grid rtds-gap-1 md:rtds-block" id="contextMenuTitle">
<a class="rtds-font-bold hover:rtds-underline" href=""><span class="rtds-sr-only">Homepage del tema: </span>Beni, Servizi e Lavori pubblici</a>
</span>
</div>
</div>
<nav class="rtds-context-menu__nav rtds-dropdown-menu has-dropdown-menu rtds-flex-1" aria-labelledby="contextMenuTitle">
<ul class="rtds-context-menu__nav-list rtds-flex rtds-flex-wrap rtds-gap-1 xs:rtds-gap-2 lg:rtds-gap-4 rtds-flex-1 rtds-justify-between lg:rtds-justify-end">
<li>
<button id="contextMenuTrigger" class="rtds-context-menu__trigger rtds-dropdown-trigger rtds-btn rtds-btn--only-text rtds-btn--s rtds-btn--icon-right rtds-pr-1.5 rtds-pl-2 rtds-ml-auto md:rtds-ml-0" aria-expanded="false" aria-controls="contextMenu01">
<span class="rtds-text-xs md:rtds-sr-only">Argomenti</span>
<span class="rtds-sr-only md:rtds-not-sr-only">
<span class="rtds-context-menu__toggle-text">
Tutti gli argomenti
</span>
</span>
<svg class="rtds-icon rtds-fill-current rtds-w-4 rtds-h-4 md:rtds-w-5 md:rtds-h-5" aria-hidden="true" focusable="false" role="img">
<use href="../../icons.svg#mini--chevron-down" />
</svg>
</button>
<div class="rtds-context-menu__list-container" id="contextMenu01">
<ul class="rtds-context-menu__list rtds-grid rtds-gap-4 rtds-p-4 lg:rtds-flex-1 lg:rtds-container md:rtds-grid-cols-2 lg:rtds-grid-cols-4">
<li class="rtds-context-menu__item rtds-menu-card rtds-group/item">
<a href="#" class="rtds-context-menu__link rtds-menu-card__link">
<span class="rtds-menu-card__title rtds-heading-3 group-hover/item:rtds-underline">Terza età</span>
<span class="rtds-menu-card__text">Le politiche della Regione per le persone anziane.</span>
</a>
</li>
<li class="rtds-context-menu__item rtds-menu-card rtds-group/item">
<a href="#" class="rtds-context-menu__link rtds-menu-card__link is-active">
<span class="rtds-menu-card__title rtds-heading-3 group-hover/item:rtds-underline">Carcere</span>
<span class="rtds-menu-card__text">I progetti di supporto ai percorsi di riabilitazione.</span>
</a>
</li>
<li class="rtds-context-menu__item rtds-menu-card rtds-group/item">
<a href="#" class="rtds-context-menu__link rtds-menu-card__link is-active">
<span class="rtds-menu-card__title rtds-heading-3 group-hover/item:rtds-underline">Carcere</span>
<span class="rtds-menu-card__text">I progetti di supporto ai percorsi di riabilitazione.</span>
</a>
</li>
<li class="rtds-context-menu__item rtds-menu-card rtds-group/item">
<a href="#" class="rtds-context-menu__link rtds-menu-card__link is-active">
<span class="rtds-menu-card__title rtds-heading-3 group-hover/item:rtds-underline">Carcere</span>
<span class="rtds-menu-card__text">I progetti di supporto ai percorsi di riabilitazione.</span>
</a>
</li>
<li class="rtds-context-menu__item rtds-context-menu__item--more">
<a href="#" class="rtds-btn
rtds-btn--icon-right rtds-group/button rtds-btn--outlined rtds-btn--s rtds-context-menu__link rtds-context-menu__link--more">
Scopri gli approfondimenti del tema
<svg class="rtds-icon rtds-fill-current rtds-w-4 rtds-h-4 md:rtds-w-5 md:rtds-h-5 lg:rtds-w-6 lg:rtds-h-6 group-hover/button:rtds-translate-x-1" aria-hidden="true" focusable="false" role="img">
<use href="../../icons.svg#mini--chevron-right" />
</svg>
</a>
</li>
</ul>
</div>
</li>
<li>
<a href="#" class="rtds-btn rtds-btn--only-text rtds-btn--s rtds-btn--icon-right rtds-pr-1.5 rtds-pl-2">
<span class="rtds-text-xs md:rtds-text-sm">Approfondimenti</span>
<svg class="rtds-icon rtds-fill-current rtds-w-4 rtds-h-4 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 href="#" class="rtds-btn rtds-btn--only-text rtds-btn--s rtds-btn--icon-right rtds-pr-1.5 rtds-pl-2">
<span class="rtds-text-xs md:rtds-text-sm">Servizi</span>
<svg class="rtds-icon rtds-fill-current rtds-w-4 rtds-h-4 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>
</ul>
</nav>
</div>
</section>
{# Context Menu Component #}
<section class="rtds-context-menu">
<div class="rtds-context-menu__container rtds-container">
<div class="rtds-context-menu__header rtds-flex-2 md:rtds-flex-none">
{% render '@logo', logo, true %}
<div class="rtds-flex rtds-items-baseline rtds-gap-2">
<span class="rtds-context-menu__title rtds-text-sm md:rtds-text-base xl:rtds-text-lg rtds-leading-none rtds-grid rtds-gap-1 md:rtds-block" id="contextMenuTitle">
{{ titlePrefix|safe }}
<a class="rtds-font-bold hover:rtds-underline" href=""><span class="rtds-sr-only">Homepage del tema: </span>{{ title|safe }}</a>
{{ titleSuffix|safe }}
</span>
{% if description %}
<span class="rtds-context-menu__description rtds-hidden lg:rtds-block rtds-text-base xl:rtds-text-lg">
{{ description|safe }}
</span>
{% endif %}
</div>
</div>
{% block contextMenu %}
<nav class="rtds-context-menu__nav rtds-dropdown-menu has-dropdown-menu rtds-flex-1" aria-labelledby="contextMenuTitle">
<ul class="rtds-context-menu__nav-list rtds-flex rtds-flex-wrap rtds-gap-1 xs:rtds-gap-2 lg:rtds-gap-4 rtds-flex-1 rtds-justify-between lg:rtds-justify-end">
<li>
<button id="contextMenuTrigger" class="rtds-context-menu__trigger rtds-dropdown-trigger rtds-btn rtds-btn--only-text rtds-btn--s rtds-btn--icon-right rtds-pr-1.5 rtds-pl-2 rtds-ml-auto md:rtds-ml-0" aria-expanded="false" aria-controls="contextMenu01">
<span class="rtds-text-xs md:rtds-sr-only">Argomenti</span>
<span class="rtds-sr-only md:rtds-not-sr-only">
<span class="rtds-context-menu__toggle-text">
Tutti gli argomenti
</span>
{# <span class="rtds-context-menu__toggle-text is-show-more">
Vedi tutti gli argomenti
</span>
<span class="rtds-context-menu__toggle-text is-show-less">
Vedi meno argomenti
</span>#}
</span>
{% render '@icon',{id: 'mini--chevron-down',size:'rtds-w-4 rtds-h-4 md:rtds-w-5 md:rtds-h-5'} ,true %}
</button>
<div class="rtds-context-menu__list-container" id="contextMenu01">
{% if items %}
<ul class="rtds-context-menu__list rtds-grid rtds-gap-4 rtds-p-4 lg:rtds-flex-1 lg:rtds-container {{ menuListGridClasses }}">
{% for item in items %}
<li class="rtds-context-menu__item rtds-menu-card rtds-group/item">
<a href="{{ item.url }}" class="rtds-context-menu__link rtds-menu-card__link{% if item.isActive %} is-active{% endif %}">
<span class="rtds-menu-card__title rtds-heading-3 group-hover/item:rtds-underline">{{ item.title }}</span>
<span class="rtds-menu-card__text">{{ item.text }}</span>
</a>
</li>
{% endfor %}
<li class="rtds-context-menu__item rtds-context-menu__item--more">
{% render '@button--icon-right',{
classes: 'rtds-btn--outlined rtds-btn--s rtds-context-menu__link rtds-context-menu__link--more',
href: '#',
label: 'Scopri gli approfondimenti del tema',
icon: 'mini--chevron-right'
}, true %}
</li>
</ul>
{% endif %}
</div>
</li>
<li>
<a href="#" class="rtds-btn rtds-btn--only-text rtds-btn--s rtds-btn--icon-right rtds-pr-1.5 rtds-pl-2">
<span class="rtds-text-xs md:rtds-text-sm">Approfondimenti</span>
{% render '@icon',{id: 'mini--chevron-right',size:'rtds-w-4 rtds-h-4 md:rtds-w-5 md:rtds-h-5'} ,true %}
</a>
</li>
<li>
<a href="#" class="rtds-btn rtds-btn--only-text rtds-btn--s rtds-btn--icon-right rtds-pr-1.5 rtds-pl-2">
<span class="rtds-text-xs md:rtds-text-sm">Servizi</span>
{% render '@icon',{id: 'mini--chevron-right',size:'rtds-w-4 rtds-h-4 md:rtds-w-5 md:rtds-h-5'} ,true %}
</a>
</li>
</ul>
</nav>
{% endblock contextMenu %}
</div>
</section>
{
"title": "Beni, Servizi e Lavori pubblici",
"menuListGridClasses": "md:rtds-grid-cols-2 lg:rtds-grid-cols-4",
"logo": {
"path": "/images/icona-tema-sociale.svg",
"width": "118",
"height": "24",
"classes": "rtds-max-w-16 md:rtds-max-w-20 lg:rtds-max-w-24"
},
"items": [
{
"title": "Terza età",
"text": "Le politiche della Regione per le persone anziane.",
"url": "#"
},
{
"title": "Carcere",
"text": "I progetti di supporto ai percorsi di riabilitazione.",
"url": "#",
"isActive": true
},
{
"title": "Carcere",
"text": "I progetti di supporto ai percorsi di riabilitazione.",
"url": "#",
"isActive": true
},
{
"title": "Carcere",
"text": "I progetti di supporto ai percorsi di riabilitazione.",
"url": "#",
"isActive": true
}
]
}
@layer components {
/* base style */
.rtds-context-menu {
@apply rtds-border-b-2 rtds-border-gray-02 rtds-relative;
}
.rtds-context-menu__container {
@apply rtds-grid lg:rtds-flex rtds-pt-4 rtds-pb-2 md:rtds-pb-2.5 lg:rtds-py-3 rtds-gap-4 rtds-items-center;
}
.rtds-context-menu__header {
@apply rtds-flex rtds-items-center rtds-gap-2 rtds-content-02;
}
.rtds-context-menu__nav {
@apply rtds-flex;
}
.rtds-context-menu__list-container {
@apply rtds-absolute rtds-top-full rtds-left-0 rtds-w-full rtds-bg-white rtds-z-50 rtds-py-4 rtds-border-b-2 rtds-border-t-2 rtds-border-gray-02;
}
.rtds-context-menu__list-container.is-open {
@apply rtds-flex rtds-justify-center;
}
/* interactivity */
:where(.rtds-context-menu__toggle-text.is-show-less) {
@apply rtds-hidden;
}
:where(.has-dropdown-open .rtds-context-menu__toggle-text.is-show-more) {
@apply rtds-hidden;
}
:where(.has-dropdown-open .rtds-context-menu__toggle-text.is-show-less) {
@apply rtds-block;
}
.rtds-context-menu__trigger .rtds-icon {
@apply rtds-transition-all;
}
.rtds-context-menu__trigger:where([aria-expanded="true"]) .rtds-icon {
@apply -rtds-rotate-180;
}
/* RTDS-MENU-CARD */
.rtds-menu-card {
@apply rtds-bg-white rtds-p-6 rtds-bg-gradient-04;
}
.rtds-menu-card__link {
@apply rtds-flex rtds-flex-col rtds-gap-2;
}
.rtds-menu-card__title {
@apply rtds-content-02;
}
.rtds-menu-card__text {
@apply rtds-text-sm rtds-content-01;
}
.rtds-context-menu__item--more {
@apply rtds-col-span-full rtds-flex rtds-justify-center rtds-items-center;
}
}
Il componente Context Menu è un organismo che implementa un menu di navigazione contestuale con dropdown per la visualizzazione di argomenti correlati.
Il componente offre le seguenti funzionalità:
Il componente è strutturato in tre sezioni principali:
Il componente può essere configurato attraverso il file context-menu.config.yml. Ecco una spiegazione dettagliata dei parametri disponibili:
titletitle: "Beni, Servizi e Lavori pubblici"titlePrefix e titleSuffixtitlePrefix: "<span class='rtds-text-sm'>Area:</span>"
titleSuffix: "<span class='rtds-text-xs'>Ultimo aggiornamento: 2024</span>"descriptiondescription: "Esplora le tematiche relative ai beni, servizi e lavori pubblici"menuListGridClassesmenuListGridClasses: "md:rtds-grid-cols-2 lg:rtds-grid-cols-4 xl:rtds-grid-cols-5"logopath: Percorso dell’immaginewidth: Larghezza del logoheight: Altezza del logoclasses: Classi CSS per il dimensionamento responsivelogo:
path: '/images/icona-tema-sociale.svg'
width: '118'
height: '24'
classes: 'rtds-max-w-16 md:rtds-max-w-20 lg:rtds-max-w-24'itemstitle: Titolo dell’argomento (obbligatorio)text: Descrizione breve (obbligatorio)url: Link di destinazione (obbligatorio)isActive: Stato attivo (opzionale, booleano)items:
- title: "Terza età"
text: "Le politiche della Regione per le persone anziane."
url: "#"
- title: "Carcere"
text: "I progetti di supporto ai percorsi di riabilitazione."
url: "#"
isActive: trueIl componente supporta diverse varianti predefinite, ognuna ottimizzata per un numero specifico di elementi:
default
md:rtds-grid-cols-2 lg:rtds-grid-cols-4 xl:rtds-grid-cols-52-cols
md:rtds-grid-cols-23-cols
md:rtds-grid-cols-2 lg:rtds-grid-cols-34-cols
md:rtds-grid-cols-2 lg:rtds-grid-cols-4backlink-only
has-description
rtds-context-menu: Contenitore principale del componentertds-context-menu__container: Contenitore del contenutortds-context-menu__header: Sezione header con logo e titolortds-context-menu__title: Titolo del menurtds-context-menu__description: Descrizione opzionalertds-context-menu__nav: Menu di navigazionertds-context-menu__nav-list: Lista degli elementi di navigazionertds-context-menu__trigger: Pulsante per il dropdownrtds-context-menu__list-container: Contenitore del menu dropdownrtds-context-menu__list: Lista degli argomenti nel dropdownrtds-context-menu__item: Singolo elemento del menurtds-context-menu__link: Link dell’elemento del menurtds-context-menu__item--more: Elemento “mostra di più”