Skip to content

Item

Komponen serbaguna untuk menampilkan konten apa pun dalam satu baris.

Komponen Item pada dasarnya adalah wadah flex sederhana yang bisa memuat konten apa pun. Pakai untuk menampilkan judul, keterangan, dan aksi. Kelompokkan dengan ItemGroup untuk membentuk daftar item.

Hasil serupa sebenarnya bisa dicapai dengan elemen div dan beberapa class. Tapi pola ini terlalu sering dipakai, jadi lebih praktis kalau sudah tersedia sebagai komponen siap pakai.

Basic Item

A simple item with title and description.

Your profile has been verified.

Instalasi

CLI

bash
npx shadcn-vue@latest add item

Manual

Salin dan tempel kode sumber di GitHub ke project Anda.

Sesuaikan path import dengan struktur project Anda.

Penggunaan

vue
<script setup lang="ts">
import {
  Item,
  ItemContent,
  ItemDescription,
  ItemFooter,
  ItemHeader,
  ItemMedia,
  ItemTitle,
} from '@/components/ui/item'
</script>

<template>
  <Item>
    <ItemHeader>Item Header</ItemHeader>
    <ItemMedia />
    <ItemContent>
      <ItemTitle>Item</ItemTitle>
      <ItemDescription>Item</ItemDescription>
    </ItemContent>
    <ItemFooter>Item Footer</ItemFooter>
  </Item>
</template>

Contoh

Varian

Default Variant

Standard styling with subtle background and borders.

Outline Variant

Outlined style with clear borders and transparent background.

Muted Variant

Subdued appearance with muted colors for secondary content.

Ukuran

Komponen Item punya beberapa ukuran untuk kebutuhan berbeda. Ukuran sm cocok untuk item ringkas, sedangkan default untuk item biasa.

Basic Item

A simple item with title and description.

Your profile has been verified.

Icon

Security Alert

New login detected from unknown device.

Avatar

ER
Evil Rabbit

Last seen 5 months ago

ER
No Team Members

Invite your team to collaborate on this project.

Image

Grup

s
shadcn

shadcn@vercel.com

m
maxleiter

maxleiter@vercel.com

e
evilrabbit

evilrabbit@vercel.com

Untuk menampilkan item sebagai tautan, pakai prop as-child. State hover dan focus akan diterapkan pada elemen anchor-nya.

Referensi API

Item

Komponen utama untuk menampilkan konten beserta media, judul, keterangan, dan aksinya.

PropTipeBawaan
variant"default" | "outline" | "muted""default"
size"default" | "sm""default"
as-childbooleanfalse
vue
<template>
  <Item size="" variant="">
    <ItemMedia />
    <ItemContent>
      <ItemTitle>Item</ItemTitle>
      <ItemDescription>Item</ItemDescription>
    </ItemContent>
    <ItemActions />
  </Item>
</template>

Pakai prop as-child untuk menampilkan komponen Anda sendiri sebagai item, misalnya sebuah tautan. State hover dan focus akan diterapkan pada komponen tersebut.

vue
<script setup lang="ts">
import {
  Item,
  ItemContent,
  ItemDescription,
  ItemMedia,
  ItemTitle,
} from '@/components/ui/item'
</script>

<template>
  <Item as-child>
    <a href="/dashboard">
      <ItemMedia variant="icon">
        <Home />
      </ItemMedia>
      <ItemContent>
        <ItemTitle>Dashboard</ItemTitle>
        <ItemDescription>
          Overview of your account and activity.
        </ItemDescription>
      </ItemContent>
    </a>
  </Item>
</template>

ItemGroup

Komponen ItemGroup adalah wadah yang menyatukan item-item terkait dengan tampilan seragam.

PropTipeBawaan
classstring
vue
<template>
  <ItemGroup>
    <Item />
    <Item />
  </ItemGroup>
</template>

ItemSeparator

Komponen ItemSeparator adalah pemisah antar item di dalam sebuah item group.

PropTipeBawaan
classstring
vue
<template>
  <ItemGroup>
    <Item />
    <ItemSeparator />
    <Item />
  </ItemGroup>
</template>

ItemMedia

Pakai komponen ItemMedia untuk menampilkan media seperti ikon, gambar, atau avatar.

PropTipeBawaan
variant"default" | "icon" | "image""default"
classstring
vue
<template>
  <ItemMedia variant="icon">
    <Icon />
  </ItemMedia>
</template>
vue
<template>
  <ItemMedia variant="image">
    <img src="..." alt="...">
  </ItemMedia>
</template>

ItemContent

Komponen ItemContent membungkus judul dan keterangan item.

ItemContent boleh dilewati kalau Anda hanya butuh judul saja.

PropTipeBawaan
classstring
vue
<template>
  <ItemContent>
    <ItemTitle>Item</ItemTitle>
    <ItemDescription>Item</ItemDescription>
  </ItemContent>
</template>

ItemTitle

Pakai komponen ItemTitle untuk menampilkan judul item.

PropTipeBawaan
classstring
vue
<template>
  <ItemTitle>Item Title</ItemTitle>
</template>

ItemDescription

Pakai komponen ItemDescription untuk menampilkan keterangan item.

PropTipeBawaan
classstring
vue
<template>
  <ItemDescription>Item description</ItemDescription>
</template>

ItemActions

Pakai komponen ItemActions untuk menampilkan tombol aksi atau elemen interaktif lainnya.

PropTipeBawaan
classstring
vue
<template>
  <ItemActions>
    <Button>Action</Button>
    <Button>Action</Button>
  </ItemActions>
</template>

ItemHeader

Pakai komponen ItemHeader untuk menampilkan header di dalam item.

PropTipeBawaan
classstring
vue
<template>
  <ItemHeader>Item Header</ItemHeader>
</template>

ItemFooter

Pakai komponen ItemFooter untuk menampilkan footer di dalam item.

PropTipeBawaan
classstring
vue
<template>
  <ItemFooter>Item Footer</ItemFooter>
</template>

Dirilis di bawah lisensi MIT. Fork dari shadcn-vue.