<div class="rtds-page-header-with-cover lg:rtds-grid lg:rtds-grid-cols-12">
<div class="rtds-page-header__content lg:rtds-grid lg:rtds-content-center rtds-space-y-4 lg:rtds-space-y-8
lg:rtds-col-span-5 lg:rtds-col-end-13 lg:rtds-row-start-1 lg:rtds-row-end-3 xl:rtds-col-span-4 xl:rtds-col-end-13
">
<div class="rtds-page-header__title rtds-grid rtds-gap-4">
<div class="rtds-order-2 rtds-space-y-2 lg:rtds-space-y-4">
<p class="rtds-heading-1">
Titolo pagina
</p>
</div>
<small class="rtds-text-sm rtds-order-1">
<span class="rtds-category "><svg class="rtds-icon rtds-fill-current rtds-w-2 rtds-h-2" aria-hidden="true" focusable="false" role="img">
<use href="../../icons.svg#solid--circle" />
</svg>
<span class="rtds-lowercase rtds-content-01 rtds-font-medium">evento</span>
</span>
</small>
</div>
<div class="rtds-page-header__description rtds-text-sm md:rtds-text-base lg:rtds-text-lg rtds-leading-normal">
<div class="rtds-space-y-2 md:rtds-space-y-6 lg:rtds-space-y-8 xl:rtds-space-y-12">
<div>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos.</p>
</div>
<div class="*:rtds-text-sm *:md:rtds-text-base *:lg:rtds-text-lg *:rtds-leading-tight">
<small>Aggiornato al <time datetime="2025-01-17">17/01/2025</time></small>
</div>
</div>
</div>
</div>
<div class="rtds-page-header__cover
lg:rtds-col-span-7 lg:rtds-col-start-1 lg:rtds-row-start-1 lg:rtds-row-end-3 xl:rtds-col-span-8 xl:rtds-col-start-1
">
<img class="rtds-aspect-video rtds-object-cover rtds-object-center rtds-w-full rtds-h-full" src="/images/cover-image.jpg" alt="">
</div>
</div>
<div class="rtds-page-header-with-cover lg:rtds-grid lg:rtds-grid-cols-12{% if textOnly %} rtds-page-header-with-cover--text-fullwidth{% endif %}{% block classes %}{% if classes %} {{ classes }}{% endif %}{% endblock classes %}">
<div class="rtds-page-header__content lg:rtds-grid lg:rtds-content-center rtds-space-y-4 lg:rtds-space-y-8
{% if gridVariant == 'textFullwidth' %} lg:rtds-col-span-12
{% elseif gridVariant == 'OneHalfOneHalf' %} lg:rtds-col-span-6 lg:rtds-col-end-13 lg:rtds-row-start-1 lg:rtds-row-end-3
{% elseif gridVariant == 'TwoThirdsOneThird' %} lg:rtds-col-span-5 lg:rtds-col-end-13 lg:rtds-row-start-1 lg:rtds-row-end-3 xl:rtds-col-span-4 xl:rtds-col-end-13
{% elseif gridVariant == 'OneThirdOneTwoThirds' %} lg:rtds-col-span-8 lg:rtds-col-end-13 lg:rtds-row-start-1 lg:rtds-row-end-3
{% endif %}">
<div class="rtds-page-header__title rtds-grid rtds-gap-4">
<div class="rtds-order-2 rtds-space-y-2 lg:rtds-space-y-4">
{% if titleContext %}
<span id="pageHeaderTitleContext" class="rtds-heading-4">
{{ titleContext|safe }}
</span>
{% endif %}
<{% if isContextBanner %}p{% else %}h1{% endif %}{% if titleContext %} id="pageHeaderTitle" aria-labelledby="pageHeaderTitleContext pageHeaderTitle"{% endif %} class="rtds-heading-1">
{{ title|safe }}
</{% if isContextBanner %}p{% else %}h1{% endif %}>
</div>
{% if contentType %}
<small class="rtds-text-sm rtds-order-1">
{% render '@category--icon-left', { contentClasses: 'rtds-lowercase rtds-content-01 rtds-font-medium', text: contentType }, true %}
</small>
{% endif %}
</div>
{% block description %}
{% if description or update %}
<div class="rtds-page-header__description rtds-text-sm md:rtds-text-base lg:rtds-text-lg rtds-leading-normal">
<div class="rtds-space-y-2 md:rtds-space-y-6 lg:rtds-space-y-8 xl:rtds-space-y-12">
{% if description %}
<div>
<p>{{ description|safe }}</p>
</div>
{% endif %}
{% if update %}
<div class="*:rtds-text-sm *:md:rtds-text-base *:lg:rtds-text-lg *:rtds-leading-tight">
<small>{{ update|safe }}</small>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% endblock description %}
</div>
{% if not textOnly %}
<div class="rtds-page-header__cover
{% if gridVariant == 'OneHalfOneHalf' %}
lg:rtds-col-span-6 lg:rtds-col-start-1 lg:rtds-row-start-1 lg:rtds-row-end-3
{% elseif gridVariant == 'TwoThirdsOneThird' %}
lg:rtds-col-span-7 lg:rtds-col-start-1 lg:rtds-row-start-1 lg:rtds-row-end-3 xl:rtds-col-span-8 xl:rtds-col-start-1
{% elseif gridVariant == 'OneThirdOneTwoThirds' %}
lg:rtds-col-span-4 lg:rtds-col-start-1 lg:rtds-row-start-1 lg:rtds-row-end-3
{% endif %}
">
<img class="rtds-aspect-video rtds-object-cover rtds-object-center rtds-w-full rtds-h-full" src="{{ imgPath }}" alt="">
</div>
{% endif %}
</div>
{
"title": "Titolo pagina",
"imgPath": "/images/cover-image.jpg",
"contentType": "evento",
"gridVariant": "TwoThirdsOneThird",
"isContextBanner": true,
"description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos.",
"update": "Aggiornato al <time datetime=\"2025-01-17\">17/01/2025</time>"
}
@layer components {
.rtds-page-header-with-cover {
@apply rtds-border-b rtds-border-gray-01 lg:rtds-min-h-60;
}
:where(.rtds-page-header-with-cover) .rtds-page-header__content {
@apply rtds-px-4 rtds-py-6 lg:rtds-pl-6 lg:rtds-pr-16 lg:rtds-py-8 rtds-bg-gradient-04;
}
:where(.rtds-page-header-with-cover--text-fullwidth) .rtds-page-header__title,
:where(.rtds-page-header-with-cover--text-fullwidth) .rtds-page-header__description {
@apply rtds-max-w-[52em];
}
:where(.rtds-page-header-with-cover) .rtds-page-header__cover {
@apply lg:rtds-h-full;
}
}
Template per page header con immagine di copertina.
Il componente può avere:
Contenuto e immagine sono gestiti tramite una griglia a base 12 col; i due blocchi, su viewport superiore a tablet, sono disposti tramite span sulle rispettive colonne.
Vengono mostrate alcune combinazioni e varianti del componente:
Il componente accetta i seguenti parametri nel file di configurazione:
title: Titolo principale del componenteimgPath: Percorso dell’immagine di copertinacontentType: Tipo di contenuto (es: “evento”)gridVariant: Variante della griglia (“TwoThirdsOneThird”, “OneHalfOneHalf”, “OneThirdOneTwoThirds”, “textFullwidth”)description: Descrizione opzionale del contenutoupdate: Informazione di aggiornamento con tag time HTMLtextOnly: Booleano per visualizzare solo il contenuto testuale, senza immagine di copertinaisContextBanner: Booleano per indicare se il componente funge da banner contestualeLe configurazioni stampano nel template le classi di gestione span, row e col sui componenti
TwoThirdsOneThird: Layout predefinito (2/3 immagine, 1/3 contenuto)OneHalfOneHalf: Layout a metà schermo (1/2 immagine, 1/2 contenuto)OneThirdOneTwoThirds: Layout con immagine più piccola (1/3 immagine, 2/3 contenuto)textFullwidth: Layout senza immagine, contenuto a larghezza piena (il contenuto mantiene comunque una max-with di 52em per garantirne la leggibilità)rtds-page-header-with-cover: Classe principale del componentertds-page-header-with-cover--text-fullwidth: Modificatore per layout senza immaginertds-page-header__content: Contenitore del contenuto testualertds-page-header__title: Contenitore del titolortds-page-header__description: Contenitore della descrizionertds-page-header__cover: Contenitore dell’immagine di copertinah1 per il titolo principale o p quando funge da banner contestuale