kliping.pro
  • Docs
  • Explore
  • Builder
  • Directory
  • Colors
  • Typeset
Saved
Docs
  • Sections13
  • Installation5
  • Dark Mode4
  • Forms3
  • Registry6
  • Utilities2
  • More10
  • Components137
  • Accordion
  • Action Bar
  • AI Chat
  • AI Thread List
  • Alert
  • Alert Dialog
  • Angle Slider
  • Animated Grid Pattern
  • Aspect Ratio
  • Attachment
  • Avatar
  • Avatar Group
  • Badge
  • Badge Overflow
  • Banner
  • Border Beam
  • Breadcrumb
  • Bubble
  • Button
  • Button Group
  • Calendar
  • Card
  • Carousel
  • Chart
  • Checkbox
  • Checkbox Group
  • Chip
  • Circular Progress
  • Client Only
  • Collapsible
  • Color Picker
  • Color Swatch
  • Combobox
  • Combobox Advanced
  • Command
  • Compare Slider
  • Composition
  • Context Menu
  • Cropper
  • Data Grid
  • Data Table
  • Data Table Advanced
  • Date Picker
  • Dialog
  • Direction Provider
  • Dot Pattern
  • Drawer
  • Dropdown Menu
  • Editable
  • Empty
  • Field
  • File Upload
  • Form
  • FPS
  • Gauge
  • Hitbox
  • Hover Card
  • Input
  • Input Group
  • Input OTP
  • Item
  • Kanban
  • Kbd
  • Kbd Advanced
  • Key Value
  • Label
  • List
  • Listbox
  • Logos
  • Map
  • Marker
  • Marquee
  • Mask Input
  • Masonry
  • Media Player
  • Mention
  • Menubar
  • Message
  • Message Scroller
  • Native Select
  • Navigation Menu
  • Number Field
  • Pagination
  • Particles
  • Pending
  • Phone Input
  • Pin Input
  • Popover
  • Portal
  • Presence
  • Progress
  • QR Code
  • Questionnaire
  • Radio Group
  • Range Calendar
  • Rating
  • Relative Time Card
  • Resizable
  • Responsive Dialog
  • Scroll Area
  • Scroll Spy
  • Scroller
  • Segmented Input
  • Select
  • Selection Toolbar
  • Separator
  • Sheet
  • Sidebar
  • Skeleton
  • Slider
  • Software Purchase Card
  • Sonner
  • Sortable
  • Speed Dial
  • Spinner
  • Stack
  • Stat
  • Status
  • Stepper
  • Stepper Advanced
  • Swap
  • Switch
  • Table
  • Tabs
  • Tags Input
  • Tags Input Advanced
  • Textarea
  • Time Picker
  • Timeline
  • Toast
  • Toggle
  • Toggle Group
  • Tooltip
  • Tour
  • Typography
  • Visually Hidden
  • Visually Hidden Input
  1. Docs
  2. Components
  3. Button Group

Button Group

PreviousNext

Wadah yang menyatukan beberapa tombol terkait dengan tampilan yang seragam.

Installation ​

pnpm dlx kliping@latest add button-group

Pasang dependensi berikut:

pnpm add reka-ui

Salin dan tempel kode sumber di GitHub ke project Anda.

Sesuaikan path import dengan struktur project Anda.

Usage ​

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>

Accessibility ​

  • 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.

Examples ​

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.

Requirements ​

Semua dipasang otomatis oleh kliping add; tabel ini untuk Anda yang memasang manual atau memeriksa project.

RequirementValue
ProjectVue 3.5+, Tailwind CSS v4, alias @ — disiapkan kliping init
npm packages@vueuse/core@^14.4.0, class-variance-authority@^0.7.1, reka-ui@^2.10.3
Kliping itemsseparator
Filescomponents/ui/button-group/button-group.vue
components/ui/button-group/button-group-separator.vue
components/ui/button-group/button-group-text.vue
components/ui/button-group/index.ts

Anatomy ​

Susunan bagiannya seperti dipakai di contoh-contoh di atas. Impor semua bagian dari satu tempat, lalu susun begini:

vue
<ButtonGroup>
  <ButtonGroup />
  <ButtonGroupSeparator />
  <ButtonGroupText />
</ButtonGroup>

API Reference ​

ButtonGroup ​

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

PropTypeDefaultDescription
orientation?"vertical" | "horizontal"—The layout direction.
SlotProps
#default—
Data attributeValue
[data-slot]"button-group"
[data-orientation]"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.

PropTypeDefaultDescription
orientation?DataOrientation"vertical"Orientation of the component. Either vertical or horizontal. Defaults to horizontal.
decorative?boolean—Whether or not the component is purely decorative.
When true, accessibility-related attributes are updated so that that the rendered element is removed from the accessibility tree.
asChild?boolean—Change the default rendered element for the one passed as a child, merging their props and behavior. Read our Composition guide for more details.
as?AsTag | Component—The element or component this component should render as. Can be overwritten by asChild.
Data attributeValue
[data-slot]"button-group-separator"
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.

PropTypeDefaultDescription
orientation?"vertical" | "horizontal"—The layout direction.
asChild?boolean—Change the default rendered element for the one passed as a child, merging their props and behavior. Read our Composition guide for more details.
as?AsTag | Component"div"The element or component this component should render as. Can be overwritten by asChild.
SlotProps
#default—
Data attributeValue
[data-orientation]"vertical" | "horizontal"
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>

CSS Variables ​

Token tema yang dibaca komponen ini — ubah nilainya di CSS global (:root dan .dark, lihat Theming) untuk mengubah tampilannya tanpa menyentuh komponennya: --border, --input, --muted, --radius.

Credits ​

Berasal dari shadcn-vue (MIT, Copyright (c) 2023 unovue). Rantai lengkapnya di Credits.

PreviousButtonNext Calendar

On This Page

InstallationUsageAccessibilityButtonGroup dibanding ToggleGroupExamplesOrientasiUkuranBersarangSeparatorTombol TerbelahInputInput GroupDropdown MenuSelectPopoverRequirementsAnatomyAPI ReferenceButtonGroupButtonGroupSeparatorButtonGroupTextCSS VariablesCredits

© 2026 Kliping. Free components are open source under the MIT License.

LicenseCreditsRoadmap