DesignScan

io.github.ms-zaman由 GitHub 帳號 ms-zaman 發布v0.4.0更新於 Oct 25, 2026

Extract a website’s design tokens (colors, type, spacing, shadows) as DESIGN.md, W3C, or CSS.

發布方自己的服務:scan.mx Email Diagnostics

概覽

AI 產生的概覽

DesignScan 從網站擷取設計權杖(顏色、字體、間距、陰影),產生 DESIGN.md、W3C 權杖或 CSS,讓助理重現該站台外觀。

可以做什麼
從任意網站 URL 擷取設計權杖,支援淺色、深色或兩者主題,透過無頭瀏覽器分析頁面樣式與元件。輸出 DESIGN.md 規格檔(YAML 權杖加說明文字)、W3C Design Tokens JSON、CSS 自訂屬性,或原始權杖 JSON。產生自包含的 HTML 預覽頁,呈現色票、字體樣本、間距與圓角刻度及元件,方便使用前核對結果。為編碼助理附加每次擷取產生的固定說明,涵蓋標題層級、對比度、字體備援,以及按鈕與間距慣例。從已提交的 JSON 或即時 URL 建立或擴充精選品牌規格庫。
適用情境
適合讓助理重現或對齊某個現有網站的視覺風格,例如為新專案產生與參考站台一致的设计規格,或從線上頁面產出可直接貼上的 CSS 或 W3C 權杖。也適合建立可重複使用的品牌設計規格庫。
執行需求
以本機程序透過 stdio 執行,來自 npm 套件 @designscan/extractor。需要 Node.js,並一次性安裝 Playwright Chromium,同時需要網路存取目標站台。未宣告帳號、API 金鑰、環境變數或請求標頭。
安裝前請注意
引擎會用無頭瀏覽器造訪第三方線上網站,目標 URL 會從本機發出請求。擷取結果可能退化或被機器人防護阻擋,strict 選項可在結果不可靠時直接失敗。產生的規格描述的是他人站台的外觀,重複使用品牌素材或字型前請先確認授權。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 DesignScan,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

DesignScan

URL → design tokens → DESIGN.md. Point it at any website and get a spec-compliant DESIGN.md file (YAML tokens + prose) that AI coding agents can read to match that site's look.

Preview

Every run can also emit a self-contained HTML proof sheet (--preview) that renders the extracted tokens — color roles, type specimens, spacing/radius scales, components — so you can eyeball the result before trusting it:

[DesignScan preview proof sheet for stripe.com]

Notes for your coding agent

A DESIGN.md is always consumed by an AI coding agent (Cursor, Claude Code, …). So rather than run our own LLM to resolve semantic intent, every file ends with a Notes for your coding agent section: deterministic, per-extraction instructions computed from the actual tokens — heading hierarchy vs. a muted text color, sub-AA body contrast, brand-font fallback, the primary-button contract, shape/spacing rhythm. The reasoning stays on our side (no API key); the application happens for free inside the agent you already use.

It measurably changes the output. Below: the same stripe.DESIGN.md cloned by an agent that ignored the notes (left) vs one that followed them (right) — identical tokens, layout, and copy:

[Same DESIGN.md, with vs without the agent notes]

Brand corpus

A growing, curated library of real-brand specs lives in examples/ — each one a DESIGN.md, an HTML preview, and the raw token JSON, indexed in examples/README.md (visual gallery: index.html).

[DesignScan brand corpus gallery]

Rebuild it from the committed JSON with pnpm seed rebuild (no network), or add brands with pnpm seed add <url> — degenerate / bot-challenged pages are skipped automatically so the corpus only holds trustworthy specs.

Monorepo layout

PathWhat
packages/extractorThe extraction + generation engine (Playwright → tokens → DESIGN.md).
packages/designscanThe short npm name — a thin CLI shim over the engine (npx designscan <url>).
examples/The brand corpus — DESIGN.md + HTML preview + token JSON per brand, with a gallery index.

Install (as a CLI / library)

The engine ships as the publishable @designscan/extractor package — a designscan CLI and a typed library — with designscan as its short npx alias.

bash
# one-off, no installnpx designscan stripe.com --md --out stripe.DESIGN.md
# or install the CLInpm i -g @designscan/extractornpx playwright install chromium   # one-time (the engine drives headless Chromium)designscan stripe.com --md --preview --out stripe.DESIGN.md

Quick start (from this repo)

This is a pnpm workspace (corepack enable to get pnpm).

bash
pnpm installpnpm --filter @designscan/extractor exec playwright install chromium  # one-time
# token profile (JSON) for any URLpnpm extract stripe.com
# generate a DESIGN.md (light theme by default)pnpm extract stripe.com --md --out out/stripe.DESIGN.md
# pick a theme: light (default) | dark | bothpnpm extract vercel.com --md --theme dark --out out/vercel.dark.DESIGN.md
# both = bundle light + dark into one file (parallel *-dark tokens)pnpm extract vercel.com --md --theme both --out out/vercel.DESIGN.md
# --preview = also write a self-contained HTML proof sheet beside the file,# rendering every token (swatches, type specimens, scales, components) so you# can eyeball the extraction before trusting it (--theme both adds a Light/Dark toggle)pnpm extract stripe.com --md --preview --out out/stripe.DESIGN.md# → out/stripe.DESIGN.md  +  out/stripe.preview.html
# --format = pick your output: json (profile) | md (DESIGN.md) | w3c | csspnpm extract stripe.com --format w3c --out out/stripe.tokens.json  # W3C Design Tokens (Style Dictionary etc.)pnpm extract stripe.com --format css --out out/stripe.tokens.css   # CSS custom properties, paste-ready# (--theme both folds a genuinely distinct dark pass into every format)
# --strict = exit non-zero if the result looks degenerate (bot challenge / too# few signals), for CI/automation that must not consume junk tokenspnpm extract stripe.com --strict --quiet
# seed / rebuild the curated brand corpus under examples/pnpm seed add tailwindcss.com vercel.com   # extract live + add to the corpuspnpm seed rebuild                          # regen md/preview/gallery from JSON

Scripts (root)

ScriptDoes
pnpm extract <url> [--format json|md|w3c|css] [--theme light|dark|both] [--preview] [--strict] [--timeout ms] [--out f]Extract tokens in your format: profile JSON, DESIGN.md (--md shorthand), W3C Design Tokens, or CSS custom properties (--theme both = light + dark in one file; --preview = HTML proof sheet beside it; --strict = non-zero exit on a degenerate result)
pnpm seed rebuild / pnpm seed add <url…>Build the brand corpus under examples/ (md + preview + gallery; add extracts live)
pnpm buildCompile the publishable package (tsc → dist)
pnpm typecheckType-check all packages
pnpm testRun the test suite (vitest)
pnpm checkBiome — format + lint (use pnpm format to auto-fix)
pnpm lint:designmdValidate examples/*.DESIGN.md against the official spec

All of these run on every push/PR via GitHub Actions. The engine is consumable as a library through its public API (packages/extractor/src/index.ts).

Status

  • Step 1 — Extraction engine (Playwright → clean token profile)
  • Step 2 — Generator (token profile → spec-valid DESIGN.md, lint-clean)
  • Step 3 — HTML preview (--preview → self-contained token proof sheet, light/dark toggle)
  • [~] Step 4 — agent guidance. Each DESIGN.md now ships a Notes for your coding agent section: deterministic, per-extraction instructions (contrast, heading hierarchy, font fallback) so the consuming agent applies the tokens with intent — no LLM on our side. (Optional LLM-refined prose still future.)
  • [~] Step 5 — brand-seed library (pnpm seed, curated corpus + gallery) done; npx … add / checkout next

See packages/extractor/README.md for the full roadmap and engine details.

來源:README.md,提交 e22bacb

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.4.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Scan 整合