一键导入
pix
Launches an autonomous, pixel-perfect UI implementation loop using Figma MCP and Chrome.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Launches an autonomous, pixel-perfect UI implementation loop using Figma MCP and Chrome.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when the user wants to design, plan, write, review, refactor, test, debug, optimize, harden, or otherwise improve production code. Covers feature implementation, code review, system architecture, debugging, performance work, refactoring, test strategy, error handling, edge cases, dependency choices, and technical standards. Handles 'shape this before I build it', 'review my approach', 'what's wrong with this code', 'simplify this mess', 'why is this slow', 'what tests should I write', 'is this the right abstraction'. Sets up engineering standards (STACK.md, PRINCIPLES.md, TESTING.md) so all sub-commands follow the team's posture. Not for visual / UI design (use impeccable instead) or pure documentation.
Autonomous task-execution loop that pulls actionable issues from a task tracker (Linear or Jira), branches from main, implements, tests, opens a GitHub PR with no AI attribution, and self-paces the next iteration. Use when the user runs `/taskloop init` (one-time per-project setup that picks a provider and generates the loop's memory/config files), `/taskloop start` (re-arms the Monitor + ScheduleWakeup so the loop resumes for the current project), `/taskloop stop`, `/taskloop add-rule [slug]`, or `/taskloop status`. Also triggers when the user says "start" / "porneste" / "resume loop" in a working directory that already has a taskloop config under `~/.claude/projects/SLUG/memory/`.
Manage and maintain a TypeScript MCP server using @modelcontextprotocol/sdk with Express and Streamable HTTP/SSE. Supports setup, adding new MCP tools (handler.ts/prompt.ts/type.ts/index.ts), enforcing strict Zod schemas, token-lean prompts (Claude/Grok friendly), manual tool registration, and transport-level API key injection (query/header → env, never in tool params). All code examples use TypeScript (.ts files). Triggers: "setup MCP server", "add MCP tool", "create handler.ts prompt.ts type.ts", "register tool", "refactor MCP prompt", "API key via header/query".
D3.js data visualization in React/Next.js components with PIXEL-PERFECT Figma matching. Use when building interactive charts, graphs, network diagrams, geographic maps, or any custom data visualization with D3.js inside React components. Covers pixel-perfect Figma extraction workflow, iterative visual validation via Playwright, two integration approaches (useRef+useEffect imperative vs declarative React rendering), responsive sizing, TypeScript typing, SSR/Next.js compatibility, accessibility, and performance. Triggers on: 'create a chart', 'add a D3 visualization', 'build a graph component', 'data visualization', 'interactive chart', 'force-directed graph', 'bar chart', 'line chart', 'heatmap', 'scatter plot', 'pie chart', 'chord diagram'.
Carbon Design System icon usage for React components. MANDATORY when any component includes an icon. Use when implementing UI components that need icons, building atoms/molecules/organisms with icon elements, or adding icons to buttons, inputs, navigation, or any other UI element. Covers icon imports, sizing, color, alignment, touch targets, and the V-Shield Design System icon labeling system.
Import vector illustrations from Figma as reusable React atom components. Use when a component or page needs a custom illustration (NOT a standard Carbon icon). Triggers on requests like 'implement this illustration from Figma', 'add this Figma illustration', 'create illustration component', or when a Figma node contains a multi-layer vector illustration (lock, envelope, microscope, etc.). BEFORE creating a new illustration, always check if it already exists in `apps/web-app/src/components/atoms/Illustration*.tsx` and `apps/web-app/public/assets/illustrations/`.
| name | pix |
| description | Launches an autonomous, pixel-perfect UI implementation loop using Figma MCP and Chrome. |
| allowed-tools | ["Bash","Read","Glob","Grep","Edit","Write"] |
Note: This skill requires Figma MCP and Claude Chrome extension. Tool names may vary based on your MCP configuration (e.g.,
figma__get_screenshotormcp__figma__get_screenshot). Run/mcpto see available tools.
Before anything else, analyze the project to understand its stack:
Check which lockfile exists: package-lock.json (npm), yarn.lock (yarn), pnpm-lock.yaml (pnpm), bun.lockb (bun).
Use the corresponding command for all package operations.
package.json scripts to find the dev commandvite.config.*, next.config.*, nuxt.config.*, webpack.config.*, .env*, or the dev script itself--port, -p, PORT=, server.portScan package.json dependencies for styling approach:
tailwindcss → config in tailwind.config.*styled-components, @emotion/*, stitches@chakra-ui/*, @mui/*, @mantine/*, antd, @radix-ui/**.module.css filesScan package.json and imports for icon libraries:
lucide-react → Lucide@heroicons/react → Heroiconsreact-icons → React Icons (multi-library)@radix-ui/react-icons → Radix Icons@fortawesome/* → FontAwesome@phosphor-icons/react → Phosphor@tabler/icons-react → Tabler Iconswhoami to check authentication statuslsof -i :<PORT> to check if server is already running. If running, leave it alone. If not running, start dev server in background using detected package manager and script.Open Chrome with localhost:<DETECTED_PORT>:
Stop and Ask:
Note: No need to open Figma in Chrome — Figma MCP handles screenshots via
get_screenshot.
Once the link is provided, you must execute this EXACT sequence. Do not skip details:
Use these Figma MCP tools in sequence:
get_metadata to understand the component hierarchy and layer structure.get_design_context to get the full design specification including layout, spacing, and styles.get_variable_defs to extract hex codes, corner-radius, shadows, and typography tokens.get_code_connect_map to check if any Figma components already map to code components in the codebase. Reuse existing components instead of recreating them.font-weight (e.g., 600 vs 700), line-height, and letter-spacing.--stroke-0, fill, or style definitions. Never assume icons inherit text color.Rule: Before writing code for ANY element, call get_design_context and verify ALL applicable properties. Never assume inheritance or defaults. Extract each value explicitly.
Text:
font-family, font-size, font-weight, line-height, letter-spacing, color, opacity, text-align, text-decoration, text-transform
Container/Block:
width, height, min-width, max-width, padding (all 4 sides), margin, background-color, border-radius, border-width, border-color, border-style, box-shadow, opacity, overflow
Icon:
size (width/height), fill, stroke, stroke-width, color (independent from parent text)
Button/Link:
All text properties + all container properties + cursor, hover-state, active-state, disabled-state
Image:
width, height, object-fit, border-radius, border, aspect-ratio
Spacing:
gap, row-gap, column-gap, space-between elements
Layout Principle: Avoid hardcoded sizes (max-w-[140px], w-[200px], etc.). With correct font-size, line-height, padding, and parent container width, elements should naturally render correctly. Hardcoded dimensions are a symptom of incorrect upstream layout — fix the root cause instead.
Responsive Design: Keep responsiveness in mind as a big plus. Even if only one breakpoint is provided in Figma, consider how the component should adapt to different screen sizes. When possible, implement both desktop and mobile-friendly styles using the project's responsive approach (Tailwind breakpoints, CSS media queries, container queries).
Never use approximate Tailwind classes (like text-zinc-500) when exact hex values are available from MCP.
NEVER hardcode values. Always sync to the project's design system:
tailwind.config.*. If a Figma value is missing, update the config. NEVER hardcode arbitrary hex values like text-[#f3f3f3] if they should be tokens.:root. NEVER scatter magic values.Map Figma layer names to the project's detected icon library. Match the stroke-width and size (px) to the design exactly. If no icon library exists, ask user preference or use inline SVG from Figma.
Implement the code using the project's existing patterns, then start the Comparison Loop:
localhost:<DETECTED_PORT>.get_screenshot to get the high-res reference from Figma.border-radius.If you find ANY discrepancy (even 1px):
Success Condition: Only finished when side-by-side screenshots prove local app and Figma design are indistinguishable.
Once you're satisfied with the result, stop and ask:
If the user provides a new link, re-run Phase 2 scoped to that specific selection. This allows targeted refinement of individual building blocks without restarting the full component.
ULTRA-THINK MODE ENABLED: Take your time. Perfection over speed.
Good invocation:
/pix
> Paste Figma link: https://figma.com/design/abc123/MyApp?node-id=42-100
What Claude does:
tailwind.config.js with missing tokensBad patterns to avoid:
text-[#f3f3f3] — hardcoded hex in Tailwindw-[247px] — magic width number