diagram-design으로 Mermaid 아키텍처 그림을 서비스 색으로 다시 그리는 법

동딩
2026.10.12·3분 읽기·

스킬을 깔고 이름을 붙여 부른다

diagram-design은 서비스의 색과 글꼴을 한 번 배워 두고, 그림을 그릴 때마다 입혀 HTML 한 파일로 주는 Claude Code 스킬입니다. 예시는 src/styles/tokens.css에 브랜드 색을 두고, docs/architecture.mmd에 Browser → Next.js frontend → API server → Redis cache·Postgres 그림을 둔 서비스입니다. 프로젝트 폴더에서 명령 한 줄로 깝니다.

github.com
GitHub - cathrynlavery/diagram-design: Editorial diagram design for Claude Code, Codex, GitHub Copilot, Cursor, Factory Droid, and Pi. 44 diagram types. Self-contained HTML + SVG. No shadows. No Merma
Editorial diagram design for Claude Code, Codex, GitHub Copilot, Cursor, Factory Droid, and Pi. 44 diagram types. Self-contained HTML + SVG. No shadows. No Mermaid slop. - cathrynlavery/diagram-design
bash
npx skills add cathrynlavery/diagram-design

처음 그리기 전에 한 번 온보딩합니다. 온보딩은 스킬이 서비스의 색과 글꼴을 배워 두는 과정이고, 디자인 소스가 든 폴더를 알려 주면 됩니다.

text
diagram-design 스킬로 온보딩해 줘. 디자인 소스는 ./src/styles 폴더야.

그다음부터는 요청 앞에 /diagram-design을 붙입니다. 이름 없이 보내면 스킬이 불리지 않을 수 있습니다.

text
/diagram-design docs/architecture.mmd 를 src/styles/tokens.css 의 색과 글꼴에 맞춰 다시 그려서 docs/architecture.html 로 저장해 줘. 확인 없이 바로 진행해.

스킬 없이 탭은 같은 문장에서 /diagram-design만 빼고 스킬 없는 프로젝트에 보낸 결과입니다.

스킬 없이도 Claude는 토큰 값을 HTML에 복사해 넣습니다. 스킬로 부르면 Claude가 노드 다섯 개와 연결선 넷을 빼지 않고 다시 그렸다고 보고하고, 바탕과 글꼴을 바꾼 이유를 따로 적습니다.

결과 파일을 열면 배치가 다릅니다. 스킬 없이 그린 쪽은 API server에서 갈라지는 선이 곡선이고 저장소가 원통입니다. 스킬로 그린 쪽은 선이 직각으로 꺾이고, 노드마다 분류 표시가 붙고, 아래에 범례가 생깁니다.

플러그인으로 깔아 업데이트를 따라가려면

Claude Code 안에서 아래 두 줄을 보냅니다. 이때는 스킬 이름에 플러그인 이름이 붙어 /diagram-design:diagram-design으로 부릅니다. /diagram-design:profile 같은 명령도 플러그인으로 깔았을 때만 생깁니다.

text
/plugin marketplace add cathrynlavery/diagram-design
/plugin install diagram-design@diagram-design

색은 그림 파일에 hex로 박힌다

온보딩한 스킬은 색을 역할별로 나눠 스킬 폴더의 style-guide.md 표에 적습니다. Mermaid 파일을 주면 그 파일을 렌더하지 않고 새로 그립니다.

  1. 노드·연결선·라벨만 뽑습니다.
  2. 배치는 직각 연결선 규칙으로 다시 잡습니다.
  3. 색은 표의 값을 그림 파일에 복사합니다.

색은 그림 파일에 hex로 복사돼, 원본을 바꿔도 그림은 그대로다

tokens.css내 서비스style-guide.md스킬 폴더결과 HTML그림 파일온보딩그릴 때#ffffff바탕바뀜#fafaf7paper#fafaf7바탕 10번#0f172a글자#0f172aink#0f172a글자 8번#2563eb버튼#2563ebaccent#2563eb강조 5번그림은 원본을 가리키지 않는다
온보딩 때 바뀐 값가리키지 않음
tokens.css로 온보딩하고 architecture.mmd를 다시 그렸을 때

브랜드 색을 바꾼 날에는 다시 온보딩하고, 이미 그린 그림도 다시 그려야 새 색이 들어갑니다.

바뀐 바탕·글꼴을 되돌리거나 브랜드를 따로 저장하려면

글꼴은 Google Fonts에 있는 것만 옮겨집니다. Inter는 그대로 쓰이고, 스킬이 막아 둔 JetBrains Mono 자리에는 Geist Mono가 들어갑니다. 흰 바탕을 그대로 쓰려면 온보딩할 때 순백이 의도라고 말하거나, 온보딩 뒤 style-guide.md의 paper 행을 이렇게 고칩니다.

markdown
| `paper` | Page background, default node fill | `#ffffff` | `#0f172a` |

스킬을 업데이트하면 설치 폴더의 style-guide.md가 바뀔 수 있습니다. 온보딩한 브랜드는 프로필로 저장해 둡니다. 플러그인으로 깔았다면 아래 명령을 쓰고, 스킬만 깔았다면 같은 내용을 말로 부탁합니다.

text
/diagram-design:profile save my-service

프로젝트 루트의 .diagram-design 파일에 profile: my-service 한 줄을 두면 그 프로젝트는 이 프로필로 그립니다. 주석이나 다른 줄이 섞이면 파일 전체를 무시합니다.

자주 고치는 그림은 Mermaid에 둔다

결과 HTML에는 고칠 원본 텍스트가 남지 않습니다. Git에 두고 diff로 리뷰하는 그림은 Mermaid에 두고, 한 번 그려 오래 두는 그림만 /diagram-design으로 다시 그립니다.

상황쓸 것이유
Git에 두고 자주 고치며 diff로 리뷰하는 그림Mermaid base 테마고칠 원본 텍스트가 남는다
README 첫머리·발표 자료처럼 한 번 그려 오래 두는 그림/diagram-design직각 연결선·분류 표시·범례로 배치를 새로 잡는다
브랜드 색을 바꾼 날다시 온보딩해 다시 그리기, Mermaid는 themeVariables 고치기두 쪽 모두 옛 hex를 들고 있다
자주 고치는 그림을 Mermaid에 둔 채 색만 맞추려면

색을 바꿀 수 있는 Mermaid 테마는 base 하나입니다. 색은 themeVariables에 hex로 넣고, 글꼴 스택은 config 바로 아래 fontFamily에 둡니다. Mermaid 11.4.1에서 themeVariables 안에 쉼표로 이은 스택을 넣으면 글꼴이 빠져 세리프로 그려집니다.

mermaid
---
config:
theme: base
fontFamily: "Inter, system-ui, sans-serif"
themeVariables:
primaryColor: "#f8fafc"
primaryBorderColor: "#2563eb"
primaryTextColor: "#0f172a"
lineColor: "#64748b"
---
flowchart LR
B[Browser] --> F[Next.js frontend]
F -->|REST| A[API server]
A -->|cache lookup| R[(Redis cache)]
A -->|SQL| P[(Postgres)]

색은 맞지만 배치는 렌더러가 정합니다. 갈라지는 선은 사선 곡선으로 나가고 라벨은 선 위에 얹힙니다.

Comments

댓글

powered by giscus ↗