Skip to content

基础组件

标题、文本、按钮、标签、提示、进度、统计、加载、Markdown、代码高亮等最高频的展示组件。每个示例左侧为格式化 + 高亮的 TokUI DSL,右侧为实时渲染,点「编辑」可即时改动。

标题 h1 ~ h6

六级标题,自闭合。tx 文本(可省略直接写正文),v 控制对齐与装饰,bg / fc 配色。

属性含义示例
tx文本内容(亦可直接写正文)[h1 标题]
v变体(对齐 / 装饰,可逗号组合)v:underlinev:"center,ribbon"
bg背景/装饰主色:主题色名(primary/success/warning/danger/dark/light)或 6 位 hex(不带 #bg:successbg:722ed1
fc文字颜色(取值同 bgfc:danger
id元素 ID(供 upd/del/ins 定位)id:title1

变体left / center / right(对齐),ribbon(缎带),underline(下划线),badge / pill(徽标)。装饰色变体(ribbon/badge/pill/underline)统一走「浅底 + 主色文字」配色:bg: 指定主色后自动派生 10% 浅底与淡描边,深浅主题自适应。bg 不带装饰变体时则为整行实底。

六级字号对比:

1[h1 一级标题]
2[h2 二级标题]
3[h3 三级标题]
4[h4 四级标题]
5[h5 五级标题]
6[h6 六级标题]
加载 TokUI…
TokUI DSL · 左代码右渲染

对齐变体:

1[h3 v:left 左对齐(默认)]
2[h3 v:center 居中对齐]
3[h3 v:right 右对齐]
加载 TokUI…
TokUI DSL · 左代码右渲染

装饰变体(bg 换主色):

1[h2 v:ribbon 缎带标题]
2[h2 v:ribbon bg:success 成功色缎带]
3[h2 v:underline 下划线标题]
4[h2 v:underline bg:warning 警告色下划线]
5[h3 v:badge 徽标标题]
6[h3 v:badge bg:danger 危险色徽标]
7[h3 v:pill 胶囊标题]
8[h3 v:pill bg:722ed1 自定义色胶囊]
加载 TokUI…
TokUI DSL · 左代码右渲染

bg 实底 + fc 文字色、对齐与装饰组合:

1[h3 bg:1677ff fc:ffffff 实底白字标题]
2[h3 v:"center,underline" bg:danger 居中 + 危险色下划线]
加载 TokUI…
TokUI DSL · 左代码右渲染

段落 p

正文段落,双模(与 card 的 tx 自闭合陷阱同理):标签内有正文 → 叶子自闭合;无正文 → 容器收子节点。v 控制对齐与字重。

  • 叶子模式 [p 文本] / [p v:bold 文本]:文本作正文,可夹内联子节点(a/tag/b/strong/em/mark/spin/sub/sup/code),遇块级兄弟自动闭合。
  • 容器模式 [p]...[/p]:放 btn/form/card 等块级子节点时用,必须 [/p] 闭合。
  • 正文里写 英文:值(如 Q:/A:)会被解析成属性吞掉(无空格→正文空、带空格→前缀消失)——改全角 或去冒号(详见 DSL 语法)。

变体left / center / right(对齐),muted(弱化),bold(加粗),sm / lg(字号)。

1[p 这是默认段落,用于承载正文内容。]
2[p v:muted 弱化段落,用于次要信息或辅助说明。]
3[p v:bold 加粗段落,用于强调重点。]
4[p v:sm 小字号段落,常用于脚注。]
5[p v:lg 大字号段落,用于引语。]
加载 TokUI…
TokUI DSL · 左代码右渲染
1[p 叶子模式可夹 [a u:# tx:内联链接]
2
3[b 行内加粗]
4等内联子节点。]
5[p]
6[btn tx:容器模式放块级按钮 clk:ok]
7[btn tx:重置 clk:cancel]
8[/p]
9[p Q:全角冒号当正文,规避属性陷阱。]
加载 TokUI…
TokUI DSL · 左代码右渲染

链接 a

超链接,自闭合。u 地址、tx 文本、target 打开方式。

属性含义示例
u链接地址u:https://tokui.jboltai.com
tx文本tx:官网
target打开方式target:_blank
v变体v:underline

变体muted / danger / success / underline

1[p]
2[a u:# tx:默认链接]
3·
4[a u:# tx:下划线链接 v:underline]
5·
6[a u:# tx:弱化链接 v:muted]
7·
8[a u:# tx:危险链接 v:danger]
9·
10[a u:# tx:成功链接 v:success]
11[/p]
12[p]
13[a u:https://github.com/jboltai/tokui tx:新窗口打开 GitHub target:_blank v:underline]
14[/p]
加载 TokUI…
TokUI DSL · 左代码右渲染

分割线 hr / dv

hr 普通水平线(自闭合)。dv 带文本与样式的分割线(自闭合)。

属性含义适用
tx分割线文本dv
v线型/方向dv
bg颜色dv

dv 变体dashed / dotted(线型),sm / md / lg(间距),vert(竖向),plain

1[p 上方内容]
2[hr]
3[p 下方内容]
4[dv tx:章节分隔]
5[dv v:dashed]
6[dv tx:垂直场景 v:vert]
加载 TokUI…
TokUI DSL · 左代码右渲染

图片 img / 多图 imgs

img 单图,点击可灯箱预览。imgs 容器,多图自适应九宫格。

属性含义示例
s图片地址s:https://...
alt替代文本alt:封面
w / h宽 / 高w:120
v变体v:avatar

img 变体avatar(头像),rounded(圆角),bordered(边框)。

1[row]
2 [col span:4]
3 [img s:https://assets.vdata.chat/jboltai/aiimg/logo_60.png v:avatar w:72 alt:头像]
4 [/col]
5 [col span:4]
6 [img s:https://picsum.photos/seed/tokui1/200/120 v:rounded w:200 alt:圆角图]
7 [/col]
8 [col span:4]
9 [img s:https://picsum.photos/seed/tokui2/200/120 v:bordered w:200 alt:边框图]
10 [/col]
11[/row]
加载 TokUI…
TokUI DSL · 左代码右渲染

imgs 多图:s 用逗号分隔多个 URL,自动排成 1~9 宫格。

1[imgs s:"https://picsum.photos/seed/a/200,https://picsum.photos/seed/b/200,https://picsum.photos/seed/c/200,https://picsum.photos/seed/d/200"]
加载 TokUI…
TokUI DSL · 左代码右渲染

图片预览组 preview-group

容器。把一组 img 绑定为共享预览会话:点击其中任意一张即开灯箱,并携带整组 src 列表(灯箱支持缩放 / 旋转 / 翻转 / 计数 / 前后切换)。流式渲染中后到的图自动入组。

属性含义示例
id元素 IDid:gallery

imgs 的区别:imgs 是九宫格简写布局,preview-group 是显式「一组图共享预览会话」语义,组内图片排版照旧。

1[preview-group]
2[img s:https://picsum.photos/seed/a/200]
3[img s:https://picsum.photos/seed/b/200]
4[/preview-group]
加载 TokUI…
TokUI DSL · 左代码右渲染

键盘按键 kbd

自闭合行内元素。键帽样式文本,适合快捷键/操作说明文档;可作为 p 的行内子节点与文字混排。

变体sm / lg

1[p 全局搜索:[kbd Ctrl]
2[kbd K]
3;取消:
4[kbd Esc]
5]
加载 TokUI…
TokUI DSL · 左代码右渲染

浮动按钮组 float-button

容器。将一组子组件(btn/backtop 等)固定于视口四角,子组件自动圆形悬浮化。

属性含义示例
pos固位:right-bottom(缺省)/ right-top / left-bottom / left-toppos:left-top
offset距视口边距(px,缺省 24)offset:80
1[float-button pos:right-bottom offset:80]
2[btn tx:💬]
3[/float-button]
加载 TokUI…
TokUI DSL · 左代码右渲染

按钮 btn / 按钮组 btngroup

btn 自闭合,最常用交互组件。btngroup 容器包裹一组按钮。

属性含义示例
tx文本tx:提交
clk点击处理器名clk:onSave
sub表单提交处理器名(内置 submit 动作)sub:onSubmit
reset重置绑定表单(内置 reset 动作,裸写或 reset:H 回调)reset
print打印目标区域(内置 print 动作,print:ID / print:selfprint:invoice
form显式绑定表单 ID(按钮在表单外时用)form:loginForm
dis禁用dis
w宽度w:200
bg / fc背景色 / 文字色bg:4f46e5
v变体(类型/尺寸/形状)v:"primary,pill"
iconSVG 图标名(自动继承钮色)icon:view
iemoji / 字符图标i:🔍
licon-only 标签(无障碍 + 悬停 tooltip)l:删除

内置动作sub / reset / print 由 renderer 自动解析,无需 registerHandler(仅 sub 的业务回调仍需注册)。优先级 print > reset > submit > clk。详见表单组件 · 表单动作打印区

类型变体primary / danger / success / warning / ghost尺寸/形状变体sm / lg / pill(圆角)/ square(直角)/ block(块级宽)。

1[btngroup]
2 [btn tx:主要 v:primary]
3 [btn tx:成功 v:success]
4 [btn tx:警告 v:warning]
5 [btn tx:危险 v:danger]
6 [btn tx:幽灵 v:ghost]
7[/btngroup]
8[p v:muted]
9[btn tx: v:"primary,sm"]
10[btn tx:默认 v:primary]
11[btn tx: v:"primary,lg"]
12[btn tx:块级 v:"primary,block" tx:占满整行]
13[/p]
14[p v:muted]
15[btn tx:圆角 v:"primary,pill"]
16[btn tx:直角 v:"primary,square"]
17[btn tx:禁用 v:primary dis]
18[/p]
加载 TokUI…
TokUI DSL · 左代码右渲染

图标按钮

两种图标来源,[btn]表格操作列通用:

  • icon:NAME — 内置 SVG(Lucide 风格 stroke,stroke=currentColor 自动继承钮色)
  • i:GLYPH — emoji / 字符(字面渲染)

tx 时为 icon-only:自动紧凑钮,l: 提供无障碍 aria-label + 悬停 tooltip。

图标名表view edit delete add copy download upload refresh check close search setting warn info lock unlock more save export filter sort star link menu

1[btngroup]
2 [btn icon:view tx:详情 t:primary clk:toast]
3 [btn icon:edit tx:编辑 t:warning clk:toast]
4 [btn icon:delete l:删除 t:danger clk:toast]
5 [btn i:🔍 tx:搜索 clk:toast]
6[/btngroup]
7[p v:muted]
8前三个为 icon+文字(彩色),第三个为 icon-only(悬停显"删除"),末个 emoji。
9[/p]
加载 TokUI…
TokUI DSL · 左代码右渲染

clk: / sub: 指向的处理器需通过 TokUI.registerHandler(name, fn) 预先注册,DSL 本身不含可执行代码。

标签 tag

标记与分类,自闭合。

属性含义示例
tx文本tx:新功能
t类型/颜色t:danger
s尺寸s:sm
round圆角round
closable可关闭closable
bordered描边bordered
1[tag tx:新功能 v:primary round]
2[tag tx:热门 t:danger]
3[tag tx:推荐 t:success bordered]
4[tag tx:默认]
5[tag tx:可关闭 t:warning closable]
6[tag tx:小尺寸 s:sm]
加载 TokUI…
TokUI DSL · 左代码右渲染

提示框 callout

带图标的信息提示。双模:自闭合 [callout t:info tx:文本] 与容器 [callout t:info]文本[/callout] 均可。

属性含义示例
t类型t:success
tt标题tt:操作成功
tx正文(自闭合用)tx:已保存

类型info / success / warning / error / tip

流式:长文本用容器模式 [callout t:info]...[/callout],正文逐字流式(自闭合 tx:] 处一次性出)。详见流式渲染优先级

1[callout t:info tt:信息提示]
2这是一条普通信息提示。
3[/callout]
4[callout t:success tt:操作成功]
5数据已成功保存。
6[/callout]
7[callout t:warning tt:请注意]
8该操作不可撤销。
9[/callout]
10[callout t:error tt:发生错误]
11请求失败,请稍后重试。
12[/callout]
加载 TokUI…
TokUI DSL · 左代码右渲染

条形码 barcode

Code128 Set B 纯 SVG 条码(零依赖),适用运单号/订单号/序列号等字母数字变长数据。扫描器自动识别。

属性含义示例
tx编码数据(同时作条码下方可读文本)tx:"SF1026883749"
l / tt顶部标签l:"运单号"
s尺寸 sm/md/lg(默认 md,兼容 small/medium/larges:medium

支持可见 ASCII(32~126)。条码保持模块比例(preserveAspectRatio meet),缩放不变形、可扫描。

1[barcode tx:"SF1026883749" l:"运单号" s:medium]
2[row]
3 [col span:6]
4 [barcode tx:"PO-2026-0042" l:"采购单" s:sm]
5 [/col]
6 [col span:6]
7 [barcode tx:"SN88001122334455" l:"序列号" s:lg]
8 [/col]
9[/row]
加载 TokUI…
TokUI DSL · 左代码右渲染

二维码 qrcode

纯 SVG QR 码(矩阵生成 vendored 自 qrcode-generator Arase, MIT;本仓库零 npm 依赖)。支持 URL/文本/UTF-8 中文。

属性含义示例
tx编码数据(URL/文本,UTF-8)tx:"https://tokui.jboltai.com"
l / tt下方标签l:"扫码访问"
s尺寸 sm/md/lg(默认 mds:md
ec纠错级 L(7%)/M(15%)/Q(25%)/H(30%),默认 Mec:H

含 4 模块静默区(quiet zone)+ 白底,shape-rendering=crispEdgespreserveAspectRatio meet 保持模块比例,缩放可扫描。纠错级越高越抗污损但模块越密。

1[qrcode tx:"https://tokui.jboltai.com" l:"TokUI 官网" s:md ec:M]
2[row]
3 [col span:6]
4 [qrcode tx:"https://github.com/jboltai/tokui" l:"GitHub" s:sm]
5 [/col]
6 [col span:6]
7 [qrcode tx:"WIFI:S:TokUI-Guest;T:WPA;P:welcome;;" l:"Wi-Fi" s:lg ec:H]
8 [/col]
9[/row]
加载 TokUI…
TokUI DSL · 左代码右渲染

状态点 dot

状态指示器,自闭合。

属性含义示例
t状态类型t:success
tx文本tx:运行中
s尺寸s:lg
pulse脉冲动画pulse
1[dot t:success tx:在线 pulse]
2[dot t:warning tx:忙碌]
3[dot t:danger tx:离线]
4[dot tx:默认 s:lg]
加载 TokUI…
TokUI DSL · 左代码右渲染

徽标 badge / badge-box

badge 数字/小红点徽标(自闭合),包裹子元素。badge-box 容器,给子元素加角标。

属性含义适用
count数字(parseInt 截断小数,版本号/小数请用 tx两者
dot小红点两者
tx文本徽标两者(badge-box 兼容旧写法 label,推荐 tx
t状态色(default/primary/success/warning/error)两者
overflow数字溢出显示(如 99+)两者
pill胶囊圆角badge
size尺寸(sm/lg)badge
title悬停提示badge
1[badge count:5]
2[btn tx:消息 v:ghost]
3[/badge]
4[badge count:99]
5[btn tx:通知 v:ghost]
6[/badge]
7[badge dot]
8[btn tx:待办 v:ghost]
9[/badge]
加载 TokUI…
TokUI DSL · 左代码右渲染

标题加徽标有两种写法h3 是自闭合组件,禁止 [h3 文本 [badge]] 嵌套):

  • 并排 pill(标题旁标签,如版本号/状态):用 row v:inline(flex 模式)托管 h3 + badge必须 v:inline——默认 row 是 12 列 grid,直接放标题会被挤窄换行。
  • 右上角角标(贴角,如未读/红点):用 badge-box 包裹 h3
1[row v:inline]
2 [h3 SaaS Pro]
3 [badge tx:v2.4 pill t:primary]
4[/row]
加载 TokUI…
TokUI DSL · 左代码右渲染
1[badge-box tx:v2.4 t:primary]
2 [h3 SaaS Pro]
3[/badge-box]
加载 TokUI…
TokUI DSL · 左代码右渲染

进度条 progress

自闭合。v 当前值(0-100)。

属性含义示例
v当前值v:60
l标签l:下载中
t形态t:circle
stripe斑马纹stripe
status状态色status:success

形态line(默认)/ circle(环形)/ span(内联)。

1[progress v:30 l:下载中]
2[progress v:65 l:处理中 stripe]
3[progress v:100 status:success l:完成]
4[row]
5 [col span:4]
6 [progress t:circle v:75]
7 [/col]
8[/row]
加载 TokUI…
TokUI DSL · 左代码右渲染

统计 stat

数据展示卡片,自闭合。

属性含义示例
tt标签tt:今日访问
v数值v:12345
pre / suf前缀 / 后缀suf:%
trend趋势trend:up
dec小数位dec:1
anim数字动画anim
id元素 ID(供 upd 定向更新 v/trendid:kpi1
1[row]
2 [col span:6]
3 [stat tt:今日访问 v:12834 trend:up]
4 [/col]
5 [col span:6]
6 [stat tt:转化率 v:3.2 suf:% trend:down dec:1]
7 [/col]
8[/row]
9[row]
10 [col span:6]
11 [stat tt:营收 pre:¥ v:98210 trend:up]
12 [/col]
13 [col span:6]
14 [stat tt:退款 v:12 suf: trend:down]
15 [/col]
16[/row]
加载 TokUI…
TokUI DSL · 左代码右渲染

倒计时 countdown

自闭合。target 目标时间戳或 dur 倒计时秒数。

属性含义示例
target目标时间(ms 时间戳 / 日期)target:2026-12-31
dur持续秒数dur:3600
fmt启用单位:d/h/m/s 各字母启用一单位(默认 dhmsfmt:hh:mm:ss
tx结束文案tx:已结束
l标签l:距结束
s尺寸s:lg
clk计时结束回调clk:onEnd
id元素 IDid:cd1
1[callout t:info tt:秒杀倒计时]
2[countdown dur:86400 fmt:hh:mm:ss tx:活动已结束]
3[/callout]
加载 TokUI…
TokUI DSL · 左代码右渲染

加载 spin / 骨架 skeleton / 闪光 shimmer

spin 加载指示器、skeleton 骨架屏、shimmer 闪光占位,均自闭合。

属性含义适用
t类型三者
s尺寸spin
tx文本spin
rows行数skeleton / shimmer
1[row]
2 [col span:4]
3 [spin t:spinner tx:加载中…]
4 [/col]
5 [col span:4]
6 [spin t:dots]
7 [/col]
8 [col span:4]
9 [spin t:pulse s:lg]
10 [/col]
11[/row]
12[skeleton t:card rows:3]
13[shimmer t:text rows:2]
加载 TokUI…
TokUI DSL · 左代码右渲染

空状态 empty / 结果页 result

empty 无数据占位、result 操作结果页,均自闭合。

属性含义适用
tx描述文本两者
icon图标empty
t类型result
tt标题result

result 类型success / error / warning / info

1[row]
2 [col span:6]
3 [card tt:空状态]
4 [empty tx:暂无数据]
5 [/card]
6 [/col]
7 [col span:6]
8 [card tt:结果页]
9 [result t:success tt:提交成功 tx:我们将在3个工作日内审核]
10 [/card]
11 [/col]
12[/row]
加载 TokUI…
TokUI DSL · 左代码右渲染

复制 copy

一键复制按钮,自闭合。id 指向要复制的目标元素 ID,或复制 tx 文本。

属性含义示例
id目标元素 IDid:codeBlock
tx按钮文本tx:复制
tt成功提示tt:已复制
1[p v:muted v:bold id:copyTarget 这段文字可以被一键复制。]
2[copy id:copyTarget tx:复制这段 tt:已复制到剪贴板]
加载 TokUI…
TokUI DSL · 左代码右渲染

Markdown md

Markdown 渲染容器。支持标题、列表、引用、代码、表格、链接等常用语法。

可选插件增强```mermaid 围栏与 $$公式$$ / $公式$ 在宿主加载 window.mermaid / window.katex 全局对象时自动增强渲染;未加载插件时回退源码展示(零依赖不受损,$5 $6 这类货币金额不会被误吃)。

1[md]
2 ## Markdown 渲染支持 **加粗**、*斜体*、`行内代码`、
3 [链接]
4 (#)。- 无序列表项一- 无序列表项二> 引用块文字。
5[/md]
加载 TokUI…
TokUI DSL · 左代码右渲染

可选插件增强```mermaid 围栏与 $$公式$$ / $公式$ 在宿主加载 window.mermaid / window.katex 全局对象时自动增强渲染;未加载插件时回退源码展示(零依赖不受损,$5 $6 这类货币金额不会被误吃)。

公式 katex / 图 mermaid

md 插件管线的独立组件别名,不走 md 文本直接声明:

  • [katex]O(n) = \sum_{i=1}^{n} t_i[/katex] — 容器,块级公式
  • [katex f:"E = mc^2"]f: 属性,行内公式
  • [mermaid]flowchart LR\n A --> B[/mermaid] — 容器,图源(raw 内容,内部 [ 不解析)

宿主未加载 katex/mermaid 时分别回退为源码 / 代码块。katex 内容豁免 raw 转义解码,\nabla/\times/\to 等 LaTeX 命令按标准语法直接书写即可。

1[katex f:"E = mc^2"]
加载 TokUI…
TokUI DSL · 左代码右渲染

代码块 code

语法高亮代码块容器。lang 指定语言,零依赖内置 11 种语言着色:js / ts / python / java / go / rust / sql / html / css / json / bash

属性含义示例
lang语言lang:js
tx标题(文件名)tx:app.js
1[code lang:js]
2 function greet(name) {\n return `Hello, ${name}!`;\n}\nconsole.log(greet("TokUI"));
3[/code]
加载 TokUI…
TokUI DSL · 左代码右渲染
1[code lang:python]
2 def fib(n):\n a, b = 0, 1\n for _ in range(n):\n a, b = b, a + b\n return a\n\nprint(fib(10))
3[/code]
加载 TokUI…
TokUI DSL · 左代码右渲染

代码内容中的换行用 \n 表示。完整属性表见 DSL 语法