Open Claude UI
Open Claude UI 组件演示

多媒体与产物

Open Claude UI 组件演示:语音波形、图片查看器、双栏分割、产物沙箱、Diff、代码块(手册 v1 第五篇)。每个演示附规格和源码出处。

View as Markdown最后更新:

多媒体与产物覆盖语音、图片、代码和 Artifacts(产物)相关的界面:麦克风波形、图片查看器、产物双栏、沙箱 iframe、Diff 和代码块。本页 6 个演示对应手册 v1 第五篇;官方提示音属于官方资产,没有收录。

关键数值

项目数值出处
语音波形6 频段,非线性 Gamma 映射v1/05 §5.1.3
双栏折叠阈值拖到边缘 18% 以内折叠v1/05 §5.3
代码块外壳12px 圆角,36px 头部v1/05 §5.5.4
复制成功提示绿色勾 2.5 秒后淡出v1/05 §5.5.4

语音波形

语音输入时用 6 根柱子显示音量,演示可以接本地麦克风,声音不上传。

6 频段非线性 Gamma 波形。idle 静止、connecting 自动摆动;点“用麦克风”后按真实音量跳动(只在本地处理,不上传)。官方提示音未收录。出处:v1/05 §5.1.3 · code-examples/LiveMicActivityBars.tsx

图片查看器

图片查看器以光标为锚点缩放,支持拖动、方向键切换和 Esc 关闭。

点击缩略图打开:滚轮 / 双击以光标为锚点缩放,拖动平移,← → 切换,Esc 关闭。图片是生成的渐变占位图。出处:v1/05 §5.2 · code-examples/MediaLightboxViewer.tsx

双栏分割

对话和产物并排时,中间分隔条可拖动,双击回到对半。

会话区
左侧最小宽度示例里调小到 160px。
产物预览区
拖动中间分隔条调整比例;双击回到 50/50;拖到边缘 18% 以内会折叠。拖动时给 iframe 加遮罩,避免丢失指针。出处:v1/05 §5.3 · code-examples/ArtifactsSplitPaneResizer.tsx

产物沙箱

产物在沙箱 iframe 里运行,通过 postMessage 和宿主页面通信。

产物在 sandbox iframe(无 allow-same-origin)里运行,通过 postMessage 通信。只有真实点击(userActivation)发出的消息才会被接收。收到消息:暂无出处:v1/05 §5.4 · code-examples/EpitaxyIframeBridge.tsx

Diff 查看器

代码改动用增删行底色区分,可在统一视图和分栏视图之间切换。

config.tsts
+2-1
11 export const config = {
2- port: 3000,
2+ port: Number(process.env.PORT ?? 3000),
3+ host: '0.0.0.0',
34 debug: false,
45 };
正在接收差异流...
增删行用 --diffs-addition / --diffs-deletion;行号列 tabular-nums;可切换统一 / 分栏视图。出处:v1/05 §5.5 · code-examples/StreamingDiffViewer.tsx

代码块

代码块是深色外壳,带文件名和复制按钮。

</>typescript•hello.ts
1export function hello(name: string) {
2 return `你好,${name}`;
3}
4
5console.log(hello("世界"));
12px 圆角深色外壳、36px 头部;点复制后显示绿色勾 2.5 秒再淡出(saved-check-decay)。出处:v1/05 §5.5.4 · code-examples/CodeBlock.tsx

怎么在项目里使用?

复制 code-examples/ 里对应的文件,并引入 cds-theme.css。例如:

import { CodeBlock } from './CodeBlock';

<CodeBlock filename="hello.ts" language="typescript" code={src} />

相关页面

On this page