跳到主要内容

Design Studio

Design Studio 是 Elftia 内置的 AI 设计工作台。它把设计技能(Skill)设计系统(Design System)Craft 片段 三个抽象组合起来,让 AI 能基于一致的视觉语言生成网页、海报、Deck、社交图等可交付物,并支持原地预览、Lint 校验和导出。

入口:左侧导航 Design Studio(路由 /design-studio)。

三件套是什么

抽象作用来源
Skill(设计技能)把"做什么"封装成可复用的 prompt + 输入 schema —— 例如"产品落地页"、"会议海报"、"播客封面"。内置 70+ 个 + 用户自定义
Design System(设计系统)把"长什么样"封装成 token + 组件参考 —— 配色、字体、间距、圆角、阴影、按钮样式等。内置 140+ 个 + 用户自定义
Craft(片段库)可拼接的 HTML / CSS / SVG 片段 —— 装饰元素、布局骨架、图表样板。内置 7 类 + 用户自定义

启动一个新项目时,你选定 Mode + Skill + Design System 三个轴,AI 会基于这套上下文 + Craft 库生成产物。

四种模式(Mode)

新建项目时可选择以下任一模式,模式决定了 artifact 的产物类型与编辑流程:

模式产物特色
Prototype单页 HTML 原型默认模式,左 chat 右工作区,支持评论 / 局部编辑(surgical edit)
Deck多页幻灯片iframe + 上下页 + 全屏 + 速览 + 导出 PDF / PPTX
Template表单驱动的 HTMLEJS 子集占位符模板,自动生成表单,输入即时刷新右栏预览
Design SystemDESIGN.md + 示例页双栏(左 DESIGN.md 源 + token swatch / 右示例 dashboard),保存到 <userData>/elftia/design-systems/<slug>/

主要界面

首页(/design-studio

两个顶部 Tab,全宽布局(无侧边栏):

Tab内容
Examples(示例)按 Skill 浏览预制的样例项目,可一键 Fork 出新会话。
Design Systems(设计系统)浏览内置 + 自定义的设计系统,预览模板效果,切换默认值。

历史 Design 项目以 kind='design' 的会话出现在常规会话列表里 —— 和聊天会话同源,支持分支、重生、附件等。

新建项目

新建入口在新会话页的 DesignStudio persona

  1. 在新会话页顶部 persona 选择器选 DesignStudio
  2. 选择 Skill(左侧)+ Design System(右侧)
  3. 描述需求,发送
  4. AI 输出产物 → 自动打开预览面板

详见 新会话与 persona

产物预览

AI 生成产物(artifact,通常是 HTML 文档)后会触发"打开 workspace"动作,把右侧切换为预览面板:

  • Preview — 实时渲染 HTML,支持视口宽度切换(mobile / tablet / desktop)
  • Source — 查看产物源码(CodeMirror,可复制)
  • Lint — 自动校验产物是否符合设计系统约束(颜色越界、字体不在 token 内等)

每条产生 artifact 的消息也会单独显示一个 Preview 按钮 —— 你可以回放历史版本而不必把 workspace 切回当前。

导出

预览面板顶部 Export 按钮:

类型输出
HTML单文件 HTML(内联资源)
PNG / JPG视口截图,可指定分辨率
PDF多页 PDF(适合海报、Deck)
DeckReveal.js 风格的多页幻灯片包

内置素材的来源

design-skills/design-systems/craft/ 三个目录在首次启动时被 materialize 到用户数据目录(<userData>/elftia/),写在 elftia 安装目录里。

这意味着:

  • 你直接编辑用户目录下的文件就能定制内置 Skill / DS / Craft
  • 你的编辑不会被 elftia 升级覆盖(升级只新增文件,不动已存在的)
  • 内置素材本身来自上游开源项目 nexu-io/open-design,按 commit pin 取快照

如果你想升级到上游最新版本(开发者操作),见开发者文档:内置资源同步流程

与聊天系统的关系

Design 项目在底层是普通的 chat_sessions 行(kind='design'),所以:

  • 支持同样的 LLM 配置、provider 切换、API Key Pool
  • 支持消息分支、重生(每次重生 = 一个新 artifact 版本)
  • 支持附件上传(参考图、品牌素材)
  • 在历史侧边栏里和普通聊天会话混合显示,可加文件夹 / 标签

不同点:

  • 必须绑定一个 Skill + Design System,session 创建时确定,中途不可换
  • 引擎层走 Design 适配器(Adapter)—— 不是所有引擎都支持。claude-sdk / tinyelf / chat 等通过 Prompt Injection 注入策略可直接使用;cli(Claude Code、Codex CLI)走 FilePlaced 策略;纯 api engine 不支持,会显示 placeholder

0.1.7+ Always-on(无需 Experimental Flag)

0.1.7 起 Design Studio 已默认启用,无需在 设置 → 系统 → Experimental Features 里开开关。导航栏直接出现 🎨 Design Studio 入口。

启用门槛只剩一条:当前 LLM provider 的引擎要支持 Design 适配器

支持矩阵:

引擎类型是否支持注入方式
claude-sdk原生 skill 加载,支持 surgical-edit 评论 / 局部编辑
tinyelfPrompt Injection — SKILL.md + DESIGN.md inline 到 system prompt
chatPrompt Injection(>16k tokens 会拒绝以避免溢出)
cli(Claude Code、Codex)FilePlaced — 写入 .cursorrules / .aider.conf.yml
api不支持,会显示 "Adapter unavailable" placeholder

常见问题

问题解决方案
Design Studio 页面显示 "Adapter unavailable"当前 LLM provider 选了不支持 Design 适配器的引擎(多半是 api),换到 Claude SDK / TinyElf / Chat / 一个支持的 CLI backend
自定义的 Design System 不显示检查 <userData>/elftia/design-systems/<your-ds>/ 下是否有 manifest.json 且 schema 有效;可在 Design Systems 页签点「重新扫描」
升级 elftia 后内置 Skill / DS 没更新这是设计行为 —— 已存在的文件不被覆盖(按 SHA-1 检测用户编辑)。如需重置某个文件,删除用户目录下对应文件,重启会重新 materialize
产物预览里 Lint 报"颜色越界"产物里用了不在 design-tokens 里的颜色值;要么改产物用 token,要么扩展 design system 的 token 表
Surgical-edit(评论 / Send to chat)不可用claude-sdk 引擎下启用。其它引擎打开 Comments 抽屉只能查看,不能 Send to chat

相关链接