T2 EducaçãoMidas

InputGroup

Campo com ícones, textos ou botões dentro da mesma borda (ex.: prefixo https://, ícone de busca, botão de copiar). InputGroup, InputGroupAddon (start ou end), InputGroupInput, InputGroupTextarea, InputGroupText e InputGroupButton.

Código-fonte

Exemplos

Interaja com o componente e copie o código de cada exemplo.

Prefixo e ícone

https://

Busca com atalho

⌘K

Com botão

Com ButtonGroup

Textarea

import {
  InputGroup,
  InputGroupAddon,
  InputGroupButton,
  InputGroupInput,
  InputGroupText,
  InputGroupTextarea,
} from "@t2-educacao/midas";

Uso

<InputGroup>
  <InputGroupAddon>
    <InputGroupText>https://</InputGroupText>
  </InputGroupAddon>
  <InputGroupInput placeholder="t2.com.br" aria-label="Site" />
  <InputGroupAddon align="end">
    <Info />
  </InputGroupAddon>
</InputGroup>

Componentes

ComponenteO que é
InputGroupA borda de 32px que envolve tudo. Mostra foco e erro do campo interno
InputGroupAddonÁrea antes (align="start") ou depois (align="end") do campo. Clicar nela foca o campo
InputGroupInputO campo de texto, sem borda própria
InputGroupTextareaCampo de várias linhas, cresce com o conteúdo
InputGroupTextTexto fixo dentro do addon (ex.: "R$", "https://")
InputGroupButtonBotão pequeno (24px, ghost) para usar dentro do addon

Props

InputGroupAddon

PropTipoPadrãoDescrição
align"start" | "end""start"Lado do addon

InputGroupButton

Mesmas props do Button. Padrões: variant="ghost" e size="xs".

Exemplos

Busca com ícone

<InputGroup>
  <InputGroupAddon>
    <MagnifyingGlass />
  </InputGroupAddon>
  <InputGroupInput placeholder="Buscar cursos" aria-label="Buscar cursos" />
</InputGroup>

Com botão

<InputGroup>
  <InputGroupInput value="https://t2.com.br/convite/ana" readOnly aria-label="Link de convite" />
  <InputGroupAddon align="end">
    <InputGroupButton size="icon-xs" aria-label="Copiar link">
      <Copy />
    </InputGroupButton>
  </InputGroupAddon>
</InputGroup>

Com atalho

<InputGroup>
  <InputGroupInput placeholder="Buscar" aria-label="Buscar" />
  <InputGroupAddon align="end">
    <Kbd>⌘K</Kbd>
  </InputGroupAddon>
</InputGroup>

Textarea

<InputGroup>
  <InputGroupTextarea placeholder="Escreva sua dúvida" aria-label="Dúvida" />
</InputGroup>

Inválido

Coloque aria-invalid no InputGroupInput: a borda do grupo inteiro fica vermelha.

<InputGroup>
  <InputGroupInput aria-invalid aria-label="Cupom" />
</InputGroup>

Acessibilidade

  • O campo interno precisa de nome (aria-label ou FieldLabel htmlFor).
  • Botão só com ícone dentro do addon precisa de aria-label.

Não faça

  • Usar Input dentro de InputGroup: use InputGroupInput, que não tem borda própria.
  • Colocar mais de um campo no mesmo grupo.

On this page