Footer

<footer class="rtds-footer rtds-border-t rtds-border-gray-01">

    <div class="rtds-logos-area">
        <div class="rtds-container rtds-py-6 md:rtds-py-8 rtds-space-y-6">

            <h2 class="rtds-content-02 rtds-text-base md:rtds-text-lg rtds-font-bold">Titolo sezione footer</h2>

            <div class="rtds-grid md:rtds-flex rtds-gap-4 md:rtds-items-center">

                <div class="rtds-flex rtds-flex-wrap rtds-gap-4 md:rtds-gap-6 rtds-items-center lg:rtds-gap-12">

                    <a class="rtds-site-logo rtds-h-12 md:rtds-h-16 md:rtds-flex-1" href="#">
                        <img class="rtds-w-full rtds-h-full rtds-object-contain rtds-object-left-top" src="/images/logo.png" alt="Img alt" width="247" height="80" />
                    </a>

                    <a class="rtds-site-logo rtds-h-12 md:rtds-h-16 md:rtds-flex-1" href="#">
                        <img class="rtds-w-full rtds-h-full rtds-object-contain rtds-object-left-top" src="/images/logo.png" alt="Img alt" width="247" height="80" />
                    </a>

                </div>
            </div>
        </div>
    </div>

    <div class="rtds-footer__navigation-row rtds-container rtds-grid rtds-gap-x-10 rtds-gap-y-4 md:rtds-flex">

        <!-- Right block -->

        <div class="rtds-grid rtds-gap-6 md:rtds-gap-3 md:rtds-flex-1">
            <!-- Menu footer  -->
            <nav class="rtds-pb-4 -rtds-ml-4" aria-label="Contatti e utilità">
                <ul class="rtds-grid md:rtds-flex rtds-gap-y-3 md:rtds-gap-y-4 rtds-flex-wrap">

                    <li class="rtds-group md:rtds-border-r md:rtds-border-gray-01 md:last:rtds-border-r-0">
                        <a href="" class="rtds-link rtds-px-4 rtds-py-2 rtds-text-sm rtds-content-02 rtds-font-bold rtds-uppercase">UFFICI</a>
                    </li>

                    <li class="rtds-group md:rtds-border-r md:rtds-border-gray-01 md:last:rtds-border-r-0">
                        <a href="" class="rtds-link rtds-px-4 rtds-py-2 rtds-text-sm rtds-content-02 rtds-font-bold rtds-uppercase">URP</a>
                    </li>

                    <li class="rtds-group md:rtds-border-r md:rtds-border-gray-01 md:last:rtds-border-r-0">
                        <a href="" class="rtds-link rtds-px-4 rtds-py-2 rtds-text-sm rtds-content-02 rtds-font-bold rtds-uppercase">PEC</a>
                    </li>

                    <li class="rtds-group md:rtds-border-r md:rtds-border-gray-01 md:last:rtds-border-r-0">
                        <a href="" class="rtds-link rtds-px-4 rtds-py-2 rtds-text-sm rtds-content-02 rtds-font-bold rtds-uppercase">MAPPA DEL SITO</a>
                    </li>

                    <li class="rtds-group md:rtds-border-r md:rtds-border-gray-01 md:last:rtds-border-r-0">
                        <a href="" class="rtds-link rtds-px-4 rtds-py-2 rtds-text-sm rtds-content-02 rtds-font-bold rtds-uppercase">INTRANET</a>
                    </li>

                </ul>
            </nav>

        </div>

    </div>

    <div class="rtds-border-t rtds-border-gray-01">
        <div class="rtds-container">
            <!-- Menu footer  -->
            <nav class="-rtds-ml-4 rtds-py-4 md:rtds-py-6" aria-label="Altre informazioni">
                <ul class="rtds-grid md:rtds-flex rtds-gap-y-3 md:rtds-gap-y-4 rtds-flex-wrap">

                    <li class="rtds-group">
                        <a href="" class="rtds-link rtds-px-4 rtds-py-2 rtds-text-sm rtds-content-03 rtds-font-bold">Voce 1</a>
                    </li>

                    <li class="rtds-group">
                        <a href="" class="rtds-link rtds-px-4 rtds-py-2 rtds-text-sm rtds-content-03 rtds-font-bold">Voce 2</a>
                    </li>

                    <li class="rtds-group">
                        <a href="" class="rtds-link rtds-px-4 rtds-py-2 rtds-text-sm rtds-content-03 rtds-font-bold">Voce 3</a>
                    </li>

                </ul>
            </nav>
        </div>
    </div>

    <!-- Footer bottom bar -->
    <div class="rtds-footer__bottom-bar">

        <div class="rtds-container rtds-grid rtds-gap-6 md:rtds-flex rtds-items-center rtds-justify-between">

            <div class="rtds-footer__bottom-bar-left">
                <!-- Utilities and other -->
                <nav class="-rtds-ml-4" aria-label="Informazioni legali, privacy e cookie">
                    <ul class="rtds-flex rtds-gap-y-3 rtds-gap-x-5 md:rtds-gap-y-1 rtds-flex-wrap">

                        <li>
                            <a href="" class="rtds-link rtds-py-1 rtds-px-3 md:rtds-py-4 rtds-content-01 rtds-text-sm rtds-font-bold">Voce 1</a>
                        </li>

                        <li>
                            <a href="" class="rtds-link rtds-py-1 rtds-px-3 md:rtds-py-4 rtds-content-01 rtds-text-sm rtds-font-bold">Voce 2</a>
                        </li>

                        <li>
                            <a href="" class="rtds-link rtds-py-1 rtds-px-3 md:rtds-py-4 rtds-content-01 rtds-text-sm rtds-font-bold">Voce 3</a>
                        </li>

                    </ul>
                </nav>
            </div>

            <div class="rtds-footer__bottom-bar-right rtds-px-2 md:rtds-px-0">

                <!-- Logos -->
                <div class="rtds-site-logo rtds-w-40 rtds-h-auto md:rtds-w-44 lg:rtds-w-auto">
                    <img class="rtds-w-full rtds-h-full rtds-object-contain rtds-object-left-top" src="/images/logo.png" alt="Img alt" width="223" height="76" />
                </div>

            </div>

        </div>

    </div>

</footer>
<footer class="rtds-footer{% if bgColor %} {{ bgColor }}{% endif %}{% if borderClasses %} {{ borderClasses }}{% endif %}">
    {% block logosArea  %}
        {% if hasLogoArea %}
        {% render '@logos-area', { mainLogo: 'false', heading: 'Titolo sezione footer' }, true %}
        {% endif %}
    {% endblock logosArea %}


    {% block navigationRow %}
    <div class="rtds-footer__navigation-row rtds-container rtds-grid rtds-gap-x-10 rtds-gap-y-4 md:rtds-flex">
        {% block navigationRowContent %}
            <!-- Right block -->
            {% if navigationRow == 'extended' %}
            {# Three columns - To be implemented dynamic number of columns #}
            <div class="rtds-py-5 lg:rtds-py-6 rtds-grid md:rtds-grid-cols-2 lg:rtds-grid-cols-4 rtds-gap-8 lg:rtds-gap-x-14 lg:rtds-gap-y-12 rtds-w-full">
                <h2 class="rtds-sr-only">Intranet - Sezioni</h2>
                {% for i in range(0, 6) %}
                <div class="rtds-basis-full md:rtds-basis-1/2 lg:rtds-basis-full">
                    <nav aria-labelledby="footerMainNav{{ i }}">
                        <h3 id="footerMainNav{{ i }}" class="rtds-heading-4 rtds-mb-4">Lorem ipsum</h3>
                        <ul class="rtds-flex rtds-flex-col rtds-gap-3">
                            <li>
                                <a href="" class="rtds-link rtds-font-medium rtds-content-03 rtds-text-sm">Lorem ipsum dolor sit amet consectetur adipiscing elit</a>
                            </li>
                            <li>
                                <a href="" class="rtds-link rtds-font-medium rtds-content-03 rtds-text-sm">link</a>
                            </li>
                            <li>
                                <a href="" class="rtds-link rtds-font-medium rtds-content-03 rtds-text-sm">link</a>
                            </li>
                            <li>
                                <a href="" class="rtds-link rtds-font-medium rtds-content-03 rtds-text-sm">link</a>
                            </li>
                        </ul>
                    <nav>
                </div>
                {% endfor %}

               {# <div class="rtds-basis-full md:rtds-basis-1/2 lg:rtds-basis-full">
                    <div class="rtds-flex rtds-flex-col rtds-gap-8">
                        <h2 class="rtds-text-lg">Titolo</h2>
                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit proin bibendum ut purus vitae pharetra.</p>
                        {% render '@button', {label:'Link', href: '#' }, true %}
                    </div>
                </div>
                #}
            </div>
            {% endif %}

            {% if navigationRow == 'minimal' %}
            <div class="rtds-grid rtds-gap-6 md:rtds-gap-3 md:rtds-flex-1">
                <!-- Menu footer  -->
                <nav class="rtds-pb-4 -rtds-ml-4" aria-label="Contatti e utilità">
                    <ul class="rtds-grid md:rtds-flex rtds-gap-y-3 md:rtds-gap-y-4 rtds-flex-wrap">
                        {% for navItem in navItems %}
                        <li class="rtds-group md:rtds-border-r md:rtds-border-gray-01 md:last:rtds-border-r-0">
                            <a href="" class="rtds-link rtds-px-4 rtds-py-2 rtds-text-sm rtds-content-02 rtds-font-bold rtds-uppercase">{{ navItem.label }}</a>
                        </li>
                        {% endfor %}
                    </ul>
                </nav>

            </div>
            {% endif %}
            {% endblock navigationRowContent %}
    </div>
    {% endblock navigationRow %}

    {% block infoRow %}
        {% if hasInfoRow %}
            <div class="rtds-border-t rtds-border-gray-01">
                <div class="rtds-container">
                    <!-- Menu footer  -->
                    <nav class="-rtds-ml-4 rtds-py-4 md:rtds-py-6" aria-label="Altre informazioni">
                        <ul class="rtds-grid md:rtds-flex rtds-gap-y-3 md:rtds-gap-y-4 rtds-flex-wrap">
                            {% for navInfoItem in navInfoItems %}
                            <li class="rtds-group">
                                <a href="" class="rtds-link rtds-px-4 rtds-py-2 rtds-text-sm rtds-content-03 rtds-font-bold">{{ navInfoItem.label }}</a>
                            </li>
                            {% endfor %}
                        </ul>
                    </nav>
                </div>
            </div>
        {% endif %}
    {% endblock infoRow %}
    
    {% block bottomBar %}
        {% if hasBottomBar %}
            <!-- Footer bottom bar -->
            <div class="rtds-footer__bottom-bar">
            
                <div class="{% block bottomBarContentClasses %}rtds-container rtds-grid rtds-gap-6 md:rtds-flex rtds-items-center rtds-justify-between{% endblock bottomBarContentClasses %}">
                    
                    {% block bottomBarContentLeft %}
                    
                    <div class="rtds-footer__bottom-bar-left">
                        <!-- Utilities and other -->
                        <nav class="-rtds-ml-4" aria-label="Informazioni legali, privacy e cookie">
                            <ul class="rtds-flex rtds-gap-y-3 rtds-gap-x-5 md:rtds-gap-y-1 rtds-flex-wrap">
                                {% for bottomNavItem in bottomNavItems %}
                                    <li>
                                        <a href="" class="rtds-link rtds-py-1 rtds-px-3 md:rtds-py-4 rtds-content-01 rtds-text-sm rtds-font-bold">{{ bottomNavItem.label }}</a>
                                    </li>
                                {% endfor %}
                            </ul>
                        </nav>
                    </div>
                    {% endblock bottomBarContentLeft %}

                    {% block bottomBarContentCenter %}

                    {% endblock bottomBarContentCenter %}

                    {% block bottomBarContentRight %}
                    <div class="rtds-footer__bottom-bar-right rtds-px-2 md:rtds-px-0">
                        {% block bottomBarContentRightLogo %}
                        <!-- Logos -->
                        {% render '@logo', { size: 'rtds-w-40 rtds-h-auto md:rtds-w-44 lg:rtds-w-auto', width: '223', height: '76', alt: 'Img alt'}, true %}
                        {% endblock bottomBarContentRightLogo %}
                    </div>
                    {% endblock bottomBarContentRight %}

                </div>
  
            </div>
        {% endif %}
    {% endblock bottomBar %}
</footer>
{
  "borderClasses": "rtds-border-t rtds-border-gray-01",
  "navigationRow": "extended",
  "hasBottomBar": true,
  "navItems": [
    {
      "label": "UFFICI"
    },
    {
      "label": "URP"
    },
    {
      "label": "PEC"
    },
    {
      "label": "MAPPA DEL SITO"
    },
    {
      "label": "INTRANET"
    }
  ],
  "navInfoItems": [
    {
      "label": "Voce 1"
    },
    {
      "label": "Voce 2"
    },
    {
      "label": "Voce 3"
    }
  ],
  "bottomNavItems": [
    {
      "label": "Voce 1"
    },
    {
      "label": "Voce 2"
    },
    {
      "label": "Voce 3"
    }
  ]
}
  • Content:
    /**
     * PRIMARY NAVIGATION
     *
    */
    @layer components {
        .rtds-footer {
            @apply rtds-mt-auto rtds-background-02;
        }
    
        /*.rtds-footer__navigation-row {
            @apply ;
        }*/
    
        .rtds-footer__bottom-bar {
            @apply rtds-border-t rtds-border-gray-01 rtds-bg-white rtds-py-6 md:rtds-py-0;
        }
    
        /*.rtds-footer__bottom-bar-right {
            @apply;
        }*/
    }
  • URL: /components/raw/footer/footer.css
  • Filesystem Path: components/04-organisms/footer/footer.css
  • Size: 378 Bytes

Componente Footer

Descrizione

Il componente Footer è un organismo che rappresenta il piè di pagina di un sito web. È composto da diverse sezioni configurabili che possono essere attivate o disattivate in base alle esigenze.

Comportamento

Il footer è un componente flessibile che può essere configurato in diverse varianti. Supporta:

  • Area loghi
  • Riga di navigazione principale
  • Riga informativa
  • Barra inferiore

Stili

Il componente utilizza classi Tailwind CSS personalizzate con il prefisso rtds-. Gli stili principali includono:

  • Background color personalizzabile
  • Bordi configurabili
  • Layout responsive con grid e flex
  • Spaziature e padding adattivi

Configurazioni per lo Sviluppo in Nunjucks

Parametri Disponibili

Il componente espone i seguenti blocchi per la personalizzazione:

  • logosArea: Area per i loghi
  • navigationRow: Riga di navigazione principale
  • navigationRowContent: Contenuto della riga di navigazione
  • infoRow: Riga informativa
  • bottomBar: Barra inferiore
  • bottomBarContentClasses: Classi per la barra inferiore
  • bottomBarContentLeft: Contenuto sinistro della barra inferiore
  • bottomBarContentCenter: Contenuto centrale della barra inferiore
  • bottomBarContentRight: Contenuto destro della barra inferiore
  • bottomBarContentRightLogo: Logo nella barra inferiore destra

Parametri principali

  • bgColor: Personalizzazione del colore di sfondo del footer
  • borderClasses: Classi per la personalizzazione dei bordi
  • navigationRow: Configurazione della riga di navigazione (‘extended’ o ‘minimal’)
  • hasLogoArea: Booleano per attivare/disattivare l’area loghi
  • hasInfoRow: Booleano per attivare/disattivare la riga informativa
  • hasBottomBar: Booleano per attivare/disattivare la barra inferiore
  • navItems: Array di elementi per il menu principale del footer
    • label: Etichetta dell’elemento
  • navInfoItems: Array di elementi per il menu informativo
    • label: Etichetta dell’elemento
  • bottomNavItems: Array di elementi per il menu della barra inferiore
    • label: Etichetta dell’elemento

Varianti

Il componente supporta due varianti predefinite:

  1. default: Configurazione base con riga di navigazione minima
  2. regione: Variante specifica per la Regione Toscana con configurazione personalizzata

Loghi

Nella variante regione, è possibile configurare un array di loghi con:

  • href: Link associato al logo
  • width: Larghezza del logo
  • height: Altezza del logo
  • alt: Testo alternativo
  • path: Percorso dell’immagine
  • srcset: Set di immagini per display ad alta risoluzione