mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-24 05:05:44 +00:00
* feat: rtl * feat * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: add sidebar * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * chore: changeset * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix
283 lines
5.3 KiB
Plaintext
283 lines
5.3 KiB
Plaintext
---
|
|
title: Item
|
|
description: A versatile component for displaying content with media, title, description, and actions.
|
|
base: base
|
|
component: true
|
|
---
|
|
|
|
<ComponentPreview styleName="base-nova" name="item-demo" />
|
|
|
|
The `Item` component is a straightforward flex container that can house nearly any type of content. Use it to display a title, description, and actions. Group it with the `ItemGroup` component to create a list of items.
|
|
|
|
## Installation
|
|
|
|
<CodeTabs>
|
|
|
|
<TabsList>
|
|
<TabsTrigger value="cli">Command</TabsTrigger>
|
|
<TabsTrigger value="manual">Manual</TabsTrigger>
|
|
</TabsList>
|
|
<TabsContent value="cli">
|
|
|
|
```bash
|
|
npx shadcn@latest add item
|
|
```
|
|
|
|
</TabsContent>
|
|
|
|
<TabsContent value="manual">
|
|
|
|
<Steps className="mb-0 pt-2">
|
|
|
|
<Step>Copy and paste the following code into your project.</Step>
|
|
|
|
<ComponentSource
|
|
name="item"
|
|
title="components/ui/item.tsx"
|
|
styleName="base-nova"
|
|
/>
|
|
|
|
<Step>Update the import paths to match your project setup.</Step>
|
|
|
|
</Steps>
|
|
|
|
</TabsContent>
|
|
|
|
</CodeTabs>
|
|
|
|
## Usage
|
|
|
|
```tsx showLineNumbers
|
|
import {
|
|
Item,
|
|
ItemActions,
|
|
ItemContent,
|
|
ItemDescription,
|
|
ItemMedia,
|
|
ItemTitle,
|
|
} from "@/components/ui/item"
|
|
```
|
|
|
|
```tsx showLineNumbers
|
|
<Item>
|
|
<ItemMedia variant="icon">
|
|
<Icon />
|
|
</ItemMedia>
|
|
<ItemContent>
|
|
<ItemTitle>Title</ItemTitle>
|
|
<ItemDescription>Description</ItemDescription>
|
|
</ItemContent>
|
|
<ItemActions>
|
|
<Button>Action</Button>
|
|
</ItemActions>
|
|
</Item>
|
|
```
|
|
|
|
## Item vs Field
|
|
|
|
Use `Field` if you need to display a form input such as a checkbox, input, radio, or select.
|
|
|
|
If you only need to display content such as a title, description, and actions, use `Item`.
|
|
|
|
## Variant
|
|
|
|
Use the `variant` prop to change the visual style of the item.
|
|
|
|
<ComponentPreview
|
|
styleName="base-nova"
|
|
name="item-variant"
|
|
previewClassName="h-96"
|
|
/>
|
|
|
|
## Size
|
|
|
|
Use the `size` prop to change the size of the item. Available sizes are `default`, `sm`, and `xs`.
|
|
|
|
<ComponentPreview
|
|
styleName="base-nova"
|
|
name="item-size"
|
|
previewClassName="h-96"
|
|
/>
|
|
|
|
## Examples
|
|
|
|
### Icon
|
|
|
|
Use `ItemMedia` with `variant="icon"` to display an icon.
|
|
|
|
<ComponentPreview styleName="base-nova" name="item-icon" />
|
|
|
|
### Avatar
|
|
|
|
You can use `ItemMedia` with `variant="avatar"` to display an avatar.
|
|
|
|
<ComponentPreview styleName="base-nova" name="item-avatar" />
|
|
|
|
### Image
|
|
|
|
Use `ItemMedia` with `variant="image"` to display an image.
|
|
|
|
<ComponentPreview styleName="base-nova" name="item-image" />
|
|
|
|
### Group
|
|
|
|
Use `ItemGroup` to group related items together.
|
|
|
|
<ComponentPreview
|
|
styleName="base-nova"
|
|
name="item-group"
|
|
previewClassName="h-96"
|
|
/>
|
|
|
|
### Header
|
|
|
|
Use `ItemHeader` to add a header above the item content.
|
|
|
|
<ComponentPreview
|
|
styleName="base-nova"
|
|
name="item-header"
|
|
previewClassName="h-96"
|
|
/>
|
|
|
|
### Link
|
|
|
|
Use the `render` prop to render the item as a link. The hover and focus states will be applied to the anchor element.
|
|
|
|
<ComponentPreview styleName="base-nova" name="item-link" />
|
|
|
|
```tsx showLineNumbers
|
|
<Item render={<a href="/dashboard" />}>
|
|
<ItemMedia variant="icon">
|
|
<HomeIcon />
|
|
</ItemMedia>
|
|
<ItemContent>
|
|
<ItemTitle>Dashboard</ItemTitle>
|
|
<ItemDescription>Overview of your account and activity.</ItemDescription>
|
|
</ItemContent>
|
|
</Item>
|
|
```
|
|
|
|
### Dropdown
|
|
|
|
<ComponentPreview styleName="base-nova" name="item-dropdown" />
|
|
|
|
## RTL
|
|
|
|
To enable RTL support in shadcn/ui, see the [RTL configuration guide](/docs/rtl).
|
|
|
|
<ComponentPreview styleName="base-nova" name="item-rtl" direction="rtl" />
|
|
|
|
## API Reference
|
|
|
|
### Item
|
|
|
|
The main component for displaying content with media, title, description, and actions.
|
|
|
|
| Prop | Type | Default |
|
|
| --------- | ----------------------------------- | ----------- |
|
|
| `variant` | `"default" \| "outline" \| "muted"` | `"default"` |
|
|
| `size` | `"default" \| "sm" \| "xs"` | `"default"` |
|
|
| `render` | `React.ReactElement` | |
|
|
|
|
### ItemGroup
|
|
|
|
A container that groups related items together with consistent styling.
|
|
|
|
```tsx
|
|
<ItemGroup>
|
|
<Item />
|
|
<Item />
|
|
</ItemGroup>
|
|
```
|
|
|
|
### ItemSeparator
|
|
|
|
A separator between items in a group.
|
|
|
|
```tsx
|
|
<ItemGroup>
|
|
<Item />
|
|
<ItemSeparator />
|
|
<Item />
|
|
</ItemGroup>
|
|
```
|
|
|
|
### ItemMedia
|
|
|
|
Use `ItemMedia` to display media content such as icons, images, or avatars.
|
|
|
|
| Prop | Type | Default |
|
|
| --------- | -------------------------------- | ----------- |
|
|
| `variant` | `"default" \| "icon" \| "image"` | `"default"` |
|
|
|
|
```tsx
|
|
<ItemMedia variant="icon">
|
|
<Icon />
|
|
</ItemMedia>
|
|
```
|
|
|
|
```tsx
|
|
<ItemMedia variant="image">
|
|
<img src="..." alt="..." />
|
|
</ItemMedia>
|
|
```
|
|
|
|
### ItemContent
|
|
|
|
Wraps the title and description of the item.
|
|
|
|
```tsx
|
|
<ItemContent>
|
|
<ItemTitle>Title</ItemTitle>
|
|
<ItemDescription>Description</ItemDescription>
|
|
</ItemContent>
|
|
```
|
|
|
|
### ItemTitle
|
|
|
|
Displays the title of the item.
|
|
|
|
```tsx
|
|
<ItemTitle>Item Title</ItemTitle>
|
|
```
|
|
|
|
### ItemDescription
|
|
|
|
Displays the description of the item.
|
|
|
|
```tsx
|
|
<ItemDescription>Item description</ItemDescription>
|
|
```
|
|
|
|
### ItemActions
|
|
|
|
Container for action buttons or other interactive elements.
|
|
|
|
```tsx
|
|
<ItemActions>
|
|
<Button>Action</Button>
|
|
</ItemActions>
|
|
```
|
|
|
|
### ItemHeader
|
|
|
|
Displays a header above the item content.
|
|
|
|
```tsx
|
|
<Item>
|
|
<ItemHeader>Header</ItemHeader>
|
|
<ItemContent>...</ItemContent>
|
|
</Item>
|
|
```
|
|
|
|
### ItemFooter
|
|
|
|
Displays a footer below the item content.
|
|
|
|
```tsx
|
|
<Item>
|
|
<ItemContent>...</ItemContent>
|
|
<ItemFooter>Footer</ItemFooter>
|
|
</Item>
|
|
```
|