Modais, Carrossel, Tabs e Acordeões

Estes são componentes interativos fundamentais para criar interfaces dinâmicas e bem organizadas:

  • Modais: janelas flutuantes sobre a tela, ideais para formulários, avisos e interações rápidas.

  • Carrossel: slides rotativos, muito utilizados para banners, destaques ou galerias.

  • Tabs: abas que organizam conteúdos diferentes dentro de um mesmo espaço.

  • Acordeões: blocos colapsáveis, ideais para FAQs, listas e conteúdos que podem ser expandidos e recolhidos.


Modais

Estrutura de um Modal

<!-- Botão para abrir o modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#meuModal">
  Abrir Modal
</button>

<!-- Estrutura do Modal -->
<div class="modal fade" id="meuModal" tabindex="-1">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title">Título do Modal</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
      </div>
      <div class="modal-body">
        Conteúdo do modal.
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fechar</button>
        <button type="button" class="btn btn-primary">Salvar</button>
      </div>
    </div>
  </div>
</div>

Tamanhos do Modal

  • Modal grande:
htmlCopiarEditar<div class="modal-dialog modal-lg">...</div>
  • Modal pequeno:
<div class="modal-dialog modal-sm">...</div>
  • Modal extra grande:
<div class="modal-dialog modal-xl">...</div>

Carrossel

Estrutura Básica

<div id="meuCarrossel" class="carousel slide" data-bs-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="imagem1.jpg" class="d-block w-100" alt="...">
    </div>
    <div class="carousel-item">
      <img src="imagem2.jpg" class="d-block w-100" alt="...">
    </div>
    <div class="carousel-item">
      <img src="imagem3.jpg" class="d-block w-100" alt="...">
    </div>
  </div>
  <button class="carousel-control-prev" type="button" data-bs-target="#meuCarrossel" data-bs-slide="prev">
    <span class="carousel-control-prev-icon"></span>
  </button>
  <button class="carousel-control-next" type="button" data-bs-target="#meuCarrossel" data-bs-slide="next">
    <span class="carousel-control-next-icon"></span>
  </button>
</div>

Indicadores no Carrossel

<div id="meuCarrossel" class="carousel slide" data-bs-ride="carousel">
  <div class="carousel-indicators">
    <button type="button" data-bs-target="#meuCarrossel" data-bs-slide-to="0" class="active"></button>
    <button type="button" data-bs-target="#meuCarrossel" data-bs-slide-to="1"></button>
    <button type="button" data-bs-target="#meuCarrossel" data-bs-slide-to="2"></button>
  </div>
  <!-- Slides aqui -->
</div>

Tabs (Abas)

Estrutura de Tabs

<ul class="nav nav-tabs">
  <li class="nav-item">
    <a class="nav-link active" data-bs-toggle="tab" href="#aba1">Aba 1</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" data-bs-toggle="tab" href="#aba2">Aba 2</a>
  </li>
</ul>

<div class="tab-content">
  <div class="tab-pane fade show active" id="aba1">
    Conteúdo da Aba 1.
  </div>
  <div class="tab-pane fade" id="aba2">
    Conteúdo da Aba 2.
  </div>
</div>

As tabs permitem alternar rapidamente entre diferentes conteúdos, mantendo o layout compacto.


Acordeões (Accordion)

Estrutura Completa

<div class="accordion" id="meuAcordeao">
  <div class="accordion-item">
    <h2 class="accordion-header" id="headingOne">
      <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne">
        Seção 1
      </button>
    </h2>
    <div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#meuAcordeao">
      <div class="accordion-body">
        Conteúdo da seção 1.
      </div>
    </div>
  </div>

  <div class="accordion-item">
    <h2 class="accordion-header" id="headingTwo">
      <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo">
        Seção 2
      </button>
    </h2>
    <div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#meuAcordeao">
      <div class="accordion-body">
        Conteúdo da seção 2.
      </div>
    </div>
  </div>
</div>

Acordeão com Seções Independentes

Para que múltiplas seções possam ser abertas ao mesmo tempo, remova data-bs-parent="#meuAcordeao" de cada accordion-collapse.


Esses componentes trazem dinamismo e interatividade para qualquer interface, ajudando a organizar conteúdos, destacar informações e melhorar a experiência do usuário.

Updated on