Componentes/Header Desktop

Header Desktop

Barra de navegação superior da plataforma TRDR — 56px de altura, logo, nav principal, busca de ativos, cotações em tempo real, botões de ação, status de conexões e controles de janela.

Navegação
Figma: 1921:55292

Preview

Código

Copie e cole no Claude Code para implementar este componente em pixel-perfect usando os tokens TRDR.

<!-- Header Desktop — Design System TRDR (Figma: 1921:55292) -->
<!-- Adicionar .trdr-header-nav-item-active no item ativo -->
<header class="trdr-header">
  <div class="trdr-header-left">
    <!-- Logo — SVG inline do logo TRDR 45° -->
    <div class="trdr-header-logo">
      <svg width="107" height="42" viewBox="0 0 107 42" fill="none" aria-label="TRDR"><!-- logo-trdr-45graus.svg inline --></svg>
    </div>
    <div class="trdr-header-divider"></div>

    <!-- Nav principal -->
    <nav class="trdr-header-nav">
      <button class="trdr-header-nav-item trdr-header-nav-item-active" type="button">
        <span class="trdr-header-nav-icon material-symbols-outlined">show_chart</span>
        Gráfico
      </button>
      <button class="trdr-header-nav-item" type="button">
        <span class="trdr-header-nav-icon material-symbols-outlined">format_list_bulleted</span>
        Book e Cotações
      </button>
      <button class="trdr-header-nav-item" type="button">
        <span class="trdr-header-nav-icon material-symbols-outlined">swap_horiz</span>
        Operação
      </button>
    </nav>

    <!-- Busca — reutilizar TextInput -->
    <div class="trdr-text-input trdr-text-input-with-icon" style="width:116px">
      <input type="text" placeholder="Buscar ativo..." />
    </div>
  </div>

  <div class="trdr-header-right">
    <!-- Ícone com badge -->
    <div style="position:relative;display:inline-flex">
      <button class="trdr-header-icon-btn" type="button" aria-label="Notificações">
        <span class="material-symbols-outlined" style="font-size:20px">notifications</span>
      </button>
      <span class="trdr-header-badge">4</span>
    </div>

    <!-- Conexões -->
    <button class="trdr-header-conexoes" type="button">
      <span class="trdr-header-status-dot connected"></span>
      5/6 Conexões
    </button>

    <!-- Controles de janela — SVGs customizados 18×18 -->
    <div class="trdr-header-wincontrols">
      <button class="trdr-header-win-btn" aria-label="Minimizar" type="button">
        <svg width="18" height="18" viewBox="0 0 18 18" fill="none"><path d="M14.25 9.75H3.75V8.25H14.25V9.75Z" fill="currentColor"/></svg>
      </button>
      <button class="trdr-header-win-btn" aria-label="Restaurar" type="button">
        <svg width="18" height="18" viewBox="0 0 18 18" fill="none"><path d="M13.7813 3.9375C14.1542 3.9375 14.5119 4.08566 14.7756 4.34938C15.0393 4.6131 15.1875 4.97079 15.1875 5.34375V12.375H13.7813V5.34375H6.75V3.9375H13.7813ZM5.34375 8.15625V13.7813H10.9688V8.15625H5.34375ZM5.34375 6.75H10.9688C11.3417 6.75 11.6994 6.89816 11.9631 7.16188C12.2268 7.42561 12.375 7.78329 12.375 8.15625V13.7813C12.375 14.1542 12.2268 14.5119 11.9631 14.7756C11.6994 15.0393 11.3417 15.1875 10.9688 15.1875H5.34375C4.97079 15.1875 4.6131 15.0393 4.34938 14.7756C4.08566 14.5119 3.9375 14.1542 3.9375 13.7813V8.15625C3.9375 7.78329 4.08566 7.42561 4.34938 7.16188C4.6131 6.89816 4.97079 6.75 5.34375 6.75Z" fill="currentColor"/></svg>
      </button>
      <button class="trdr-header-win-btn trdr-header-win-btn-close" aria-label="Fechar" type="button">
        <svg width="18" height="18" viewBox="0 0 18 18" fill="none"><path d="M14.0171 3.9909C13.7065 3.68032 13.2048 3.68032 12.8942 3.9909L9 7.87713L5.1058 3.98294C4.79522 3.67235 4.29352 3.67235 3.98294 3.98294C3.67235 4.29352 3.67235 4.79522 3.98294 5.1058L7.87713 9L3.98294 12.8942C3.67235 13.2048 3.67235 13.7065 3.98294 14.0171C4.29352 14.3276 4.79522 14.3276 5.1058 14.0171L9 10.1229L12.8942 14.0171C13.2048 14.3276 13.7065 14.3276 14.0171 14.0171C14.3276 13.7065 14.3276 13.2048 14.0171 12.8942L10.1229 9L14.0171 5.1058C14.3197 4.80319 14.3197 4.29352 14.0171 3.9909Z" fill="currentColor"/></svg>
      </button>
    </div>
  </div>
</header>

Dimensões

VarianteLarguraAltura
Altura100%56px
Nav itemauto40px
Botão de ícone32px32px
Conexões btn137px32px
Badgeauto (min 14px)14px
Divider vertical1px18px

Props / Variantes

PropTipoValores
activeNavstring
GráficoBook e CotaçõesOperaçãoFerramentasAnalistas

Tokens Utilizados

PropriedadeTokenValor
Backgroundbg.primary
#0E0E0E
Border bottomborder.subtle
#222222
Padding horizontalspacing.lg
16px
Nav item — texto defaultcontent.tertiary
#A4A4A4
Nav item — texto hover/activecontent.primary
#FFFFFF
Nav item — BG hoversurface.secondary
#222222
Ícone botãocontent.secondary
#E8E8E8
Badge BGaction.brand.default
#00D4FF
Badge textocontent.inverse
#1A1A1A
Conexões borderborder.subtle
#222222
Status dot — conectadocontext.trading.up
#4FE290
Status dot — desconectadocontext.trading.down
#F34F45
Win btn close hovercontext.trading.down
#F34F45
Resultado — altacontext.trading.up
#4FE290
Resultado — baixacontext.trading.down
#F34F45

Anatomia

Header (flex row, space-between, height 56px, padding 0 16px, bg-primary, border-bottom subtle):
  LEFT: [Logo 107×40] [Divider 1×18] [Nav itens gap-16 — cada item: 40px h, 8px H-pad, ícone 20px + label 14px] [TextInput 116×32 com ícone busca] [Resultado Row — cotações gap-0]
  RIGHT: [4× icon-btn 32×32 + badge absoluto] [Conexões btn 137×32, borda subtle, status dot] [Win Controls 3× 40×40]

Notas

Componente de 1920px de largura — ocupa 100% da viewport na plataforma. O preview é scrollável horizontalmente. Na platform real, reutiliza TextInput (busca) e FloatingMenu (dropdowns dos itens de nav).