Input Group
Componente para adicionar ícones, texto, botões e outros addons dentro de campos de input de forma visualmente integrada.
Posicionamento dos addons
Os addons podem ser posicionados inline (esquerda/direita) ou em bloco (topo/base).
Inline (horizontal)
Bloco (vertical)
Padrão de implementação
Snippets para os usos mais comuns do InputGroup.
Campo de busca
import { SearchIcon } from "lucide-react"
<InputGroup>
<InputGroupAddon align="inline-start">
<InputGroupText>
<SearchIcon />
</InputGroupText>
</InputGroupAddon>
<InputGroupInput placeholder="Buscar..." />
</InputGroup>Campo monetário
<InputGroup>
<InputGroupAddon align="inline-start">
<InputGroupText>R$</InputGroupText>
</InputGroupAddon>
<InputGroupInput
type="number"
placeholder="0,00"
min={0}
step={0.01}
/>
</InputGroup>Com botão de ação
<InputGroup>
<InputGroupInput
value={url}
readOnly
placeholder="Link gerado..."
/>
<InputGroupAddon align="inline-end">
<InputGroupButton onClick={handleCopy} aria-label="Copiar link">
<CopyIcon />
</InputGroupButton>
</InputGroupAddon>
</InputGroup>Sub-componentes
API dos sub-componentes do InputGroup.
Sub-componentes
InputGroup
Container principal. Gerencia o visual unificado.
InputGroupInput
Campo de texto interno. Substitui o Input padrão dentro do grupo.
InputGroupAddon
Container de addon. Prop align: inline-start | inline-end | block-start | block-end.
InputGroupText
Texto ou ícone não-interativo no addon.
InputGroupButton
Botão dentro do addon. Prop size: xs | sm | icon-xs | icon-sm.
InputGroupTextarea
Textarea dentro do grupo. Para inputs multiline com addons.
Acessibilidade
O container usa role="group" para agrupar o input e seus addons.
Use Field externo com label para nomear o InputGroup para leitores de tela.
Para botões de ação (copiar, enviar), sempre inclua aria-label descritivo.
MN Design System · Primary #5FC318 · Brand Green #AFF000 · Font: Inter