Toggle Group
StableUma fileira de Toggles que compartilha um estado: seleção única ou `multiple`, com foco itinerante. Cada item é o Toggle do Up Web DS — o Button com estado pressionado —, então um item no grupo e um toggle sozinho são o mesmo controle. Use para uma barra de ferramentas de estados liga/desliga (formatação, filtros), inclusive quando vários podem estar ligados; para trocar entre vistas ou modos, em que exatamente uma opção vale, use o Segmented Control.
Instalação
npx up-web-ds add toggle-groupPreview
Basic
Multiple
Outline
Sizes
Vertical
Icon Only
With Separator
Disabled
Controlled
50 itens em Stable, Experimental.
All states
Basic
Multiple
Outline
Sizes
Vertical
Icon Only
With Separator
Disabled
Controlled
50 itens em Stable, Experimental.
Usage
Props
ToggleGroupContext
Estende P. Aceita também os atributos padrão de um elemento React (2 não listados).
ToggleGroup
Estende ToggleGroupPrimitive.Props. Aceita também os atributos padrão de um elemento React (275 não listados).
ToggleGroupItem
Estende Omit<ToggleProps, 'variant' | 'size'>. Aceita também os atributos padrão de um elemento React (283 não listados).
ToggleGroupSeparator
Estende SeparatorProps. Aceita também os atributos padrão de um elemento React (275 não listados).
Composition
O grupo carrega o nome, o estado (value/defaultValue), a variante e o tamanho; os itens herdam variante e tamanho por contexto. O separador fica entre itens e corre perpendicular ao eixo do grupo.
Metadata
Notas de acessibilidade
Teclado verificado por teste e em navegador: o grupo custa uma parada de Tab, as setas percorrem os itens com wrap (Cima/Baixo quando vertical), Home e End vão às pontas, e Space/Enter alternam; um item desabilitado é pulado pelas setas e recusa a alternância, e o anel de foco é visível ao chegar pelo teclado. Leitor de tela verificado por teste: a fileira é um group nomeado por aria-label, e cada item reporta o próprio aria-pressed — em seleção única, pressionar um solta o outro; em multiple, acumula. Item só de ícone leva aria-label. Touch verificado em viewport de 375px com emulação de toque: os itens medem 32, 36 e 40px nos três tamanhos e 32/36px nos só de ícone, acima do mínimo de 24x24 da política do Up Web DS, e o toque alterna. Reduced motion verificado com prefers-reduced-motion: reduce — a única transição é a de cor e anel herdada do Button, resposta a input e não movimento, então permanece; o empurrão de 1px do Button já é removido pelo Toggle.
Classificação
- Layer
- Primitive
- Domínio
- Domain-free (compartilhado)
- Categoria
- action
- Status
- Stable
Origem e distribuição
- Fonte
- coss registry / toggle-group
- Licença
- MIT
- Distribuição
- Interna
Acessibilidade
- Teclado: revisado
- Leitor de tela: revisado
- Touch: revisado
- Reduced motion: revisado
Dependências
- Pacotes
- @base-ui/react
- Ícones
- Nenhum
- Usado por
- Nenhum ainda