Pular para o conteúdo

Button

Botões permitem que os usuários tomem ações e decisões com um simples toque.

Botões comunicam ações que os usuários podem realizar. Eles são normalmente colocados em toda a interface do usuário, em lugares como:

  • Janelas modais
  • Formulários
  • Cartões
  • Barras de ferramentas

Basic Button

O Botão vem com três variantes: texto (padrão), contido e delineado.

Press Enter to start editing

Botões de texto

Botões de texto normalmente são usados ​​para ações menos pronunciadas, incluindo aquelas localizadas: em caixas de diálogo, em cartões. Em cartões, os botões de texto ajudam a manter a ênfase no conteúdo do cartão.

Link
Press Enter to start editing

Botões contidos

Botões Contidos tem alta ênfase, distinguem-se pelo uso de elevação e preenchimento. Eles contém as principais ações da sua aplicação.

Link
Press Enter to start editing

Você pode remover a elevação com a propriedade disableElevation.

Press Enter to start editing

Botões delineados

Outlined buttons are medium-emphasis buttons. They contain actions that are important but aren't the primary action in an app.

Botões delineados são uma alternativa de menor ênfase comparado com botões contidos, ou uma uma alternativa de maior ênfase comparado com botões de texto.

Link
Press Enter to start editing

Manipulando cliques

Todos os componentes aceitam um método manipulador onClick que é aplicado ao elemento DOM raiz.

<Button
  onClick={() => {
    alert('clicado');
  }}
>
  Clique aqui
</Button>

Note that the documentation avoids mentioning native props (there are a lot) in the API section of the components.

Cor

Press Enter to start editing

Além de usar as cores de botão padrão, você pode adicionar outras personalizadas ou desativar as que não forem necessárias. See the Adding new colors example for more info.

Tamanhos

For larger or smaller buttons, use the size prop.

Botão de upload

Press Enter to start editing

Botões com ícones e rótulo

Às vezes você pode querer ter ícones para certos botões para aprimorar a experiência do usuário, pois reconhecem logotipos mais facilmente do que texto. Por exemplo, se você tem um botão com a ação de "deletar", você pode rotulá-lo com o ícone de lata de lixo.

Press Enter to start editing

Botão de ícone

Botões de ícones são comumente encontrados em barras de aplicativos e barras de ferramentas.

Ícones são também adequados para botões de alternância que permitem uma escolha única para ser selecionado ou desmarcado, como adicionar ou remover uma estrela para um item.

Press Enter to start editing

Tamanhos

Para botões maiores ou menores, use a prop size

Press Enter to start editing

Cores

Use a propriedade color para aplicar uma paleta de cores ao componente.

Press Enter to start editing

Botões customizados

Aqui estão alguns exemplos de customização do componente. You can learn more about this in the overrides documentation page.

🎨 Se você está procurando inspiração, você pode verificar os exemplos de customização de MUI Treasury.

Botão de carregamento

Os botões de carregamento podem mostrar estado de carregamento e desativar as interações.

Press Enter to start editing

Alterne o interruptor de carregamento para ver a transição entre os diferentes estados.

Botão complexo

Os botões de texto, botões contidos, botões de ação flutuante e botões de ícone são construídos com base no mesmo componente: O componente ButtonBase. Você pode usar esse componente para construir interações diferentes.

Biblioteca de roteamento de terceiros

One frequent use case is to perform navigation on the client only, without an HTTP round-trip to the server. Um caso de uso comum é usar o botão para acionar uma navegação para uma nova página. Here is a more detailed guide.

Limitações

Propriedade CSS Cursor not-allowed

O componente ButtonBase define pointer-events: none; ao desabilitar os botões, o que previne que o cursor desabilitado seja exibido.

Se você deseja usar not-allowed, você tem duas opções:

  1. Apenas com CSS. You can remove the pointer-events style on the disabled state of the <button> element:
<span style={{ cursor: 'not-allowed' }}>
    <Button component={Link} disabled>
      disabled
    </Button>
  </span>

Então:

  • You should add pointer-events: none; back when you need to display tooltips on disabled elements.
  • O cursor não irá mudar se você renderizar algum outro elemento que não seja um botão, por exemplo, um elemento link <a>.
  1. Alteração no DOM. Você pode encapsular o botão:
<span style={{ cursor: 'not-allowed' }}>
  <Button component={Link} disabled>
    disabled
  </Button>
</span>

Isso tem a vantagem de suportar qualquer elemento, por exemplo, um elemento de link <a>.

Unstyled

The component also comes with an unstyled version. It's ideal for doing heavy customizations and minimizing bundle size.