Skip to main content
Sebuah mod menggambar antarmukanya dari elemen: teks, kotak, tombol, kolom, dan beberapa elemen yang memformat konten untuk Anda. Contoh-contoh di sini menunjukkan kode yang menggambar sebuah elemen, dan sebagian besar disertai tangkapan layar hasilnya di panel terminal, sehingga Anda dapat memilih elemen berdasarkan tampilannya. Untuk mempelajari cara kerja penggambaran, mulailah dengan Menggambar di antarmuka. Untuk props utama dan aplikasi mana yang menggambar setiap elemen, lihat referensi elemen. Deklarasi tipe mencantumkan setiap prop.

Mencoba contoh

Contoh-contoh di halaman ini adalah cuplikan, bukan mod utuh. Masing-masing adalah kode untuk satu elemen dan apa pun yang bersarang di dalamnya. Untuk melihat contoh di terminal Anda sendiri, buat mod kecil dengan langkah-langkah berikut dan tempelkan contoh ke dalamnya. Mod ini menambahkan perintah /gallery yang membuka panel dan menggambar contoh di sana. Panel adalah bilah samping di sebelah transkrip pada terminal layar penuh yang lebar, atau wilayah berbingkai di atas prompt jika tidak.
1

Buat mod

Buat direktori bernama gallery dengan direktori .claude-plugin dan hooks di dalamnya. Membuat mod menjelaskan file-filenya.Simpan manifes sebagai gallery/.claude-plugin/plugin.json:
gallery/.claude-plugin/plugin.json
Tentukan titik masuk Anda di gallery/hooks/hooks.json:
gallery/hooks/hooks.json
Simpan kode sebagai gallery/hooks/register.js. Kode ini menambahkan perintah /gallery yang membuka panel, dan menggambar Plain text di panel tersebut:
gallery/hooks/register.js
2

Jalankan mod

Di shell Anda, jalankan Claude Code dari direktori yang berisi gallery:
Di prompt Claude Code, jalankan /gallery. Sebuah panel terbuka dengan Plain text di dalamnya.
3

Ganti dengan contoh

Salin contoh dari halaman ini. Di register.js, tempelkan contoh tersebut menggantikan Text({ children: ['Plain text'] }), sehingga berada setelah return, lalu simpan file. Claude Code memuat ulang modul setiap kali Anda menyimpan, jadi jalankan /gallery lagi untuk melihat contoh yang baru.

Memilih elemen

Contoh-contoh dikelompokkan berdasarkan apa yang ingin Anda tampilkan di layar:

Menampilkan teks

Tiga elemen menampilkan kata-kata di layar: Text untuk gaya Anda sendiri, Markdown untuk konten yang sudah diformat, dan Link untuk URL.

Text

Text menggambar string dengan gaya yang Anda berikan. Contoh ini menampilkan satu baris untuk setiap gaya:
Panel dengan sembilan baris teks, masing-masing dinamai sesuai gayanya: plain, bold, italic, underline, strikethrough, dimColor berwarna abu-abu, inverse, color merah, dan backgroundColor biru. Panel dengan sembilan baris teks, masing-masing dinamai sesuai gayanya: plain, bold, italic, underline, strikethrough, dimColor berwarna abu-abu, inverse, color merah, dan backgroundColor biru. dimColor menggambar teks berwarna abu-abu. backgroundColor hanya mengisi selebar teks.

Markdown

Markdown memformat teks dengan cara yang sama seperti balasan Claude diformat. Berikan konten di text, bukan di children:
Panel dengan judul tebal, Release notes, lalu sebuah kalimat dengan satu kata tebal dan satu kata kode berwarna, daftar dua item, dan kutipan yang digambar miring dengan bilah di sebelah kirinya. Panel dengan judul tebal, Release notes, lalu sebuah kalimat dengan satu kata tebal dan satu kata kode berwarna, daftar dua item, dan kutipan yang digambar miring dengan bilah di sebelah kirinya. Judul digambar tebal tanpa tanda #. Kode inline digambar berwarna tanpa backtick. Kutipan digambar miring dengan bilah di sebelah kirinya. Link menggambar label diikuti URL-nya:
Panel dengan satu baris: label Claude Code docs, lalu URL berwarna abu-abu. Panel dengan satu baris: label Claude Code docs, lalu URL berwarna abu-abu. Terminal menggambar URL sebagai teks setelah label. Apakah klik akan membukanya bergantung pada terminal pengguna.

Menampilkan kode dan perubahan

Code menggambar teks sumber dengan warna sintaks milik Claude Code sendiri, atau sebuah diff.

Code

Sebutkan language, atau berikan path agar Claude Code menyimpulkannya. Dengan startLine, baris-baris diberi nomor mulai dari angka tersebut:
Panel dengan dua baris JavaScript bernomor dalam warna sintaks. Panel dengan dua baris JavaScript bernomor dalam warna sintaks. Warnanya berasal dari tema pengguna.

Code sebagai diff

Dengan format: 'diff', source adalah satu atau beberapa hunk unified diff:
Panel dengan diff empat baris. Baris yang dihapus diberi bayangan merah dan baris yang ditambahkan hijau, masing-masing dengan nomor barisnya. Pada baris yang ditambahkan, kata-kata that runs code memiliki bayangan yang lebih kuat. Panel dengan diff empat baris. Baris yang dihapus diberi bayangan merah dan baris yang ditambahkan hijau, masing-masing dengan nomor barisnya. Pada baris yang ditambahkan, kata-kata that runs code memiliki bayangan yang lebih kuat. Claude Code menggambar nomor baris sebagai pengganti baris @@. Jika baris yang dihapus dan baris yang ditambahkan mirip, kata-kata yang berubah mendapat bayangan yang lebih kuat.

Mengatur elemen

Box

Box menata isinya dalam baris atau kolom, dan dapat menggambar bingkai. Contoh ini menempatkan sebaris kata di atas kotak berbingkai:
Panel dengan tiga kata dalam satu baris, berjarak empat kolom, lalu satu baris kosong, lalu bingkai membulat di sekitar satu baris teks. Bingkai membentang selebar panel. Panel dengan tiga kata dalam satu baris, berjarak empat kolom, lalu satu baris kosong, lalu bingkai membulat di sekitar satu baris teks. Bingkai membentang selebar panel. Bingkai membentang selebar panel.

Menerima input

Button, Input, dan Select adalah kontrol: pengguna berpindah di antaranya dengan Tab dan menggunakan kontrol yang sedang memiliki fokus. Fokus keyboard dan hotkey menjelaskan tombol mana yang mencapainya. Membuka panel dengan focus: true memberikan fokus keyboard ke panel tersebut. Huruf yang diketik mencapai Input setelah kontrol itu memiliki fokus, jadi tambahkan autoFocus: true pada kolom yang harus menerima ketikan segera setelah panel terbuka.

Button

Sebuah tombol menjalankan onPress. Contoh ini menampilkan bentuk default, tombol plain dengan hotkey, dan tombol redup:
Panel dengan tiga tombol, satu per baris: Save dalam kurung siku, n: Next tanpa kurung siku dengan huruf n berwarna, dan Skip dalam kurung siku berwarna abu-abu. Panel dengan tiga tombol, satu per baris: Save dalam kurung siku, n: Next tanpa kurung siku dengan huruf n berwarna, dan Skip dalam kurung siku berwarna abu-abu. Tombol yang memiliki fokus digambar dalam video terbalik. Di sini pengguna telah menekan Tab dua kali: Tiga tombol yang sama, dengan tombol kedua, n: Next, digambar dalam video terbalik. Tiga tombol yang sama, dengan tombol kedua, n: Next, digambar dalam video terbalik.

Input

Input adalah kolom teks satu baris yang menjalankan onSubmit saat pengguna menekan Enter:
Tanpa fokus, kolom menampilkan label dan placeholder-nya: Panel dengan satu baris: label Title, lalu placeholder Type a title and press Enter berwarna abu-abu. Panel dengan satu baris: label Title, lalu placeholder Type a title and press Enter berwarna abu-abu. Dengan fokus, label menjadi tebal, kursor muncul, dan submitLabel ditampilkan setelah ⏎: Kolom yang sama dengan label tebal, kursor blok pada huruf pertama placeholder, dan tanda return diikuti kata save. Kolom yang sama dengan label tebal, kursor blok pada huruf pertama placeholder, dan tanda return diikuti kata save. Mengetik menggantikan placeholder: Kolom yang sama berisi huruf yang diketik Rel, diikuti tanda return dan kata save. Kolom yang sama berisi huruf yang diketik Rel, diikuti tanda return dan kata save.

Select

Select memungkinkan pengguna memilih salah satu dari beberapa opsi, dan menjalankan onSelect dengan value dari opsi tersebut:
Dalam keadaan tertutup, kontrol ini menampilkan label dan opsi saat ini: Panel dengan satu baris: label Format, opsi saat ini Markdown, dan panah bawah kecil. Panel dengan satu baris: label Format, opsi saat ini Markdown, dan panah bawah kecil. Dalam keadaan terbuka, kontrol ini mencantumkan opsinya dan menandai salah satunya: Pemilih terbuka, dengan tiga opsinya tercantum di bawah label. Opsi kedua, HTML, digambar dalam video terbalik. Pemilih terbuka, dengan tiga opsinya tercantum di bawah label. Opsi kedua, HTML, digambar dalam video terbalik. Setelah pengguna memilih opsi, daftar tertutup: Pemilih tertutup kembali, kini menampilkan HTML sebagai opsi saat ini. Pemilih tertutup kembali, kini menampilkan HTML sebagai opsi saat ini.

Menggambar gambar

Raster

Raster adalah kisi sel karakter berwarna, untuk peta panas, sparkline, atau papan permainan. Terminal yang menggambarnya. Contoh ini menggunakan fungsi cellsOf di modul awal, yang mengemas sel-sel ke dalam string yang diterima Raster. Menggambar kisi sel berwarna menjelaskannya:
Panel dengan kisi kecil blok berwarna, dua baris berisi tiga: hijau, kuning tua, dan merah, lalu hijau, hijau, dan kuning tua. Panel dengan kisi kecil blok berwarna, dua baris berisi tiga: hijau, kuning tua, dan merah, lalu hijau, hijau, dan kuning tua. Raster membulatkan setiap warna ke palet yang lebih kecil, sehingga 0x2e7d32 digambar sebagai #337733.

Svg

Svg menggambar dokumen SVG di aplikasi Desktop:
Di terminal, panel yang hanya mengembalikan Svg akan terbuka kosong. Untuk menggambar sesuatu yang lain di sana, periksa e.surface dan kembalikan tree yang berbeda.

Image dan Client

Dua elemen lagi tidak memiliki contoh di sini. Image menggambar PNG atau piksel mentah di terminal. Client adalah wilayah yang digambar oleh file kedua milik Anda, untuk animasi dan input penunjuk. Referensi elemen mencantumkan props-nya.

Melihat di mana mod dapat menggambar

Semua contoh menggambar di panel. Mod juga dapat menggambar di tempat lain, dan memanggil Claude Code untuk menampilkan sesuatu untuknya:

Langkah selanjutnya