Kliping
KlipingBerandaDokumentasiKomponenBlocksVariasiTemplateDice UIHooks
Bagian
  • Pengenalan
  • Komponen
  • Instalasi
  • Tema & Kustomisasi
  • Mode Gelap
  • CLI
  • RTL
  • Skills
  • Server MCP
  • Form
  • Catatan Perubahan
Instalasi
  • Vite
  • Nuxt
  • Astro
  • Laravel
  • Manual
Mode Gelap
  • Vite
  • Nuxt
  • Vitepress
  • Astro
Form
  • VeeValidate
  • TanStack Form
  • Formisch
Registry
  • Ikhtisar
  • Memulai
  • Contoh
  • registry.json
  • registry-item.json
  • Tanya Jawab
Utilitas
  • scroll-fade
  • shimmer
Lainnya
  • components.json
  • JavaScript
  • Figma
  • Direktori Registry
  • Warna
  • Typeset
  • Dokumentasi Lama
  • Tentang
  • Kredit
  • Kontribusi
Komponen
  • Accordion
  • Alert
  • Alert Dialog
  • Aspect Ratio
  • Attachment
  • Avatar
  • Badge
  • Breadcrumb
  • Bubble
  • Button
  • Button Group
  • Calendar
  • Card
  • Carousel
  • Chart
  • Checkbox
  • Collapsible
  • Combobox
  • Command
  • Context Menu
  • Data Table
  • Date Picker
  • Dialog
  • Drawer
  • Dropdown Menu
  • Empty
  • Field
  • Form
  • Hover Card
  • Input
  • Input Group
  • Input OTP
  • Item
  • Kbd
  • Label
  • Marker
  • Menubar
  • Message
  • Message Scroller
  • Native Select
  • Navigation Menu
  • Number Field
  • Pagination
  • Pin Input
  • Popover
  • Progress
  • Questionnaire
  • Radio Group
  • Range Calendar
  • Resizable
  • Scroll Area
  • Select
  • Separator
  • Sheet
  • Sidebar
  • Skeleton
  • Slider
  • Sonner
  • Spinner
  • Stepper
  • Switch
  • Table
  • Tabs
  • Tags Input
  • Textarea
  • Toast
  • Toggle
  • Toggle Group
  • Tooltip
  • Typography

Button Group

SebelumnyaBerikutnya

Wadah yang menyatukan beberapa tombol terkait dengan tampilan yang seragam.

Instalasi ​

bash
npx shadcn-vue@latest add button-group

Pasang dependensi berikut:

bash
npm install reka-ui

Salin dan tempel kode sumber di GitHub ke project Anda.

Sesuaikan path import dengan struktur project Anda.

Penggunaan ​

vue
<script setup lang="ts">
import {
  ButtonGroup,
  ButtonGroupSeparator,
  ButtonGroupText,
} from '@/components/ui/button-group'
</script>

<template>
  <ButtonGroup>
    <Button>Button 1</Button>
    <Button>Button 2</Button>
  </ButtonGroup>
</template>

Aksesibilitas ​

  • Komponen ButtonGroup memakai atribut role bernilai group.
  • Pakai Tab untuk berpindah antar tombol di dalam grup.
  • Pakai aria-label atau aria-labelledby untuk memberi label pada button group.
vue
<template>
  <ButtonGroup aria-label="Button group">
    <Button>Button 1</Button>
    <Button>Button 2</Button>
  </ButtonGroup>
</template>

ButtonGroup dibanding ToggleGroup ​

  • Pakai ButtonGroup kalau tombol-tombol yang Anda kelompokkan menjalankan sebuah aksi.
  • Pakai ToggleGroup kalau tombol-tombolnya berfungsi menyalakan dan mematikan sebuah keadaan.

Contoh ​

Orientasi ​

Atur prop orientation untuk mengubah susunan button group.

Ukuran ​

Ukuran tombol diatur lewat prop size pada masing-masing tombol.

Bersarang ​

Susun <ButtonGroup> secara bersarang untuk membuat kelompok tombol yang berjarak.

Separator ​

Komponen ButtonGroupSeparator memisahkan tombol-tombol di dalam satu grup secara visual.

Tombol bervarian outline tidak butuh pemisah karena sudah punya garis tepi. Untuk varian lain, pemisah disarankan agar hierarki visualnya lebih jelas.

Tombol Terbelah ​

Buat tombol terbelah dengan menaruh dua tombol yang dipisahkan ButtonGroupSeparator.

Input ​

Bungkus komponen Input bersama beberapa tombol.

Input Group ​

Bungkus komponen InputGroup untuk membuat susunan input yang lebih rumit.

Dropdown Menu ​

Buat tombol terbelah yang dipadukan dengan komponen DropdownMenu.

Select ​

Padukan dengan komponen Select.

Popover ​

Padukan dengan komponen Popover.

Referensi API ​

ButtonGroup ​

Komponen ButtonGroup adalah wadah yang menyatukan tombol-tombol terkait dengan tampilan seragam.

PropTypeDefault
orientation"horizontal" | "vertical""horizontal"
vue
<template>
  <ButtonGroup>
    <Button>Button 1</Button>
    <Button>Button 2</Button>
  </ButtonGroup>
</template>

Susun beberapa button group secara bersarang untuk membuat tata letak berjarak yang lebih rumit. Lihat contoh bersarang untuk detailnya.

vue
<template>
  <ButtonGroup>
    <ButtonGroup />
    <ButtonGroup />
  </ButtonGroup>
</template>

ButtonGroupSeparator ​

Komponen ButtonGroupSeparator memisahkan tombol-tombol di dalam satu grup secara visual.

PropTypeDefault
orientation"horizontal" | "vertical"vertical
vue
<template>
  <ButtonGroup>
    <Button>Button 1</Button>
    <ButtonGroupSeparator />
    <Button>Button 2</Button>
  </ButtonGroup>
</template>

ButtonGroupText ​

Pakai komponen ini untuk menampilkan teks di dalam button group.

PropTypeDefault
as-childbooleanfalse
vue
<template>
  <ButtonGroup>
    <ButtonGroupText>Text</ButtonGroupText>
    <Button>Button</Button>
  </ButtonGroup>
</template>

Pakai prop as-child untuk menampilkan komponen Anda sendiri sebagai teksnya, misalnya sebuah label.

vue
<script setup lang="ts">
import { ButtonGroupText } from '@/components/ui/button-group'
import { Label } from '@/components/ui/label'
</script>

<template>
  <ButtonGroup>
    <ButtonGroupText as-child>
      <Label for="name">Text</Label>
    </ButtonGroupText>
    <Input id="name" placeholder="Type something here..." />
  </ButtonGroup>
</template>
ButtonCalendar

Di halaman ini

InstalasiPenggunaanAksesibilitasButtonGroup dibanding ToggleGroupContohOrientasiUkuranBersarangSeparatorTombol TerbelahInputInput GroupDropdown MenuSelectPopoverReferensi APIButtonGroupButtonGroupSeparatorButtonGroupText
Dirilis di bawah lisensi MIT. Ditulis ulang untuk Vue dari shadcn-vue, shadcn-ui-blocks, dan shadcn-hooks. Hak cipta © 2026 Kliping