Quando usar botão flutuante

Use botão flutuante apenas para uma ação primária, frequente e claramente identificável, sem cobrir conteúdo nem competir com a navegação.

Interface com cartões de conteúdo e um único botão flutuante posicionado em uma área segura
Nível de impácto
Médio
Status
Usar com atenção
Nível de evidênica
Evidência moderada

Contexto

O botão flutuante destaca uma ação sobre o conteúdo e pode mantê-la acessível durante a rolagem. Porém, sua posição fixa pode cobrir informações, campos, controles, navegação ou mensagens temporárias.

A decisão depende da prioridade da ação, da frequência de uso, do dispositivo, da densidade da tela, da clareza do ícone e da possibilidade de manter o controle acessível sem sobreposição.

Use o botão flutuante somente quando houver uma ação principal, construtiva e recorrente, como criar, adicionar, compartilhar ou iniciar uma tarefa. Confirme que ele representa a ação mais importante ou mais comum da tela.

Mantenha uma única ação principal por tela ou contexto. Se houver várias ações equivalentes, use uma barra de ações, toolbar ou outro agrupamento mais explícito.

Comunique a finalidade usando um ícone reconhecível e um rótulo visível quando o significado não for imediato.

Evite sobreposição posicionando o botão com respeito às áreas seguras, à navegação inferior, aos teclados virtuais, aos diálogos, aos bottom sheets, aos banners e às mensagens temporárias. Garanta que ele não cubra informações nem impeça a interação com elementos importantes.

Escolha o padrão adequado ao contexto. Em telas densas ou em fluxos de formulário, uma ação inline ou uma barra persistente pode ser melhor. No desktop, não use o botão apenas para economizar espaço: verifique se a ação realmente precisa permanecer disponível durante a navegação.

Teste estados e formas de entrada, incluindo foco, pressionamento, desabilitação, teclado, toque, zoom, leitor de tela e conteúdo real.

Em interfaces móveis, a posição inferior direita é comum em contextos de leitura da esquerda para a direita, mas não deve ser tratada como regra universal. A posição precisa respeitar a plataforma, a direção do conteúdo e as áreas seguras do dispositivo.

Página do Material Design 3 mostrando um botão de ação flutuante sobre uma interface de mensagens
Exemplo real: o Material Design 3 apresenta um FAB como ação primária em uma interface de mensagens, com a ação de editar destacada na área inferior direita sem competir com a navegação principal. A captura é da documentação oficial. Fonte: https://m3.material.io/components/floating-action-button/overview

Porque isso importa?

A posição flutuante aumenta a visibilidade, mas também cria uma camada sobre o conteúdo. Se for usada sem critério, pode esconder informações, competir com a hierarquia da tela ou levar a pessoa a interpretar uma ação secundária como principal.

O Material recomenda o FAB para a ação primária ou mais comum da tela e desaconselha seu uso para ações menores, destrutivas ou pouco claras. A documentação também recomenda limitar a quantidade de FABs por tela.

Em interfaces móveis, elementos fixos precisam ser avaliados com cuidado porque podem cobrir conteúdo e controles durante a rolagem. A decisão deve combinar prioridade da ação, comportamento da interface, acessibilidade e testes no dispositivo real.

  • Existe uma ação principal e recorrente na tela.
  • A ação é construtiva, como criar, adicionar ou compartilhar.
  • A ação continua relevante durante a rolagem.
  • O ícone ou rótulo comunica claramente sua finalidade.
  • Há espaço suficiente para não cobrir conteúdo ou controles.
  • A posição pode ser adaptada ao dispositivo e à área segura.
  • O comportamento foi testado com conteúdo real.
  • Há várias ações com a mesma prioridade.
  • A ação só faz sentido junto de um campo, card ou seção específica.
  • A ação é destrutiva, rara ou difícil de compreender.
  • O significado depende apenas de um ícone ambíguo.
  • O botão cobre conteúdo, campos, navegação ou mensagens.
  • Uma toolbar, barra inferior ou botão inline expressa melhor a relação com o conteúdo.
  • O botão só funciona bem com mouse, hover ou coordenadas fixas.
Documentação do Material UI explicando o uso de um Floating Action Button para a ação principal ou mais comum
Exemplo real: a documentação do Material UI define o FAB como um controle para a ação primária ou mais comum da tela e recomenda um único componente por tela. A captura mostra a documentação oficial e seu exemplo de uso. Fonte: https://mui.com/material-ui/react-floating-action-button/

Recomendações

Faça

Práticas recomendadas
  • Priorize uma ação.
  • Use rótulo quando necessário.
  • Reserve espaço ao redor.
  • Respeite a área segura.
  • Mantenha o foco visível.
  • Teste com conteúdo real.
Interface com um único botão flutuante afastado dos cartões e dos controles
Exemplo correto: há uma única ação flutuante, posicionada em uma área segura e sem cobrir cartões ou controles.

Evite

Práticas a evitar
  • Não use por moda.
  • Não empilhe FABs.
  • Não cubra conteúdo.
  • Não esconda o nome da ação.
  • Não dependa só de cor ou sombra.
  • Não use para ações destrutivas.
Interface com vários botões flutuantes sobrepostos aos cartões e próximos à borda inferior
Exemplo incorreto: vários botões flutuantes competem entre si, cobrem cartões e ficam próximos demais da borda.
Documentação Android Developers mostrando casos de uso e posicionamento de um botão de ação flutuante
Exemplo real: a documentação Android Developers descreve o FAB como um botão de alta ênfase para uma ação principal e apresenta casos como criar item, adicionar contato e centralizar localização. A captura é da documentação oficial. Fonte: https://developer.android.com/develop/ui/compose/components/fab?hl=en

Acessibilidade

Use um elemento nativo <button> com nome acessível. Em um FAB apenas com ícone, forneça um nome que descreva a ação, como “Criar nota”, e não apenas “Mais” ou “Botão”.

Garanta operação por teclado com Tab, Enter e Space, foco visível e ordem de navegação previsível. O W3C exige que nome, função e estado do controle possam ser determinados por programa.

A área de interação deve atender ao mínimo de 24 × 24 CSS pixels ou às exceções de espaçamento previstas no WCAG 2.2. Não dependa apenas de cor, sombra, movimento ou posição para comunicar a ação.

Respeite prefers-reduced-motion, mantenha o botão acessível com zoom e verifique se ele não cobre conteúdo ampliado. Teste com teclado, toque, leitor de tela, entrada por voz, zoom e diferentes tamanhos de tela.

Checklist

  • A ação é realmente a principal da tela?
  • A ação é frequente ou permanece relevante durante a rolagem?
  • Existe apenas um botão flutuante principal?
  • O ícone ou rótulo comunica claramente a ação?
  • O botão tem nome acessível?
  • O botão não cobre conteúdo ou controles?
  • A posição respeita navegação, teclado e áreas seguras?
  • O controle funciona com teclado, toque e leitor de tela?
  • O foco permanece visível e previsível?
  • A área de toque atende ao WCAG 2.2?
  • A ação continuaria melhor em uma toolbar ou botão inline?

Referências

Material Design 3. FAB. Referência do componente e de suas variações. A documentação do Material trata o FAB como uma forma de destacar a ação principal, não como um botão universal para qualquer tela.

Android Developers. Floating action button. Apresenta FABs padrão, pequenos, grandes e estendidos, e descreve casos como criar item, adicionar contato e centralizar localização.

Material UI. Floating Action Button. Implementação pública que reforça a regra de usar um FAB para a ação primária ou mais comum e mostra variações com ícone, rótulo e estados.

Baymard Institute. Mobile E-Commerce UX. Reúne pesquisa e benchmarking de experiências móveis e mostra que tamanho, posição, navegação e visibilidade de ações precisam ser avaliados no contexto de uso.

Baymard Institute. Mobile filter UI. Recomenda manter a ação de filtro acessível durante a rolagem sem esconder o conteúdo, uma referência contextual para avaliar controles fixos e sobreposição em telas móveis.

W3C/WAI. Name, Role, Value. Define que o nome, a função e o estado de componentes de interface devem ser determináveis por programa.

W3C/WAI. Target Size (Minimum). Define o critério WCAG 2.2 para alvos de ponteiro de pelo menos 24 × 24 CSS pixels, com exceções específicas.

IBM Carbon Design System. Button accessibility. Documenta operação de botões por teclado e a necessidade de nomes adequados em botões compostos apenas por ícone.

Essas fontes sustentam a decisão em conjunto: Material e bibliotecas mostram o padrão e seus limites; Baymard oferece evidências de uso mobile; W3C define requisitos normativos de acessibilidade. Nenhuma implementação isolada deve ser tratada como boa prática universal.

Veja também

Esta recomendação foi útil para você?