Wonder Blocks
Khan/wonder-blocks
Implements user interfaces using the Wonder Blocks (WB) design system — Khan Academy's React component library.
Add a Figma Code Connect (.figma.tsx) file for a Cauldron React component.
$ npx skills add dequelabs/cauldron --skill connect-component-to-figma -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dequelabs/cauldron connect-component-to-figma --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/dequelabs/cauldron.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/connect-component-to-figma .claude/skills/connect-component-to-figma && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "connect-component-to-figma" agent skill from https://github.com/dequelabs/cauldron/tree/develop/.claude/skills/connect-component-to-figma into .claude/skills/connect-component-to-figma/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "connect-component-to-figma", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/dequelabs/cauldron/tree/develop/.claude/skills/connect-component-to-figmaType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add dequelabs/cauldron --skill connect-component-to-figma -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dequelabs/cauldron connect-component-to-figma --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dequelabs/cauldron.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/connect-component-to-figma .agents/skills/connect-component-to-figma && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "connect-component-to-figma" agent skill from https://github.com/dequelabs/cauldron/tree/develop/.claude/skills/connect-component-to-figma into .agents/skills/connect-component-to-figma/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "connect-component-to-figma", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dequelabs/cauldron --skill connect-component-to-figma -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dequelabs/cauldron connect-component-to-figma --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dequelabs/cauldron.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/connect-component-to-figma .cursor/skills/connect-component-to-figma && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "connect-component-to-figma" agent skill from https://github.com/dequelabs/cauldron/tree/develop/.claude/skills/connect-component-to-figma into .cursor/skills/connect-component-to-figma/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "connect-component-to-figma", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/dequelabs/cauldron.git --path .claude/skills/connect-component-to-figma--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add dequelabs/cauldron --skill connect-component-to-figma -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dequelabs/cauldron connect-component-to-figma --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dequelabs/cauldron.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/connect-component-to-figma .gemini/skills/connect-component-to-figma && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "connect-component-to-figma" agent skill from https://github.com/dequelabs/cauldron/tree/develop/.claude/skills/connect-component-to-figma into .gemini/skills/connect-component-to-figma/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "connect-component-to-figma", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install dequelabs/cauldron connect-component-to-figmaInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add dequelabs/cauldron --skill connect-component-to-figma -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dequelabs/cauldron.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/connect-component-to-figma .github/skills/connect-component-to-figma && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "connect-component-to-figma" agent skill from https://github.com/dequelabs/cauldron/tree/develop/.claude/skills/connect-component-to-figma into .github/skills/connect-component-to-figma/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "connect-component-to-figma", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dequelabs/cauldron --skill connect-component-to-figma -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dequelabs/cauldron connect-component-to-figma --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dequelabs/cauldron.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/connect-component-to-figma .opencode/skills/connect-component-to-figma && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "connect-component-to-figma" agent skill from https://github.com/dequelabs/cauldron/tree/develop/.claude/skills/connect-component-to-figma into .opencode/skills/connect-component-to-figma/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "connect-component-to-figma", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
connect-component-to-figmaAdd a Figma Code Connect (.figma.tsx) file for a Cauldron React component.
Connect Component To Figma is an agent skill from dequelabs/cauldron. Add a Figma Code Connect (.figma.tsx) file for a Cauldron React component. Use when connecting a component to Figma, adding a code connect, or working on Figma Code Connect tasks in the cauldron repo.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering React components, Design systems and Accessibility. It works with Figma, React, TypeScript and JavaScript. The licence is MPL-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 74b85fb. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pnpmnpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
figma.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Connect Component To Figma loads about 2k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 691 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from dequelabs/cauldron at commit 74b85fb, republished under its MPL-2.0 licence (© dequelabs). 691 words, ~1,951 tokens.
.claude/skills/connect-component-to-figma/SKILL.md (or your agent's skills folder).Adds one .figma.tsx file next to a packages/react/src/components/<Component>/ source file so the Figma Dev Mode snippet shows the real Cauldron API. Reference implementations: IconButton.figma.tsx (nested props), Tooltip.figma.tsx (anchored target+ref), Checkbox.figma.tsx (multiple enums + boolean + textContent).
import React from 'react';
import figma from '@figma/code-connect';
import { MyComponent } from '../../index';
const FIGMA_URL =
'https://www.figma.com/design/CEFVdiecqDjLSjhorjHUzI/Product-Foundations--Cauldron--Library?node-id=NODE-ID&m=dev';
figma.connect(MyComponent, FIGMA_URL, {
props: {
// VARIANTs (including pseudo-booleans like "True"/"False"):
variant: figma.enum('Variant', { Secondary: 'secondary' }),
// Real BOOLEANs:
disabled: figma.boolean('Disabled', { true: true, false: undefined }),
// Text layers:
children: figma.textContent('Label')
},
example: ({ variant, disabled, children }) => (
<MyComponent variant={variant} disabled={disabled}>
{children}
</MyComponent>
)
});Replace NODE-ID with the Figma node id in the form 123-456 (dash, not colon).
123:456 → 123-456 for the URL.packages/react/src/index.ts to confirm the named export(s). Many components have compound children (e.g. AccordionTrigger, BreadcrumbLink, PanelTrigger) — import them from the barrel.index.tsx / main .tsx to find required props and the real shape of any child components.packages/react/src/components/<Component>/<Component>.figma.tsx. Use the Quick start template.npx eslint packages/react/src/components/<Component>/<Component>.figma.tsx
pnpm --filter @deque/cauldron-react figma:publish:dry-run.figma.tsx is excluded from tsconfig.json, so tsc won't see it — the dry-run publish is the real validator. To debug what the parser sees for one file, run pnpm figma:parse <path> from packages/react/.chore: connect <Component> to Figma via Code Connect (or chore: connect Batch N components... for multi-file work).develop. If the work tracks a parent issue, include Related to #<issue> in the body.'../../index' (the barrel). Not from the component file, not from @deque/cauldron-react. This matches packages/react/figma.config.json.'Show Copy', not 'Show Copy#938:498'. The trailing #NNN:NNN is Figma's internal property id and breaks the mapping.undefined and is dropped from the snippet (e.g. Button's default Variant=Primary is not in its mapping; only Secondary and Tertiary are).example clean: no default-valued props in the rendered JSX.State, Device, Hover, Focus, Active, Disabled (when purely visual), Wrapped.| Figma type | Code Connect call | Notes |
|---|---|---|
VARIANT (enum, incl. "True"/"False") | figma.enum('Name', { True: true }) | "True"/"False" can be either type — check the icon (see gotchas). |
| BOOLEAN (real toggle) | figma.boolean('Name', { true: X, false: undefined }) | Use undefined for "off" so the prop drops. |
| Text layer | figma.textContent('Label') | Layer name, not property name. |
Nested instance prop (e.g. _Icon Type) | figma.nestedProps('_Icon Type', { name: figma.string('Icon') }) | See IconButton/Icon for the pattern. |
| Multiple Figma variants → one component | Multiple figma.connect(C, URL, { variant: { Type: 'X' }, ... }) calls | E.g. ActionMenu with Button vs Icon Button triggers. |
True/False could be either. In the Figma properties panel: a round toggle icon = BOOLEAN, a diamond icon = VARIANT. Use figma.boolean('Name', { true: X, false: undefined }) for the former and figma.enum('Name', { True: X }) only for the latter (true VARIANTs with "True"/"False" string values, like Button's Thin). Picking wrong still renders, but reads as a workaround.onClose={() => {}} triggers @typescript-eslint/no-empty-function. Use onClose={() => undefined} instead.id="checkbox" and label="Label"; ProgressBar needs aria-label="Progress"; Modal needs show and onClose.React.createRef and renders both the trigger and the Tooltip so the snippet is valid usage:example: ({ placement }) => {
const targetRef = React.createRef<HTMLButtonElement>();
return (
<>
<button ref={targetRef}>Trigger</button>
<Tooltip target={targetRef} placement={placement}>
Tooltip text
</Tooltip>
</>
);
};Collapsed=False to open=true (the React prop is the opposite of the Figma variant). Read the React prop semantics before mapping.placement defaults to 'auto', which matches no design direction. Map every Figma Direction value explicitly, Right included — omit one and the snippet drops placement and lets the floating engine choose.'Combo Box' (with space) is a known string-with-space key if you connect to the shared Forms set. Quote it exactly.packages/react/src/index.ts before importing. Tabs exports Tab + TabPanel; Stepper exports Step; NavBar exports NavItem; etc.Some components have no Figma counterpart and should not be connected (utility/wrapper components, nav primitives, components covered by another). The canonical list lives in the checkboxes at dequelabs/cauldron#2373 — check there before connecting a component you don't see in ls packages/react/src/components/*/*.figma.tsx.
CONTRIBUTING.md → Figma Code Connect section, and the full plan + skip list at dequelabs/cauldron#2373.ls packages/react/src/components/*/*.figma.tsx.CEFVdiecqDjLSjhorjHUzI. URL template: https://www.figma.com/design/CEFVdiecqDjLSjhorjHUzI/Product-Foundations--Cauldron--Library?node-id={NODE-ID-WITH-DASH}&m=dev.© dequelabs, MPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/connect-component-to-figma of dequelabs/cauldron.
Open the folder on GitHubat commit 74b85fb
Connect Component To Figma next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Connect Component To Figma this skilldequelabs/cauldron | 129 | — | ~2k | Automated safety check: Pass | MPL-2.0 | |
| Wonder BlocksKhan/wonder-blocks | 163 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Shift UI Componentsshift-editor/shift | 348 | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Animated React Component LibrariesHainrixz/editor-pro-max | 264 | 1 repos | ~5.7k | Automated safety check: Pass | Custom licence | |
| Extract DesignManavarya09/design-extract | 4.2k | — | ~786 | Automated safety check: Notes | MIT | |
| Fast Typescript Checkinternet-development/www-sacred | 1.6k | — | ~4.3k | Automated safety check: Pass | MIT |
Khan/wonder-blocks
Implements user interfaces using the Wonder Blocks (WB) design system — Khan Academy's React component library.
shift-editor/shift
Guides design, implementation and review of Shift interface work: shared Base UI wrappers, Tailwind v4 theme tokens, Figma matching and accessible interaction states.
Hainrixz/editor-pro-max
Helps choose and drop in animated React components from Magic UI and React Bits for landing pages, marketing sites and dashboards, instead of hand-coding animations.
Manavarya09/design-extract
Extract the full design language from any website URL. An agent skill from Manavarya09/design-extract.
internet-development/www-sacred
Keep www-sacred's TypeScript fast to type-check and fast to run.
HorusGoul/eslint-plugin-react-render-types
Composition patterns for building React components with @renders type annotations from eslint-plugin-react-render-types.
Works with
Categories
Add a Figma Code Connect (.figma.tsx) file for a Cauldron React component. Connect Component To Figma is an agent skill from dequelabs/cauldron.tsx) file for a Cauldron React component.
Connect Component To Figma fits situations like: connecting a component to Figma; adding a code connect; working on Figma Code Connect tasks in the cauldron repo.
Run `npx skills add dequelabs/cauldron --skill connect-component-to-figma -a claude-code`. Or copy the skill folder (.claude/skills/connect-component-to-figma in dequelabs/cauldron) into .claude/skills/connect-component-to-figma in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dequelabs/cauldron --skill connect-component-to-figma -a codex`. Or copy the skill folder (.claude/skills/connect-component-to-figma in dequelabs/cauldron) into .agents/skills/connect-component-to-figma in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dequelabs/cauldron --skill connect-component-to-figma -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/connect-component-to-figma, .gemini/skills/connect-component-to-figma, .github/skills/connect-component-to-figma and .opencode/skills/connect-component-to-figma in your project.
Going by SKILL.md and its folder, Connect Component To Figma needs the command-line tools its instructions call (pnpm and npx). Our summary lists: Node.js.
SKILL.md names 1 domain. In commands or code: figma.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Connect Component To Figma is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Connect Component To Figma: Wonder Blocks (Khan/wonder-blocks, 163 stars), Shift UI Components (shift-editor/shift, 348 stars), Animated React Component Libraries (Hainrixz/editor-pro-max, 264 stars) and Extract Design (Manavarya09/design-extract, 4.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dequelabs (a GitHub organization) maintains it in dequelabs/cauldron, which has 129 GitHub stars. The repository was last updated on October 8, 2026.
Source: dequelabs/cauldron on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.