WFP logoDesign System

A flexible component for combining inputs with text, icons, and buttons.

Installation

pnpm dlx shadcn@latest add https://designsystem.wfp.org/r/input-group.json

Usage

import {
  InputGroup,
  InputGroupAddon,
  InputGroupInput,
} from "@/components/ui/input-group";
<InputGroup>
  <InputGroupAddon>
    <Icon />
  </InputGroupAddon>
  <InputGroupInput type="text" placeholder="Enter text…" />
</InputGroup>

Examples

With text

Combine inputs with text labels or suffixes.

Room
EUR
+

With button

Add buttons to create interactive input groups.

With dropdown

Pair input groups with dropdown menus for filtering and categorization.

With textarea

Use textarea for multi-line input with larger rows for better usability.

Your review

With spinner

Show loading indicators while processing input.

Please wait...

API reference

InputGroup

The root container for the input group.

PropTypeDefaultDescription
classNamestring-Additional CSS classes

InputGroupAddon

Container for icons, text, or buttons that accompany the input.

PropTypeDefaultDescription
align"inline-start" | "inline-end" | "block-start" | "block-end""inline-start"Position of the addon
classNamestring-Additional CSS classes

InputGroupInput

The input element within the group.

PropTypeDefaultDescription
typestring"text"Input type
placeholderstring-Placeholder text
classNamestring-Additional CSS classes

InputGroupTextarea

Textarea element for multi-line input.

PropTypeDefaultDescription
rowsnumber-Number of visible text rows
placeholderstring-Placeholder text
classNamestring-Additional CSS classes

InputGroupText

Text content within an addon.

PropTypeDefaultDescription
classNamestring-Additional CSS classes

InputGroupButton

Button element within an addon.

PropTypeDefaultDescription
size"xs" | "sm" | "icon-xs" | "icon-sm""xs"Button size
variant"default" | "ghost" | "outline""ghost"Button style variant
type"button" | "submit" | "reset""button"Button type