Components
- Accordion new
- ActionSheet new
- Alert new
- Alert Dialog new
- Angle Slider new
- Autocomplete new
- Avatar new
- Badge new
- Breadcrumb new
- Button new
- Button Group new
- Card new
- Carousel new
- Checkbox new
- Clipboard new
- Collapsible new
- Color Picker new
- Date Input new
- Date Picker new
- Dialog new
- DialogCaller new
- Drawer beta
- Editable new
- Empty new
- Field new
- Fieldset new
- File Upload new
- Filters new
- Floating Panel new
- Hover Card new
- Image new
- Image Cropper new
- Input new
- Input Group new
- Json Tree View new
- Kbd new
- Listbox new
- Marquee new
- Menu new
- Number Input new
- Pagination new
- Password Input new
- PhoneField new
- Pin Input new
- Popover new
- Progress Circular new
- Progress Linear new
- Qr Code new
- Radio Group new
- Rating Group new
- Scroll Area new
- ScrollSpy new
- Segment Group new
- Select new
- Separator new
- Sidebar new
- Signature Pad new
- Skeleton new
- Slider new
- Splitter new
- Steps new
- Switch new
- Table new
- Tabs new
- Tags Input new
- Textarea new
- Timeline new
- Timer new
- Toast new
- Toc new
- Toggle new
- Toggle Group new
- Tooltip new
- Tour new
- Tree View new
- Typography new
Installation
Install from the Vuzeno registry:
bunx --bun shadcn-vue@latest add https://vuzeno.com/r/input-group.json
npx shadcn-vue@latest add https://vuzeno.com/r/input-group.json
yarn dlx shadcn-vue@latest add https://vuzeno.com/r/input-group.json
pnpm dlx 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.
Menu
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:
| Value | Description |
|---|---|
inline-start | Start of the input (default) |
inline-end | End of the input |
block-start | Above the input |
block-end | Below the input |
Works with both InputGroupInput and InputGroupTextarea.