试用示例
本页的示例是代码片段,而非完整的 mod。每个示例都是一个元素及其内部嵌套内容的代码。 要在您自己的终端中查看示例,请按以下步骤创建一个小型 mod,并将示例粘贴进去。该 mod 会添加一个/gallery 命令,用于打开一个窗格并在其中绘制示例。窗格在宽屏全屏终端中是会话记录旁边的侧边栏,在其他情况下则是输入框上方带边框的区域。
1
创建 mod
创建一个名为 在 将代码保存为
gallery 的目录,并在其中创建 .claude-plugin 和 hooks 目录。创建 mod 介绍了这些文件。将清单保存为 gallery/.claude-plugin/plugin.json:gallery/.claude-plugin/plugin.json
gallery/hooks/hooks.json 中指定入口文件:gallery/hooks/hooks.json
gallery/hooks/register.js。它会添加一个打开窗格的 /gallery 命令,并在该窗格中绘制 Plain text:gallery/hooks/register.js
2
运行 mod
在 shell 中,从包含 在 Claude Code 输入框中运行
gallery 的目录启动 Claude Code:/gallery。一个窗格随即打开,其中显示 Plain text。3
替换为示例
从本页复制一个示例。在
register.js 中,将其粘贴以替换 Text({ children: ['Plain text'] }),使其位于 return 之后,然后保存文件。每次保存时 Claude Code 都会重新加载该模块,因此再次运行 /gallery 即可查看新示例。选择元素
示例按您想在屏幕上显示的内容分组:- 显示文本:
Text、Markdown和Link - 显示代码和更改:
Code - 排列元素:
Box - 接收输入:
Button、Input和Select - 绘制图形:
Raster、Svg、Image和Client
显示文本
有三个元素可在屏幕上显示文字:Text 用于自定义样式,Markdown 用于已格式化的内容,Link 用于 URL。
Text
Text 使用您指定的样式绘制字符串。此示例每种样式显示一行:


dimColor 以灰色绘制文本。backgroundColor 的填充宽度仅与文本相同。
Markdown
Markdown 按照 Claude 回复的格式来格式化文本。请通过 text 而非 children 传入内容:


# 标记。行内代码以彩色绘制,不显示反引号。引用以斜体绘制,左侧带一条竖线。
Link
Link 绘制一个标签,后跟其 URL:


显示代码和更改
Code 使用 Claude Code 自己的语法配色绘制源代码文本或 diff。
Code
指定 language,或传入 path 让 Claude Code 据此推断语言。使用 startLine 时,行号从该数字开始:


以 diff 形式使用 Code
使用 format: 'diff' 时,source 是一个或多个 unified diff hunk:


@@ 行进行绘制。当删除的行与添加的行相似时,发生变化的词会以更深的底纹显示。
排列元素
Box
Box 将其内部内容按行或列排布,并可绘制边框。此示例在一个带边框的框上方放置了一行文字:


接收输入
Button、Input 和 Select 是控件:用户通过 Tab 键在它们之间移动,并操作获得焦点的那个控件。键盘焦点和快捷键介绍了哪些按键会传递给它们。
使用 focus: true 打开窗格会让该窗格获得键盘焦点。Input 获得焦点后才能接收键入的字母,因此对于应在窗格打开后立即接收输入的输入框,请添加 autoFocus: true。
Button
按钮会运行 onPress。此示例展示了默认形式、带快捷键的 plain 按钮,以及一个暗淡的按钮:




Input
Input 是单行文本输入框,用户按 Enter 时会运行 onSubmit:


⏎ 之后显示 submitLabel:




Select
Select 让用户从多个选项中选择一个,并以该选项的 value 运行 onSelect:






绘制图形
Raster
Raster 是由彩色字符单元格组成的网格,可用于热力图、迷你折线图或游戏棋盘。由终端负责绘制。此示例使用了起始模块中的 cellsOf 函数,该函数会将单元格打包成 Raster 所需的字符串。绘制彩色单元格网格对此进行了说明:


Raster 会将每种颜色近似到一个较小的调色板,因此 0x2e7d32 会绘制为 #337733。
Svg
Svg 在 Desktop 应用中绘制 SVG 文档:
Svg 的窗格打开后是空的。要在那里绘制其他内容,请检查 e.surface 并返回不同的元素树。
Image 和 Client
另有两个元素在此没有示例。Image 在终端中绘制 PNG 或原始像素。Client 是由您的另一个文件负责绘制的区域,用于动画和指针输入。元素参考列出了它们的 props。
了解 mod 可以在哪里绘制
这些示例都在窗格中绘制。mod 还可以在其他位置绘制,并可调用 Claude Code 为其显示内容:- 窗格和横条:选择绘制位置
- Claude Code 自身的行,例如加载动画:更改 Claude Code 已绘制的内容
- Toast 通知、状态栏和日志行:在不开启轮次的情况下显示内容
- 问题对话框:暂停工具调用直到用户做出决定