梧桐设计语言v0.4.1

组件总览Overview

37 个组件,按用途分八组。每个组件页有规则、可切主题的 demo、源码与 API。npm i @wutong/ui @wutong/icons,入口 import "@wutong/ui/styles.css"


操作3

状态与数据5

导航4

表单2

反馈5

浮层3

AI8

进度面板ProgressPanel

长任务进度面板(生成应用 2–3 分钟)。超过 40 秒不能用转圈,用户会以为卡死然后刷新,生成被打断。

像素加载PixelLoader

像素加载:3×3 像素网格 + 流光文字 + 计时。用在等待时间不确定的空窗期——用户刚发完消息、模型还没吐第一个 token。计时是关键:长任务时它是唯一能证明「没卡死」的信号。来自智算客户端(移植自 beautifului.dev)。

思考与流式Thinking

AI 回答的三个状态:在想、思考过程、流式输出。

执行轨迹ThinkingTrace

Agent 执行轨迹:工具调用一步一行,进行中自动展开、结束后收起成一行「执行了 N 步」,想看全过程随时点开。与 Reasoning(模型的思考文字)分工:这里是动作。来自智算客户端(移植自 beautifului.dev,改为完全受控)。

对话消息ChatMessage

AI 助理面板里的消息。用户消息右对齐、secondary 底、radius-md(右下角 radius-chip);AI 消息左对齐、无底色直接在面板上,前面一个 28 的 bot 图标方块。宽度不超过 80%。

MarkdownMarkdown

统一的 markdown 渲染。AI 回答、知识库文档、文章、协议——四端里 markdown 是最扎眼的不一致处,原因是每处各写一套样式覆盖。现在规则只有一份(「页面模式 › Markdown」),Web 用这个组件,iOS / Android 按同一张表。

改动文件FileDiffChips

本轮改动过的文件压成一排 chip:region.ts +74 −41。mono 字、card 底 + shadow-raised、radius-chip。超过 max(默认 6)折成「+N 个文件」,避免一轮改几十个文件刷屏。

语音录入VoiceInput

语音录入三态,关单时弹出的沉淀钩子入口。第三态(转写完成可编辑)不能省:转写一定会把「轴承内圈剥落」认错,让师傅看一眼、能改,他才会信;改不了下次就不说了。

移动端1

营销层6

营销皮肤Marketing

营销皮肤:包住官网 / 营销页的根节点,把语义 token 重映射到品牌层——暖米底 brand-paper、墨蓝字 brand-ink、品牌金主色、按钮圆角 10、卡片圆角 14、1px 实线卡片边。里面的 Button / Card / Input 等产品组件自动换皮,不用改调用。dark 为藏青深色带(知库、数据大屏),主色换 brand-cyan。

小字标签Eyebrow

区块上方的小字标签:11px mono、全大写、字距 .16em、brand-gold;深色带里自动变 brand-cyan。每个区块一个,放在 h2 上方 14px,内容是「分类 / 英文」这种两三个词。产品页不用它——那里分组小标题是 meta 灰字。

数据条StatRow

数据条:mono 大数字 + 单位 + 说明。size="sm"(22)放在首屏标题下面带上分隔线;默认(32)配 divided 做独立的数据带(白底、四等分、竖线分隔)。highlight 项用金边金底(「60+ 官方 Skills」这种)。数字等宽、右侧单位小一号灰。

描边 ChipChip

描边小 chip:11px、6px 圆角、brand-line-2 边、白底,标技能与分类;lit 点亮态换金边 + brand-gold-soft 底。一排 gap 6,可换行。它是营销层的「标签云」,不表示状态——状态仍用 StatusPill。

mono 标签Tag

mono 小标签:11px mono、字距 .06em、4px 圆角,标层级与类型(AGENT / SKILL / TOOL、DOCX / XLSX)。四种 tone:gold(默认)、neutral、info、ok——后两种直接用产品的状态 token,不另配色。

徽章Badge

徽章:营销层唯一允许的胶囊形(999 圆角),mono 12、brand-gold-soft 底 + brand-gold-ink 字。只用在两处:首屏一句话卖点(「效率提升 逐页翻 4 小时 → 秒级」)、定价卡的「推荐」角标。产品层禁止胶囊,这里也不要用它做按钮。