FilterField
Barra de filtros em linha única e o campo de largura natural que ela abriga.
A FilterBar organiza busca e filtros de uma lista em uma linha que quebra com elegância, e o FilterField é cada campo dentro dela, com largura natural de 9 a 13 rem. As duas peças existem porque o catálogo do HeroUI não tem uma barra de filtros. O layout reage à largura do próprio bloco (container query), não da janela: o menu lateral aberto também estreita o conteúdo.
import { FilterBar, FilterField } from "@rastreio-x/ui";
Padrão
A FilterBar leva aria-label e o papel search. Cada controle entra em um FilterField; grow faz o campo ocupar o espaço que sobrar, como a busca.
Com seletores
Vários filtros lado a lado, cada um com Label e largura natural. Em barras estreitas eles passam a duas colunas.
A barra da lista de Pedidos
Visão (Segment), busca que cresce e filtros em uma segunda barra. A lista de Pedidos separa busca e filtros em duas FilterBar, para a segunda poder virar um painel em telas pequenas.
Bloco estreito
Em um contêiner de 320 px a busca ocupa a linha inteira e os demais campos dividem duas colunas. A decisão vem do bloco, então vale também com o menu lateral aberto.
Anatomia
FilterBar role="search", aria-label
├── FilterField largura natural (13 rem)
├── FilterField grow cresce (busca)
└── FilterField …
FilterBar: contêiner flex que quebra em linhas e declara o containerrx-fb.FilterField: item comflex: 0 1 13rememin-width: 9rem; comgrow,flex: 1 1 16rem.- Abaixo de 40 rem de largura do bloco, cada campo ocupa metade da linha e o
growa linha inteira.
Propriedades
Barra (FilterBar):
Campo (FilterField):
Animações
A barra não anima: os campos mudam de largura por container query, sem transição. Os controles dentro (Select, SearchField) têm as suas próprias transições curtas, reduzidas a 0,01 ms por prefers-reduced-motion pela folha global da fachada.
Acessibilidade
- A
FilterBartemrole="search"earia-label, e vira uma região navegável por leitores de tela. - Duas barras na mesma tela precisam de rótulos diferentes (
Buscar e filtrar PedidoseFiltros). - A ordem do DOM é a ordem de tabulação: busca primeiro, depois filtros.
- Cada controle mantém o seu próprio rótulo; o
FilterFieldé só layout e não muda a semântica. - Ao filtrar, anuncie o novo total em uma região
aria-liveda lista.
Boas práticas
Faça
Evite
- Em telas estreitas, mostre
Filtros · 2 ativosnum botão que abre um painel, como a lista de Pedidos. - Mostre os filtros ativos como chips removíveis perto da lista.
- Mantenha os filtros na URL para a tela ser compartilhável.
- Use
variant="secondary"nos campos quando a barra ficar sobre uma superfície.
Relacionados
- SearchField a busca que costuma abrir a barra.
- Select os filtros de opções.
- DateRangeField o filtro de período.
- Segment a troca de visão antes da busca.