UI decente para devs

Aprenda hábitos práticos para entregar uma UI decente para devs: hierarquia, feedback imediato, consistência, acessibilidade e estados de loading/vazio/erro.

Avatar de Polyana Cunha
Polyana Cunha
UI decente para devs

Você não precisa ser designer para entregar uma interface decente. Mas precisa parar de tratar UI como "colocar os componentes na tela e seguir". A maioria das telas ruins não é feia por falta de talento visual — é confusa por falta de intenção. Abaixo estão cinco hábitos que qualquer dev consegue adotar hoje e que resolvem a maior parte dos problemas antes que um designer precise entrar.

Imagem de capa/abertura que traduz visualmente a ideia de organizar uma interface com intenção — hierarquia, estados e feedback.
Imagem de capa/abertura que traduz visualmente a ideia de organizar uma interface com intenção — hierarquia, estados e feedback.

Hierarquia visual: diga ao olho onde olhar

Toda tela tem uma coisa mais importante. O botão de ação principal, o número que importa, o próximo passo. Se tudo tem o mesmo peso, nada tem. Use tamanho, cor e espaço para dizer ao olho a ordem de leitura.

Na prática: um botão primário forte, os secundários discretos. Título grande, metadado pequeno e cinza. Não pinte cinco coisas de vermelho vibrante disputando atenção. E respeite o espaço em branco — ele não é desperdício, é o que separa grupos e cria respiro. Agrupe o que é relacionado e afaste o que não é.

Feedback imediato: tela morta é bug

O usuário clicou. E agora? Se nada muda na tela, ele clica de novo, ou acha que quebrou. Toda ação precisa de uma resposta visível em menos de 100ms — nem que seja o botão mudar de estado.

Hover, focus, active, disabled: os quatro estados não são detalhe, são a conversa entre a interface e o dedo. Ao salvar, mostre um spinner no próprio botão e desabilite-o para não disparar duas vezes. Deu certo, confirme; deu errado, avise. Silêncio é a pior resposta que uma UI pode dar.

Consistência: previsível é elogio

Se o botão de salvar é verde numa tela e azul na outra, você está fazendo o usuário reaprender seu produto a cada página. Consistência é o que faz a interface parecer confiável mesmo quando o usuário nunca a viu antes.

Padronize o óbvio: espaçamentos, tamanhos de fonte, cantos, cores, o texto dos botões. "Cancelar" fica sempre no mesmo lugar. Datas no mesmo formato. Use tokens ou variáveis em vez de cravar #3B82F6 em vinte lugares — quando o padrão vira código, a consistência deixa de depender da sua memória. Previsível é chato de fazer e ótimo de usar.

Acessibilidade não é enfeite

Acessibilidade não é um favor para uma minoria — é o que faz sua UI funcionar no teclado, no leitor de tela, no sol batendo na tela do celular. E boa parte é barata.

O básico que já resolve muito: contraste suficiente (mire AA, 4.5:1 para texto), nunca comunique estado só por cor, HTML semântico de verdade (button é botão, não uma div com onClick), label em todo input, alt em imagem que informa, e foco visível para quem navega no Tab. Rode um Lighthouse ou o axe uma vez e você vai se assustar com quantos erros são de uma linha.

Loading, vazio e erro: os três estados que você esquece

Todo dev desenha a tela cheia, com dados bonitos vindos da API que funcionou. O usuário vive nos outros três estados — e são justamente os que ninguém desenha.

Loading: não deixe a tela em branco. Skeleton ou spinner, e evite o "pulo" de layout quando os dados chegam. Vazio: a lista sem itens não é um erro, é uma oportunidade — diga o que é aquilo e como criar o primeiro item, em vez de um vácuo. Erro: fale humano. "Não foi possível carregar. Tentar de novo?" com um botão, não um stack trace nem um alert genérico. Se você só programa o caminho feliz, entregou metade da tela.

O mínimo que separa uma tela boa de uma sofrível

Nenhum desses cinco pontos exige talento artístico. Exige intenção: uma coisa em destaque, resposta a cada clique, padrão que não muda, contraste que qualquer um enxerga e os três estados que você costuma esquecer. Faça só isso e sua UI já sobe uma categoria — designer é para o polimento, não para o básico. E o básico é o que o usuário sente primeiro.

Gostou do artigo?

Compartilhe com seus amigos e ajude a espalhar conhecimento!