📱 Plano de Melhoria: Layout Responsivo das Páginas de Índice

Escopo: as ~40 páginas index.md de módulo/especialização/guia (não os capítulos individuais, que já passaram por trabalho de navegação nas sessões anteriores). Foco nas 3 telas pedidas: computador, tablet, celular.


1. Diagnóstico — o que já está bem resolvido (auditoria do CSS real, 2026-09-05)

Antes de propor mudanças, auditei assets/css/style.scss (1036 linhas) e o breakpoint do tema para não propor retrabalho. Resultado: a base já é sólida, melhor do que uma primeira impressão sugeriria.

Elemento Estado atual Evidência
Tabelas Markdown (ex.: “Matriz Curricular”, 30 dos 40 index.md têm uma) ✅ Já responsivas globalmente table { display: block; width: 100%; overflow-x: auto; } — scroll horizontal automático, sem precisar de wrapper por página
Grid de cards (.cards-grid, usado no index.md raiz e em vários módulos) ✅ Já responsivo grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) — colunas se ajustam sozinhas, 1 coluna em telas estreitas
Diagramas Mermaid ✅ Já responsivos .mermaid { overflow-x: auto; svg { max-width: 100%; height: auto; } }
Breakpoints do tema disponíveis ✅ Definidos (Minimal Mistakes 4.28.1) $small: 600px, $medium: 768px, $large: 1024px, $x-large: 1280px
Sidebar mobile / TOC / cabeçalho ✅ Já trabalhado em sessões anteriores Ver [[project_mm_theme_migration_fixes_2026-09-01]] — auto-colapso por URL, TOC não empilha mais full-width, cabeçalho mobile unificado

Conclusão intermediária: os 3 elementos que eu esperava que fossem o maior risco (tabela larga, grid de cards, diagrama grande) já não quebram o layout em telas estreitas. O trabalho pendente é mais cirúrgico do que uma reforma geral.

2. O gap real: a faixa de tablet (768–1024px) nunca foi ajustada de propósito

O CSS custom tem apenas 2 media queries, ambas herdadas da migração do tema Cayman e cosméticas, não estruturais:

@media (max-width: 600px) { /* posição do toggle de dark mode, botão back-to-top */ }
@media (max-width: 768px) { /* opacidade do botão de copiar código */ }

Ou seja: celular (<600px) recebeu atenção real em várias sessões (toggle de sidebar, cabeçalho, TOC). Desktop (>1024px) é o alvo de design padrão do tema. Mas a faixa de tablet (600–1024px) — onde a sidebar da Minimal Mistakes muda de comportamento (deixa de ser fixa, mas a tela ainda é larga o bastante pra não ativar as adaptações pensadas pra celular) — nunca foi testada ou ajustada deliberadamente.

⚠️ Nota de transparência sobre a verificação visual

Tentei confirmar isso ao vivo redimensionando a janela do Chrome pra 3 tamanhos (1440×900 desktop, 820×1180 tablet, 390×844 celular) e comparando capturas de tela. A ferramenta de resize não alterou o viewport efetivo da página nesta sessão (as 3 capturas saíram idênticas), então não tenho confirmação visual real dos 3 tamanhos — a análise acima é baseada em auditoria do código-fonte CSS, não em teste visual ao vivo. Antes de implementar qualquer item deste plano, o próximo passo deveria ser abrir o DevTools do navegador (F12 → Toggle Device Toolbar) manualmente e testar de verdade, já que a ferramenta automatizada não serviu para isso desta vez.

3. Itens de investigação/ação recomendados (nenhum executado ainda)

# Item O que verificar/fazer Esforço
1 Comportamento da sidebar/TOC exatamente entre 768–1024px O tema Minimal Mistakes muda o comportamento da sidebar em breakpoints próprios ($large: 1024px); confirmar se em tablet a coluna de conteúdo fica confortável (nem espremida, nem com TOC flutuando estranho) Baixo (é teste, não código)
2 Tamanho de fonte/espaçamento do cabeçalho (.page-header, hero da home) em tablet padding: 2.5rem 1.5rem fixo — em tablet retrato pode ficar desproporcional comparado ao título grande (2rem) Baixo
3 Tabelas muito largas (ex.: db_* na matriz de Bancos de Dados, 5 colunas) em tablet O scroll horizontal já funciona, mas confirmar se o “affordance” (indicação visual de que dá pra rolar) é claro o suficiente num tablet touch Baixo-Médio
4 Botões de filtro (.filter-btn, usados em projetos_status.md) em telas estreitas Múltiplos botões lado a lado podem quebrar mal em tablet retrato — confirmar flex-wrap está ativo e o espaçamento não fica apertado Baixo
5 Interações que dependem de :hover (botão copiar código, cards) em touch (tablet/celular) .copy-code-btn só aparece com opacidade completa no hover — em touch não existe hover real; já existe opacity: 0.8 fixo em @media (max-width: 768px) pro copy-code-btn, mas os .course-cards (&:hover { transform: translateY(-2px) }) não têm fallback touch — confirmar se ainda funcionam ao toque (geralmente sim via :active, mas vale testar) Baixo

4. Abordagem recomendada

  1. Testar antes de codar. Usar o DevTools real (não a ferramenta de resize automatizada, que falhou nesta sessão) nos 3 tamanhos de referência: 390×844 (celular), 820×1180 (tablet retrato, iPad-like), 1440×900 (desktop). Screenshot de 2-3 páginas representativas: index.md raiz (hero + cards), um mod_*/index.md com tabela “Matriz Curricular” (ex.: mod_02), e proj_aplicacoes_full_stack/projetos_status.md (tabela mais complexa + filtros).
  2. Só then decidir se algum item da tabela da Seção 3 é um bug real ou se — como já aconteceu com tabelas/cards/mermaid nesta auditoria — já está adequado e a suspeita não se confirma.
  3. Corrigir cirurgicamente, um media query por vez, sempre no range $medium (768px) do próprio tema em vez de inventar breakpoints novos — para ficar consistente com o resto do CSS do tema.

5. Encerramento (2026-09-05) — nenhuma ação necessária

Tentei de novo o teste automatizado de viewport (resize_window + leitura de window.innerWidth via JS) numa sessão seguinte — mesma limitação: o innerWidth não muda, permanece no tamanho real da janela (1920px) independente do tamanho pedido. Não há, nesta ferramenta de automação de navegador, um mecanismo de emulação de dispositivo em nível de CDP (Emulation.setDeviceMetricsOverride) equivalente ao DevTools real — só JS de página, que não consegue sobrescrever innerWidth.

Na ausência de confirmação visual, fiz uma auditoria de código mais profunda dos 5 itens da Seção 3 antes de tocar em qualquer CSS:

Decisão do usuário: encerrar o plano sem alterações de código. Nenhum dos 5 itens tinha um bug confirmado e seguro de corrigir dentro do CSS próprio, e a limitação de emulação de viewport impede confirmação visual real nesta ferramenta. Se um problema real de tablet aparecer no futuro, o caminho é reportar o sintoma específico visto num dispositivo/DevTools real, não reabrir esta auditoria especulativa.


⬅️ Voltar ao Índice de Documentação 🗺️ Ver Roadmap Geral