关于 branding
Branding 是一项协作式品牌设计技能,从标志构思延伸到字体与配色选择、素材制作和品牌指南。它通过浏览器预览收集反馈,并可选地将素材接入项目。
主要功能
- 01协作探索品牌方向
- 02制作并检查 SVG 标志
- 03通过浏览器预览字体与配色
- 04导出多种格式的品牌素材
- 05生成 HTML 品牌指南
- 06可选接入项目资源
适用场景
- 01为新项目建立完整品牌形象
- 02比较标志、字体和颜色方案
- 03制作网站图标与社交媒体图片
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ steveclarke/ dotfiles --skill branding安装后在 Claude Code 中输入/branding确认已加载。
详细介绍
品牌
为一个项目打造完整的品牌形象:标志图形、字标组合、配色方案、字体选择、可用于生产环境的素材包,以及品牌指南。
前置条件
开始前,请确认已安装以下工具:
which inkscape && which magick
- Inkscape — SVG 操作、文本转路径、PNG 导出
- macOS:
brew install --cask inkscape
- macOS:
- ImageMagick v7+ — 图像合成、调整大小、格式转换
- macOS:
brew install imagemagick
- macOS:
概览
工作流分为 7 个阶段。前 3 个阶段与用户协作完成;后 4 个阶段主要是自动化生产工作。
- 探索 — 了解项目,以及 Logo 应传达的内容
- Logo 生成 — 直接编写 SVG 概念稿,并与用户一起审阅
- 字体与颜色选择 — 选择字标字体和品牌色
- SVG 精修 — 使用 Inkscape 将文本转为路径、清理 viewBox、创建组合样式
- 素材包制作 — 导出所有变体、尺寸和格式
- 品牌指南 — 生成全面的 HTML 品牌参考页面
- 项目接入 — 将素材放到所需位置(可选)
基于浏览器的预览
在协作阶段中,使用临时 HTML 页面向用户展示可选方案。这是此工作流中的核心技巧——绝不要让用户从文件夹中打开 SVG 文件,或靠猜测来判断效果。
操作方式:
- 在项目的
tmp/目录中生成一个独立的 HTML 文件(例如tmp/brand-fonts.html) - 在 Chrome 中打开:
open -a "Google Chrome" /path/to/file.html - 用户审阅并提供反馈
- 提交前清理
tmp/文件
预览页面的关键规则:
- 只使用纯 HTML 和 CSS,尽可能避免 JavaScript。如果需要 JS,请使用安全的 DOM 方法(
textContent、createElement),不要使用innerHTML,因为安全钩子可能会拦截它。 - 字体预览时,通过
<head>中的<link>标签加载 Google Fonts,这样字体就能在浏览器中即时呈现。 - 在 HTML 中直接内嵌 SVG 标志图形,用于预览组合样式(不要引用外部文件)。
- 页面应保持独立,不依赖 Google Fonts CDN 之外的外部资源。
阶段 1:探索
询问用户:
- 项目名称 — 字标中使用的准确大小写和拼写
- 项目用途 — 用一句话说明,帮助你了解所属领域
- Logo 风格 — 抽象几何图形?字母标?吉祥物?等距视角?极简风格?
- 符号或隐喻 — 名称让人联想到的事物(例如,“Kiso”在日语中意为“基础”,因此采用了堆叠积木的设计)
- 颜色偏好 — 暖色或冷色、现有颜色,或者“给我惊喜”
利用对话中已有的回答。探索环节应简短,然后开始创作概念稿。
阶段 2:Logo 生成
**加载 logo-design 技能并按照其规范设计图形标志:**包括其设计简报、在其参考库中进行品类调研、提出三个概念、执行其测试(16 px、单色、反白、与竞品并列的货架测试、svg_audit.py)以及概念检查点。到检查点为止,不要制作其品牌套件。用户选定方向后,选中的标志会回到此处,继续阶段 3 及后续工作。其参考库中的 Logo 均为商标,仅供研究。
如果未安装 logo-design,请按以下说明创作标志。
直接以可编辑的 SVG 格式创作 Logo。
当用户想要多个选项时,根据调研简报创作几个各不相同的概念;或者直接完善已选定的方向。编写真正的矢量几何图形(路径、形状、填充和描边),使用干净的 viewBox,不要嵌入光栅图像来代替 Logo。将图形标志与文字标志分开,文字标志将在阶段 3 使用合适的字体制作。
呈现前,渲染 SVG 并进行目视检查。在 HTML 预览页中并排展示各个概念,包括小尺寸图标和浅色/深色背景。检查轮廓、间距、描边一致性和可读性。根据用户反馈反复调整;保留已获批准的版本,同时探索其他方案,只有在用户选定替代方案后才替换。
当用户提出要求,或直接迭代 SVG 无法达到理想效果时,可将 quiver.ai 或 recraft.ai 等第三方 SVG 生成器作为备用方案。
选定标志后,在生成资源包之前检查其 SVG 结构(viewBox、尺寸、颜色以及任何嵌入的文本或字体)。在阶段 4 将所有剩余文本转换为路径。
阶段 3:字体和颜色选择
字体
推荐 4-6 款与标志风格相配的字体。制作一个单页 HTML 预览页,并排展示所有候选字体:
- 每款字体都以建议的品牌颜色,将项目名称以粗体(700/800)大尺寸呈现
- 第二行以常规字重(400)呈现,便于对比
- 正文示例("The quick brown fox...")
- 如果字体支持,展示字重示例(400、600、700、800)
- 简要说明字体的个性和适配度(例如:"几何、现代——最接近当前文字标志的风格")
通过 Google Fonts 的 <link> 标签加载字体。在 Chrome 中打开页面,供用户比较。
用户选定字体后:
- 从 Google Fonts GitHub 仓库下载(最可靠的来源):
注意:大多数 Google Fonts 使用curl -L -o /tmp/FontName.ttf "https://raw.githubusercontent.com/google/fonts/main/ofl/fontname/FontName%5Bwght%5D.ttf"ofl/路径。使用file /tmp/FontName.ttf验证下载文件——输出应为 "TrueType Font data",而不是 "HTML" 或 "ASCII text"。 - 在本地安装:
cp /tmp/FontName.ttf ~/Library/Fonts/(macOS) - 保存到
brand/fonts/,以便打包资源
颜色
如果用户已有带颜色的 Logo,请先提取颜色。在预览 HTML 页面中,将 SVG 中找到的所有颜色显示为色块,并根据颜色用途命名(例如“船体海军蓝”“帆船红”)。
然后以大型、看起来可点击的卡片形式展示品牌颜色候选项,其中包含:
- 显示十六进制值的大色块
- 颜色名称及其个性描述
- 最佳候选项的推荐说明
添加一个建议的配色方案部分,说明各颜色的用途:
- 主色 — 按钮、链接、激活状态
- 深色/海军蓝 — 侧边栏、标题、深色表面
- 强调色 — 警报、危险操作、视觉亮点
- 高亮色 — 信息横幅、选中状态
**探索颜色变体:**如果用户想尝试不同色调或替换某种颜色(例如“这个红色太暗了”),请生成一个对比页面,展示 4-6 种变体,每种变体都将完整标志替换为相应颜色。使用 sed 替换 SVG 中的十六进制值,以便快速迭代 — 将每种变体的 SVG 直接内嵌到 HTML 中。
**Tailwind 色阶:**用户选定品牌颜色后,需要为 Tailwind 生成完整色阶。引导他们前往以下网站生成:
- uicolors.app — 基于 OKLCH 的色阶效果出色
- kigen.design/color — 另一款生成器
用户粘贴十六进制值后,会得到 OKLCH 格式的 50-950 色阶,并将其分享给你,以便接入项目。
记录颜色决策
记录资源包的最终颜色:
- 主色:主要品牌颜色及其 Tailwind 色阶名称
- 所有 Logo 颜色:十六进制值和用途(船体、帆、水面等)
- Tailwind 色阶:完整的 50-950 OKLCH 值
第 4 阶段:SVG 精修
此阶段会生成其他所有资源的基础主 SVG。你需要 9 个 SVG 文件:
| 变体 | 仅标志 | 横向组合标志 | 纵向组合标志 |
|---|---|---|---|
| 彩色 | mark-color.svg | logo-horizontal-color.svg | logo-stacked-color.svg |
| 黑色 | mark-black.svg | logo-horizontal-black.svg | logo-stacked-black.svg |
| 白色 | mark-white.svg | logo-horizontal-white.svg | logo-stacked-white.svg |
创建组合标志
组合标志由标志图形与字标文字组合而成。包含两种布局:
- 横向 — 标志在左,文字在右,垂直居中
- 纵向 — 标志在上,文字在下方居中
从彩色横向组合标志开始:
- 打开标志 SVG,记下其尺寸
- 创建一个新的 SVG,将标志与使用所选字体的
<text>元素组合起来 - 按比例调整文字大小 — 横向布局的文字大写字母高度应约为标志高度的 40-60%;纵向布局的文字宽度应与标志宽度大致相当
- 设置 viewBox,使其紧贴内容,留白尽可能少
将文字转换为路径之前,先在 Chrome 中预览每个组合标志。直接打开 SVG — open -a "Google Chrome" file.svg。继续之前,应让用户确认比例、间距和整体观感。根据反馈调整文字的 x 位置、font-size 和 viewBox 宽度。
将文字转换为路径
Inkscape 不支持 Google Fonts 的 @import。必须先在本地安装字体(已在第 3 阶段完成)。然后将所有文字转换为路径,使 SVG 可独立使用:
inkscape input.svg --actions="select-all;object-to-path;export-filename:output.svg;export-do"
转换后,使用 grep -c '<text' output.svg 验证 — 返回值应为 0。
颜色变体
- 黑色:将所有填充颜色替换为
#18181b(zinc-900,而非纯黑色 — 这是提升可读性的常见设计做法) - 白色:将所有填充颜色替换为
#ffffff - 对于组合标志,彩色变体中的标志图形保留原色;文字为
#18181b。黑色/白色变体中的所有元素均为单色。
使用 sed 替换颜色 — 同时处理 fill="#hex" 属性和 style 属性中的 fill:#hex:
sed 's/fill="#[0-9A-Fa-f]\{6\}"/fill="#18181b"/g; s/fill:#[0-9a-fA-F]\{6\}/fill:#18181b/g' input.svg > output.svg
清理 ViewBox
合成完成后,裁剪 viewBox,使其紧贴内容:
inkscape file.svg --actions="select-all;fit-canvas-to-selection;export-filename:file.svg;export-do"
或者检查元素边界框后手动调整 viewBox:
inkscape file.svg --query-all
阶段 5:素材包制作
目录结构
brand/
├── svg/ 9 master SVGs (from Phase 4)
├── png/ rasterized variants at standard sizes
├── favicon/ ico + png sizes + webmanifest
├── social/ platform-specific images
└── fonts/ font files + README
PNG 导出
使用 Inkscape 从主 SVG 导出(其 SVG 渲染效果优于 ImageMagick):
标志 — 导出尺寸:64、128、256、512、1024px(正方形,宽度 = 高度)
inkscape mark-color.svg --export-type=png --export-filename=../png/mark-color-256.png --export-width=256
组合标志 — 根据纵横比选择合适的导出宽度:
- 横向:400、600、800px 宽
- 竖排:300、500px 宽
网站图标
如果有 /favicon 技能,请使用。否则,从标志手动生成:
# PNG sizes for favicons
inkscape brand/svg/mark-color.svg --export-type=png --export-filename=brand/favicon/favicon-16x16.png --export-width=16
inkscape brand/svg/mark-color.svg --export-type=png --export-filename=brand/favicon/favicon-32x32.png --export-width=32
inkscape brand/svg/mark-color.svg --export-type=png --export-filename=brand/favicon/apple-touch-icon.png --export-width=180
inkscape brand/svg/mark-color.svg --export-type=png --export-filename=brand/favicon/android-chrome-192x192.png --export-width=192
inkscape brand/svg/mark-color.svg --export-type=png --export-filename=brand/favicon/android-chrome-512x512.png --export-width=512
# ICO (multi-resolution)
magick brand/favicon/favicon-16x16.png brand/favicon/favicon-32x32.png brand/favicon/favicon.ico
创建 brand/favicon/site.webmanifest:
{
"name": "PROJECT_NAME",
"short_name": "PROJECT_NAME",
"icons": [
{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
],
"theme_color": "#HEX_OF_BRAND_COLOR",
"background_color": "#ffffff",
"display": "standalone"
}
社交图片
OG 图片(1280x640)—用于 GitHub 社交预览和 Open Graph 标签:
magick -size 1280x640 xc:white \
\( brand/svg/logo-horizontal-color.svg -resize 1100x -trim +repage \) \
-gravity center -composite \
brand/social/og-image-1280x640.png
-trim +repage 必须放在 -gravity center 之前——它会去除 SVG 内部的空白,让 ImageMagick 居中的是实际视觉内容,而非 viewBox 边界框。否则,徽标会显示得偏离中心。
平台图标:
- Discord 服务图标:从标志生成,尺寸为 512x512
- GitHub 头像:从标志生成,尺寸为 500x500
- npm 图标:从标志生成,尺寸为 256x256
inkscape brand/svg/mark-color.svg --export-type=png --export-filename=brand/social/discord-icon-512.png --export-width=512
inkscape brand/svg/mark-color.svg --export-type=png --export-filename=brand/social/github-avatar-500.png --export-width=500
inkscape brand/svg/mark-color.svg --export-type=png --export-filename=brand/social/npm-icon-256.png --export-width=256
字体 README
创建 brand/fonts/README.md,记录字体选择、许可证和来源:
# Brand Font
**[Font Name]** by [Foundry]
- Weight: 700 (Bold) for wordmark
- License: SIL Open Font License
- Source: [GitHub URL]
The full font family archive is included for reference.
阶段 6:品牌指南
在 brand/brand-guide.html 生成一份完整的 HTML 品牌指南页面。这相当于设计师交付的“品牌风格指南”或“品牌展示板”——一页式参考文档,团队中的任何人都可以打开,了解如何使用该品牌。
品牌指南应包含以下部分:
1. 页眉
顶部显示项目名称和标语/描述。
2. 徽标版本
以网格形式展示全部 9 种 SVG 变体:
- 彩色行:标志、横向组合标志、竖排组合标志(白色背景)
- 黑色行:同样的三种(白色背景)
- 白色行:同样的三种(深色背景,例如
#0f172a)
为每种标注文件名和推荐用途:
- 标志 — 网站图标、应用图标、社交头像、小空间
- 横向 — 页眉、README 徽章、电子邮件签名
- 竖排 — 启动画面、印刷品,以及有足够垂直空间的场景
注明最小尺寸:标志显示尺寸不得小于 32px,组合标志宽度不得小于 120px。
3. 调色板
将每种品牌颜色展示为大色块,并注明:
- 颜色名称和用途(例如,“主色——按钮、链接、焦点环”)
- Hex 值
- OKLCH 值(如有)
- Tailwind 类(例如,
bg-primary-500)
如果已生成完整的 Tailwind 色阶,以带标签的色块横条展示完整的 50-950 色阶。
同时展示所有徽标专用颜色,例如船体、帆、水面等,并注明其 Hex 值。
4. 字体排版
- 字体名称、铸造厂、许可证
- 字标字重和字间距
- 以字标字重和常规字重预览字体
- 注明字体来源(Google Fonts、GitHub 仓库)以及文件在
brand/fonts/中的存放位置
5. 素材清单
用表格列出 brand/ 目录中的每个文件,并包含:
- 文件名
- 尺寸或用途
- 格式
按子目录整理(svg/、png/、favicon/、social/、fonts/)。
构建说明
- 独立 HTML — 直接内嵌所有 SVG,通过 Google Fonts
<link>加载品牌字体。不引用外部文件(无论从何处打开,指南都应正常显示)。 - 不使用 JavaScript — 仅使用纯 HTML 和 CSS。确保页面可在任何环境中正常使用,并避免安全钩子问题。
- 简洁专业的设计 — 使用品牌颜色为页面添加样式。白色背景,标题和点缀采用品牌色。
- 适合打印 — 在标准页面宽度下使用合理的布局。
生成后,在 Chrome 中打开供用户审核:open -a "Google Chrome" brand/brand-guide.html
阶段 7:项目接入(可选)
此阶段因项目而异。询问用户以下哪些项目适用:
README
<p align="center">
<a href="PROJECT_URL">
<img src="brand/svg/logo-horizontal-color.svg" width="280" alt="PROJECT_NAME">
</a>
</p>
GitHub 会内联渲染仓库中的 SVG。width 属性可防止其扩展到全宽。用 <a> 包裹即可链接到项目网站。
文档站点 / Web 应用
- 将网站图标复制到静态资源目录
- 在
<head>中添加 favicon<link>标签 - 添加
<meta name="theme-color" content="#HEX"> - 在导航栏/页眉中添加标志
Tailwind 主题
如果用户有 Tailwind 色阶,将其接入 CSS:
@theme {
--color-primary-50: oklch(...);
--color-primary-100: oklch(...);
/* ... */
--color-primary-950: oklch(...);
}
GitHub
- 社交预览图:进入仓库 Settings → Social preview → 上传 OG 图片(手动操作)
- 头像:仅在使用 GitHub Organization 时适用(手动操作)
npm
- 在 package.json 中添加指向文档/网站的
"homepage"
其他平台
- Discord 服务图标(手动上传)
- 1Password:注明哪个账户拥有 Discord 服务
在末尾清楚列出手动操作步骤——不要尝试自动执行需要通过浏览器界面交互的操作。
检查清单
宣布完成前,请确认:
- 9 个主 SVG 文件中的文字均已转换为路径(不依赖字体)
- 最终标志通过
logo-design审核和测试(svg_audit.py;在preview_sheet.py中检查 16 px 和单色效果) - 已导出所有标准尺寸的 PNG
- 已生成 favicon 文件集(ico、16、32、180、192、512、webmanifest)
- OG 图片尺寸为 1280x640,且视觉居中
- 平台图标(Discord 512、GitHub 500、npm 256)
- 字体文件已与 README 一并保存
- 品牌指南 HTML 已生成并审核
- 所有资源均已提交到
brand/目录 -
tmp/中的临时预览文件已清理 - 已完成项目接入(如适用)
- 已向用户说明手动操作步骤