Back to skills
SKILL.md
Bento Infographic
ASecurity当使用者说"做一张苹果发布会那种总结图""bento 图""把卖点、功能或研究成果排成一张格子图""产品亮点一图看完""做成竖版发小红书"时使用。先出内容清单和线框预览,确认后由脚本排版,用本机 Chrome 渲染成 PNG:主图居中,四周十几个圆角格,字号、格缝、圆角按苹果样图的实测比例换算,横版、竖版、任意比例都能排,渲染后自动跑 19 项自检。研究成果走研究模式:测量值带不确定度、样本数与条件,可放一张小图表。图上的数字必须能指回材料,没有出处的不放,或在图上标明未确认。不用苹果的商标、产品图、SF Symbols 和字体文件;不生成图片,图片由使用者提供。
- 5 stars
- 0 votes
- 0 copies
- 0 views
- Added November 7, 2026
Works with
Security analysis
100/100Pro scans all 20 files and shows the line behind each finding
npx -y skills add ChromiteCr/Skills --skill bento-infographic --agent claude-codeAre you the author of Bento Infographic?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/chromitecr-bento-infographic)---
name: bento-infographic
description: 当使用者说"做一张苹果发布会那种总结图""bento 图""把卖点、功能或研究成果排成一张格子图""产品亮点一图看完""做成竖版发小红书"时使用。先出内容清单和线框预览,确认后由脚本排版,用本机 Chrome 渲染成 PNG:主图居中,四周十几个圆角格,字号、格缝、圆角按苹果样图的实测比例换算,横版、竖版、任意比例都能排,渲染后自动跑 19 项自检。研究成果走研究模式:测量值带不确定度、样本数与条件,可放一张小图表。图上的数字必须能指回材料,没有出处的不放,或在图上标明未确认。不用苹果的商标、产品图、SF Symbols 和字体文件;不生成图片,图片由使用者提供。
category: coding-helper/ui-design
version: 0.1.0
status: draft
priority: P1
compatible_agents:
- claude-code
- codex
- cursor
- codebuddy
- nestudy
display_name: 发布会 bento 信息图
suggest_hint: 一组卖点或研究结果要收成一张图?用「发布会 bento 信息图」排一张苹果总结片那样的格子图
---
# 发布会 bento 信息图 / Bento Infographic
把一组产品卖点或研究结果排成苹果发布会收尾那种总结图:主图居中,四周十几个圆角格,一格一个功能。
所有尺寸按标签字号 u 换算,比例从苹果的总结片上量出来。脚本管尺寸、排版、渲染和自检,模型管选内容、写标签、查出处,使用者确认清单、挑排版。
## 何时使用与分流 / When to use
- "做一张苹果发布会那种总结图""bento 图""产品亮点一图看完"
- "把研究成果排成一张格子图"(研究模式)
- 任意画幅:16:9 演示、4:3、21:9 宽屏、A4 打印、手机信息流(1:1、3:4、4:5、9:16、1:2 长图)
**不适用于** / Not for:
- 十几页的发布会片子:用 `keynote-deck-builder`;片子收尾要一张总结图时,再用本 skill 出 PNG 放进去
- 一组照片排成一页成套作品:用 `photo-series-layout`
- 照片要先调色:用 `photo-cinematic-grade`,调好再放进格子
- 数据仪表盘、带坐标轴和图例的图表:不做
- `launch-summary-panel` 已废弃,由本 skill 取代;使用者点名要它时,说明一句,改用本 skill
## 需要的输入 / Inputs
| 输入 | 必填 | 说明 |
|---|---|---|
| 材料 | 是 | 卖点、规格表、发布稿或实验报告;图上每个数字都要能指回它 |
| 用途 | 否 | 定画幅和 u;没说就按 16:9 演示(3840×2160) |
| 产品还是研究 | 否 | 定 `mode`;没说就按材料判断 |
| 图片 | 否 | 使用者有权使用的产品图、照片、界面截图;没有就用图标格,并说明出来不会太像苹果 |
| 深浅 | 否 | 默认浅色;苹果只在 Pro 机型的片子上用深色 |
最多问三句:用在哪里;产品还是研究;手上有哪些图。都不答,就按 16:9、浅色出。
## 流程 / Process
脚本都在本 skill 的 `scripts/` 里,只用 Python 3、Pillow、numpy、scipy 和本机 Google Chrome,全程不联网:
```bash
python3 scripts/bento.py plan bento.json --out out/
python3 scripts/bento.py layout bento.json --n 3 --out out/
python3 scripts/bento.py render bento.json out/layout-1.json --out out/render
python3 scripts/bento.py check bento.json out/layout-1.json --dir out/render
```
1. **问清用途**,最多三句(上一节)。
2. **内容清单**:写 `bento.json`,每格一条:种类、标签、重要程度(1–3)、图片、数字的出处;舍弃的条目写进 `dropped`,每条带理由。字段见 `references/bento-json.md`。跑 `bento.py plan`:打印清单表、格数、纯文字格占比和问题,再出一张线框预览。表和线框发给使用者确认。**这一步不出成图。**
3. **排版**:`bento.py layout` 给三个结构不同的方案(`layout-1.json` 分最好),各带一张线框图。各用一句话说差别,使用者挑一个;不挑就用第一个。报"排不出来"时减格或缩短标签,不缩字号。
4. **渲染**:`bento.py render` 写单文件 HTML,驱动本机 Chrome 等字体和图片就绪后截 PNG,量出 `dom.json`、`fonts.json`,跑自检写 `qa.json`。要矢量版加 `--pdf`(字体见"不做的事")。
5. **自检**:读 `qa.json`。没过的项先改内容或换方案,重新渲染;改不掉的写进交付说明。不许改阈值或改 `qa.json` 让它通过。
6. **交付**:PNG、HTML、`bento.json`、选定的 `layout.json`、`qa.json`。要深浅两版时,两版用同一份 `layout.json`。
**可选抠图**:使用者自己的产品照片带背景时,`swift scripts/cutout.swift in.jpg out.png`(macOS 14 以上,Vision 前景分割,在本机处理)出透明底 PNG,放进实物格(`object`)。只处理使用者自己的照片。
## 尺寸规则 / Sizes
所有尺寸都是标签字号 u 的倍数,数值只在 `scripts/bento_spec.py` 定义一次。读数、量法和样图出处见 `references/apple-measurements.md`。
| 用途 `canvas.use` | u |
|---|---|
| `screen`、`print`、`custom` | 短边的 2.2%(16:9 时等于宽的 1.23%) |
| `phone` | 宽的 2.8%(手机全宽看图时,标签约 11pt);交付时说明字比样图大、每格更满 |
| 项 | 规则 |
|---|---|
| 格缝、外边距 | 0.68u |
| 圆角 | 1.55u,所有格子同一个值,普通圆角 |
| 文字离格边 | 上下 0.95u;标签左右至少留 1u |
| 标签 | u;英文行高 1.18,中文 1.3 |
| 功能名 | 按重要程度三档上限 1.75u、2.0u、2.6u,放不下往下缩,最小 1.6u |
| 大数字 | 3.2u(2.2–4.3u);只有最重要的一个(`weight` 3、无图)起排 4.3u,别的不随格子放大;离格边至少 1.1u,宽不超过格宽的 75%;斜杠、逗号伸到基线下的尾巴,标签让开它 |
| 主图里的字 | 默认 6u(5–8u) |
| 图标 | 格宽的 46%,夹在 3.5–9u 之间(苹果图标格的中位数) |
| 最小格 | 6u × 4.8u;长宽比不超过 3.5 |
| 字重、字距 | 一律 600;字距 0;固定 SF 的 Display 光学尺寸 |
| 出处行 | 默认不出;要出时 0.75u、对比度 ≥ 4.5:1,画在下边距那一条里 |
**排法**:格子铺满整张画布,四边留白等于格缝;图上没有标题、页头、页脚和分组小标签。画布切成接近正方形的小格(每格连格缝约 1.45u,行列都是 4 的倍数,16:9 是 56 × 32)。主图在正中,默认占横竖 1 : 2 : 1 的中间块;产品图按长宽比收窄,竖版画布遇到长宽比超过 1.3 的图,主图改成通栏。外圈分成上带、下带、左栏、右栏,四个角归谁每次不同,每条再切成几格。竖版也是这个结构,不学手机网页塌成一列。
**格数**(含主图)跟画幅的形状走:16:9 建议 14–18、上下限 10–21,来自苹果 2022–26 年 67 张总结片的常见值和见过的范围;别的画幅按以短边计的周长折算。超出建议范围只提醒,超出上下限自检不过。
| 画幅 | 输出像素 | `use` | 建议 | 上下限 |
|---|---|---|---|---|
| 16:9 | 3840×2160 | screen | 14–18 | 10–21 |
| 4:3 | 2048×1536 | screen | 12–15 | 8–18 |
| 21:9 | 3440×1440 | screen | 17–22 | 12–26 |
| A4 竖版 | 2480×3508 | print | 12–16 | 8–18 |
| 1:1 | 2160×2160 | phone | 10–13 | 7–15 |
| 3:4 | 1242×1656 | phone | 12–15 | 8–18 |
| 4:5 | 1080×1350 | phone | 11–15 | 8–17 |
| 9:16 | 1080×1920 | phone | 14–18 | 10–21 |
| 1:2 长图 | 1080×2160 | phone | 15–19 | 10–23 |
手机的字大,能排多少格由排版器按内容量;研究成果每个数字多一行样本数与条件,3:4 手机图放不下时改用 `screen`。
**颜色**(`theme`):
| 主题 | 底 | 格 | 字 |
|---|---|---|---|
| `light`(默认) | #e8e8e8 | #ffffff | #000000 |
| `light-inverse` | #ffffff | #ececec | #000000 |
| `dark` | #181818 | #000000 | #ffffff |
- 照片上的标签一律白字,不加遮罩。照片格不写 `label_pos` 时,脚本按标签下那块照片的对比度自动放上边或下边。
- 重点色(顶层 `accent`)最多一支,用产品自己的颜色;只用在大数字、功能名、主图字、图标和图表的高亮处,不用在标签上。同一类元素要么都上、要么都不上(苹果手表那张四个大数和两个图标都是橙):一个数蓝、一个数黑,读起来像漏了(第 10 轮评审)。
- 深色主题里大字默认纯白。银灰(`tone: "silver"`,每一行各自上深下浅,#646464 → #d0d0d0)只成组用:至少三格,都是次要的字,最重要的一两个留白字或重点色(苹果 iPhone 18 Pro 那张的分法)。只给一两格上银灰、夹在白字中间,读起来是不一致,不是层次(第 10 轮评审)。
- 格子可以带内容自己的颜色(`background`:一个颜色,或上下两个颜色表示光影),不许上装饰色;白字够读时字自动变白。主图可以是品名压在产品自己的图上(`image` 加 `fit: "cover"` 加 `word`,图暗时字自动变白),写 `box_aspect`(16:9 上 1.8)按产品主图的大小排,是全图最大的一格。
- 没有投影、装饰渐变、模糊和毛玻璃。
## 格子种类 / Tile kinds
| 种类 | 放什么 | 研究成果里怎么用 |
|---|---|---|
| `hero` | 产品图,或品名大字,或两者;品名可以压在产品自己的颜色上;全图恰好一个,在正中 | 装置照片、核心结果图、课题名 |
| `stat` | 数字连单位,下面一行小标签;可配一张图 | 关键测量值,带不确定度与条件 |
| `word` | 功能名放大成画面;宽格里可以左图右字 | 方法名、模型名 |
| `icon` | 居中图标,标签在下 | 数据来源、仪器、工具 |
| `object` | 产品局部、元件、配件,透明底最好 | 样品、元件、传感器 |
| `photo` | 照片铺满,白字标签 | 实验现场、观测照片 |
| `ui` | 界面截图在上、标签在下;从格边伸出去,格子太窄就整张放进去,不切两边;圆角 0.6u,不加描边 | 软件界面、仪器读数 |
| `row` | 一排同类小元素 | 参数扫描的几个取值、几组对照 |
| `flank` | 一个物体,两边各一个数 | 前后对比、两种条件 |
| `chart` | 一条线或几根柱,标一个值;只在研究模式 | 一个趋势或一组对比 |
每种的版式、字号和最小尺寸见 `references/tile-kinds.md`。截图先裁出有信息的那一块(公式、卡片、标题区),不要把整页缩成一格,否则字小到成了噪点;已经裁紧的截图写 `fit: "contain"`,免得伸出格边时把字切掉。苹果的片子七成以上的格子有图;没有图的大数字和功能名(纯文字格)不超过三成。图标用 `assets/icons/` 里的 Phosphor Fill 子集(MIT),名字和中英关键词在 `index.json`。图标格只是补位:同一张图里最好不超过两个,最多四个,有真实的截图、照片、产品图就先用它们(第 10 轮评审:八个"图标加标签"的格读起来像菜单,格子显得空)。纯文字格和图标格要紧:排版器让它们的格子不超过所装内容的两倍大(苹果的这类格是 1.1–2.4 倍),上带先放有图的格。格里的截图和图片一律 0.6u 圆角,不加描边。单色底的图(一张片子、一个公式)铺成一张卡:卡的底就是图的底,填满图区,图的内容按卡放大到八成左右;卡和格子同色(黑底片子放进深色主题的黑格)时,卡改用次一级的底色(深色 #1c1c1e、浅色 #f2f2f7),图叠上去,黑底或白底变成卡色。别的图边看不见时垫一层同色的框。排版器会把整张放的截图分进和它比例相近的格子,浅色画布上同一条带里深色的格最多一个。
## 标签写法 / Labels
- 一格一个功能。标签是名词短语,不加句末标点,没有说明句;长说明放进交付说明,不上图。
- 写功能,不写分类:"照片跨页排版""截止日倒排计划",不写"摄影""学习规划"这种菜单名。
- 英文:句首大写,1–7 个词(多数 2–4 个),最多 3 行。
- 中文:最多 12 字、每行最多 11 字、最多 2 行,行尾不留单字。换行写在 `label` 里(`\n`),不交给浏览器折行;名字里的空格用不换行空格("iPhone 18 Pro Max");汉字和拉丁字母、数字之间加空格,全角标点两边不加。
- 最高级("最长""首款")只给最重要的一两格。
- 数字连单位一起当画面("48MP""36 小时");拉丁单位和数字同字号,中文单位缩到 0.45 倍。只是量词(个、份)时放进标签开头,从数字接着读下去("63" / "个技能"),比缩小挂在数字旁更像苹果的"数字 + 名字"。
- 写完跑 AI 腔词表(在仓库根目录):`grep -nFf skills/coding-helper/keynote-deck-builder/references/ai-tone-words.txt bento.json`。命中的词逐条判断:删掉意思不变就删。
中英好坏例子见 `references/label-grammar.md`。
## 事实校验规则 / Fact checking
这一节优先于所有视觉要求。脚本能查的由 `validate_spec` 拦下,`plan`、`layout`、`render` 都先跑它。
1. **每个数字都要能指回材料**:原文和出处写进这一格的 `facts`。指不回去的默认不放,写进 `dropped`。
2. **不做换算、推算、四舍五入**。材料写 4K120 就写 4K120。
3. **限定条件跟着数字走**。"最长 22 小时视频播放"里的"视频播放"不能丢。
4. **对比性说法要有对比对象**。"快 3 倍"要写清比什么快;材料里没写,按没有出处处理。
5. **未确认的数字在图上看得出来**。使用者坚持要放没有出处的数字时,写 `"unverified": true`,标签里写明"未确认"(英文写 unverified),交付说明里列出。
6. **材料互相矛盾时**,两个数都列给使用者,由使用者定。
研究模式另加两条:
7. **测量值带不确定度与条件**:`uncertainty` 画成"1.23 ± 0.04 s",`n`(样本数)和 `condition`(条件)画在标签下面一行。没有不确定度的数:计数、定义值、确定性计算的结果写 `"exact": true`;只测了一次写 `"n": 1`,照实画出来。不编不确定度。
8. **不自己下"与理论吻合"这类结论**:吻合程度照 `model-fit-auditor` 的分级措辞写;没做吻合分析,就只写数字。
## 不做的事 / Boundaries
- **不用苹果的东西**:苹果 logo、产品渲染图和官方摄影、SF Symbols、"Apple Intelligence"这类苹果的名称和彩虹渐变字、芯片样式的金属徽章、苹果的广告语。依据是苹果的第三方商标指南:宣传物料里不许用苹果 logo,不许暗示和苹果有关联,不许模仿苹果独特的设计和字体。测量用的苹果样图只留在仓库的 `tests/fixtures/bento-infographic/apple-reference/`,任何产物都不引用、不拼贴、不描摹。
- **不冒充**:学的是比例、结构和留白;做出来的图不能让人以为是苹果的官方物料。
- **字体**:默认系统字体(Mac 上是 SF Pro 与苹方),Inter 与 Noto Sans SC(思源黑体)兜底。不打包、不下载 SF Pro 和苹方。PNG 截图按字面属于显示与打印,对外商用的图由使用者判断;PDF 会嵌入字形,只用 Inter 与 Noto Sans SC。兜底字体没装时提示安装(Mac:`brew install --cask font-inter font-noto-sans-sc`),不偷偷换成别的字体。
- **不编数字**,不补常识值(上一节)。
- **不生成图片**:不画产品渲染图,不用生成式模型补照片。缺图的格改成图标格或文字格;缺得太多就直说,成图不会像苹果。
- **第一版不做磨砂渐变格**(iPhone 16e 那张样图的做法)。
- 不是整套片子(`keynote-deck-builder`),不是照片拼版(`photo-series-layout`),不是数据仪表盘。
## 自检 / QA
`render` 跑完自动写 `qa.json`(`schema: "bento-qa/1"`),19 项全过才算通过;`bento.py check` 可以对已渲染的目录重跑。
| 项 | 阈值 |
|---|---|
| `hero_center` | 主图中心偏差 ≤ 0.5%(有出处行时,以格子区的中心为准) |
| `hero_area` | 产品图、带底色或写了 `box_aspect` 的主图 18–30%;只有字 10–20%;通栏主图 15–45% |
| `gutter_uniform`、`radius_uniform` | 格缝、外边距、圆角全图各一个值,偏差 ≤ 0.5 px |
| `unit_size` | 标签都是 u;出处行 0.75u |
| `type_scale` | 功能名 1.6–3.4u,大数字 2.2–4.3u,主图字 5–8u |
| `weight` | 一律 600 |
| `overflow` | 文字溢出、裁切 0 处 |
| `label_lines`、`label_length` | 英文 ≤ 3 行、≤ 7 词;中文 ≤ 2 行、≤ 12 字、每行 ≤ 11 字;画出来的行数和写的一致 |
| `fonts` | 每段字都落在字体栈里的字体上;用了兜底就提醒 |
| `contrast` | 标签 ≥ 4.5:1,1.6u 以上的大字 ≥ 3:1;照片上的字按字背后那块照片取样 |
| `accent_hues` | 重点色最多一种色相,不用在标签上 |
| `text_only_share` | 纯文字格 ≤ 30% |
| `tile_count` | 在画幅的上下限内;不在建议范围里只提醒 |
| `min_tile` | 每格 ≥ 6u × 4.8u |
| `image_upscale` | 只提醒:图片放大超过 1.25 倍会糊 |
| `output_size` | PNG 像素和要求完全一致 |
| `cjk_spacing` | 汉字和拉丁字母、数字之间有空格 |
同一份 `bento.json` 和 `layout.json`、同一台机器、同一版 Chrome,PNG 字节相同;同一份 `bento.json` 和同一个 `seed`,`layout` 给出同样的方案。
## 输出格式 / Output
第一轮只发清单:`plan` 打印的表、线框预览、舍弃项。确认后交付成图,交付说明照这个格式:
```markdown
## 交付
- 成图:out/render/bento.png(3840×2160);HTML:out/render/bento.html
- 排版:layout-1(三个方案里的第一个:……)
- 自检:19 项通过(没通过的项与原因)
- 提醒:……(格数、图片放大、兜底字体)
- 字体:系统字体(SF Pro、苹方) / 用了兜底(Inter、Noto Sans SC)
- 舍弃:……(理由)
- 未确认:……(图上已标)
```
## 没有 Chrome 或不在 Mac 上时(降级)
- **找 Chrome**:脚本依次找环境变量 `BENTO_CHROME`、`/Applications/Google Chrome.app`、`PATH` 上的 `google-chrome` 或 `chromium`。Linux 上照常;Windows 上用不了 DevTools 管道,在 WSL 里跑。
- **完全没有 Chrome**:`plan`、`layout` 照常(纯 Python,出线框图);`render --html-only` 只出 HTML,交给使用者用浏览器打开或截图。交付说明标"降级:没有 PNG,也没有自检"。
- **不在 Mac 上**:系统字体不是 SF Pro 和苹方。装上 Inter 和 Noto Sans SC,在 `bento.json` 里写 `"font": "open"`;自检的 `fonts` 报出实际字体,交付说明标"降级:没有 SF Pro"。
- **抠图**:`cutout.swift` 只在 macOS 14 以上能用。别处跳过这一步,照片照常放,或请使用者给透明底 PNG。
- **不能跑脚本的运行时**:只交 `bento.json` 和一段文字线框(每格的位置与内容),标"降级:没有排版、渲染与自检";不用手写的 HTML 冒充成图。
## 参考资料 / References
- `references/apple-measurements.md`:某个比例从哪来、样图怎么量的
- `references/bento-json.md`:写 `bento.json` 时(全部字段、校验规则、两份完整示例)
- `references/tile-kinds.md`:决定一格用哪种、版式怎么排
- `references/label-grammar.md`:写标签时(中英好坏例子、AI 腔词表)
- `examples/`:产品浅色、产品深色、研究 3:4 三份完整样例,各含 `bento.json`、`layout.json`、PNG、`qa.json`
## 变更记录 / Changelog
| 版本 | 日期 | 变更 | 类型 |
|---|---|---|---|
| 0.1.0 | 2026-10-10 | 初版:样图测量、尺寸规格与模板、Chrome 渲染器、排版器、19 项自检、九种画幅、研究模式与小图表、可选抠图;三份样例经独立评审 8.1 分(门槛 8);取代 launch-summary-panel | minor |
Files in this skill
- SKILL.md
- assets/icons/LICENSE
- assets/icons/airplane.svg
- assets/icons/aperture.svg
- assets/icons/atom.svg
- assets/icons/battery-charging.svg
- assets/icons/battery-full.svg
- assets/icons/bluetooth.svg
- assets/icons/book-open.svg
- assets/icons/calculator.svg
- assets/icons/calendar.svg
- assets/icons/camera.svg
- assets/icons/car.svg
- assets/icons/chart-bar.svg
- assets/icons/chart-line.svg
- assets/icons/chart-pie-slice.svg
- assets/icons/check-circle.svg
- assets/icons/clock.svg
- assets/icons/cloud.svg
- assets/icons/code.svg
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.