skill/SKILL.md
Implement or update project-consistent UI code from a Figma selection or nodeId using TemPad Dev MCP. Use when the user wants visible Figma UI recreated, ported, or integrated into the target project's framework, styling system, tokens, and existing components when available. Do not use for design critique, product invention, generic code review, or for guessing hidden states, responsiveness, or behavior not shown in design or project evidence.
npx skillsauth add ecomfe/tempad-dev figma-design-to-codeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to turn TemPad Dev design evidence into project-consistent UI code.
TemPad Dev MCP must be available and able to provide trustworthy design
evidence for the current selection or provided nodeId. If not, stop and tell
the user to enable or reconnect TemPad Dev MCP.
Within this skill, TemPad Dev MCP is the authoritative source of design evidence. Treat:
Do not infer project conventions before reading local evidence.
For concerns orthogonal to Figma-to-code translation, follow project
instruction files such as AGENTS.md and other project instructions instead of
defining new policy in this skill. If such a concern is unspecified there and
would materially change the implementation, ask the user or stop.
Use three evidence channels for different jobs:
AGENTS.md or equivalent project instruction files,
design-system docs, token/theme docs, component docs, existing primitives,
nearby implementations, framework/styling config, asset rules, and project
scriptstempad-dev:get_code first for markup, styles, tokens,
assets, warnings, and codegen facts; tempad-dev:get_structure only for
hierarchy, geometry, overlap, and retry targetingTemPad Dev can prove:
nodeIdthemeablecssUnit, scale, and
rootFontSizeTemPad Dev cannot prove:
get_structure; it is only a structure aidDo not output data-hint-* attributes.
Never invent visual details or behavior not evidenced, including color, typography, spacing, radius, borders, shadows, gradients, opacity, overlays, blur, hidden states, responsive behavior, interactions, or asset semantics.
Treat advanced or uncommon style output from TemPad Dev as intentional unless project constraints force an adaptation.
Only ask the user when the answer would materially change the implementation and cannot be established from project or design evidence. Typical blockers:
If a gap is minor and non-blocking, proceed with a clearly stated inference.
Prefer the smallest safe change. Do not perform unrelated refactors or add new abstractions unless project patterns clearly call for them.
Do not enter open-ended visual tuning loops without new evidence. If remaining differences cannot be proved from project or design evidence, warn clearly and stop or hand off for user validation.
Read local evidence before implementing. Prioritize, in order:
AGENTS.md or equivalent project instruction filesEstablish at least:
Only if the project actually uses Tailwind or Tailwind-compatible tooling, detect Tailwind version and config before changing class syntax or ordering.
For Tailwind projects, also inspect the local theme scales relevant to exact- value mapping, especially spacing, sizing, radius, and typography.
If a material implementation constraint is still missing after local evidence, ask the user instead of inferring it.
Call tempad-dev:get_code first.
Use these defaults:
resolveTokens: falsenodeId only when the user provided one; otherwise use the current
selectionpreferredLang to match the project target, such as jsx or vueUse TemPad's default vector behavior unless the user explicitly asks for asset-preserving vector fidelity and the current MCP version clearly supports it.
Use resolveTokens: true only when the user explicitly does not want
design-token usage.
Treat returned lang as authoritative because TemPad Dev plugin or config may
override preferredLang.
Record these as design facts:
codelangwarningsassets, if presenttokens, if presentcodegenUse codegen.config.{cssUnit,rootFontSize,scale} as the authoritative unit
context for exact-value mapping.
Prefer fetching the full requested top-level selection first so parent composition and containment are not lost.
If get_code warns or fails, narrow uncertainty instead of guessing.
depth-cap: keep the returned top-level result as the source of parent
layout and composition, then use returned data-hint-id values to choose
narrower get_code follow-ups for the subtrees you still need.tempad-dev:get_structure, but use it only to resolve hierarchy or geometry,
or to choose a narrower parent-shell retry target. Do not treat it as
missing style truth.get_code, stop full implementation
and ask the user to narrow scope or choose the highest-priority subtree.Retry policy:
depth-cap, budget overflow, or unreadable target; change
scope or inputs firstIf TemPad MCP appears unavailable, inactive, or pointed at the wrong file, stop and tell the user to:
If asking the user to narrow scope because of budget overflow, report the current consumption, limit, and overage from the error text.
Translate TemPad Dev output into the implementation's established patterns.
py-[4px],
text-[12px], or font-[600] into named utilities unless local project
evidence proves the same rendered value; for rem output, use
codegen.config.{cssUnit,rootFontSize,scale} to convert exactly. Apply this
to spacing, sizing,
inset, gap, radius, font-size, line-height, letter-spacing, and
font-weight.before:,
after:, content-*, or equivalent CSS, keep them or use an established
equivalent with the same rendered result.get_code, including pseudo-
classes, filters, masks, blend or backdrop effects, and other non-default
visual properties, unless implementation constraints require adaptation.Follow the established asset policy first.
asset.url. Never substitute public
internet assets.<svg data-src="..."> in code, treat that
placeholder markup as the current design truth for structure, sizing, and
instance color evidence. data-src points at the uploaded SVG asset. Only
refactor delivery when the implementation already has another established SVG
policy.themeable: true means one context-driven color channel, typically via
currentColorthemeable: true keep their internal paletteasset.themeable only after accounting for the project's existing SVG
delivery policy.Preserve design-token usage by default.
Token evidence may be either direct values or mode-specific values keyed by
Collection:Mode. Preserve references between variables when present.
When not already using an appropriate primitive or component:
button, a, input, and
labelaria-label or altAssume the existing CSS reset or normalize strategy. Do not add new reset libraries or global CSS unless there is already a defined pattern for it.
Project checks are project-defined, not skill-defined.
AGENTS.md, local docs, and
existing project scripts for any lint, format, typecheck, build, test,
preview, screenshot, or design-comparison steps relevant to this change.Stop instead of shipping code when:
depth-cap, shell
response, or budget overflowWhen shipping code, end with:
If blocked, provide at most 3 concrete next items needed from the user.
get_code returns a parent shell and a shell warningget_codethemeable: truecurrentColortools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.