kliping.pro
  • Docs
  • Directory
  • Colors
  • Typeset
Docs
    • Accordion
    • Action Bar
    • Alert
    • Alert Dialog
    • Angle Slider
    • Aspect Ratio
    • Attachment
    • Avatar
    • Avatar Group
    • Badge
    • Badge Overflow
    • Banner
    • 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
    • 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
    • Map
    • Marker
    • Marquee
    • Mask Input
    • Masonry
    • Media Player
    • Mention
    • Menubar
    • Message
    • Message Scroller
    • Native Select
    • Navigation Menu
    • Number Field
    • Pagination
    • 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

Marker

PreviousNext

Menampilkan status sebaris, catatan sistem, baris berbingkai, atau pemisah berlabel di dalam percakapan.

Switched to a new branch
Thinking...
Conversation compacted
Explored 4 files

Installation ​

pnpm dlx shadcn-vue@latest add marker

Salin dan tempel kode sumber di GitHub ke project Anda.

Sesuaikan path import dengan struktur project Anda.

Usage ​

vue
<script setup lang="ts">
import { Marker, MarkerContent, MarkerIcon, } from '@/components/ui/marker'
</script>

<template>
  <Marker>
    <MarkerIcon>
      <CheckIcon />
    </MarkerIcon>
    <MarkerContent>Explored 4 files</MarkerContent>
  </Marker>
</template>
1
2
3
4
5
6
7
8
9
10
11
12

Composition ​

Susunan berikut adalah cara membangun sebuah marker:

text
Marker
├── MarkerIcon
└── MarkerContent

Features ​

  • Tersedia varian marker sebaris, baris bergaris tepi, dan pemisah berlabel.
  • Slot ikon dekoratif yang disembunyikan dari teknologi bantu.
  • Elemen akar polimorfik lewat render, untuk marker berupa tautan dan tombol.
  • Bisa dipadukan dengan utility shimmer untuk teks status yang mengalir.
  • Style tiap bagian bisa disesuaikan lewat prop class.

Examples ​

Varian ​

Pakai variant untuk berpindah antara marker sebaris, baris bergaris tepi, dan pemisah berlabel.

A default marker for inline notes.
A separator marker
A border marker for row boundaries.
VariantDescription
defaultAn inline marker for status, notes, and actions.
borderA default marker with a bottom border under the row.
separatorA centered label with divider lines on each side.

Status ​

Isi role="status" dan sertakan Spinner pada marker yang sedang berjalan, supaya pembaruannya ikut dibacakan.

Compacting conversation
Running tests

Shimmer ​

Tambahkan utility class shimmer pada MarkerContent untuk efek teks mengalir. Cara pemasangannya ada di dokumentasi shimmer.

Thinking...
Reading 4 files

Separator ​

Pakai varian separator untuk pembatas berlabel di dalam percakapan, misalnya tanggal atau jeda antar bagian.

Today
Worked for 42s
Conversation compacted

Garis Tepi ​

Pakai varian border untuk baris status yang tetap mengikuti perataan marker bawaan sekaligus memisahkan baris berikutnya.

Switched to release-candidate
Reviewed 8 related files
Opened implementation notes

Dengan Ikon ​

Pakai MarkerIcon untuk menampilkan ikon di samping konten. Pakai flex-col kalau ikonnya ingin ditumpuk di atas konten.

Switched to a new branch
Explored 4 files
Syncing completed

Tautan dan Tombol ​

Ubah marker menjadi tautan atau tombol lewat prop render pada Marker.

View the pull request
tsx
import { Marker, MarkerContent } from "@/components/ui/marker"

<template>
  <Marker as-child>
    <a href="#links-and-buttons">
      <MarkerIcon>
        <GitBranchIcon />
      </MarkerIcon>
      <MarkerContent>View the pull request</MarkerContent>
    </a>
  </Marker>
</template>
1
2
3
4
5
6
7
8
9
10
11
12

Accessibility ​

Marker bersifat presentasional secara bawaan. Makna yang tepat bergantung pada cara Anda memakainya, jadi pilih role sesuai maksudnya, bukan mengandalkan satu nilai bawaan.

Status dan Progres ​

Untuk marker yang sedang berjalan seperti "Sedang berpikir..." atau tool yang aktif, isi role="status" supaya teknologi bantu membacakan pembaruannya begitu muncul. Marker meneruskan role ke elemen di baliknya.

tsx
<Marker role="status">
  <MarkerIcon>
    <Spinner />
  </MarkerIcon>
  <MarkerContent>Compacting conversation</MarkerContent>
</Marker>
1
2
3
4
5
6

Pemisah Berlabel ​

Pemisah yang memuat teks — misalnya tanggal atau label bagian — tidak butuh role. Garis pembatasnya hanya pseudo-element CSS yang dekoratif, dan teksnya dibacakan sebagai konten biasa.

tsx
<Marker variant="separator">
  <MarkerContent>Today</MarkerContent>
</Marker>
1
2
3

Catatan: jangan menambahkan role="separator" pada pembatas berlabel. Sebuah separator mengambil nama aksesibelnya dari aria-label, bukan dari teksnya, dan isinya dianggap presentasional — sehingga label yang terlihat justru tidak akan dibacakan. Simpan role="separator" untuk pembatas yang memang tanpa teks bermakna.

Marker Bergaris Tepi ​

Marker bergaris tepi punya makna yang sama dengan marker biasa. Garis bawahnya dekoratif, jadi pilih role="status", render, atau tanpa role sama sekali, sesuai tujuan markernya.

tsx
<Marker variant="border">
  <MarkerIcon>
    <FileTextIcon />
  </MarkerIcon>
  <MarkerContent>Opened implementation notes</MarkerContent>
</Marker>
1
2
3
4
5
6

Ikon Dekoratif ​

MarkerIcon bersifat dekoratif dan disembunyikan dari teknologi bantu lewat aria-hidden, jadi maknanya dipegang MarkerContent di sebelahnya. Untuk marker yang hanya berisi ikon, berilah aria-label atau teks yang terlihat supaya tidak terbaca kosong.

tsx
<Marker aria-label="Synced">
  <MarkerIcon>
    <CheckIcon />
  </MarkerIcon>
</Marker>
1
2
3
4
5

Marker yang Interaktif ​

Kalau marker berfungsi sebagai tautan atau pemicu aksi, tampilkan sebagai <button> atau <a> sungguhan lewat prop render, supaya bisa di-focus dan punya role yang benar. Nama aksesibelnya diambil dari teks marker.

tsx
<Marker as-child>
  <a href="/files" >
    <MarkerIcon>
      <FileTextIcon />
    </MarkerIcon>
    <MarkerContent>Explored 4 files</MarkerContent>
  </a>
</Marker>
1
2
3
4
5
6
7
8

API Reference ​

Marker ​

Elemen akar marker. Berkasnya juga mengekspor markerVariants supaya style marker bisa Anda pakai ulang di komponen sendiri.

PropTypeDefaultDescription
variant"default" | "border" | "separator""default"The marker layout.
renderReactElement | function-Render as a different element, such as a link.
classstring-Additional classes to apply to the root element.

MarkerIcon ​

Slot ikon dekoratif. Disembunyikan dari teknologi bantu lewat aria-hidden.

PropTipeBawaanDescription
classstring-Additional classes to apply to the icon slot.

MarkerContent ​

Isi teks marker.

PropTipeBawaanDescription
classstring-Additional classes to apply to the content slot.
PreviousMapNext Marquee

On This Page

InstallationUsageCompositionFeaturesExamplesVarianStatusShimmerSeparatorGaris TepiDengan IkonTautan dan TombolAccessibilityStatus dan ProgresPemisah BerlabelMarker Bergaris TepiIkon DekoratifMarker yang InteraktifAPI ReferenceMarkerMarkerIconMarkerContent
Dirilis di bawah lisensi MIT. Ditulis ulang untuk Vue dari shadcn-vue, shadcn-ui-blocks, dan shadcn-hooks. Hak cipta © 2026 Kliping