网易首页 > 网易号 > 正文 申请入驻

拒绝 Mermaid 垃圾:2.8 万星 AI 技能把图表画出了杂志质感

0
分享至

AI 画的架构图,十张有九张长一个样:圆角方框、青紫渐变发光、JetBrains Mono 满屏飞,像极了学校课题的封面。而另一个极端你也经历过:在 draw.io 里拖一小时方框,就为配一张能见人的图。



有个开源项目把这两个痛点一起解决了。它叫diagram-design,一个装进 AI Agent 里的图表设计技能:你说一句"给我画一张前端、后端、数据库加 Redis 缓存的架构图",它直接产出一份出版级质量、可离线打开、截图就能用的独立 HTML 文件。2026 年 8 月 12 日,它登顶 GitHub Trending 全语言第一;截至当月安全扫描数据,Star 数已达 2.77 万并持续攀升,Fork 超过 1700。它的仓库标语只有一句话,挑衅得很直白:

无阴影。拒绝 Mermaid 垃圾。

这篇文章把它的设计系统、架构、工程质量、社区争议一次讲透——读完你就知道,它凭什么这么狂,以及它是不是你的菜。




一、它到底是什么

diagram-design 不是一个新的图表渲染器,也不是 SaaS。它是一个Agent Skill(智能体技能),安装进 Claude Code、Codex、Factory Droid、Pi 四个 AI 编码智能体后,你的 AI 助手就获得了"画出杂志级图表"的能力。核心规格一句话说完:

  • 39 种视觉图表类型,从架构图、时序图、ER 图,到桑基图、沃德利地图、鱼骨图、用户旅程图,每种都有浅色、深色、完整出版级三种变体;
  • 输出是单个自包含 HTML 文件:内联 SVG + 内联 CSS,唯一的外部引用是 Google Fonts——双击就能打开,离线可用,无需构建步骤、无需 JavaScript、无需外部图片;
  • 支持导出 SVG / PNG(PNG 通过 Playwright 光栅化,默认 2 倍缩放);
  • 可以把现有的Mermaid 代码和 draw.io 文件重绘成它的出版级风格;
  • 全流程默认无障碍:每张图自带role="img"、可解析的aria-labelledby、有前缀的,并遵守prefers-reduced-motion

所有 39 种类型在官方在线画廊里都能翻,浅色 / 深色 / 出版级三个选项卡逐一切换,就能判断这套审美是否对你胃口。



二、先说说为什么 AI 画的图普遍很丑

diagram-design 的 README 里藏着一份"AI 生成粗劣产物目录"——12 种反模式,每一种都在给市面上的 AI 图表画像:

  • 暗色模式 + 青色 / 紫色发光,"看似有技术感,实则回避了设计决策";
  • 把 JetBrains Mono 当万能"开发者字体",人类可读名称也用等宽体;
  • 每个节点都是同样的方框,层级全灭;
  • 图例浮在图表中间、箭头标签压在连线上、对角线乱飞;
  • 三个等宽摘要卡片排排坐,rounded-2xl圆角糊脸;
  • 给每个"重要"节点都上强调色——于是没有任何东西是重要的。

这份清单之所以扎心,是因为它描述的正是大多数 AI 生成图表的默认形态:渲染器逻辑代替了设计决策。Mermaid 和 draw.io 解决的是"把结构画出来",从来没打算解决"画得好看"。diagram-design 的全部野心,就是把这层设计决策补上。

三、设计系统:一套近乎固执的编辑纪律

打开它的产出,你会先注意到配色:白烟色纸底(#f5f5f5)、墨黑(#2d3142)、蓝板岩(#4f5d75),唯一的强调色是原子橘(#eb6c36)。这不是随便挑的——它是一套五色品牌调色板,衍生出十个语义 Token:paper(纸面)、ink(墨)、muted(弱化)、soft(柔和)、accent(强调)、link(链接蓝)、rule(极细线)等等。所有生成的 SVG 里不允许出现裸十六进制色值,只允许引用 Token 角色名——这个间接层是整个系统的承重墙,后面讲品牌换肤时会再看到它的威力。

几条铁律贯穿全部 39 种类型:

1. 强调色最多出现在 1–2 个元素上。官方原话:"如果你忍不住想强调四个东西,说明你还没决定什么是焦点。"橘色是指针,是"从这里开始看",不是装饰。五个指针等于零个指针。

2. 目标密度 4/10。一张图最多 9 个主节点、12 条箭头,超过就该拆成概览 + 详情两张。官方的说法是:"示意图不是在加上所有内容时完成的——而是在无法再删除任何内容时完成的。"每张图在绘制前都要过一遍"删除测试":能删的节点吗?能合并的节点吗?能删的箭头吗?能删的标签吗?

3. 一切坐标对齐 4px 网格。每个字号、间距、坐标、宽高都能被 4 整除,保证 1×、2×、3× 缩放下像素不糊。以 1、2、3、5、6、7、9 结尾的坐标被明确定义为缺陷。

4. 三字族分工不可撼动。Instrument Serif(衬线)只用于标题和斜体旁注,Geist 无衬线只用于节点名称,Geist Mono 只用于端口、URL、协议这类技术元数据——并且任何地方都禁止 JetBrains Mono。衬线标题 + 无衬线名称 + 等宽技术标签的对比,就是"出版感"的来源。

5. 语义靠形状和虚线,不靠颜色。流程图里椭圆是起止、矩形是步骤、菱形是判断;虚线4,3表示可选 / 异步,虚线4,4表示安全边界——两种虚线节奏刻意做得肉眼可辨。状态永远不是只靠颜色传达的,这是无障碍契约的一部分。



四、最聪明的一步:行为和布局分成两条轴

39 种类型听起来很多,但这个项目真正的架构亮点在语义模式路由。它把"系统做什么"(行为)和"信息怎么排"(布局)拆成两个独立轴:

  • 7 种语义模式描述行为——扇入队列 / 瓶颈、阶段框架、非结构化输入→结构化产物、成对策略评估轨迹、安全铺设道路、治理 / 控制目录、补偿安全层;
  • 每种模式路由到最接近的现有视觉类型去落地布局,模式自带语义原语和更严格的复杂度预算,但永远不引入新布局。

这是 ADR 0002(架构决策记录)定下的根本约束:语义模式永不扩展类型分类。想表达一种新行为?成本只是一个模式章节加一行路由表,而不是新类型参考 + 新模板 + 新示例的三件套。结果就是:类型数量稳定在 39,两个独立的校验脚本硬编码了这个计数,谁想悄悄加类型,CI 直接红。

对比一下同类工具的常见死法——每支持一种新场景就加一种新图表,类型表膨胀到没人能选——你会发现这条"反膨胀"约束的价值。分类增长被严格管控:2026 年 8 月 18 日矩形树图入册(27→28),19 日十种新布局语法集体入册(28→38),20 日极坐标图入册(38→39),每一次都有正式的 ADR 论证"为什么现有类型真的表达不了"。



五、60 秒品牌接入:给图表换上你公司的皮肤

默认皮肤好看,但真正让社区兴奋的是品牌接入:对着它说一句 "onboard diagram-design to https://你的网站",它会:

  1. 抓取你的主页(可采样多个页面合并信号);
  2. 提取调色板 + 字体栈——背景映射为paper,主文字色映射为ink,CTA / 链接色映射为accent字体映射为标题字族;
  3. 做 AA 对比度校验(inkpaper≥ 4.5:1),8 色品牌会被强制折叠为三色体系;
  4. 展示一份 diff 让你确认,然后改写style-guide.md

由于所有类型都通过 Token 角色取色,改一个文件,39 种图表全部换肤。深色变体都不用你操心——反转规则自动生成:浅色里任何rgba(墨, X)在深色里变成rgba(纸, X),透明度不变,RGB 对调。

更细的是多客户支持。品牌皮肤可以保存为命名配置,存放在~/.diagram-design/profiles/(刻意放在安装目录外,插件更新不会冲掉);项目根目录放一个只有一行profile: acme的.diagram-design标记文件,这个项目就永远走 Acme 的皮肤——并行服务多个客户互不干扰,标记文件甚至可以随 Git 仓库分发给协作者。安全细节也拉满:标记内容被当作不可信数据,格式不对就整个忽略,绝不当路径或指令解析。

还有一个贴心的"首次运行门槛":在新项目里画第一张图前,如果样式指南还是出厂默认,它会先停下来问你"要接入品牌、手动贴 Token,还是就用默认?"——绝不在品牌项目里悄悄输出默认皮肤的图表。

六、四个旋钮 + 一本账:导入重绘的严谨超出预期

diagram-design 可以把存量 Mermaid 代码和 draw.io 文件重绘成出版级图表。注意是"重绘"而不是"转换":提取器只读取内容(组件、关系、分组、方向),源坐标、源配色、源字体全部丢弃,然后按目标类型从空白画布重画。

重绘前要设定四个旋钮:

旋钮

管什么

档位

Format

交付格式

html / svg / png / html+png

Size

画布与字号阶梯

doc-inline、slide-16x9、social-og、print-a4 等 9 档

Detail

保留多少元素

faithful(≤24 节点)/ balanced(≤12)/ simplified(≤7)

Audience

措辞深浅

engineer / mixed / executive

其中 Audience 旋钮最能体现"编辑思维":同一个认证节点,给工程师看是Auth Service · JWT · RS256 · :8443,给混合受众是Auth Service / token check,给高管则变成Sign-in——连箭头都会从POST /v2/orders退化成places order再退化成orders。细节减少不等于信息造假,它有两条铁律:绝不为了填空捏造细节;专有名词只能抽象成功能类别(Kafka → Message Bus 可以,Kafka → Event Grid 是事实错误)。

只要输出少于输入,就必须附一份保真度账本,例如:

Detail: balanced · 18 source nodes → 9 drawnMerged:  worker-01..06 → "Ingest Worker ×6"Collapsed: "Observability" group (Grafana, Loki, Tempo) → one nodeDropped: 2 sticky notes, CI pipeline (cross-cutting)Kept in full: the request path (Client → Gateway → Orders → Postgres)

理由很朴素:看图的人不知道缺了什么,但提需求的人需要知道。

安全方面同样较真。Mermaid 提取器把所有标签当惰性数据处理:%%{init}%%指令剥离、点击链接丢弃、标签里的提示词注入字符串原样当文本、样式指令全部拒绝——并且配了对抗性测试夹具逐一验证这些防御真的生效。



七、动效与无障碍:把"可选"做出"必修"的严谨度

输出默认是纯静态的。真想要动效,也只有三种被认可的模式:reveal(加载时一次性自动播放,播完即定格)、step(用户驱动的分步讲解)、loop(单个装饰性令牌的平静循环,周期 ≥3 秒)。反模式清单里明确写着:被禁止的不是"交互前的任何动效",而是重复的、博眼球的自动播放。

工程上的关键决策是"单一固定控制器"(ADR 0001 + 0003):所有动画文件只允许携带一个

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
小米首款10000mAh REDMI K100连续打游戏8小时35分才关机

小米首款10000mAh REDMI K100连续打游戏8小时35分才关机

快科技
2026-10-22 21:29:08
这是38岁?一战超乔丹,打破nba保持了80年的纪录,杜兰特真要冲第三冠

这是38岁?一战超乔丹,打破nba保持了80年的纪录,杜兰特真要冲第三冠

麦子的篮球故事
2026-10-22 13:54:52
中国为加纳打了1000口井,没料到修的太好,成50万人的“救命药”

中国为加纳打了1000口井,没料到修的太好,成50万人的“救命药”

云霄纪史观
2026-10-21 13:31:36
月访问快过亿的WorkBuddy,又接新模型,实测便宜还能打

月访问快过亿的WorkBuddy,又接新模型,实测便宜还能打

侃故事的阿庆
2026-10-22 04:39:03
浓眉首秀34分12板!佩林卡没解决的难题,奇才仅用一招就化解了

浓眉首秀34分12板!佩林卡没解决的难题,奇才仅用一招就化解了

体育大朋说
2026-10-22 12:41:05
出名后出轨保姆、原配走了,如今78岁的他晚景凄凉,子女与其割席

出名后出轨保姆、原配走了,如今78岁的他晚景凄凉,子女与其割席

芳芳历史烩
2026-10-22 05:10:16
“你女儿法号是?”家长给中学女儿的带饭:看似丰盛,蛋白质含量却几乎为0

“你女儿法号是?”家长给中学女儿的带饭:看似丰盛,蛋白质含量却几乎为0

妍妍教育日记
2026-09-30 10:35:15
保级队也有高级货!成都蓉城去年引进韦林顿 北京国安大前年拿下林良铭

保级队也有高级货!成都蓉城去年引进韦林顿 北京国安大前年拿下林良铭

80后体育大蜀黍
2026-10-22 18:32:42
被传上午被免职,下午被带走,登 24 年春晚却忽然消失的黄宏今咋样

被传上午被免职,下午被带走,登 24 年春晚却忽然消失的黄宏今咋样

星娱叨叨社
2026-10-08 14:52:34
红果短剧让很多台湾网友沉迷,自称一刷就停不下来,花上万把大陆美食买遍了!

红果短剧让很多台湾网友沉迷,自称一刷就停不下来,花上万把大陆美食买遍了!

怪味历史连连看
2026-10-22 17:24:51
吓人!工地接连两天挖出一公一母两条巨蟒!“蛇身有人的小腿那么粗,目测有2米多长”,经确认均为缅甸蟒

吓人!工地接连两天挖出一公一母两条巨蟒!“蛇身有人的小腿那么粗,目测有2米多长”,经确认均为缅甸蟒

扬子晚报
2026-10-21 20:48:25
男人胡子长得快,说明了什么?刮胡子频率影响寿命?告诉你答案

男人胡子长得快,说明了什么?刮胡子频率影响寿命?告诉你答案

芹姐说生活
2026-10-21 19:39:03
赌场还是屠宰场?A股正在把散户吃干抹净

赌场还是屠宰场?A股正在把散户吃干抹净

A活着
2026-10-12 17:03:56
快讯!泰国这回动真格了!

快讯!泰国这回动真格了!

故事终将光明磊落
2026-10-22 09:55:08
为什么在中国用香水会被嫌弃?网友:同事吐一上午,下午直接请假

为什么在中国用香水会被嫌弃?网友:同事吐一上午,下午直接请假

夜深爱杂谈
2026-10-12 20:28:35
国际中体联世界杯:中国一队2-0中国二队,晋级男子组八强

国际中体联世界杯:中国一队2-0中国二队,晋级男子组八强

懂球帝
2026-10-22 20:16:05
王祖贤回应容貌争议,称“我已经60岁了,大家还在谈论我的容貌”

王祖贤回应容貌争议,称“我已经60岁了,大家还在谈论我的容貌”

韩小娱
2026-09-27 10:31:59
易方达基金将自购旗下首只主动ETF 金额达2亿

易方达基金将自购旗下首只主动ETF 金额达2亿

财联社
2026-10-22 13:54:02
贾乃亮开启超12小时直播模式,单日销售额超5.7亿,创3年来最高纪录

贾乃亮开启超12小时直播模式,单日销售额超5.7亿,创3年来最高纪录

韩小娱
2026-10-22 17:21:27
刘德华的小姨子,被誉为“大马最美千金”!

刘德华的小姨子,被誉为“大马最美千金”!

九把勺子
2026-08-28 21:49:51
2026-10-22 22:03:00
呼呼历史论
呼呼历史论
分享有趣的历史
776文章数 18466关注度
往期回顾 全部

科技要闻

腾讯云谷歌紧急行动!互联网安全出大事

头条要闻

大火逼近中国 日本道歉只道一半:未对中国有任何表示

头条要闻

大火逼近中国 日本道歉只道一半:未对中国有任何表示

体育要闻

卢卡:伦德伯格,欢迎来到NBA

娱乐要闻

芭莎盛典,张小斐因救场实现口碑暴涨

财经要闻

宁德,跌成了一只红利股?

汽车要闻

搭城市NOA/续航555KM 捷达M6上市售7.98万起

态度原创

艺术
游戏
时尚
手机
家居

艺术要闻

赵无极 80岁画的《紫气东来》,1667.5万!

《异形:隔离2》加入动态风暴,异形与玩家均受干扰

“廓形穿衣法”太火了!这5个法则松弛又好看

手机要闻

苹果iPhone Duo 2有望支持Face ID,微信客服回应适配问题

家居要闻

2026建博会(广州) 公装联探展交流活动

无障碍浏览 进入关怀版