Pular para o conteúdo

Search

Campo de busca pill com ícone, label opcional e botão de limpar.

Instalação

Instale o Input Group da sua stack e rode o comando individual ITpS em seguida. O comando itps add search é theme-only: ele valida o slug e confirma que o contrato visual vem do tema ITpS, das classes copy-first e dos snippets desta página.

terminal · React/Next

pnpm dlx shadcn@latest add input-group
pnpm dlx github:ITPS/sinapse-ui-cli add search

terminal · Vue3/Nuxt4

pnpm dlx shadcn-vue@latest add input-group
pnpm dlx github:ITPS/sinapse-ui-cli add search

O comando individual adapta só este componente; não instala o catálogo inteiro.

Uso

Use itps-search para busca principal ou filtros de lista. O input é nativo type="search"; o botão de limpar usa os hooks data-itps-search-input e data-itps-search-clear.

Em React/Next com shadcn/ui e Vue3/Nuxt4 com shadcn-vue, use InputGroup, InputGroupInput, InputGroupAddon e InputGroupButton. Para HTML ou wrappers finos, use itps-search e os hooks data-itps-search*.

Exemplos

Composições

Use os modificadores de escala quando a busca participa de layouts densos ou destacados. O label inline fica dentro da pill; no shadcn, componha o label por fora do InputGroup.

API copy-first

Classe/atributoUso
itps-searchContainer visual da busca.
itps-search--smAltura compacta de 40px.
itps-search--lgAltura ampla de 56px.
itps-search--floatingSuperfície destacada para busca global ou hero.
itps-search__iconÍcone decorativo de busca.
itps-search__labelLabel inline opcional.
itps-search__inputControle nativo type="search".
itps-search__clearBotão opcional para limpar a busca.
data-itps-search*Hooks usados pelo script global de formulários.
aria-labelNomeia busca sem label visível e botão de limpar.
aria-hidden="true"Esconde ícones decorativos de tecnologias assistivas.

Acessibilidade

Quando houver label visível, conecte for e id. O botão de limpar deve ser button type="button" com aria-label. Mantenha a lupa e o X decorativos com aria-hidden="true" quando o controle já tiver nome acessível.