GitHub55X

Input Group

Vue input group to compose inputs with addons, prefix or suffix text, and inline action buttons.

PreviousNext

Installation

Install from the Vuzeno registry:

      
      bunx --bun shadcn-vue@latest add https://vuzeno.com/r/input-group.json
    

Usage

      
      <script setup lang="ts">
import { InputGroup } from "@/components/ui/input-group";
</script>

<template>
  <InputGroup.Root>
    <InputGroup.Input placeholder="Search..." />
    <InputGroup.Addon>
      <SearchIcon />
    </InputGroup.Addon>
  </InputGroup.Root>
</template>
    

Composition

      
      InputGroup.Root
├── InputGroup.Input or InputGroup.Textarea
├── InputGroup.Addon
├── InputGroup.Button
└── InputGroup.Text
    

For proper focus management, InputGroupAddon should always be placed after InputGroupInput or InputGroupTextarea in the DOM. Use the align prop to visually position the addon.

Examples

Icon

Add icons inside InputGroupAddon to decorate the input.

Text

Use InputGroupText for inline prefixes, suffixes, and helper labels.

Button

Add action buttons with InputGroupButton inside an addon.

Tooltip

Wrap InputGroupButton with Tooltip.Trigger and as-child to add contextual help on hover.

Use Menu.Trigger with as-child on InputGroupButton to attach a dropdown menu to the input.

Align

Use the align prop on InputGroupAddon to position the addon relative to the input:

ValueDescription
inline-startStart of the input (default)
inline-endEnd of the input
block-startAbove the input
block-endBelow the input

Works with both InputGroupInput and InputGroupTextarea.