<section class="rtds-note rtds-bg-gradient-03 rtds-note--avviso">
    <div class="rtds-note__header">

        <h2 class="rtds-note__title rtds-text-sm md:rtds-text-base rtds-uppercase rtds-font-semibold">
            Titolo
        </h2>

        <div class="rtds-ml-auto rtds-text-sm md:rtds-text-base">
            <time datetime="2025-01-16">16.01.2025</time>
        </div>

    </div>
    <div class="rtds-note__content rtds-divide-y rtds-divide-gray-01">

        <div class="rtds-note__content-item">

            <h3 class="rtds-note__content-item-title">
                Titolo
            </h3>

            <p class="rtds-note__content-item-description">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos. Lorem ipsum dolor <a href='#'>sit amet consectetur adipisicing elit.</a></p>

            <a href="#" class="rtds-text-link rtds-leading-snug rtds-text-link--s">

                <svg class="rtds-icon rtds-fill-current rtds-w-4 rtds-h-4 rtds-flex-shrink-0 rtds-flex-grow-0" aria-hidden="true" focusable="false" role="img">
                    <use href="../../icons.svg#outline--document" />
                </svg>

                Link text (PDF - 40Kb)

            </a>

        </div>

    </div>
</section>
{% extends '@note' %}
{% block classes %}{{ super() }} rtds-note--avviso{% endblock classes %}

{% block titleAdditionalContent %}
<div class="rtds-ml-auto rtds-text-sm md:rtds-text-base">
    <time datetime="2025-01-16">16.01.2025</time>
</div>
{% endblock %}
{
  "label": "Titolo",
  "gradient": "rtds-bg-gradient-03",
  "id": null,
  "contents": [
    {
      "title": "Titolo",
      "description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos. Lorem ipsum dolor <a href='#'>sit amet consectetur adipisicing elit.</a>",
      "link": {
        "variant": "--s",
        "url": "#",
        "title": "Link",
        "icon": "outline--document"
      }
    }
  ]
}
  • Content:
    .rtds-note {
        padding: var(--spacing-4);
            color: var(--color-content-01);
        border-radius: 0.5rem;
    }
    @media (min-width: 768px) {
        .rtds-note {
            padding: var(--spacing-6);
        }
    }
    .rtds-note__header {
        align-items: baseline;
        border-bottom-width: 1px;
        padding-bottom: var(--spacing-3);
            border-color: var(--color-border-gray-01);
        display: flex;
    }
    .rtds-note__content {
        padding-top: var(--spacing-3);
        padding-bottom: var(--spacing-3);
    }
    .rtds-note__content-item {
        gap: var(--spacing-2-5);
        display: grid;
        padding-top: var(--spacing-3);
        padding-bottom: var(--spacing-3);
    }
    .rtds-note__content-item:first-child {
        padding-top: var(--spacing-0);
    }
    .rtds-note__content-item:last-child {
        padding-bottom: var(--spacing-0);
    }
    .rtds-note__content-item-title {
        font-size: var(--fontsize-text-sm);
        font-weight: 700;
    }
    .rtds-note__content-item-description {
        font-size: var(--fontsize-text-sm);
    }
    .rtds-note__content-item-description a {
        text-decoration-line: underline;
            color: var(--color-content-02);
    }
    /* Callout */
    .rtds-note__icon {
            flex-shrink: 0;
            width: var(--spacing-5, 1.25rem);
            height: var(--spacing-5, 1.25rem);
            color: currentColor;
        }
    .rtds-note--callout {
            background-color: var(--note-callout-bg, var(--color-neutral-100));
            border-left: 4px solid var(--note-callout-border-color, var(--color-neutral-400));
            border-radius: 0 var(--border-radius-lg, 0.5rem) var(--border-radius-lg, 0.5rem) 0;
        }
    .rtds-note--callout-info {
            --note-callout-border-color: var(--color-info);
            --note-callout-icon-color: var(--color-content-info);
        }
    .rtds-note--callout-avviso {
            --note-callout-border-color: var(--color-warn);
            --note-callout-icon-color: var(--color-content-warn);
        }
    .rtds-note--callout-pericolo {
            --note-callout-border-color: var(--color-error);
            --note-callout-icon-color: var(--color-content-error);
        }
    .rtds-note--callout .rtds-note__icon {
            color: var(--note-callout-icon-color, var(--color-neutral-700));
        }
    .rtds-note--callout .rtds-note__header {
        flex-direction: row;
        display: flex;
        align-items: center;
        gap: var(--spacing-2);
    }
    
  • URL: /components/raw/note/note.built.css
  • Filesystem Path: components/03-molecules/note/note.built.css
  • Size: 2.3 KB
  • Content:
    @layer components {
        .rtds-note {
            @apply rtds-p-4 md:rtds-p-6 rtds-rounded-lg rtds-content-01;
        }
    
        .rtds-note__header {
            @apply rtds-border-b rtds-border-gray-01 rtds-pb-3 rtds-flex rtds-items-baseline;
        }
    
        .rtds-note__content {
            @apply rtds-py-3;
        }
    
        .rtds-note__content-item {
            @apply rtds-grid rtds-gap-2.5 rtds-py-3 first:rtds-pt-0 last:rtds-pb-0;
        }
    
        .rtds-note__content-item-title {
            @apply rtds-text-sm rtds-font-bold;
        }
    
        .rtds-note__content-item-description {
            @apply rtds-text-sm;
        }
    
        .rtds-note__content-item-description a {
            @apply rtds-underline rtds-content-02;
        }
    
        /* Callout */
    
        .rtds-note__icon {
            flex-shrink: 0;
            width: var(--spacing-5, 1.25rem);
            height: var(--spacing-5, 1.25rem);
            color: currentColor;
        }
    
        .rtds-note--callout {
            background-color: var(--note-callout-bg, var(--color-neutral-100));
            border-left: 4px solid var(--note-callout-border-color, var(--color-neutral-400));
            border-radius: 0 var(--border-radius-lg, 0.5rem) var(--border-radius-lg, 0.5rem) 0;
        }
    
        .rtds-note--callout-info {
            --note-callout-border-color: var(--color-info);
            --note-callout-icon-color: var(--color-content-info);
        }
    
        .rtds-note--callout-avviso {
            --note-callout-border-color: var(--color-warn);
            --note-callout-icon-color: var(--color-content-warn);
        }
    
        .rtds-note--callout-pericolo {
            --note-callout-border-color: var(--color-error);
            --note-callout-icon-color: var(--color-content-error);
        }
    
        .rtds-note--callout .rtds-note__icon {
            color: var(--note-callout-icon-color, var(--color-neutral-700));
        }
    
        .rtds-note--callout .rtds-note__header {
            @apply rtds-flex rtds-flex-row rtds-items-center rtds-gap-2;
        }
    }
    
  • URL: /components/raw/note/note.css
  • Filesystem Path: components/03-molecules/note/note.css
  • Size: 1.9 KB

Note

Componente utility per informazioni aggiuntive all’interno di pagine di dettaglio contenuto.


Comportamento

Il componente è sempre renderizzato come <section> — blocco tematico autonomo. Contiene un <h2> come titolo della nota e, per ogni elemento del contenuto, un <h3> con la relativa descrizione, link e/o pulsante CTA.


Varianti

Varianti di Stile

  • note--esiti: Versione per la visualizzazione di esiti e graduatorie
  • note--faq: Versione per la visualizzazione di FAQ
  • note--avviso: Versione per la visualizzazione di avvisi
  • note--comunicazione: Versione per la visualizzazione di comunicazioni

Varianti Callout

I callout sono una variante visivamente prominente della nota — bordo laterale sinistro e sfondo neutro — per evidenziare informazioni cruciali nel corpo dei contenuti. Il segnale semantico è portato da colore del bordo, colore dell’icona e testo, non dallo sfondo. Si distinguono dalla nota base (sfondi a gradiente) per la struttura visiva, e dall’alert per la semantica: il callout è contenuto statico della pagina, non un messaggio di stato dinamico.

Non usare role="alert"aria-live sui callout — riservare quei pattern all’alert per messaggi in risposta ad azioni utente.

Variante Classe Icona default Uso
note--callout rtds-note--callout outline--light-bulb Note generiche, suggerimenti
note--callout-info rtds-note--callout rtds-note--callout-info outline--information-circle Informazioni aggiuntive
note--callout-avviso rtds-note--callout rtds-note--callout-avviso outline--exclamation-triangle Avvertenze, attenzione
note--callout-pericolo rtds-note--callout rtds-note--callout-pericolo outline--shield-exclamation Pericoli, errori critici

Parametri di configurazione

Contesto di sviluppo Fractal/Nunjucks — Questa sezione riguarda esclusivamente i parametri del context .config.yml usati durante lo sviluppo nella libreria. Non descrive attributi HTML o proprietà da usare nei temi, CMS o ambienti di implementazione: per quello, fare riferimento alla sezione Esempi di utilizzo.

Parametri Base

  • id (stringa, opzionale): ID opzionale per la sezione
  • classes (stringa, opzionale): Classi CSS aggiuntive per il componente
  • gradient (stringa, opzionale): Classe per il gradiente di sfondo. Impostare "" nelle varianti callout per sovrascrivere il gradiente di default
  • label (stringa, obbligatorio): Titolo della nota
  • icon (stringa, opzionale): ID dell’icona SVG dallo sprite (es. outline--light-bulb). Usato dalle varianti callout; aria-hidden="true" di default — l’accessibilità è garantita dal testo

Parametri Contenuto

  • contents (array, opzionale): Elementi del contenuto
    • title (stringa, opzionale): Titolo dell’elemento
    • description (stringa, opzionale): Descrizione dell’elemento
    • link (oggetto, opzionale): Configurazione del link
      • variant (stringa, opzionale): Variante del link
      • url (stringa, opzionale): URL del link
      • title (stringa, opzionale): Titolo del link
      • icon (stringa, opzionale): Icona del link
    • cta (oggetto, opzionale): Configurazione del bottone
      • variant (stringa, opzionale): Variante del bottone
      • classes (stringa, opzionale): Classi aggiuntive del bottone
      • url (stringa, opzionale): URL del bottone
      • label (stringa, opzionale): Etichetta del bottone
      • icon (stringa, opzionale): Icona del bottone

Accessibilità

WCAG 2.1

Livello AA — criteri pertinenti:

  • 1.3.1 Informazioni e correlazioni — il componente usa <section> come contenitore semantico; i titoli seguono una gerarchia coerente (<h2> per il titolo della nota, <h3> per i titoli degli elementi)
  • 2.4.6 Intestazioni ed etichette — il titolo della nota (<h2>) identifica il blocco per la navigazione tramite heading degli screen reader

Struttura e semantica

  • <section> — blocco tematico autonomo nella pagina; senza aria-labelledby o aria-label non è un landmark navigabile dagli screen reader; per esporla come landmark region, assegnare un id all’<h2> interno e aggiungere aria-labelledby="[id-h2]" sulla <section>
  • <h2> — etichetta l’intera nota; referenziarlo con aria-labelledby sulla <section> abilita la navigazione rapida tra le regioni della pagina
  • <h3> — titolo di ogni elemento del contenuto; presuppone che la <section> abbia già un <h2> come intestazione di contesto
  • I link e i pulsanti CTA interni gestiscono la propria accessibilità tramite la semantica dei rispettivi componenti atom

Screen reader

  • Senza aria-labelledby, la <section> non è un landmark — lo screen reader la legge come contenuto generico e non la include nella navigazione rapida per regioni
  • Con aria-labelledby="[id-h2]" sulla <section>, lo screen reader annuncia la regione con il testo dell’<h2> (es. “Avviso importante, regione”) e la rende raggiungibile tramite la navigazione per landmark
  • I link e i pulsanti CTA interni mantengono la propria semantica (ruolo, nome accessibile) come definita dai rispettivi componenti atom

Stili CSS

Classi Base

  • .rtds-note: Classe principale del componente

Classi Elementi (BEM)

  • .rtds-note__header: Intestazione della nota
  • .rtds-note__title: Titolo <h2> della nota
  • .rtds-note__content: Contenitore del contenuto principale
  • .rtds-note__content-item: Singolo elemento del contenuto
  • .rtds-note__icon: Icona nell’header (solo varianti callout)

Modificatori Callout

  • .rtds-note--callout: Base callout (sfondo neutro, bordo sinistro)
  • .rtds-note--callout-info: Tipo informativo (blu)
  • .rtds-note--callout-avviso: Tipo avviso (arancione)
  • .rtds-note--callout-pericolo: Tipo pericolo (rosso)

Esempi di utilizzo

<!-- Esempio base con landmark region accessibile (consigliato) -->
<section class="rtds-note" aria-labelledby="note-title-01">
  <div class="rtds-note__header">
    <h2 id="note-title-01" class="rtds-note__title">Titolo della nota</h2>
  </div>
  <div class="rtds-note__content">
    <div class="rtds-note__content-item">
      <h3>Sottotitolo</h3>
      <p>Descrizione del contenuto</p>
    </div>
  </div>
</section>

<!-- Variante avviso con landmark region accessibile (consigliato) -->
<section class="rtds-note rtds-note--avviso" aria-labelledby="note-avviso-01">
  <div class="rtds-note__header">
    <h2 id="note-avviso-01" class="rtds-note__title">Avviso importante</h2>
  </div>
  <div class="rtds-note__content">
    <div class="rtds-note__content-item">
      <p>Testo dell'avviso</p>
    </div>
  </div>
</section>

<!-- Callout generico -->
<section class="rtds-note rtds-note--callout">
  <div class="rtds-note__header">
    <svg class="rtds-note__icon" aria-hidden="true" focusable="false">
      <use href="/icons.svg#outline--light-bulb"></use>
    </svg>
    <h2 class="rtds-note__title">Nota</h2>
  </div>
  <div class="rtds-note__content">
    <div class="rtds-note__content-item">
      <p>Testo del callout generico.</p>
    </div>
  </div>
</section>

<!-- Callout informativo -->
<section class="rtds-note rtds-note--callout rtds-note--callout-info">
  <div class="rtds-note__header">
    <svg class="rtds-note__icon" aria-hidden="true" focusable="false">
      <use href="/icons.svg#outline--information-circle"></use>
    </svg>
    <h2 class="rtds-note__title">Informazione</h2>
  </div>
  <div class="rtds-note__content">
    <div class="rtds-note__content-item">
      <p>Testo informativo.</p>
    </div>
  </div>
</section>

<!-- Callout avviso -->
<section class="rtds-note rtds-note--callout rtds-note--callout-avviso">
  <div class="rtds-note__header">
    <svg class="rtds-note__icon" aria-hidden="true" focusable="false">
      <use href="/icons.svg#outline--exclamation-triangle"></use>
    </svg>
    <h2 class="rtds-note__title">Attenzione</h2>
  </div>
  <div class="rtds-note__content">
    <div class="rtds-note__content-item">
      <p>Testo dell'avviso.</p>
    </div>
  </div>
</section>

<!-- Callout pericolo -->
<section class="rtds-note rtds-note--callout rtds-note--callout-pericolo">
  <div class="rtds-note__header">
    <svg class="rtds-note__icon" aria-hidden="true" focusable="false">
      <use href="/icons.svg#outline--shield-exclamation"></use>
    </svg>
    <h2 class="rtds-note__title">Attenzione</h2>
  </div>
  <div class="rtds-note__content">
    <div class="rtds-note__content-item">
      <p>Testo del pericolo.</p>
    </div>
  </div>
</section>