Design responsivo e adaptação a tamanhos, orientação e densidade

Capítulo 12

Tempo estimado de leitura: 10 minutos

+ Exercício

O que é design responsivo em apps (e o que significa “não quebrar” a UI)

Design responsivo em apps é a capacidade da interface se adaptar a variações de tamanho de tela, proporção (aspect ratio), orientação (retrato/paisagem) e densidade de pixels, mantendo legibilidade, hierarquia e usabilidade. “Não quebrar” significa: não haver cortes inesperados, sobreposições, botões fora da área tocável, textos ilegíveis, imagens distorcidas, nem fluxos que dependam de um único tamanho fixo.

Na prática, responsividade em apps é menos sobre “redimensionar tudo” e mais sobre definir regras: o que cresce, o que encolhe, o que pode quebrar linha, o que deve truncar, o que vira scroll e quando o layout muda de estrutura (ex.: 1 coluna para 2 colunas).

Constraints e layouts fluidos: como pensar em regras de adaptação

1) Trabalhe com “restrições” (constraints) e não com posições fixas

Em vez de posicionar elementos por coordenadas, defina relações entre eles e com o contêiner: alinhamentos, margens, espaçamentos e limites mínimos/máximos. Isso permite que o layout se reorganize quando o espaço muda.

  • Ancoragem: “este botão fica alinhado ao final do contêiner com 16dp de margem”.
  • Relações: “este campo começa após o ícone e ocupa o espaço restante”.
  • Prioridades: quando faltar espaço, o que deve ceder primeiro (texto? imagem? espaçamento?).
  • Limites: largura/altura mínima e máxima para evitar componentes gigantes ou minúsculos.

2) Use dimensões relativas e comportamento de preenchimento

Layouts fluidos normalmente combinam: elementos que têm tamanho intrínseco (ex.: ícone), elementos flexíveis (ex.: texto) e elementos com limites (ex.: card com max-width). O objetivo é evitar que tudo “estique” sem controle.

  • Preencher o espaço quando faz sentido (listas, áreas de conteúdo).
  • Manter tamanho intrínseco para controles (ícones, botões com padding consistente).
  • Definir max-width em telas grandes para preservar legibilidade (linhas de texto muito longas cansam).

3) Evite dependência de “telas padrão”

Não assuma que todo usuário está em um telefone de 6" em retrato. Considere: telefones compactos, telefones grandes, dobráveis, tablets, janelas redimensionáveis e modo split-screen. O layout deve sobreviver a extremos.

Continue em nosso aplicativo e ...
  • Ouça o áudio com a tela desligada
  • Ganhe Certificado após a conclusão
  • + de 5000 cursos para você explorar!
ou continue lendo abaixo...
Download App

Baixar o aplicativo

Passo a passo prático: projetando uma tela que se adapta

Exemplo: uma tela de detalhes de produto com imagem, título, preço, descrição e botão de ação.

Passo 1 — Defina a estrutura em blocos

  • Topo: imagem (ou carrossel) com proporção controlada.
  • Meio: título + preço (texto variável).
  • Conteúdo: descrição longa (pode virar scroll).
  • Rodapé: botão principal fixo (quando aplicável) ou dentro do fluxo.

Passo 2 — Estabeleça constraints essenciais

  • Imagem: largura 100% do contêiner; altura por proporção (ex.: 16:9) ou altura máxima para não “engolir” a tela.
  • Título: ocupa a largura disponível; permite quebra de linha até um limite (ex.: 2 linhas) e depois trunca.
  • Preço: alinhado ao final ou abaixo do título dependendo do espaço.
  • Descrição: área flexível; se exceder, usa scroll no corpo da tela (não crie scrolls aninhados sem necessidade).
  • Botão: largura máxima limitada em telas grandes; altura constante; respeita área segura (safe area).

Passo 3 — Defina regras de “colapso” quando faltar espaço

Quando a tela fica pequena (ou o texto cresce):

  • Reduza espaços “decorativos” antes de reduzir áreas tocáveis.
  • Trunque título antes de reduzir tamanho de fonte de forma agressiva.
  • Transforme linhas horizontais em empilhamento vertical (ex.: título em cima, preço embaixo).
  • Priorize manter o botão sempre visível (se o fluxo exigir ação frequente), usando rodapé fixo.

Passo 4 — Defina regras de “expansão” em telas grandes

Quando há espaço sobrando:

  • Não estique texto até virar “linha infinita”; use max-width e colunas.
  • Aproveite para mostrar mais contexto (ex.: recomendações ao lado) sem poluir o foco.
  • Use grids e múltiplas colunas para listas.

Orientação retrato vs. paisagem: quando mudar layout e quando apenas reorganizar

Retrato: foco e leitura vertical

  • Priorize fluxo de cima para baixo.
  • Imagens podem ocupar mais largura, mas controle altura para não empurrar conteúdo crítico.
  • Botões principais geralmente ficam no final (fixo ou no fluxo).

Paisagem: largura extra, altura limitada

Em paisagem, o problema comum é a altura curta: elementos empilhados podem ficar apertados. Estratégias:

  • Reorganizar em duas colunas: imagem à esquerda, detalhes à direita.
  • Reduzir altura de mídia: manter proporção, mas limitar altura máxima.
  • Evitar cabeçalhos altos: barras e áreas “hero” muito grandes prejudicam.
  • Scroll único: prefira um scroll vertical principal; cuidado com áreas roláveis internas.

Gatilhos para mudar de estrutura

Em vez de “se paisagem então…”, use critérios de espaço:

  • Largura disponível acima de um limiar (breakpoint) permite 2 colunas.
  • Altura abaixo de um limiar pede compactação (menos blocos fixos).
  • Relação largura/altura muito alta sugere layout lateralizado.

Densidade de pixels e unidades: garantindo consistência visual

Densidade (dpi) afeta quantos pixels físicos existem no mesmo tamanho físico de tela. Se você desenhar “em pixels”, tudo muda de tamanho dependendo do aparelho. A solução é trabalhar com unidades independentes de densidade (ex.: dp/pt) e fornecer assets adequados.

Boas práticas para densidade

  • Use unidades independentes de densidade para espaçamento e tamanhos de componentes.
  • Ícones e ilustrações em vetor quando possível para evitar serrilhado.
  • Bitmaps em múltiplas escalas quando vetor não for viável (garanta nitidez).
  • Evite hairlines (linhas de 1px físico) que somem em algumas densidades; prefira espessuras consistentes em unidades lógicas.

Imagens responsivas (sem distorção)

  • Mantenha proporção (aspect ratio) e use recorte (crop) quando necessário.
  • Defina comportamento: “preencher e cortar” vs. “encaixar com barras”.
  • Garanta que o ponto focal não seja cortado (use posicionamento do recorte quando possível).

Conteúdo longo: wrapping, truncation e scroll sem surpresas

O conteúdo real quase sempre é maior do que o texto “bonito” do mock. Nomes longos, traduções, números grandes e descrições extensas precisam de regras claras.

Text wrapping (quebra de linha)

  • Permita quebra em textos de conteúdo (descrições, mensagens).
  • Evite quebra em elementos que precisam ser “escaneáveis” rapidamente (ex.: rótulos curtos), a menos que não haja alternativa.
  • Defina limites: títulos podem quebrar até 2 linhas; acima disso, trunque.

Truncation (reticências) com intenção

  • Trunque quando o texto não é essencial para completar a tarefa naquele ponto (ex.: subtítulo em lista).
  • Evite truncar informações críticas (ex.: preço, data, status). Se necessário, reorganize layout.
  • Considere truncar no meio para identificadores (ex.: códigos) quando o início e o fim importam.

Scroll: onde e como permitir

  • Prefira um scroll principal por tela; scrolls internos dificultam gesto e acessibilidade.
  • Se houver rodapé fixo (CTA), garanta que o conteúdo não fique escondido atrás dele (padding inferior).
  • Em listas longas, use paginação/infinite scroll com estados de carregamento adequados (sem travar a UI).

Campos de texto e formulários com conteúdo variável

  • Mensagens de erro podem aumentar a altura do campo; reserve espaço ou permita expansão sem empurrar elementos críticos para fora da tela.
  • Teclado virtual reduz altura útil; garanta que o campo ativo e o botão de ação permaneçam acessíveis (scroll para o foco).

Tablets e telas maiores: padrões úteis (colunas e master-detail)

Quando usar múltiplas colunas

Em telas grandes, uma única coluna muito larga prejudica leitura e desperdiça espaço. Estratégias:

  • Lista em grid: cards em 2–4 colunas dependendo da largura.
  • Coluna de navegação + conteúdo: categorias à esquerda, itens à direita.
  • Max-width no conteúdo: centralize o texto em uma coluna com largura confortável e use laterais para ações secundárias.

Master-detail (lista-detalhe) quando aplicável

Para apps com navegação baseada em itens (mensagens, pedidos, tarefas), o padrão master-detail melhora produtividade em tablets:

  • Master: lista persistente à esquerda.
  • Detail: conteúdo do item à direita.
  • Em telas menores, o mesmo fluxo vira navegação em duas telas (lista → detalhe).

Regras para não “esticar” componentes

  • Botões não devem virar “faixas” gigantes; limite largura e alinhe.
  • Cards devem ter largura máxima para manter proporções e legibilidade.
  • Use espaçamento adicional para separar grupos, não para inflar tudo uniformemente.

Breakpoints e estratégias de adaptação: um guia prático

Breakpoints são pontos em que o layout muda de estrutura. Em apps, eles devem ser guiados por espaço útil, não por modelos específicos de aparelho.

CenárioSinalAdaptação recomendada
Tela estreitaTextos começam a truncar demaisEmpilhar elementos; reduzir elementos decorativos; priorizar conteúdo
Tela largaMuito espaço em branco e linhas longas2 colunas, grid, max-width para texto
Paisagem com pouca alturaConteúdo crítico “some” abaixoCompactar cabeçalho; reduzir altura de mídia; mover ações para barra/rodapé
TabletNavegação fica lenta por telas sequenciaisMaster-detail; painel lateral; ações contextuais visíveis

Casos de teste de responsividade (checklist para validar antes de entregar)

1) Tamanhos extremos

  • Menor largura suportada: nada deve sobrepor ou sair da tela.
  • Maior largura suportada: conteúdo não deve ficar “esticado” sem limite; verifique max-width.
  • Split-screen / janela redimensionável: layout deve se recompor sem glitches.

2) Orientação

  • Rotação retrato → paisagem: estado da tela permanece consistente (sem perder seleção, sem reset inesperado).
  • Em paisagem: elementos importantes continuam acessíveis sem exigir precisão excessiva de scroll.

3) Densidade e nitidez

  • Ícones e imagens: sem serrilhado, sem blur perceptível.
  • Linhas e divisores: visíveis e consistentes (não “somem”).

4) Conteúdo longo e dados reais

  • Títulos com 2–3x o tamanho esperado: truncation e wrapping funcionam conforme planejado.
  • Traduções longas (ex.: alemão/português): botões e labels não quebram o layout.
  • Números grandes (preços, contagens): não colidem com outros elementos.
  • Descrições extensas: scroll único funciona; nada fica escondido atrás de barras/rodapé.

5) Ações e áreas tocáveis

  • Botões permanecem clicáveis e não ficam colados em bordas.
  • Em telas grandes: botões não ficam longe demais do conteúdo relacionado (evite “ilhas” de ação).

6) Componentes que costumam falhar

  • App bars/cabeçalhos: títulos longos não empurram ícones para fora.
  • Cards: altura variável não causa “saltos” visuais excessivos em listas.
  • Diálogos/modais: não extrapolam a tela; conteúdo interno rola quando necessário.
  • Teclado aberto: campo em foco e CTA continuam acessíveis.

Mini-receitas de adaptação (para aplicar rápido)

Receita A — Linha vira coluna quando faltar espaço

Use para: preço + título, botões lado a lado, chips.

  • Regra: se a largura mínima dos itens não couber, empilhe verticalmente.
  • Prioridade: mantenha o item principal no topo e o secundário abaixo.

Receita B — Conteúdo central com max-width em telas grandes

Use para: telas de leitura, formulários, detalhes.

  • Regra: centralize o conteúdo e limite largura máxima.
  • Laterais podem receber conteúdo secundário (ajuda, resumo, filtros).

Receita C — Lista em 1 coluna vira grid em telas largas

Use para: catálogos, galerias, dashboards.

  • Regra: aumente número de colunas conforme largura, mantendo tamanho mínimo de card.
  • Garanta consistência de alturas ou defina comportamento para alturas variáveis.

Agora responda o exercício sobre o conteúdo:

Ao projetar uma tela de detalhes de produto para funcionar bem em diferentes tamanhos e orientações, qual abordagem melhor evita que a UI “quebre”?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Design responsivo em apps depende de regras: constraints, dimensões relativas e limites para reorganizar o layout sem cortes, sobreposições ou perda de legibilidade, mudando estrutura quando necessário.

Próximo capitúlo

Consistência visual e criação de um mini design system para o app

Arrow Right Icon
Capa do Ebook gratuito Design de Interfaces para Apps: UI/UX essencial para desenvolvedores iniciantes
80%

Design de Interfaces para Apps: UI/UX essencial para desenvolvedores iniciantes

Novo curso

15 páginas

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.