Componentes / Sidebar

Sidebar

Navegacao lateral com estilo brutalista: bordas solidas, estados ativos com fundo preto, icones, badges, submenus e estado colapsado com tooltips.

Sidebar Basica

HTML
<div class="canta-sidebar">
  <div class="canta-sidebar__header">
    <a href="#" class="canta-sidebar__brand">
      <span class="canta-sidebar__brand-text">CANTA.</span>
    </a>
  </div>
  <div class="canta-sidebar__content">
    <nav class="canta-sidebar__nav">
      <span class="canta-sidebar__nav-title">Menu</span>
      <ul class="canta-sidebar__menu">
        <li class="canta-sidebar__item">
          <a href="#" class="canta-sidebar__link canta-sidebar__link--active">
            <span class="canta-sidebar__link-icon">...</span>
            <span class="canta-sidebar__link-text">Dashboard</span>
          </a>
        </li>
        <li class="canta-sidebar__item">
          <a href="#" class="canta-sidebar__link">
            <span class="canta-sidebar__link-icon">...</span>
            <span class="canta-sidebar__link-text">Usuarios</span>
            <span class="canta-sidebar__link-badge">5</span>
          </a>
        </li>
      </ul>
    </nav>
  </div>
  <div class="canta-sidebar__footer">
    <div class="canta-sidebar__user">
      <div class="canta-sidebar__avatar"><img src="avatar.jpg" alt=""></div>
      <div class="canta-sidebar__user-info">
        <div class="canta-sidebar__user-name">Joao Silva</div>
        <div class="canta-sidebar__user-role">Administrador</div>
      </div>
    </div>
  </div>
</div>

Com Submenu

HTML
<li class="canta-sidebar__item canta-sidebar__item--expanded">
  <a href="#" class="canta-sidebar__link">
    <span class="canta-sidebar__link-icon">...</span>
    <span class="canta-sidebar__link-text">Produtos</span>
    <span class="canta-sidebar__submenu-toggle"></span>
  </a>
  <ul class="canta-sidebar__submenu canta-sidebar__submenu--open">
    <li><a href="#" class="canta-sidebar__submenu-link canta-sidebar__submenu-link--active">Listagem</a></li>
    <li><a href="#" class="canta-sidebar__submenu-link">Categorias</a></li>
  </ul>
</li>

<!-- Divisor entre secoes -->
<div class="canta-sidebar__divider"></div>

Estado Colapsado

Collapsed (72px de largura)
Ao colapsar, apenas icones ficam visiveis. Passe o mouse sobre os icones para ver tooltips.
HTML
<!-- Adicione --collapsed para colapsar -->
<div class="canta-sidebar canta-sidebar--collapsed">
  <!-- Use data-tooltip nos links para tooltip em modo colapsado -->
  <a href="#" class="canta-sidebar__link" data-tooltip="Dashboard">
    <span class="canta-sidebar__link-icon">...</span>
    <span class="canta-sidebar__link-text">Dashboard</span>
  </a>
</div>

<!-- Botao toggle para colapsar/expandir -->
<button class="canta-sidebar__toggle">
  <span class="canta-sidebar__toggle-icon"></span>
</button>

Variante Dark

HTML
<div class="canta-sidebar canta-sidebar--dark">
  <!-- ... conteudo da sidebar ... -->
</div>

Acentos de Cor

HTML
<div class="canta-sidebar canta-sidebar--blue">...</div>
<div class="canta-sidebar canta-sidebar--magenta">...</div>
<div class="canta-sidebar canta-sidebar--bordered">...</div>
<div class="canta-sidebar canta-sidebar--fixed">...</div>

Layout Helper

Use .canta-sidebar-layout para montar o layout sidebar + conteudo principal.

HTML
<div class="canta-sidebar-layout">
  <div class="canta-sidebar-layout__sidebar">
    <div class="canta-sidebar">...</div>
  </div>
  <div class="canta-sidebar-layout__main">
    <!-- Conteudo principal -->
  </div>
</div>

API

Classe Descricao
.canta-sidebarContainer principal (largura 280px, borda brutalista)
.canta-sidebar__headerCabecalho com logo e toggle
.canta-sidebar__brandArea da marca (link)
.canta-sidebar__logoContainer do logotipo
.canta-sidebar__brand-textTexto da marca
.canta-sidebar__toggleBotao para colapsar/expandir
.canta-sidebar__toggle-iconSeta do botao toggle
.canta-sidebar__contentArea de conteudo rolavel
.canta-sidebar__navSecao de navegacao
.canta-sidebar__nav-titleTitulo da secao (uppercase, cinza)
.canta-sidebar__menuLista de itens (ul)
.canta-sidebar__itemItem do menu (li)
.canta-sidebar__item--expandedItem com submenu aberto
.canta-sidebar__linkLink de navegacao
.canta-sidebar__link--activeEstado ativo (fundo preto, texto branco)
.canta-sidebar__link-iconContainer do icone do link
.canta-sidebar__link-textTexto do link
.canta-sidebar__link-badgeBadge numérica (fundo magenta)
.canta-sidebar__submenuSubmenu aninhado (oculto por padrao)
.canta-sidebar__submenu--openSubmenu visivel
.canta-sidebar__submenu-linkLink do submenu (borda esquerda)
.canta-sidebar__submenu-link--activeLink ativo do submenu
.canta-sidebar__submenu-toggleSeta de expandir/colapsar submenu
.canta-sidebar__dividerDivisor horizontal (2px preto)
.canta-sidebar__footerRodape fixo no fundo
.canta-sidebar__userArea do usuario no footer
.canta-sidebar__avatarAvatar do usuario
.canta-sidebar__user-infoContainer nome/cargo
.canta-sidebar__user-nameNome do usuario
.canta-sidebar__user-roleCargo/funcao do usuario
.canta-sidebar--collapsedEstado colapsado (72px, apenas icones)
.canta-sidebar--darkVariante com fundo preto
.canta-sidebar--blueAcento azul nos links ativos
.canta-sidebar--magentaAcento magenta nos links ativos
.canta-sidebar--borderedAdiciona sombra brutalista
.canta-sidebar--fixedPosicao fixa (left: 0)
.canta-sidebar--openSidebar aberta em mobile
.canta-sidebar-layoutLayout helper (flex row, min-height 100vh)
.canta-sidebar-layout__sidebarColuna da sidebar (flex-shrink 0)
.canta-sidebar-layout__mainColuna do conteudo (flex 1)
.canta-sidebar-overlayOverlay para mobile
.canta-sidebar-overlay--openOverlay visivel