Toggle Buttons

View pricing →

Início rápido da instalação Pro 🚀

Botões de Alternância

Para exibir múltiplos botões de alternância, use a propriedade options. As opções podem ser especificadas de 3 maneiras:

  • Um array de strings
  • Um objeto de pares valor/rótulo
  • Um array de objetos com as propriedades label e value (o mesmo que as entradas select e radio).
    • Parâmetros adicionais podem ser passados para definir disabled, help, onLabel e/ou offLabel em uma base por opção.
Carregar exemplo ao vivo

Propriedades Comportamentais

Múltiplo

A entrada togglebuttons, por padrão, permite que apenas uma opção seja selecionada. Você pode alterar esse comportamento definindo a propriedade multiple, que então permitirá a seleção de múltiplas opções:

Carregar exemplo ao vivo

Obrigatório

Por padrão, togglebuttons permitirá que você selecione e deselecione, permitindo um estado desligado. Com a propriedade enforced ativada, uma vez que o usuário interagiu com a entrada, um valor sempre será definido, muito parecido com o de uma entrada de rádio.

Carregar exemplo ao vivo

Vertical

Assumindo que você está usando os estilos padrão do FormKit, a propriedade vertical aplica atributos de conjunto de dados e estilização para empilhar botões de alternância em uma orientação vertical.

Carregar exemplo ao vivo

Mais exemplos de propriedades e combinações:

Carregar exemplo ao vivo

Alternância Independente

Exemplo básico independente

A entrada togglebuttons oferece escolhas entre um ou mais valores; é uma ótima opção quando você deseja que o usuário alterne um recurso entre ligado ou desligado, entre escolhas ou permita múltiplas seleções.

Carregar exemplo ao vivo

Valores de Alternância Independente Ligado/Desligado

Os valores para os botões de alternância são undefined se não interagidos, true se marcados e false se desmarcados. Você pode alterar esses valores passando as propriedades onValue e offValue. Neste exemplo, definiremos o onValue para a string 'active' e o offValue para a string 'inactive':

Carregar exemplo ao vivo

Rótulos Independentes de Ligado/Desligado

Além disso, você pode especificar rótulos secundários definindo as propriedades on-label e off-label. Esses valores são exibidos condicionalmente com base no estado ligado/desligado do interruptor. Os rótulos de valor são renderizados à direita da entrada do interruptor. O "rótulo primário" será movido para a posição do rótulo de entrada acima do interruptor quando rótulos de valor forem usados:

Carregar exemplo ao vivo

Slots

Slots de Botão de Alternância

Para múltiplas opções, você pode usar o slot default para definir o conteúdo do interruptor.

Carregar exemplo ao vivo

Slots de Alternância Independente

Para um único interruptor, você pode usar o slot default para definir o conteúdo do interruptor. Também estão disponíveis os slots on e off para alterar o conteúdo com base em se o interruptor está ativado ou não.

Carregar exemplo ao vivo

Props & Atributos

PropTypePadrãoDescrição
off-valueanyfalseO valor quando o interruptor está desmarcado.
Para uso apenas com botões de alternância independentes.
on-valueanytrueO valor quando o interruptor está marcado.
Para uso apenas com botões de alternância independentes.
off-labelStringundefinedO texto do rótulo do botão quando o interruptor está desmarcado.
Para uso apenas com botões de alternância independentes.
on-labelStringundefinedO texto do rótulo do botão quando o interruptor está marcado.
Para uso apenas com botões de alternância independentes.
optionsArray/Object[]Um objeto de pares valor/rótulo ou um array de strings, ou um array de objetos que devem conter uma propriedade de rótulo e valor. Propriedades adicionais incluem: disabled, help, onLabel e offLabel
multipleBooleanfalsePermite selecionar múltiplas opções.
Para uso apenas com botões de alternância múltiplos.
enforcedBooleanfalseGarante que pelo menos uma seleção permaneça selecionada uma vez que o campo é ativado.
Para uso apenas com botões de alternância múltiplos.
verticalBooleanfalseAplica atributos de dados e estilização para empilhar botões de alternância em uma orientação vertical.
Para uso apenas com botões de alternância múltiplos.
Mostrar Universal props
configObject{}Opções de configuração a serem fornecidas para o nó do input e qualquer nó descendente deste input.
delayNumber20Número de milissegundos para debounce do valor do input antes de despachar o commit hook.
dirtyBehaviorstringtouchedDetermina como o indicador "dirty" deste input é definido. Pode ser configurado como touched ou compare - touched (o padrão) é mais performático, mas não detectará quando o formulário corresponder novamente ao seu estado inicial.
errorsArray[]Array de strings para exibir como mensagens de erro neste campo.
helpString''Texto para o texto de ajuda associado ao input.
idStringinput_{n}O ID único do input. Fornecer um ID também permite acesso global ao nó do input.
ignoreBooleanfalseImpede que um input seja incluído em qualquer pai (grupo, lista, formulário etc). Útil ao usar inputs para a interface do usuário em vez de valores reais.
indexNumberundefinedPermite que um input seja inserido no índice fornecido, se o pai for uma lista. Se o valor do input for indefinido, ele herda o valor dessa posição de índice. Se ele tiver um valor, ele o insere nos valores da lista no índice fornecido.
labelString''Texto para o elemento label associado ao input.
nameStringinput_{n}O nome do input como identificado no objeto de dados. Isso deve ser único dentro de um grupo de campos.
parentFormKitNodecontextualPor padrão, o pai é um grupo, lista ou formulário de envolvimento, mas essa prop permite a atribuição explícita do nó pai.
prefix-iconString''Especifica um ícone para colocar na seção prefixIcon.
preservebooleanfalsePreserva o valor do input em um grupo pai, lista ou formulário quando o input é desmontado.
preserve-errorsbooleanfalsePor padrão, os erros definidos em inputs usando setErrors são automaticamente limpos no input. Definir essa prop como true mantém o erro até que ele seja explicitamente limpo.
sections-schemaObject{}Um objeto de chaves de seção e valores parciais de esquema, em que cada esquema parcial é aplicado à seção respectiva.
suffix-iconString''Especifica um ícone para colocar na seção suffixIcon.
typeStringtextO tipo de input a ser renderizado pela biblioteca.
validationString, Array[]As regras de validação a serem aplicadas ao input.
validation-visibilityStringblurDetermina quando mostrar as regras de validação com falha de um input. Os valores válidos são blur, dirty e live.
validation-labelString{label prop}Determina qual rótulo usar nas mensagens de erro de validação, por padrão, usa a propriedade label, se disponível, caso contrário, usa a propriedade name.
validation-rulesObject{}Regras de validação personalizadas adicionais para disponibilizar na propriedade de validação.
valueAnyundefinedInicializa o valor do input e/ou de seus filhos. Não é reativo. Pode inicializar grupos inteiros (formulários) e listas..

Seções

A entrada de botões de alternância tem uma construção diferente dependendo se é uma configuração única ou múltipla.

Você pode direcionar uma seção específica de uma entrada usando a "key" dessa seção, permitindo que você modifique as classes, HTML (por meio de :sections-schema ou o conteúdo (por meio de slots) dessa seção). Saiba mais sobre as seções aqui.

Diagrama do botão de alternância único

Texto do Botão de Alternância Aqui
Adicione algum texto de ajuda sobre esta alternância
A mensagem de validação estaria aqui

Diagrama do botão de alternância múltiplo

Texto do Botão de Alternância Aqui
Adicione algum texto de ajuda sobre esta alternância
A mensagem de validação estaria aqui
Section-keyDescrição
singleToggleEmbrulho do botão para o botão de alternância único
multiToggleEmbrulho do botão para um botão de alternância quando existem múltiplos botões de alternância
inputInnerTexto interno do botão para um botão de alternância
optionResponsável pelo embrulho ao redor de cada item nas opções.
optionsResponsável pelo elemento de embrulho ao redor de todos os itens de opção.
Mostrar Universal section keys
outerO elemento de envolvimento mais externo.
wrapperUm invólucro ao redor do rótulo e do input.
labelO rótulo do input.
prefixPor padrão, não gera saída, mas permite conteúdo diretamente antes de um elemento input.
prefixIconUm elemento para gerar um ícone antes da seção de prefixo.
innerUm invólucro ao redor do próprio elemento input.
suffixPor padrão, não gera saída, mas permite conteúdo diretamente após um elemento input.
suffixIconUm elemento para gerar um ícone após a seção de sufixo.
inputO próprio elemento input.
helpO elemento que contém o texto de ajuda.
messagesUm invólucro ao redor de todas as mensagens.
messageO elemento (ou muitos elementos) que contém uma mensagem - na maioria das vezes mensagens de validação e erros.

Acessibilidade

Todos os campos de entrada do FormKit são projetados levando em consideração as seguintes considerações de acessibilidade. Ajude-nos a melhorar continuamente a acessibilidade para todos, relatando problemas de acessibilidade aqui:

Marcação semânticaAtributos AriaAcessível por tecladoIndicadores de focoContraste de cores com o tema fornecidoEtiquetas acessíveis, texto de ajuda e erros

Botão de alternância única

Chave de SeçãoAtributoPadrãoDescrição
singleTogglearia-labelFornece um nome acessível.
aria-pressedIndica o estado pressionado do botão de alternância.
rolecheckboxIndica às tecnologias assistivas que este elemento funciona como uma caixa de seleção.
Mostrar Universal chave de seção
labellabelforAssocia isso a um elemento de entrada, aprimorando acessibilidade e experiência do usuário
inputinputdisabledDesabilita um elemento HTML, impedindo a interação do usuário e sinalizando um estado não interativo
aria-describedbyAprimora a acessibilidade associando um elemento a uma descrição, auxiliando leitores de tela
aria-requiredAdiciona o estado necessário quando a validação é exigida.
iconiconforSempre que um ícone é definido como rótulo, ele o vincula a um elemento de entrada, aprimorando acessibilidade e experiência do usuário

Botões de alternância múltipla

Chave de SeçãoAtributoPadrãoDescrição
multiTogglearia-labelFornece um nome acessível.
aria-pressedIndica o estado pressionado do botão de alternância.
rolecheckbox or radioIndica às tecnologias assistivas que este elemento funciona como uma caixa de seleção se tiver opções ou rádio se não tiver.
optionsrolegroupIndica às tecnologias assistivas que este elemento funciona como um grupo.
aria-labelledbyAssocia este elemento como uma etiqueta para a entrada.
optionrolelistitemIndica às tecnologias assistivas que este elemento funciona como um item de lista.
Mostrar Universal chave de seção
labellabelforAssocia isso a um elemento de entrada, aprimorando acessibilidade e experiência do usuário
inputinputdisabledDesabilita um elemento HTML, impedindo a interação do usuário e sinalizando um estado não interativo
aria-describedbyAprimora a acessibilidade associando um elemento a uma descrição, auxiliando leitores de tela
aria-requiredAdiciona o estado necessário quando a validação é exigida.
iconiconforSempre que um ícone é definido como rótulo, ele o vincula a um elemento de entrada, aprimorando acessibilidade e experiência do usuário

Interações com o Teclado

Evento de TecladoDescrição
TabMove o foco para a próxima entrada focalizável na página.
Shift + TabMove o foco para a entrada focalizável anterior na página.