Components
- Accordion
- Alert
- Alert Dialog
- Autocomplete
- Avatar
- Badge
- Breadcrumb
- Button
- Card
- Checkbox
- Checkbox Group
- Collapsible
- Combobox
- Dialog
- Field
- Fieldset
- Form
- Frame
- Group
- Input
- Label
- Menu
- Meter
- Number Field
- Pagination
- Popover
- Preview Card
- Progress
- Radio Group
- Scroll Area
- Select
- Separator
- Sheet
- Slider
- Switch
- Table
- Tabs
- Textarea
- Toast
- Toggle
- Toggle Group
- Toolbar
- Tooltip
Resources
Group
A component for visually grouping a series of controls.
import { EllipsisIcon, FilesIcon, FilmIcon } from "lucide-react"
import { Button } from "@/components/ui/button"
import { Group, GroupItem, GroupSeparator } from "@/components/ui/group"
export function GroupDemo() {
return (
<Group>
<GroupItem render={<Button variant="outline" />}>
<FilesIcon />
Files
</GroupItem>
<GroupSeparator />
<GroupItem render={<Button variant="outline" />}>
<FilmIcon />
Media
</GroupItem>
<GroupSeparator />
<GroupItem
render={<Button variant="outline" size="icon" aria-label="Menu" />}
>
<EllipsisIcon />
</GroupItem>
</Group>
)
}
Installation
pnpm dlx shadcn@latest add https://coss.com/ui/r/group.json
Usage
import { Button } from "@/components/ui/button"
import { Group, GroupItem, GroupSeparator } from "@/components/ui/group"
<Group>
<GroupItem render={<Button />}>Button</GroupItem>
<GroupSeparator />
<GroupItem render={<Button />}>Button</GroupItem>
</Group>
Examples
With Input
import { CopyIcon } from "lucide-react"
import { Button } from "@/components/ui/button"
import { Group, GroupItem, GroupSeparator } from "@/components/ui/group"
import { Input } from "@/components/ui/input"
export function GroupWithInput() {
return (
<Group>
<GroupItem
render={<Input type="text" defaultValue="https://coss.com" />}
/>
<GroupSeparator />
<GroupItem
render={<Button variant="outline" size="icon" aria-label="Copy" />}
>
<CopyIcon />
</GroupItem>
</Group>
)
}
On This Page