astrondesign
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@astrondesign audit my landing page at 1280 and 390 widths"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐งญ ํ๋ฆ๊ณผ ์ฐ์ ์์ | ๐ ๊ฒฐ์ ์ ์ ์ ๊ฒ์ฌ | ๐ฅ๏ธ ์ค์ ๋ธ๋ผ์ฐ์ ๋ ๋ | ๐ฏ ์์ ๋จ์ ํผ๋๋ฐฑ |
์์
ํ๋ฆ S1 | impeccable ์์ง๊ณผ taste lint ๋ก ์์ค๋ฅผ ๊ฒ์ฌํ๊ณ ์ฐ์ ์์๋ฅผ ์ ์ฉํด FAILยทWARNยทINFO ๋ก ๋ ๋๋ค | ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ๋ก ์ฌ๋ฌ ํญ์ ๋ ๋ํด ์ฒซ ํ๋ฉด ์คํฌ๋ฆฐ์ทยท์ธก์ ๊ท์นยท์ ๊ทผ์ฑ ์ค๋ ์ท์ ๋จ๊น๋๋ค | ์ ํ์ยท์ขํ๋ก ์์ ๋ฌถ์(HTMLยท๊ณ์ฐ ์คํ์ผ 16๊ฐยท์์น)์ ๋ชจ์ Design Feedback ์ ์๋๋ค |
๋ชฉ์ฐจ
Related MCP server: Design GL
๊ตฌ์กฐ
flowchart LR
C["MCP ํด๋ผ์ด์ธํธ<br/>(Claude Code ยท Codex ๋ฑ)"] <-->|stdio| S["astrondesign<br/>๋๊ตฌ 6๊ฐ"]
subgraph E["์์ง"]
I["impeccable<br/>์ฐธ๊ณ ๋ฌธ์ + ํ์ง ์์ง"]
T["taste-skill<br/>draw ยท lint ยท ์ธก์ "]
U["UI UX Pro Max<br/>๊ฒ์๊ธฐ(python)"]
A["awesome-design-md<br/>๋ธ๋๋ DESIGN.md 84"]
B["playwright-core<br/>ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ "]
end
S --> I & T & U & A & B
S -->|์ฐ์ถ๋ฌผ๋ง ๊ธฐ๋ก| O[("์์
ํด๋(cwd)/.astron-logs/astrondesign/")]
B -.->|์ธ๋ถ ์์ฒญ ๊ธฐ๋ณธ ์ฐจ๋จ| N(("๐ ์ธ๋ถ ๋คํธ์ํฌ"))ํ๋ค์ค๋ ํ๋ก์ ํธ ํ์ผ์ ์ฐ์ง ์์ต๋๋ค. ๊ณ ์น๋ ์ผ์ ์์ด์ ํธ๊ฐ ์ง์ ํ๊ณ , ํ๋ค์ค๋ ์ฝ๊ธฐยท๊ฒ์ฌยท๋ ๋ ๊ฒฐ๊ณผ๋ง ๋ ๋๋ค.
์๋ณธ 4์ข ์
vendor/์ ์์ ์์ด ๋ค์ด ์์ต๋๋ค. ๋ฌธ์ ์์ ์คํ ์ง์(node draw.mjs,python search.py๋ฑ)๋ ์ด ๋๊ตฌ๋ค๋ก ๋์ฒดํฉ๋๋ค(guides/precedence.md๋์ฒดํ).
์์ ํ๋ฆ
design_guide ๋ฅผ topic ์์ด ๋ถ๋ฅด๋ฉด ์์ ์๋ด๊ฐ ๋์ค๊ณ , ํ๋ฆ ์ ๋ฌธ์ guides/workflow.md ์ ์์ต๋๋ค.
flowchart LR
S1["S1 ์๊ตฌ ์ ๋ฆฌ<br/>surface ๊ฒฐ์ "] --> S2{"S2 ๋ฐฉํฅ"}
S2 -->|persuade| D["design_direction"]
S2 -->|operate ยท read ยท experience| Q["design_search"]
D --> S3["S3 ๊ตฌํ<br/>(์ฐ๊ธฐ ์์ด์ ํธ)"]
Q --> S3
S3 --> S4["S4 ๊ฒ์ฌ<br/>design_lint โ design_render"]
S4 --> S5["S5 ๋นํ<br/>critique ยท design_inspect"]
S5 --> G{"FAIL ๋จ์?"}
G -->|"์ (์ต๋ 3ํ)"| S6["S6 ์์ <br/>FAIL ์์ 3๊ฐ"]
S6 --> S4
G -->|์๋์ค| S7["S7 ๋ณด๊ณ <br/>FAILยทWARNยทINFO ํ"]surface | ๋์ | ์ ์ฉ ๊ท์น |
persuade | ๊ณต๊ฐ ๋๋ฉยท๋ง์ผํ ํ์ด์ง | impeccable + taste + UI UX Pro Max |
operate | ๋์๋ณด๋ยท์ฑ ํ๋ฉด | impeccable + UI UX Pro Max |
read | ๋ฌธ์ยท๊ธ ์ฝ๊ธฐ ํ๋ฉด | impeccable + UI UX Pro Max |
experience | ๋ชฐ์ ํยท์ธํฐ๋ํฐ๋ธ ํ๋ฉด | impeccable + UI UX Pro Max |
์ฝ๊ธฐ ์ ์ฉ ์์ด์ ํธ(์ง๋จยท๊ฒํ ยทQA)๋ S1ยทS2ยทS4ยทS5ยทS7 ๋ง, ์ฐ๊ธฐ ์์ด์ ํธ๋ ์ ๋จ๊ณ๋ฅผ ํฉ๋๋ค.
์ถฉ๋ ์ฐ์ ์์
์๋ณธ 4์ข
์ ๊ท์น์ด ๋ถ๋ชํ๋ฉด ์ ์์๊ฐ ์ด๊น๋๋ค. src/precedence.ts(์ฝ๋)์ guides/precedence.md(๋ฌธ์)๋ ๊ฐ์ ๊ท์น์
๋๋ค. ์ธ๋ถ ํด์ํ C1~C12 ๋ ๋ฌธ์์ ์์ต๋๋ค.
์์ | ์์ฒ |
P0 | ๋ ธ๋ยท๊ทธ๋ํ ์ง์(์ถ๋ ฅ ํ์, ๋ ธ๋ ์ ์ฑ ) |
P1 | ์ฌ์ฉ์ยท๋ธ๋ฆฌํ์ ๋ช
์ ์๊ตฌ(๋๊ตฌ ์ธ์ |
P2 | ํ๋ก์ ํธ ๊ธฐ์กด ๋์์ธ ์์คํ : DESIGN.md ํ ํฐ, ๊ทธ๋ค์ ๊ธฐ์กด ์ฝ๋ ํ ํฐ |
P3 | ์ ๊ทผ์ฑยทํ์ง ํํ: ๋๋น 4.5:1, ๊ฐ๋ฆผยท์๋ฆผยท๊นจ์ง ์ด๋ฏธ์งยท์คํฌ๋ฆฝํธ ์ค๋ฅยท์ ๋ชฉ ์์ยท์์ ๊ธ์ |
P4 | impeccable craft-floorยท๋ชจ๋ ๊ท์น(๋ชจ๋ surface, "defaults, not bans") |
P5 | taste ํ์ฐ์ค ๊ท์น(persuade ์์๋ง, ๊ทธ ๋ฒ์ ์์์๋ ๊ธ์ง) |
P6 | UI UX Pro Max ๊ฒ์ ๊ฒฐ๊ณผ(๊ถ๊ณ ) |
P7 | ๋ธ๋๋ ์ฐธ๊ณ DESIGN.md(awesome-design-md) |
P3 ํํ์ P1ยทP2 ์allow ๋ก๋ ๋ฎ์ถ์ง ์์ต๋๋ค. ๋์ conflict: true ์ "์ฌ๋ ๊ฒฐ์ ํ์"๋ฅผ ๋ถ์
๋๋ค. ํ๋ค์ค๋ ์ ๊ทผ์ฑ ๊ฒฐ์ ์ ๋์ ํ์ง ์์ต๋๋ค.
๋ ๋ ์์
์ํ์ฉ ํ์ด์ง test/fixtures/persuade/index.html ์ design_render(surface persuade, ํญ 1280ยท390)๋ก ๋ ๋ํ ๊ฒฐ๊ณผ์
๋๋ค. ์ผ๋ถ๋ฌ ํํ ๊ฒฐํจ์ ๋ฃ์ ํ์ด์ง์
๋๋ค.
FAIL design_render: FAIL 10 ยท WARN 6 ยท INFO 3 (allowed 0, surface-skipped 0)
์ธ๋ถ ์์ 1๊ฑด ์ฐจ๋จ: ์ค์ ํ๋ฉด๊ณผ ๋ค๋ฅผ ์ ์์
[FAIL] contrast (taste-gate, impeccable) โ Unreadable text: "Read the release notes" 2.1:1 (#0000ee on #0b0b14)
[FAIL] gradient-text (taste-gate, impeccable) โ 1 gradient-filled text element(s).
[FAIL] skipped-heading (impeccable) โ Skipped heading level: <h1> "Build faster with AI" followed by <h3> "Fast" (missing h2)
[WARN] flat-type-hierarchy (impeccable) โ Role sizes: body 16px, h1 16px, h3 16px (largest adjacent step 1.00:1; target 1.25:1)
[INFO] broken-image (taste-gate) โ Broken image(s): https://example.invalid/a.png [blocked-by-harness]๊ฒฐ๊ณผ | ๊ฑด์ | ๋ํ ๋ฐ๊ฒฌ |
๐ด FAIL | 10 | ๋๋น 2.1:1, ๊ทธ๋ผ๋์ธํธ ๊ธ์, ์ ๋ชฉ ๋จ๊ณ ๊ฑด๋๋, ๋ณด๋ผ ํ๋ ํธ, ์ฅ์ ๋ฒํธ, ์ ์ง ํ๋ฉด |
๐ก WARN | 6 | ๊ธฐ๋ณธ ์์ฒด Inter, ํํํ ๊ธ์ ์๊ณ, ์ฒซ ํ๋ฉด ๋ฒํผ ์์, ๊ธ๋์ค ๋ฉด |
๐ต INFO | 3 | ์ธ๋ถ ์ด๋ฏธ์ง ์ฐจ๋จ์ผ๋ก ์๊ธด ๋ฐ๊ฒฌ( |
๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ ์์ง์ด ์ก์ผ๋ฉด ํ๋๋ก ํฉ์น๊ณ ์ถ์ฒ๋ฅผ ๋ชจ๋ ์ ์ต๋๋ค(
contrast (taste-gate, impeccable)).์ ์ฒด ๊ฒฐ๊ณผ๋ ํธ์ถ ํด๋์
report.json์, ์คํฌ๋ฆฐ์ท์ ๊ฐ์ ํด๋์fold-<ํญ>.jpg์ ๋จ์ต๋๋ค.
๋ฌถ์ ์๋ณธ
์๋ณธ | ๋ผ์ด์ ์ค | ์ฐ์ | ํ์ผ |
Apache-2.0 | ์ฐธ๊ณ ๋ฌธ์(craft-floorยท๋ชจ๋ ๋ฑ) + ๊ฒฐ์ ์ ํ์ง ์์ง 0.1.15 | 48 | |
MIT | ์ํธ ๋๋ ์ draw, lint, ๋ ๋ ์ธก์ ํจ์ | 28 | |
MIT | ์คํ์ผยท์ยท์์ฒด CSV ์ ๊ฒ์๊ธฐยท๋์์ธ ์์คํ ์ ์ | 47 | |
MIT | ๋ธ๋๋ DESIGN.md 84๊ฐ(์ฐธ๊ณ ์ ์ฉ) | 86 |
์๋ณธ ์ปค๋ฐ๊ณผ ํ์ผ๋ณ SHA-256 ์ vendor/SOURCES.json ์ ์์ต๋๋ค.
๋น ๋ฅธ ์์
์๊ตฌ ์ฌํญ
ํญ๋ชฉ | ๋ฒ์ | ์ฐ์ |
Windows | x64 | impeccable ์์ง ๋ฐ์ด๋๋ฆฌ( |
Node.js | 22.18 ์ด์(24 ๊ถ์ฅ) |
|
Python | 3.9 ์ด์ | design_search(UI UX Pro Max ๊ฒ์๊ธฐ) |
๋ธ๋ผ์ฐ์ | chromium headless shell ๋๋ Edge | design_renderยทdesign_inspect |
์ค์น์ ํ์ธ
git clone <์ ์ฅ์ ์ฃผ์> <์ค์น ๊ฒฝ๋ก>
cd <์ค์น ๊ฒฝ๋ก>
npm ci # ์ ์ฅ์ ์์๋ง ์ค์น(.npmrc: save-exact, ignore-scripts)
npm run smoke # initialize โ tools/list โ design_guide, ๋ง์ง๋ง ์ค OKํด๋ผ์ด์ธํธ ๋ฑ๋ก
# Claude Code
claude mcp add astrondesign --scope user -e ASTRONDESIGN_NETWORK=off -- node "<์ค์น ๊ฒฝ๋ก>/src/server.ts"# Codex: ~/.codex/config.toml
[mcp_servers.astrondesign]
command = "node"
args = ["<์ค์น ๊ฒฝ๋ก>/src/server.ts"]
tool_timeout_sec = 180.mcp.json ์์, ์ ํ ์๊ฐ ๊ทผ๊ฑฐ, ๋ฌธ์ ํด๊ฒฐ์ docs/integration.md ์ ์์ต๋๋ค.
์ ๊ณต ๋๊ตฌ
๋๊ตฌ | ํ๋ ์ผ | ์ฃผ์ ์ ๋ ฅ |
| ์์ ํ๋ฆยท์ฐ์ ์์ยท๋นํ ๊ท์ฝ๊ณผ ์๋ณธ ์ฐธ๊ณ ๋ฌธ์๋ฅผ 3,500์ ์ชฝ ๋จ์๋ก ์ ๊ณต. ๋จผ์ topic ์์ด ๋ถ๋ฆ |
|
| UI UX Pro Max ๊ฒ์ยท๋์์ธ ์์คํ ์ ์(๊ถ๊ณ , P6) |
|
| ๊ณต๊ฐ ๋๋ฉยท๋ง์ผํ ํ์ด์ง์ ์ํธ ๋๋ ์ ๋ฝ๊ธฐ(taste draw, ์คํ๋ผ์ธ) |
|
| ์์ค ์ ์ ๊ฒ์ฌ(impeccable + taste lint) ํ P0 |
|
| ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ๋ก ์ฌ๋ฌ ํญ ๋ ๋: ์ฒซ ํ๋ฉด ์คํฌ๋ฆฐ์ท, taste ์ธก์ , impeccable DOM ๊ฒ์ฌ, ์ ๊ทผ์ฑ ์ค๋ ์ท |
|
| ์ ํ์ยท์ขํ๋ก ์์ ๋ฌถ์(HTMLยท๊ณ์ฐ ์คํ์ผ 16๊ฐยท์์นยท์๋ฆฐ ์ด๋ฏธ์ง)์ ๋ชจ์ผ๊ณ |
|
๊ฒฐ๊ณผ ์ฒซ ์ค์ OK|FAIL|ERROR <์์ฝ> ์ด๊ณ , ๋ฐ๊ฒฌ ์ค์ [LEVEL] id (sources) ์์น โ message [overridden_by] ํ์์
๋๋ค.
์ค์
ํ๊ฒฝ ๋ณ์ | ๊ธฐ๋ณธ | ๋ป |
|
| ์ฐ์ถ ๋ฃจํธ(์ ๋ ๊ฒฝ๋ก) |
|
|
|
|
| UI UX Pro Max ๊ฒ์์ ์ธ python |
| โ | ๋ธ๋ผ์ฐ์ ์คํ ํ์ผ(1์์) |
|
| ๋ง์ง๋ง ํธ์ถ ๋ค ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ๊ธฐ๊น์ง์ ์๊ฐ(ms) |
์ด์ ์๋ด
๋ชจ๋ ์ฐ์ถ(์คํฌ๋ฆฐ์ทยท
report.jsonยทDesign Feedback)์<cwd>/.astron-logs/astrondesign/<์๊ฐ>-<๋๊ตฌ>-<id>/์ ๋จ์ต๋๋ค.ํ๋ก์ ํธ ํ์ผ์ ์ฐ์ง ์์ต๋๋ค. ๋ธ๋๋ DESIGN.md ๋ฅผ ํ๋ก์ ํธ์ ๋ณต์ฌํ๋ ์ผ๋ ์ฌ์ฉ์๊ฐ ๋ช ์์ ์ผ๋ก ์์ฒญํ ๋๋ง ์์ด์ ํธ๊ฐ ์ง์ ํฉ๋๋ค.
๋ ๋ยท๊ฒ์ฌ ๋์์ ์๋ฒ cwd ์์ ๊ฒฝ๋ก์ฌ์ผ ํฉ๋๋ค.
๊ธฐ๋ณธ์ผ๋ก ์ธ๋ถ ์์ฒญ์ ๋ง์ต๋๋ค. ๋ก์ปฌ ํ์ผ์ ๋ฃจํ๋ฐฑ ์ ์ ์๋ฒ๋ก ๋์ ๋ ๋ํฉ๋๋ค.
ํ์ ํ๋ก์ธ์ค์๋ ํ ๋ ๋ฉํธ๋ฆฌ ๋๊ธฐ์ ํ๋ก์ ์ฐจ๋จ์ ์ ์ฉํฉ๋๋ค.
์ธ๋ถ URL ์ ๋ ๋ํ๋ ค๋ฉด env
ASTRONDESIGN_NETWORK=allow์ ์ธ์allow_network:true๊ฐ ๋ชจ๋ ํ์ํฉ๋๋ค.์ฐจ๋จ ๋๋ฌธ์ ์๊ธด ๋ฐ๊ฒฌ์
blocked-by-harness๋ก ํ์๋๊ณ ๊ฒฐํจ์ผ๋ก ์ธ์ง ์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ์ฒซ ๋ ๋ ๋ ๋์ฐ๊ณ (env ๊ฒฝ๋ก โ playwright ๊ธฐ๋ณธ โ Edge), ๋ง์ง๋ง ํธ์ถ ๋ค
ASTRONDESIGN_IDLE_MS๊ฐ ์ง๋๋ฉด ๋ซ์ต๋๋ค.์๋ฒ ํ๋๊ฐ ๋ธ๋ผ์ฐ์ ํ๋๋ฅผ ์๋๋ค. ๋์์ ๋๋ ๋์์ธ ์์ด์ ํธ๋ 2๊ฐ ์ดํ๋ฅผ ๊ถ์ฅํฉ๋๋ค.
npm run typecheck # tsc ์ค๋ฅ 0
npm test # ๋จ์ + MCP ํ๋กํ ์ฝ + ์์ง ์ํ
npm run smoke # ์๋ฒ ๊ธฐ๋ ํ์ธ
npm run test:browser # ์ค์ ๋ธ๋ผ์ฐ์ ์ํ(๋ฌด๊ฑฐ์)
npm run vendor # ์๋ณธ ์ฌ๋ณธ์์ vendor/ ์ฌ์์ฑ(์ปค๋ฐ ํด์ ํ์ธ)์ถ์ฒยท๋ผ์ด์ ์ค
์๋ณธ 4์ข ์ ์ ์ฅ์ยท์ปค๋ฐยทํฌํจ/์ ์ธ ๋ฒ์ยทํ์ ํ์ผ์ NOTICE.md, ํ์ผ๋ณ ํด์๋ vendor/SOURCES.json ์ ์์ต๋๋ค.
impeccable ์ LICENSEยทNOTICE.md ๋
vendor/impeccable์ ๊ทธ๋๋ก ๋ณด์กดํฉ๋๋ค.design_inspect์ ์์ ๋ฌถ์ ํ์์ stablyai/orca Design Mode(MIT)์ ๋์์ ์ฐธ๊ณ ํด ์๋ก ๊ตฌํํ์ต๋๋ค(์ฝ๋ ๋ฏธํฌํจ).๋ธ๋๋ DESIGN.md ๋ ์ฐธ๊ณ ์๋ฃ์ ๋๋ค. ๊ฐ ์ํยท์ธํ์ ๊ถ๋ฆฌ๋ ํด๋น ์์ ์์๊ฒ ์์ต๋๋ค.
์ด ์ ์ฅ์ ์์ฒด๋ MIT ๋ผ์ด์ ์ค์ ๋๋ค.
vendor/์ ์๋ณธ์ ์ ํ์ ๊ฐ ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค.
Available Tools
6 toolsdesign_directionC
Deal an art direction for a public landing or marketing page (taste-skill draw). Not for dashboards or app screens.
Inputs: have, keep, list, seed, +7 more.
design_guideA
UI/UX design harness guide: workflow, conflict precedence, critique protocol and references (impeccable, taste, UI UX Pro Max, brand DESIGN.md). Call first without topic.
Inputs: topic, offset.
design_inspectC
Inspect page elements by selector or point (HTML, 16 computed styles, bounds, crop) and write a Design Feedback note.
Inputs: target (required), notes, point, width, +4 more.
design_lintC
Static UI design lint of source files with impeccable and taste rules, resolved by AstronDesign precedence. Writes nothing to the project.
Inputs: paths (required), surface (required), allow, engines, +1 more.
design_renderC
Render a page in a real headless browser at several widths: screenshots, measured design rules, accessibility snapshot. External network blocked by default.
Inputs: target (required), surface (required), allow, checks, +5 more.
design_searchC
Search UI UX Pro Max design data (styles, palettes, fonts, UX rules) or build a design-system suggestion. Results are recommendations, not rules.
Inputs: query (required), stack, domain, max_results, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
TDQS
Scored across 6 tools
Each tool has a distinct role: guidance (design_guide), static analysis (design_lint), data lookup (design_search), ideation (design_direction), browser rendering (design_render), and element-level inspection (design_inspect). The only real friction is between design_render and design_inspect, both of which measure live pages, though their descriptions (whole-page screenshots/rules vs. single-element computed styles) differentiate them adequately for a careful agent.
All tools share the design_ prefix with a single word suffix, forming a predictable namespace. The second token mixes nouns (guide, direction) and verbs (lint, render, inspect, search), so the verb_noun pattern is not strictly followed, but the prefix uniformity keeps the set readable and scannable.
Six tools is well within the ideal range and each one covers a separate phase of a design workflow (guide, search, direction, lint, render, inspect). No tool appears redundant or tacked on.
The surface covers the full read/analyze/advisory loop: onboarding guidance, reference lookup, direction dealing, static linting, rendering, and element inspection with feedback notes. The notable gap is any apply/fix or note-retrieval operation โ design_lint explicitly writes nothing and there is no tool to read back or resolve accumulated Design Feedback notes, which could dead-end a remediation workflow.
Maintenance
Related MCP Connectors
Serves your design system and coding standards to coding agents, so they stop guessing.
Hosted browser for AI agents: screenshots, post-JS DOM, console, WCAG. No install, no API key.
Website checker for AI coding agents. Measures your site in a real browser, with evidence.
Read-only web QA agent: scans a site in a real browser and returns evidence-backed findings
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables coding agents and CI to verify rendered web UIs against design token usage, layout constraints, and accessibility rules, returning concise pass/fail verdicts with actionable findings.55 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to audit rendered web pages for design and UI defects by measuring geometry, styles, contrast and motion in a local browser and judging them against evidence-tiered rules. Findings come back as short, fixable items expressed in the project's own design tokens, while only sanitized numeric measurements leave the machine.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to act like a senior UI/UX team by reading an existing site's design DNA and tokens, proposing distinct art directions and motion mechanics that fit the brief, and validating changes in a live headless Chromium browser. Provides per-element accessibility and performance auditing (WCAG 2.2 contrast, focus, clipping, phone-menu behavior, LCP/CLS) at multiple viewport widths, plus baseline capture, before/after comparison, and one-command rollback for safe redesigns.77 npm3MIT
- AlicenseNot gradedqualityAmaintenanceEnables coding agents building UI to ground their work in real product screens, returning one to three reference screenshots for an unresolved layout, state, or interaction question, plus licensed fonts and icons and the recorded colors, typography, and components behind a chosen web screen. It also serves the bundled design workflow, prompts, and connection diagnostics locally, without a token.MIT