use-design-md
Pull a Korean brand's published DESIGN.md from the ko-design-md catalog (getdesign.kr) and apply its design language — colors, typography, spacing, radius, components, do's & don'ts — to the UI you are building in the CURRENT project. Use this skill whenever the user wants to bui
Install
npx skills add https://github.com/CaesiumY/ko-design-md/tree/main/.claude/skills/use-design-md
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install caesiumy-ko-design-md@llmmart
git clone https://github.com/CaesiumY/ko-design-md.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole caesiumy/ko-design-md collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
use-design-md — consumer skill for the ko/design.md catalog
Mental model
The ko-design-md catalog (https://getdesign.kr) publishes one DESIGN.md per Korean
brand — a compact, machine-readable description of that brand's visual language:
colors in OKLCH, typography, spacing, radius, signature components, and do's & don'ts.
This skill is the consumer side: it pulls the right entry and uses it as the design
brief for UI work in whatever project you are currently in.
It does three things, in order:
- Discover — resolve the brand the user named to a catalog
slug. - Fetch — download that entry's DESIGN.md verbatim (and, if useful, its token sidecar).
- Apply — translate that design language into the current project's styling system.
This skill vs. design-md (don't mix them up)
use-design-md(this skill) — CONSUME an existing entry. Runs in any repo. "Make my dashboard look like Toss", "apply Karrot's style to this screen".design-md(the other skill) — PRODUCE a new entry, adding a brand to the catalog. Only runs inside the ko-design-md repo.
If the user wants to add or edit a catalog entry, stop and point them at design-md.
That is a different job in a different place.
Step 1 — Discover: resolve the brand to a slug
Fetch the catalog index (llms.txt format, ~one line per entry):
curl -s https://getdesign.kr/llms.txt
Each entry line looks like:
- [토스](https://getdesign.kr/services/toss/llms.txt): finance — <tagline>
Match the user's mention to a slug. The user may say a Korean name ("토스", "당근"), an English name ("Toss", "Karrot"), a design-system name ("SEED Design", "Vapor UI"), or the slug itself ("seed-design"). Match against the link text (name) AND the slug in the URL; the tagline often names the design system, which helps disambiguate.
Outcomes:
- One clear match → take its slug, go to Step 2.
- Several plausible matches → ask which one with
AskUserQuestion. - No match → the brand isn't in the catalog. Tell the user plainly, optionally list a
few catalogued brands in the nearest category, and mention that adding it is a
separate job (the
design-mdskill, inside the ko-design-md repo). Do not fabricate a DESIGN.md for an uncatalogued brand — that defeats the point of citing a real source.
See references/endpoints.md for the full endpoint map and fallbacks.
Step 2 — Fetch the DESIGN.md (and tokens if needed)
Fetch the raw entry:
curl -s https://getdesign.kr/services/<slug>/llms.txt
Mind the name clash: /services/<slug>/DESIGN.md is a different endpoint — the entry
reshaped for standard DESIGN.md tooling, without the entry's own frontmatter. The
verbatim entry is llms.txt (see references/endpoints.md §2 vs §2b).
Use curl (Bash), not WebFetch, for the entry. WebFetch summarizes and transforms
content through a model, which silently drops exact token values — an OKLCH triple, a
13px spacing step, a specific weight. The whole reason to pull from the catalog is
fidelity to the brand's real numbers, so fetch the bytes verbatim. WebFetch is an
acceptable last resort only when Bash/curl is genuinely unavailable.
If you need tokens as structured data (e.g. to generate a Tailwind theme or a CSS variable block programmatically), also fetch the sidecar from GitHub raw — there is no getdesign.kr endpoint for it yet:
curl -s https://raw.githubusercontent.com/CaesiumY/ko-design-md/main/services/<slug>.tokens.json
Read the DESIGN.md fully before applying anything. The prose carries intent — the do's & don'ts, the voice — that the token JSON alone doesn't capture.
Step 3 — Apply to the current project
This is the real work, and it's project-specific. Read references/apply-guide.md and
follow it. In short:
- Detect the target styling system first (Tailwind config, CSS custom properties, CSS-in-JS, plain CSS) before changing anything.
- Map tokens onto that system rather than pasting raw values everywhere — change them at the source so the whole surface moves together.
- Honor the Do's & Don'ts. They're the brand's guardrails, not decoration.
- For a large or structural change, design it first: widen the options, then narrow to one before writing any code. For a small restyle, just go.
- Verify the result (preview/screenshot, or the project's tests) before claiming done — evidence before assertions.
Scope guardrails
- Don't gate on the current repo — this skill is meant to run anywhere.
- Don't invent values absent from the fetched DESIGN.md. If the user wants something the brand's tokens don't cover, say so and propose a reasonable extension marked as your inference, not the brand's spec.
- The catalog covers Korean services. A brand that isn't listed simply isn't available here — be honest about that instead of approximating from memory.
- Stay vendor-neutral: borrow the visual language, not the source design system's own name.
Never surface the system's name (
Vapor UI,SEED Design, …), its package names, or its class prefixes in the UI you generate — use the user's own product naming. Seereferences/apply-guide.md§6.
Files (ko-design-md)
-
references
-
apply-guide.md 4.7 KB
# Apply guide — translating a DESIGN.md into the current project The fetched DESIGN.md is a *brief*, not code. The job is to express its intent in the target project's own styling system without flattening the brand's character or fighting the codebase you're in. ## 1. Detect the target styling system first Before editing, figure out how this project styles UI, and work with its grain: - **Tailwind** — look for `tailwind.config.{js,ts}` or an `@theme` block in CSS, plus utility classes in JSX. Map tokens into the theme (colors, fontFamily, spacing, borderRadius), then use utilities. Don't scatter arbitrary `[#hex]` values. - **CSS custom properties** — a `:root { --… }` block or a design-token file. Add/override variables there; don't sprinkle literals through components. - **CSS-in-JS** (styled-components, emotion, vanilla-extract) — find the theme object and extend it. - **Plain CSS / inline** — introduce a small variable block at the top scope and reference it. A brand restyle that fights the project's system creates debt; one that flows through its tokens stays maintainable. ## 2. Map the DESIGN.md sections | DESIGN.md section | Where it lands in the target | |---------------------|------------------------------| | Colors (OKLCH) | color tokens / theme palette; keep semantic roles (primary, surface, ink) | | Typography | font-family + size/weight/line-height scale; load webfonts if the md gives a `font-*-src` URL | | Spacing | spacing scale — gap & padding steps | | Rounded (radius) | border-radius scale | | Elevation & Depth | shadow tokens | | Components | reference patterns for buttons, cards, inputs — match structure & states, don't clone pixel-for-pixel | | Do's & Don'ts | hard constraints to honor (e.g. "pure black 금지", "CTA fill은 1차 액션에만") | ## 3. OKLCH values The catalog expresses color in OKLCH. Modern CSS supports `oklch()` directly — prefer keeping it (wider gamut, perceptually uniform, and it's what the brand actually specified). Only convert to hex/rgb when the target toolchain genuinely can't consume `oklch()`, and when you do, note that the converted value is an approximation, not the brand's exact spec. ## 4. Fidelity & attribution - Pull the real numbers from the md; don't approximate when the value is given. - When you must go beyond what the brand documents, mark it as *your* inference, not the brand's spec — the user should know which parts are faithful and which are filled in. - A DESIGN.md cites its sources with `[src:N]`; you don't need to carry those into the target project, but do preserve the brand's stated intent when it's explicit. ## 5. Scope & verification - Large or structural work → design it first: widen the options, then narrow to one before writing any code. - Restyle of an existing screen → proceed, but change tokens at the source so the whole surface moves together rather than patching one component at a time. - Verify visually (preview/screenshot) or via the project's tests before saying it's done — evidence before assertions. A brand restyle is a visual claim — back it with a visual check. ## 6. Brand name vs. visual language — stay vendor-neutral A DESIGN.md documents a brand's visual language using that system's own name throughout (its title heading, `design_system_name`, package names like `@vapor-ui/*`, class prefixes like `vp-*`). Those names are part of the *source's* identity, not visual tokens — do not let them leak into the UI you generate. This applies to *every* entry, not just named design systems: a plain service brand name (토스, 배민, …) shouldn't land in your generated UI either. The examples below lean on design-system names (`Vapor UI`, `SEED Design`) because those are the most common leak, but the rule is the same for any source brand name. - **Borrow**: the color palette, type scale, spacing, radius, shadow system, and component structure & states. - **Don't surface the source's name**: never put the design system's own name (`Vapor UI`, `SEED Design`, `KRDS`, …), its package names, or its class prefixes into your generated UI's headers, page titles, button/label copy, or class names. Use the user's *own* product name and nomenclature. - **Why**: the system name is product/brand identity, not a token. A header that reads "Vapor UI" when the user asked for "their dashboard styled like Vapor" is a leak, not a feature. - **Attribution exception**: if the user genuinely wants to credit the source, a footer line ("Vapor UI 기반" / "Built with SEED Design") is fine — but the name still must not appear in primary UI copy. Each catalog entry's `## Do's and Don'ts` restates this as a brand-specific Don't; honor it. -
endpoints.md 4.4 KB
# Endpoints — ko-design-md catalog (getdesign.kr) Fetch order and fallbacks for the consumer skill. All getdesign.kr endpoints below are `text/plain`, CORS-open (`access-control-allow-origin: *`), and CDN-cached ~1h. ## 1. Catalog index (discover) ``` GET https://getdesign.kr/llms.txt ``` llms.txt format — a header plus one markdown link per entry: ``` - [<name>](https://getdesign.kr/services/<slug>/llms.txt): <category> — <tagline> ``` Use it to resolve a brand name to a slug and to browse by category. It is generated server-side from the live catalog, so it is always current — no stale hardcoded list. ## 2. Single entry (fetch) ``` GET https://getdesign.kr/services/<slug>/llms.txt ``` Returns the entry's DESIGN.md verbatim, in the catalog format: Stitch's section structure, DESIGN.md-spec token maps in YAML frontmatter, and the catalog's own `[src:N]` citation convention. Prefer `curl -s` over WebFetch to preserve exact token values (see SKILL.md Step 2 for why). **This is the endpoint to use for applying a design system.** It carries the `[src:N]` citations, provenance notes and audit blockquotes — the evidence that lets you tell a published value from a reconstructed one. ## 2b. Same entry, Google DESIGN.md format ``` GET https://getdesign.kr/services/<slug>/DESIGN.md ``` The same entry rendered in Google's published DESIGN.md format (`github.com/google-labs-code/design.md`, spec `alpha`): design tokens as `colors` / `typography` / `spacing` / `rounded` maps in YAML frontmatter, each token's usage note kept as a trailing YAML comment, prose sections kept. Body shadow fences already published as `elevation:` are dropped; the rest — component specs, motion tokens — stay as `text` fences, readable but outside the token model. Generated per request from the same source, so it can never be stale. Use it when a consumer expects the standard shape — Stitch, the official `design.md` CLI, or tooling built against that schema. Inline `[src:N]` citations and the `## References` list survive, so claims still resolve to their sources. What does not survive is the entry's own frontmatter — `slug`, dates, `logo` — which the standard schema has no slot for. Fetch `llms.txt` when you need the entry verbatim. Two caveats worth knowing before you rely on a value: - Values the `alpha` schema cannot express are reported as errors by its own linter and may resolve oddly — `border-radius: 50%` (spec Dimensions are px/em/rem only) and multi-stop gradients stored as colours (`seed-design`). - Where an entry declares one token name per theme, only the first survives, since frontmatter keys must be unique. Catalog entries prefix the dark scale (`dark-bg-canvas`), so both are present — but a future entry that does not would silently lose its dark values here while `llms.txt` keeps them. ## 3. Token sidecar (optional, structured tokens) ``` GET https://raw.githubusercontent.com/CaesiumY/ko-design-md/main/services/<slug>.tokens.json ``` JSON shape: `{ colors[], typography[], spacing[], radius[], elevation?[] }`. Each color has `name`/`value` (value usually OKLCH) plus optional `note`/`group`. `elevation` holds ready-to-paste CSS `box-shadow` values (comma-joined when a token stacks layers) and is **omitted** for entries whose Elevation section publishes usage labels or z-indices rather than shadow values — read it with `?? []`, not as a guaranteed array. There is no getdesign.kr endpoint for tokens yet — GitHub raw is the source of record. If a tokens endpoint appears on getdesign.kr later, prefer it and update this file. ## Fallbacks - If getdesign.kr is unreachable, the same markdown is on GitHub raw: `https://raw.githubusercontent.com/CaesiumY/ko-design-md/main/services/<slug>.md` - The index has no GitHub-raw equivalent (it's generated server-side). To list entries without the index, read the repo's `services/` directory via the GitHub API, or fall back to `https://getdesign.kr/sitemap.xml` (URLs only — no names/categories/taglines). ## Example ```bash slug=toss curl -s https://getdesign.kr/llms.txt # find the slug curl -s https://getdesign.kr/services/$slug/llms.txt # the entry's DESIGN.md, verbatim curl -s https://raw.githubusercontent.com/CaesiumY/ko-design-md/main/services/$slug.tokens.json # tokens (optional) curl -s https://getdesign.kr/services/$slug/DESIGN.md # Google DESIGN.md format ```
-
-
SKILL.md 6.2 KB
--- name: use-design-md description: Pull a Korean brand's published DESIGN.md from the ko-design-md catalog (getdesign.kr) and apply its design language — colors, typography, spacing, radius, components, do's & don'ts — to the UI you are building in the CURRENT project. Use this skill whenever the user wants to build or restyle UI in the *style of* a catalogued Korean service — phrases like "토스 디자인으로 만들어줘", "당근 스타일로 이 화면 다시 꾸며줘", "getdesign 카탈로그에서 배민 디자인 가져와서 적용", "KRDS 톤으로 폼 잡아줘", "make this look like Toss", "use the Karrot design system here", or "/use-design-md". Works in ANY repository — it fetches over the network, no local catalog needed. Do NOT use this to ADD a brand to the catalog or edit catalog entries — that is the separate `design-md` producer skill, which only runs inside the ko-design-md repo. If the requested brand isn't in the catalog, say so plainly rather than inventing a DESIGN.md. --- # use-design-md — consumer skill for the ko/design.md catalog ## Mental model The ko-design-md catalog (https://getdesign.kr) publishes one `DESIGN.md` per Korean brand — a compact, machine-readable description of that brand's visual language: colors in OKLCH, typography, spacing, radius, signature components, and do's & don'ts. This skill is the **consumer** side: it pulls the right entry and uses it as the design brief for UI work in **whatever project you are currently in**. It does three things, in order: 1. **Discover** — resolve the brand the user named to a catalog `slug`. 2. **Fetch** — download that entry's DESIGN.md verbatim (and, if useful, its token sidecar). 3. **Apply** — translate that design language into the current project's styling system. ## This skill vs. `design-md` (don't mix them up) - **`use-design-md` (this skill)** — CONSUME an existing entry. Runs in any repo. "Make my dashboard look like Toss", "apply Karrot's style to this screen". - **`design-md` (the other skill)** — PRODUCE a new entry, adding a brand to the catalog. Only runs inside the ko-design-md repo. If the user wants to *add* or *edit* a catalog entry, stop and point them at `design-md`. That is a different job in a different place. ## Step 1 — Discover: resolve the brand to a slug Fetch the catalog index (llms.txt format, ~one line per entry): ``` curl -s https://getdesign.kr/llms.txt ``` Each entry line looks like: ``` - [토스](https://getdesign.kr/services/toss/llms.txt): finance — <tagline> ``` Match the user's mention to a slug. The user may say a Korean name ("토스", "당근"), an English name ("Toss", "Karrot"), a design-system name ("SEED Design", "Vapor UI"), or the slug itself ("seed-design"). Match against the link text (name) AND the slug in the URL; the tagline often names the design system, which helps disambiguate. Outcomes: - **One clear match** → take its slug, go to Step 2. - **Several plausible matches** → ask which one with `AskUserQuestion`. - **No match** → the brand isn't in the catalog. Tell the user plainly, optionally list a few catalogued brands in the nearest category, and mention that *adding* it is a separate job (the `design-md` skill, inside the ko-design-md repo). Do not fabricate a DESIGN.md for an uncatalogued brand — that defeats the point of citing a real source. See `references/endpoints.md` for the full endpoint map and fallbacks. ## Step 2 — Fetch the DESIGN.md (and tokens if needed) Fetch the raw entry: ``` curl -s https://getdesign.kr/services/<slug>/llms.txt ``` Mind the name clash: `/services/<slug>/DESIGN.md` is a *different* endpoint — the entry reshaped for standard DESIGN.md tooling, without the entry's own frontmatter. The verbatim entry is `llms.txt` (see `references/endpoints.md` §2 vs §2b). **Use `curl` (Bash), not WebFetch, for the entry.** WebFetch summarizes and transforms content through a model, which silently drops exact token values — an OKLCH triple, a 13px spacing step, a specific weight. The whole reason to pull from the catalog is fidelity to the brand's *real* numbers, so fetch the bytes verbatim. WebFetch is an acceptable last resort only when Bash/curl is genuinely unavailable. If you need tokens as structured data (e.g. to generate a Tailwind theme or a CSS variable block programmatically), also fetch the sidecar from GitHub raw — there is no getdesign.kr endpoint for it yet: ``` curl -s https://raw.githubusercontent.com/CaesiumY/ko-design-md/main/services/<slug>.tokens.json ``` Read the DESIGN.md fully before applying anything. The prose carries intent — the do's & don'ts, the voice — that the token JSON alone doesn't capture. ## Step 3 — Apply to the current project This is the real work, and it's project-specific. Read `references/apply-guide.md` and follow it. In short: 1. **Detect the target styling system first** (Tailwind config, CSS custom properties, CSS-in-JS, plain CSS) before changing anything. 2. **Map tokens onto that system** rather than pasting raw values everywhere — change them at the source so the whole surface moves together. 3. **Honor the Do's & Don'ts.** They're the brand's guardrails, not decoration. 4. For a large or structural change, design it first: **widen the options, then narrow to one** before writing any code. For a small restyle, just go. 5. **Verify** the result (preview/screenshot, or the project's tests) before claiming done — evidence before assertions. ## Scope guardrails - Don't gate on the current repo — this skill is meant to run anywhere. - Don't invent values absent from the fetched DESIGN.md. If the user wants something the brand's tokens don't cover, say so and propose a reasonable extension marked as *your* inference, not the brand's spec. - The catalog covers Korean services. A brand that isn't listed simply isn't available here — be honest about that instead of approximating from memory. - Stay vendor-neutral: borrow the visual language, not the source design system's own name. Never surface the system's name (`Vapor UI`, `SEED Design`, …), its package names, or its class prefixes in the UI you generate — use the user's own product naming. See `references/apply-guide.md` §6. -
trigger-eval-queries.json 3.2 KB
[ { "query": "내 사이드프로젝트 대시보드를 토스처럼 보이게 다시 꾸며줘. 지금 tailwind 쓰고 있어", "should_trigger": true }, { "query": "당근마켓 스타일로 이 로그인 화면 색이랑 버튼 톤 맞춰줄래? getdesign 카탈로그에 있던데", "should_trigger": true }, { "query": "make my pricing page look like Baemin — that mint + rounded card vibe. it's a next.js project with css modules", "should_trigger": true }, { "query": "KRDS 톤으로 공공서비스 느낌나게 폼 컴포넌트 스타일 잡아줘. 정부과제라 그 신뢰감 있는 톤이 필요해", "should_trigger": true }, { "query": "쏘카 디자인 시스템 가져와서 우리 모빌리티 앱 프로토타입 색이랑 컴포넌트에 적용해줘", "should_trigger": true }, { "query": "/use-design-md 원티드", "should_trigger": true }, { "query": "이 버튼들 getdesign.kr에 있는 토스 design.md 기준으로 다시 만들어줘. oklch 색은 그대로 써도 돼", "should_trigger": true }, { "query": "우리 회사 내부 툴이 너무 밋밋한데, 한국 서비스 중에 당근 같은 친근한 디자인을 입히고 싶어. 카탈로그에서 찾아서 적용 가능?", "should_trigger": true }, { "query": "apply the SEED design system tokens to my component library — at least the colors and the radius scale", "should_trigger": true }, { "query": "스타벅스코리아 느낌으로 카페 주문 앱 ui 잡아줘 — 한국 서비스 디자인 카탈로그에 있으면 그거 참고해서", "should_trigger": true }, { "query": "토스를 ko-design-md 카탈로그에 새 항목으로 추가하고 싶어. design.md랑 preview HTML 만들어줘", "should_trigger": false }, { "query": "services/toss.md의 spacing 섹션에 오타 하나 있어 — 'spacng'을 'spacing'으로 고쳐줘", "should_trigger": false }, { "query": "design.md 포맷이 뭐야? Stitch v0.1이랑 일반 마크다운이랑 뭐가 다른지 설명해줘", "should_trigger": false }, { "query": "Figma에서 토스 디자인 키트 받아서 내 프로젝트에 적용하는 방법 알려줘", "should_trigger": false }, { "query": "shadcn/ui 테마를 우리 브랜드 색으로 커스터마이즈해줘. 브랜드 메인 컬러는 #1B64DA야", "should_trigger": false }, { "query": "getdesign.kr 같은 디자인 카탈로그 사이트를 처음부터 직접 하나 만들고 싶어. 스택 추천해줘", "should_trigger": false }, { "query": "ko-design-md repo의 src/routes/llms[.]txt.ts 라우트에 버그 있나 한 번 봐줘. 404가 이상해", "should_trigger": false }, { "query": "우리 스타트업용 디자인 시스템을 처음부터 하나 정의해줘. 보라색 계열에 둥근 느낌으로", "should_trigger": false }, { "query": "Material Design 3 가이드라인대로 안드로이드 앱 ui 컴포넌트 만들어줘", "should_trigger": false }, { "query": "내 프로젝트에 있는 design-tokens.json 파일을 css 변수 블록으로 변환해줘", "should_trigger": false } ]
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.