Pular para o conteúdo

TextField

Campo de texto em pílula (HTML copy-first) e Input compatível com shadcn.

Em cada stack

HTML e Astro
Classes itps-* do CSS Sinapse, com todas as variantes desta página.
React e Vue
Componentes padrão do shadcn (input) com o tema Sinapse: cores, fonte e raio vêm do tema, e as variantes itps-* desta página existem só no HTML.

Instalação

O comando instala o Input da sua stack com o tema Sinapse. Configure o registry uma vez por projeto em Comece por aqui.

terminal · React/Next

pnpm dlx shadcn@latest add @sinapse/textfield

terminal · Vue 3/Nuxt 4

pnpm dlx shadcn-vue@latest add https://dsystem.sinapse.org.br/r/vue/textfield.json

Sem shadcn, não há instalação por componente: use o CSS Sinapse e as classes da API copy-first desta página.

Uso

Em React/Next com shadcn/ui e Vue 3/Nuxt 4 com shadcn-vue, use o Input instalado pela stack. O tema Sinapse vem dos tokens instalados pelo CLI do shadcn ou do shadcn-vue.

Use itps-textfield quando precisar do contrato copy-first em pílula, ícones internos ou composição direta em HTML.

Exemplos

Tamanhos

UsoReact/Next e Vue 3/Nuxt 4HTML
Pequenodefina no componente instalado, quando existiritps-textfield--sm
Padrãopadrão do Inputsem modificador
Grandedefina no componente instalado, quando existiritps-textfield--lg

Nas classes itps-textfield, os tamanhos seguem o token form-height: 40, 48 e 56px.

Estados

EstadoReact/Next e Vue 3/Nuxt 4HTML
Desabilitadodisabledis-disabled no wrapper e disabled no input
Inválidoaria-invalid="true"is-invalid no wrapper e aria-invalid="true" no input
Preenchidovalor controlado ou defaultValuevalor no input

Associe mensagens de ajuda ou erro com aria-describedby.

Ícones

Ícones internos do itps-textfield são decorativos ou indicadores e devem usar aria-hidden="true". Para ações, como revelar senha ou limpar busca, use um botão nomeado com aria-label.

Com Field

Use Field como composição visual: label, ajuda e mensagens ficam fora do TextField.

Use DDD + número.

API copy-first

Classe/atributoUso
itps-textfieldWrapper visual do campo em pílula.
itps-textfield__inputInput interno sem borda própria.
itps-textfield__iconÍcone interno decorativo ou indicador.
itps-textfield__icon--dangerÍcone de erro em estado inválido.
itps-textfield--smAltura 40px.
itps-textfield--lgAltura 56px.
is-disabledEstado desabilitado no wrapper.
is-invalidEstado inválido no wrapper.
disabledDesabilita o input nativo.
aria-invalid="true"Comunica estado inválido.
aria-describedbyLiga o controle ao texto de apoio ou erro.
aria-hidden="true"Esconde ícones decorativos de tecnologias assistivas.

Acessibilidade

Associe labels externos com for/id. Use aria-describedby para texto de apoio ou erro. Ícones decorativos devem usar aria-hidden="true"; ações dentro do campo precisam ser botões nomeados.