组件全览
全部 62 个组件,按 5 层组织。每个都带**语法示例 + 微缩预览 + 属性说明**。
底部有 12 主题声明语法专章。
Note
组件预览仅供示意——本页微缩效果由 web CSS 复刻实现,与小程序端实际渲染的
视觉细节(圆角、间距、字重、动效等)会略有差异。
以实际渲染效果为准。
1 · primitive 原语层 18 个
无状态、无场景的最小视觉单元。任何主题都能用。
::text文本v1.0
::text "这是一段正文"
::text size=hero "大字标题"
::text size=title align=center "章节标题"
main 文本内容 · size xs/sm/base/lg/xl/hero/title,默认 base · align left/center,默认 left
::tag标签v1.0
::tag "热议"
::tag color=success "稳定"
main 标签文字 · color accent/primary/success/warning/danger/info/neutral
::divider分隔线v1.0
::divider
::divider thick=true
thick 是否粗线 · gap 上下间距
::badge徽标v1.0
::badge "NEW"
::badge color=success "1"
main 徽标文字 · color 颜色语义
::pill胶囊v1.0
::pill "限时优惠"
::pill color=warning "待处理"
main 文字 · color 颜色语义
::icon图标v1.0
::icon "🔥"
::icon size=lg "✨"
main emoji 或图标名 · size sm/md/lg
::avatar头像v1.0
::avatar avatar="https://..." size="lg"
::avatar avatar="https://..."
::avatar name="丁" size="sm"
name 名字首字 fallback · avatar 图片 URL · size xs/sm/md/lg/xl
::quote引用块v1.0
::quote "衣裳润润的,书页软软的"
cite="江南随笔"
main 引用文字 · cite 出处
::kicker小标签v1.0
::kicker "TODAY · 2026.07"
::kicker align=center "STREAMING · LIVE"
TODAY · 2026.07
STREAMING · LIVE
main 顶部小标签文字 · align 对齐方式
::trend趋势胶囊v1.0
::trend "↑18%" dir=up
::trend "↓3%" dir=down
main 趋势文字 · dir up/down/flat
::tip提示v1.0
main 提示文字(通常以 emoji 开头)
::callout重点卡片v1.0
::callout title="核心发现"
"阳光能显著降低皮质醇水平。"
main 正文 · title 顶部小标签 · type info/accent/success/warning/danger
::display巨字数据v1.0
::display align=center "4258.77"
desc="美元 / 盎司"
main 主数字 · desc 描述 · align 对齐
::progress进度条v1.0
::progress value=72
label="完成度"
value 0-100 · label 左侧文字 · color 填充色
::alert警示条v1.0
::alert type=success "操作成功"
::alert type=warning "请注意"
main 文字 · type info/success/warn/danger
::metric指标数字v1.0
::metric "1240 万"
desc="Q4 总营收"
trend="↑18.5%"
color=accent
main 数值 · desc 描述 · trend 趋势 · color 数值染色
::image图片v1.0
::image url="https://..."
caption="江南梅雨"
url 图片地址 · caption 图注 · mode 显示模式
::spacer留白v2.3
::spacer h=md
::spacer h=48
// 别名 ::gap
h = xs / sm / md / lg / xl 或 rpx 值
h xs/sm/md/lg/xl(8/16/32/60/96 rpx) 或精确 rpx 值(h=24) · 别名 ::gap
2 · structure 结构层 16 个
通用容器与布局。任何主题都能用。
::card卡片容器v1.0
::card "Q4 核心指标"
::metric "1240 万" desc="营收"
main 卡片标题 · variant default/outline/highlight/ghost/elevated
::section章节容器v1.0
::section "渠道拆解"
::text "..."
main 章节标题
::row / ::col行列布局v1.0
::row
::col span=6
::metric "A"
::col span=6
::metric "B"
列 A · span=6
列 B · span=6
col.span 6-12,配合父级 row 布局 · align center(v2.9,让子组件在容器内居中)
::center居中容器v2.9
::center
::radar "六维评估"
axis "工程" score=88
零参数容器,双向 flex 居中,宽度 100%。适合让 chart / hero 标题 / 空态提示自然居中,不用套 section/card。
::grid网格布局v1.0
::grid cols=3 gap=md
::metric "A"
::metric "B"
::metric "C"
cols 1-4,默认 2 · gap xs/sm/md/lg
::list无序列表v1.0
::list "看点在哪"
item "四姐气场碰撞"
item "南美世界杯氛围"
main 列表标题 · item 子项
::numbered-list编号列表v1.5
::numbered-list "步骤"
item "分析内容"
item "选择组件"
item "填充数据"
别名 ::ol · 数字圆点自动编号
::labeled-list左标签列表v1.5
::labeled-list "关键指标"
item "营收" label="Q4"
item "净利" label="YOY"
item 支持 label(左) + main(右)
::table表格v1.0
::table
field "渠道"
field "占比"
row cells=电商,45%
row cells=私域,30%
field 表头字段 · row.cells 单元格逗号分隔
::timeline时间线v1.0
::timeline
item "到达长沙"
when="06/30 08:40"
tag="到达"
item "手怎么了 词条登榜"
when="07/01 23:19"
tag="爆点" highlight
item "表演我猜杀你"
when="07/02 07:54"
tag="名场面"
item 支持 when(时间) / tag(小标签) / highlight
::gallery图片集v1.0
::gallery cols=3
::image url="..."
::image url="..."
cols 1-3 · 子项为 image
::hscroll横滑容器v1.0
::hscroll "标题"
::card "A"
::card "B"
别名 ::scroller · 横向滚动展示
::swiper轮播v1.0
::swiper autoplay=true
::image url="..."
::image url="..."
别名 ::carousel · autoplay / dots / circular
::chapter杂志分栏v1.0
::chapter "01"
title="先看数据"
category="DATA"
main 编号 · title 标题 · subtitle 副标 · category 类别(有则走 magazine 变体) · variant default/magazine
::divider-fancy装饰分隔线v1.5
::divider-fancy "看点操作"
::divider-fancy "章节" prefix="▸"
别名 ::section-mark · main 文字 · prefix 前缀符号(默认 //)
::form表单容器v1.0
::form "用户信息"
::textarea placeholder="..."
::radio-group
表单包裹容器 · 子组件为 textarea/radio-group/checkbox-group/select/button 等
3 · interactive 交互层 13 个
可点击、可切换、可提交。zone-node data 里维护 state。
::tabs标签页v1.0
::tabs
item "概览"
item "明细"
item "图表"
item 子项
::accordion折叠面板v1.0
::accordion
item "什么是 ZoneDSL?"
desc="一种 DSL..."
item 支持 label/desc
::checkbox复选框v1.0
::checkbox "同意条款" checked
✓同意条款
main 文字 · checked 初始选中
::checkbox-group多选组v2.8
::checkbox-group "兴趣爱好"
checkbox "阅读" checked
checkbox "运动"
checkbox "音乐" checked
同组多选 + 标题 · 子 checkbox 支持 checked
::radio单选按钮v1.0
main 文字 · selected 初始选中
::radio-group单选组v1.0
::radio-group "性别"
radio "男" selected
radio "女"
同组单选互斥 · 子 radio 支持 selected
::select下拉选择v1.0
::select "城市"
options=北京,上海,广州
main 默认值/占位 · options 逗号分隔 · 使用小程序原生 picker
::textarea多行输入v1.0
::textarea
placeholder="请输入..."
placeholder 占位符 · maxlength 最大长度
::quiz选择题v1.0
::quiz "你觉得哪个正确?"
option "A. 选项 1"
option "B. 选项 2"
option "C. 选项 3"
你觉得哪个正确?
A选项 1
B选项 2
C选项 3
main 题目 · option 子项 · answer 正确答案索引
::button按钮v1.0 · v2.0 intent
::button "追问看点"
variant=primary
intent=followup
value="还有哪些看点?"
main 按钮文字 · variant primary/outline/ghost/danger/success · intent 11 白名单意图 · value intent 参数 · size sm/md/lg
::steps / ::step步骤引导v1.0
::steps layout=horizontal
step "登录"
step "检索"
step "导出"
layout horizontal/vertical · step 支持 label/desc
::stairs阶梯v1.0
::stairs
step "起步阶段"
step "发展阶段"
step "成熟阶段"
阶段感更强的编号列表,标注每步 label
::mechanism机制说明v1.0
::mechanism "降压机制"
step "感知光照"
step "分泌激素"
用于流程解释,step 按顺序连接
4 · chart 图表层 8 个
基于 echarts,数据以逗号分隔字符串传入,前端自动构建 option。
::line折线图v1.0
::line "营收趋势"
labels=Q1,Q2,Q3,Q4
data=820,1050,1180,1240
unit=万
labels / data 逗号分隔 · area 面积图 · smooth 平滑 · unit 单位
::bar柱状图v1.0
::bar "周销量"
labels=iPhone,Mac,iPad,Watch
data=12000,8500,6200,4300
labels / data · horizontal 横向柱状
::pie饼图v1.0
::pie "占比"
labels=电商,私域,线下
data=45,30,25
donut
donut 环形 · unit % · labels / data
::sparkline迷你走势v1.0
::sparkline data=10,15,8,20,25,18,30
紧凑走势,不带坐标轴 · 常嵌在 metric 里
::radar雷达图v1.0
::radar "能力评估"
indicator=销售,营销,产品,技术
data=80,70,90,85
indicator 维度 · data 值
::ring环形进度v1.0
::ring value=72
title="完成度"
value 0-100 · title 中心文字 · desc 底部说明
::rank排行榜v1.0
::rank "TOP 4"
item "iPhone" value=3200
item "Mac" value=2100
item "iPad" value=1400
item "Watch" value=860
别名 ::ranking · 前 3 自动金银铜色
::compare对比v1.0
::compare
a="Vision Pro"
b="Quest 3"
a-value=3499
b-value=499
两方对比 · a/b 标签 · a-value/b-value 数值
5 · preset 业务预设 18 个
强场景绑定的成品卡——一行 DSL 出效果。杂志内容首选。
::magazine-cover杂志封面头v1.5
::magazine-cover
tag="HOT RECAP"
title="林晚\n**盛夏夜名场面**"
subtitle="48小时刷屏"
stats="19 条热议,11h+ 最长"
bg=light
HOT RECAP
·
2026.07.01
林晚
盛夏夜名场面
48小时刷屏
别名 ::cover · tag/date · title(行内高亮+\n) · subtitle · footnote · badge · stats 逗号分隔 · bg light(默认,v2.8) / accent / warm / dark · theme 主题声明入口
::city-card城市行程卡v1.5
::city-card num="01"
country="意大利"
city="米兰"
en="MILANO"
date="6.19 — 6.21"
color=purple
别名 ::itinerary-card · color purple/red/green/blue/pink/accent · item 支持 tag/desc · tags 底部话题
::person-grid人物阵容v1.5
::person-grid cols=2
::person-card name="林晚"
::person-card name="苏念"
cols 1-4 · 子项为 person-card
::person-card人物卡v1.5
::person-card
name="林晚"
desc="香港资深演员"
avatar="https://..."
别名 ::person · name(必填) · desc · avatar · 无 avatar 时首字 fallback
::scene-card名场面卡v1.5
::scene-card
icon="😂"
title="手怎么了"
desc="7 月 1 日晚上榜"
rank="峰值 6"
😂名场面 · 峰值 6
手怎么了
7 月 1 日晚上榜第 13 位
别名 ::moment-card · icon emoji · title/desc · badge(顶部) · rank(峰值) · tags
::glyph-compare字词对比v1.5
::glyph-compare "名字两张脸"
item "䔍" label="古字"
item "甯" label="艺名"
别名 ::character-compare · 单外框 + 顶部 tab · item 支持 label/desc
::statement声明卡v1.5
::statement
title="一个美丽的误会"
author="苏念"
time="2026.06.25"
::text "..."
一个美丽的误会
「钧甯」二字,藏着父母对我人生的深深寄望...
苏念 · 2026.06.25
title · author · time · source · 内嵌 text 段落
::editorial-hero编辑体大标v1.5
::editorial-hero
kicker="THE WEEK"
title="这不是一个人的\n**是一群人的化学反应**"
bg=warm
THE WEEK
一群人的
化学反应
4 大名场面 · 6 成互动梗
kicker · title(行内高亮+\n) · subtitle · stats · bg accent/warm/dark · align
::editorial-pullquote大字引言v1.5
::editorial-pullquote
"衣裳润润的,书页软软的。"
cite="江南随笔"
米色底 + 橙左条 + 衬线大字 · cite 出处
::editorial-summaryTL;DR 摘要v1.5
::editorial-summary
title="TL;DR"
"金价短期承压,4200 为关键支撑。"
title 顶部小标 · main 摘要正文
::editorial-stat编辑体数字v1.5
::editorial-stat
"10M+"
desc="全球活跃用户"
trend="↑34%"
main 巨字 · desc · trend
::editorial-image编辑体图片v1.5
::editorial-image
url="https://..."
caption="创新引领未来"
url · caption · search(点击搜索关键词)
::fact-bar深色事实条v1.5
::fact-bar
item "场地" value="麦迪逊广场"
item "宾客" value="约 1100 人"
深炭底 + 横向键值对 · item 支持 label/value
::data-board数据面板v1.5
::data-board cols=2
item "主榜最高" value="8 位"
item "在榜时长" value="11h+"
cols 1-4 · layout grid(默认) / row(label 左 value 右,适合超 8 字符值)
::step-block米色步骤块v1.5
::step-block
item "分析内容" label="Step 1"
item "选择组件" label="Step 2"
别名 ::steps-block · 米色底 + 左 label 右描述 · literary 主题主用
::icon-gridemoji 网格v1.5
::icon-grid cols=4
item "晒太阳" icon="☀️"
item "睡眠" icon="🌙"
别名 ::tip-grid · cols 1-4 · item 支持 icon/desc
::era-timeline历史时间条v2.1
::era-timeline "极端年份"
item "1954" label="百年一遇"
item "1998" label="二度梅"
item "2020" label="超长梅"
别名 ::history-strip · layout ≤3 张自动 grid · 4+ 张自动 scroll(可显式覆盖)
::media-card图片+叠加标题v2.1
::media-card
url="https://..."
tag="TOP STORY"
title="盛夏夜 开录"
overlay=gradient
url · tag(左上小胶囊) · title/subtitle · height · align top/center/bottom · overlay gradient/solid/none
主题声明语法
三种入口等价,一个 zone 块只需要声明一次。优先级 A > C > B。不写就走默认 editorial。
入口 A · magazine-cover 属性(推荐 95% 场景)
杂志封面自带 theme 属性,整块内容继承该主题:
::magazine-cover theme=literary title="梅雨季"
::chapter ... // 自动继承 literary
::text ...
入口 B · 顶格 ::theme(无封面时)
::theme 是伪组件,只影响主题,不会渲染任何 UI:
::theme purple
# 备忘便签
正文段落,可以用 **加粗** 强调重点。
markdown 接管系必用 B
purple/sky/pop/sage/note 5 套接管系主题
不写 zone 组件,只用 markdown。因为没有 magazine-cover 挂载点,必须走
::theme 顶格声明。
入口 C · 围栏 meta
整段都是 zone 组件时,把主题放在围栏 meta 上:
```zone theme=data
::chapter ...
::line ...
```
CSS 变量定制
ZoneDSL 所有主题基于同一套 CSS 变量。业务方可以在自己的小程序里 override 这些变量实现品牌色定制——不用改核心代码。
| 变量 | 用途 |
--mz-bg | 页底 |
--mz-panel | 内容卡底(纯白通常) |
--mz-panel-soft | 次级卡底 |
--mz-ink | 主字 |
--mz-ink-soft | 次字 |
--mz-ink-mute | 弱字 |
--mz-line / --mz-line-strong | 分隔线 |
--mz-accent | 主强调色(品牌色核心) |
--mz-accent-warm | 强调块底色 |
--mz-accent-soft | 浅强调 |
--mz-accent-tint | 微染背景 |
--mz-gradient-warm | 封面/hero 渐变 |
--mz-font | 主题级默认字体族(v2.2) |
--mz-title-tracking | 主标题字距(v2.2) |
业务定制例子——把整站换成品牌粉色:
/* 业务侧 wxss */
.brand-magenta .zone-block {
--mz-accent: #E91E63;
--mz-accent-warm: #F06292;
--mz-accent-soft: #FCE4EC;
--mz-bg: #FDF7F9;
--mz-gradient-warm: linear-gradient(135deg, #E91E63 0%, #F06292 100%);
}
12 主题一览
杂志系 7 套作用于 zone 组件(.zn-*)。markdown 接管系 5 套(v2.8+)让普通 markdown 元素(.h2w__*)也整体切换视觉。
顶部主题切换器可以实时预览——切一次,整站配色/字体/氛围就跟着变。
AI 输出策略
默认不写 ::theme——让内容走默认 editorial。只在用户明确要求特定风格或内容气质冲突时才显式声明主题。