mcpField

pencil-renderer

github.com/phrazzld设计与 UI111 次安装
代码仓库

关于 pencil-renderer

pencil-renderer 是供设计编排器调用的技能,可将审美 DNA 代码确定性地转换为 Pencil .pen 画框,并返回画框 ID 和截图。它需要 Pencil MCP,不负责访谈或迭代。

主要功能

  1. 01将 DNA 轴映射为 Pencil 属性
  2. 02支持八类组件模板
  3. 03通过批量设计操作创建画框
  4. 04截取渲染画框供检查

适用场景

  1. 01按给定 DNA 生成页面组件
  2. 02由设计编排器创建 Pencil 画框

MCP 相关

技能通过 Pencil MCP 检查编辑器状态、读取样式指南、批量创建设计并获取截图;Pencil MCP 不可用时会快速失败。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/phrazzld/claude-config --skill pencil-renderer

安装后在 Claude Code 中输入/pencil-renderer确认已加载。

附带文件references/batch-design-patterns.mdreferences/dna-to-pencil.md

详细介绍

Pencil 渲染器

通过 MCP 将美学 DNA 代码转换为 Pencil .pen 画框。

接口

输入:

  • DNA 代码:[layout, color, typography, motion, density, background]
  • 组件类型:hero | card | form | nav | footer | section | button | input
  • 可选:名称、尺寸、父画框 ID

输出:

  • .pen 文件中的画框 ID
  • 渲染后画框的截图

工作流

1. 确保文档已就绪
// Check if editor open
mcp__pencil__get_editor_state({ include_schema: false })

// If no editor, open or create
mcp__pencil__open_document({ filePathOrTemplate: "new" })
2. 获取样式基础
// Get available style guide tags
mcp__pencil__get_style_guide_tags()

// Get style guide matching DNA mood
// Map DNA to relevant tags:
// - dark color → ["dark-mode", "moody"]
// - light color → ["light", "clean"]
// - spacious density → ["airy", "whitespace"]
// etc.
mcp__pencil__get_style_guide({ tags: [mapped_tags] })
3. 将 DNA 转换为 Pencil 属性

参考:references/dna-to-pencil.md

DNA 轴到 Pencil 属性的映射是确定性的。 示例:centered 布局 → alignItems: "center"、对称内边距

4. 执行设计操作

参考:references/batch-design-patterns.md

mcp__pencil__batch_design({
  filePath: "<path>.pen",
  operations: `
    frame=I(document, {type: "frame", name: "Hero-Brutalist", ...properties})
    heading=I(frame, {type: "text", content: "Headline", ...typography})
    // ... additional operations
  `
})
5. 捕获结果
// Screenshot for visual verification
mcp__pencil__get_screenshot({ nodeId: "frameId" })
6. 返回
Frame ID: [id]
DNA: [layout, color, typography, motion, density, background]

以及截图。

组件模板

类型结构
hero容器 + 主标题 + 副标题 + CTA 按钮
card容器 + 图片区域 + 内容 + 操作
form容器 + 标签 + 输入框 + 提交按钮
nav容器 + 徽标 + 链接 + 操作
footer容器 + 列 + 链接 + 法律信息
section容器 + 标题 + 内容网格
button画框 + 文本 + 图标槽位
input画框 + 标签 + 字段 + 验证信息

DNA 转换速查

DNA 轴主要 Pencil 属性
布局:居中alignItems: "center"、相等的内边距
布局:不对称偏移位置、不同间距
布局:便当盒式跨度各异的网格
颜色:深色深色填充、浅色前景
颜色:渐变fill: {type: "linear", stops: [...]}
排版:强调展示大号标题、高对比度
排版:简约克制的字号、单一字体系列
密度:宽松gap: 24-48、充足的内边距
密度:紧凑gap: 8-16、紧凑的内边距
背景:纯色单一填充颜色
背景:纹理使用 G() 绘制图案/图片

约束

  • 单一关注点:将 DNA 渲染为画框。不进行访谈或迭代。
  • 需要 Pencil MCP:不可用时快速失败
  • 确定性映射:相同的 DNA 始终生成相同的结构
  • 可组合:由编排器调用,不直接面向用户

参考

  • references/dna-to-pencil.md — 完整的轴映射
  • references/batch-design-patterns.md — 常见操作序列
  • aesthetic-system/references/dna-codes.md — DNA 轴定义

集成

由以下内容调用:

  • design-exploration 编排器(Pencil 后端可用时)

组合:

  • aesthetic-system(用于解读 DNA)

评论

支持 Markdown