mcpField
B
blueprinter

blueprinter

github.com/yofine设计与 UI154975 次安装11 周前更新
代码仓库

关于 blueprinter

blueprinter 是一种用于生成技术图表的设计技能,面向需要绘制系统或架构图的人。它以扁平、单色和严格对齐的 HTML/CSS 规范,强调技术规格图而非营销页面。

主要功能

  1. 01按工程蓝图风格生成图表
  2. 02采用扁平描边布局
  3. 03使用单色基底与少量强调色
  4. 04以网格或弹性布局对齐内容
  5. 05用 SVG 绘制连接线

适用场景

  1. 01绘制系统架构图
  2. 02制作技术规格图
  3. 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>

使用指南

  1. 始终使用 CSS 变量——切勿硬编码颜色
  2. 保持扁平——不使用投影、渐变或模糊效果
  3. 数据使用等宽字体——任何技术数值、路径和代码都应使用 --font-mono
  4. 严格对齐——使用 CSS Grid 或 Flexbox,并保持间距一致
  5. 使用线条连接——使用 SVG 绘制组件之间的连接线
  6. 图标尽量精简——如需图标,使用简单的纯描边 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