关于 blueprinter
blueprinter 是一种用于生成技术图表的设计技能,面向需要绘制系统或架构图的人。它以扁平、单色和严格对齐的 HTML/CSS 规范,强调技术规格图而非营销页面。
主要功能
- 01按工程蓝图风格生成图表
- 02采用扁平描边布局
- 03使用单色基底与少量强调色
- 04以网格或弹性布局对齐内容
- 05用 SVG 绘制连接线
适用场景
- 01绘制系统架构图
- 02制作技术规格图
- 03展示组件间关系
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ yofine/ skills --skill blueprinter安装后在 Claude Code 中输入/blueprinter确认已加载。
详细介绍
Blueprinter
按照“扁平工程蓝图”风格指南,使用 HTML/CSS 生成技术图表。
核心理念
精确、客观、高信息墨水比。输出应呈现技术规格表或架构图的风格,而不是营销落地页。
视觉规则
1. 不加装饰
- 不使用投影
- 不使用渐变
- 不使用玻璃拟态或模糊效果
- 不使用圆角按钮
2. 扁平与描边
- 使用 1px 或 2px 的实线边框构建结构
- 内容块使用白色背景
3. 单色基调
| 元素 | 颜色 |
|---|---|
| 背景 | 浅灰色 (#f8fafc) |
| 画布 | 白色 (#ffffff),带石板色边框 (#cbd5e1) |
| 文本(主要) | 高对比度黑色 (#0f172a) |
| 文本(次要) | 石板灰 (#64748b) |
| 强调色 | 少量使用黑色或一种语义色(例如,用红色表示错误) |
4. 排版
- 标题/标签:无衬线字体(Inter/Helvetica)
- 数据/路径/代码:等宽字体(JetBrains Mono/Consolas)
5. 布局结构
- 图表必须置于
diagram-canvas中(带边框和内边距的方框) - 页眉:标题 + 大写副标题,以实线底边框分隔
- 网格/弹性盒对齐:所有元素必须严格对齐
6. 元素
- 连接线:细直线或正交线。抽象关系使用虚线。
- 图标:简单的描边 SVG 图标(无填充或复杂细节)
- 徽标:描边或纯黑/灰色块。使用小号字体。
CSS 变量参考
:root {
--c-bg: #f8fafc; /* Outer Background */
--c-canvas: #ffffff; /* Diagram Background */
--c-border: #cbd5e1; /* Slate-300 */
--c-text-main: #0f172a; /* Slate-900 */
--c-text-sub: #64748b; /* Slate-500 */
--font-ui: 'Inter', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
}
HTML 结构模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>[Diagram Title]</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>
:root {
--c-bg: #f8fafc;
--c-canvas: #ffffff;
--c-border: #cbd5e1;
--c-text-main: #0f172a;
--c-text-sub: #64748b;
--c-accent: #dc2626; /* Optional: for errors/warnings only */
--font-ui: 'Inter', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: var(--font-ui);
background: var(--c-bg);
padding: 40px;
min-height: 100vh;
}
.diagram-container {
max-width: 1200px;
margin: 0 auto;
}
.diagram-canvas {
background: var(--c-canvas);
border: 1px solid var(--c-border);
padding: 32px;
}
.diagram-header {
border-bottom: 1px solid var(--c-border);
padding-bottom: 16px;
margin-bottom: 24px;
}
.diagram-title {
font-size: 20px;
font-weight: 600;
color: var(--c-text-main);
margin-bottom: 4px;
}
.diagram-subtitle {
font-size: 11px;
font-weight: 500;
color: var(--c-text-sub);
text-transform: uppercase;
letter-spacing: 0.05em;
}
/* Component styles */
.component {
border: 1px solid var(--c-border);
padding: 16px;
background: var(--c-canvas);
}
.component-label {
font-family: var(--font-mono);
font-size: 12px;
color: var(--c-text-sub);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.component-value {
font-family: var(--font-mono);
font-size: 14px;
color: var(--c-text-main);
font-weight: 500;
}
/* Connector lines */
.connector {
stroke: var(--c-border);
stroke-width: 1;
}
.connector-dashed {
stroke: var(--c-border);
stroke-width: 1;
stroke-dasharray: 4 4;
}
/* Badges */
.badge {
display: inline-block;
font-family: var(--font-mono);
font-size: 10px;
padding: 2px 6px;
border: 1px solid var(--c-border);
color: var(--c-text-sub);
}
.badge-solid {
background: var(--c-text-main);
color: var(--c-canvas);
border-color: var(--c-text-main);
}
</style>
</head>
<body>
<div class="diagram-container">
<div class="diagram-canvas">
<div class="diagram-header">
<div class="diagram-title">[Diagram Title]</div>
<div class="diagram-subtitle">[Diagram Type / Version]</div>
</div>
</div>
</div>
</body>
</html>
使用指南
- 始终使用 CSS 变量——切勿硬编码颜色
- 保持扁平——不使用投影、渐变或模糊效果
- 数据使用等宽字体——任何技术数值、路径和代码都应使用
--font-mono - 严格对齐——使用 CSS Grid 或 Flexbox,并保持间距一致
- 使用线条连接——使用 SVG 绘制组件之间的连接线
- 图标尽量精简——如需图标,使用简单的纯描边 SVG
示例:简单的系统图
<div class="diagram-canvas">
<div class="diagram-header">
<div class="diagram-title">System Architecture</div>
<div class="diagram-subtitle">v1.0 / Overview</div>
</div>
<div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px;">
<div class="component">
<div class="component-label">Client</div>
<div class="component-value">Web App</div>
</div>
<div class="component">
<div class="component-label">API</div>
<div class="component-value">REST Gateway</div>
</div>
<div class="component">
<div class="component-label">Database</div>
<div class="component-value">PostgreSQL</div>
</div>
</div>
</div>
评论
支持 Markdown