Skip to Content
FoundationsResponsive

Responsive

Interaction foundation

Desktop é a ferramenta completa. Mobile é resgate operacional, não paridade reduzida.

Pulso é desktop-first porque o trabalho de monitoramento, comparação e coordenação acontece em telas amplas. Mesmo assim, crise não espera o operador estar na mesa: no mobile, o produto precisa entregar o crítico em poucos toques.

A referência do Open Design define a intenção de uso. O contrato abaixo documenta comportamento e prioridades; tokens globais continuam em src/app/globals.css.

Princípio

Mobile não tenta reproduzir o desktop. Ele responde a uma jornada diferente:

  1. alerta chega;
  2. operador entende o essencial;
  3. operador reconhece, escala ou comenta;
  4. operador segue para o desktop quando puder.

Tudo que exige comparação ampla, filtro pesado ou análise densa deve permanecer desktop-first.

Ranges de viewport

RangePapelDireção
MobileResgate operacional1 coluna, sem sidebar persistente, bottom sheet, ação primária evidente
TabletTransição responsivaSidebar reduzida, grids menores, dialogs full-height quando necessário
DesktopOperação completaSidebar expandida, grids 3–4 colunas, side panels e modais padrão

Os valores exatos de breakpoint devem seguir a configuração de Tailwind/app quando implementados. Esta página fixa o contrato de produto e reflow, não introduz novo token.

As três ações mobile

Mobile existe para três ações críticas:

AçãoObjetivoRegra
AckParar ruído e registrar leituraSingle tap, reversível por janela curta quando seguro
EscalarSubir tier/responsávelDeve notificar o próximo papel; justificativa pode vir depois
ComentarRegistrar contexto curtoVai para timeline/log do caso; todos veem

Filtros avançados, analytics, comparativos e configurações profundas ficam em ⋯ mais, sheet ou desktop.

Reflow por superfície

SuperfícieDesktopTabletMobile
DashboardSidebar + métricas + tabela + side panelSidebar reduzida, métricas em 2 colunasAlerta/caso prioritário no topo, lista resumida, ação primária evidente
Crisis detailTabs horizontais, header sticky, painel IATabs podem virar dropdown, painel empilhaTrês abas principais; IA como sheet acionável
Mention feedFilter bar + cards em gridFiltros em drawer, cards reduzidosFiltros em sheet, cards 1 coluna, ordem sticky
SettingsNav lateral + form 2 colunasNav reduzida, form 1 colunaLista 1 coluna com drilldown por seção
Audit logGrid denso com filtros inlineGrid reduzido + detalhe em drawerDesktop-only com banner amigável
CompareChart + tabela de deltasEmpilhadoDesktop-only; comparação exige espaço
Pulso IA chatSide panelBottom sheet parcialSheet/fullscreen conforme contexto

Container queries antes de viewport queries

Componentes devem preferir decisões pelo espaço disponível no container.

Use container query paraUse viewport query para
Card de métrica colapsar conteúdoSidebar, topbar, FAB e chrome global
Grid interno de cardsTroca modal ↔ bottom sheet
Densidade local de listaNavegação primária mobile
Truncamento e prioridade de metadataComposição de página 1 coluna ↔ multi-coluna

Isso evita que um componente que cabe bem em um painel desktop se comporte como mobile apenas porque o viewport total mudou.

Padrões mobile exclusivos

PadrãoQuando apareceRegra
FABAção primária em mobileMáximo 1 por viewport; não competir com bottom nav
Bottom sheetSubstitui modal centralizadoHandle visível; dismiss claro; foco controlado
Pull to refreshListas com dados em tempo realFeedback curto; não aplicar em scroll horizontal
Swipe actionsRows de menção/alertaRevela ação, não esconde contexto
Bottom tabsCrisis detail mobilePoucas abas principais, ícone + label
Long pressAlternativa a hoverUsar para menu contextual, sempre com caminho acessível alternativo

Tokens e limites relacionados

src/app/globals.css já expõe contratos que afetam responsividade:

TokenValorUso
--touch-target-critical48pxAção crítica em mobile
--z-elev-110Sticky headers
--z-elev-220Dropdowns
--z-elev-330Sticky overlays
--z-overlay40Modal backdrop
--z-modal50Dialogs e sheets
--z-popover60Tooltips e popovers
--z-toast70Notifications

Em mobile, controles críticos preservam hit target mesmo quando a superfície usa data-density="compact".

Regras

  1. Desktop primeiro; mobile é jornada paralela, não versão reduzida.
  2. Mobile entrega ack, escalar e comentar antes de qualquer análise avançada.
  3. Use container queries para comportamento interno de componente.
  4. Use viewport queries para chrome global e navegação.
  5. Em mobile, ação crítica preserva alvo mínimo de toque.
  6. Audit log e Compare podem ser desktop-only com banner claro.
  7. Não dependa de hover em mobile; use tap, long press ou ação visível.
  8. Modal centralizado vira bottom sheet em mobile quando a tarefa precisa foco.
  9. Não esconda navegação primária sem alternativa persistente.
  10. Evite scroll horizontal fora de tabelas com indicador explícito.
Last updated on