keywords: AiAssisted, product:JetpackCompose
Os botões são componentes fundamentais que permitem ao usuário acionar uma ação definida. Há cinco tipos de botões. Esta tabela descreve a aparência de cada um dos cinco tipos de botões e onde eles devem ser usados:
Tipo | Aparência | Finalidade |
---|---|---|
Sólido | Fundo sólido com texto contrastante. | Botões de prioridade alta. Elas são para ações principais em um aplicativo, como "enviar" e "salvar". O efeito de sombra destaca a importância do botão. |
Tonal preenchido | A cor do plano de fundo varia para corresponder à superfície. | Também para ações principais ou significativas. Os botões tonais preenchidos oferecem mais peso visual e são adequados para funções como "Adicionar ao carrinho" e "Fazer login". |
Elevada | Se destaca por ter uma sombra. | Tem uma finalidade semelhante aos botões tonais. Aumente a elevação para que o botão apareça ainda mais em destaque. |
Delineado | Apresenta uma borda sem preenchimento. | Botões de prioridade média, que contêm ações importantes, mas não principais. Eles combinam bem com outros botões para indicar ações alternativas e secundárias, como "Cancelar" ou "Voltar". |
Texto | Mostra o texto sem plano de fundo ou borda. | Botões de baixa ênfase, ideais para ações menos críticas, como links de navegação ou funções secundárias, como "Saiba mais" ou "Ver detalhes". |
Esta imagem demonstra os cinco tipos de botões no Material Design:
Superfície da API
onClick
- A função que o sistema chama quando o usuário pressiona o botão.
enabled
- Quando
false
, esse parâmetro faz com que o botão apareça indisponível e inativo. colors
- Uma instância de
ButtonColors
que determina as cores usadas no botão. contentPadding
- O padding dentro do botão.
Botão preenchido
O componente de botão preenchido usa o elemento combinável Button
básico. Ela é preenchida com uma cor sólida por padrão. O snippet mostra como implementar o
componente:
@Composable fun FilledButtonExample(onClick: () -> Unit) { Button(onClick = { onClick() }) { Text("Filled") } }
Essa implementação aparece como mostrado:

Botão tonal preenchido
O componente de botão tonal preenchido usa o elemento combinável FilledTonalButton
.
Ela é preenchida com uma cor tonal por padrão.
O snippet mostra como implementar o componente:
@Composable fun FilledTonalButtonExample(onClick: () -> Unit) { FilledTonalButton(onClick = { onClick() }) { Text("Tonal") } }
Essa implementação aparece como mostrado:

Botão contornado
O componente de botão com contorno usa o elemento combinável OutlinedButton
. Ela aparece com um contorno por padrão.
O snippet mostra como implementar o componente:
@Composable fun OutlinedButtonExample(onClick: () -> Unit) { OutlinedButton(onClick = { onClick() }) { Text("Outlined") } }
Essa implementação aparece como mostrado:

Botão elevado
O componente de botão elevado usa o elemento combinável ElevatedButton
. Ele tem
uma sombra que representa o efeito de elevação por padrão. É um botão preenchido
que inclui uma sombra.
O snippet mostra como implementar o componente:
@Composable fun ElevatedButtonExample(onClick: () -> Unit) { ElevatedButton(onClick = { onClick() }) { Text("Elevated") } }
Essa implementação aparece como mostrado:

Botão de texto
O componente de botão de texto usa o elemento combinável TextButton
. Ele aparece como apenas texto até ser pressionado. Ela não tem um preenchimento ou contorno sólido por padrão.
O snippet mostra como implementar o componente:
@Composable fun TextButtonExample(onClick: () -> Unit) { TextButton( onClick = { onClick() } ) { Text("Text Button") } }
Essa implementação aparece como mostrado:
