← Back to dashboard
claude-designdesignfreshReader view (for NotebookLM)

Claude Design Integration Guide

What is Claude Design?

The real model

A product surface with no API — and in Claude Code, an artifact wearing a canvas editor, so every artifact constraint is a design constraint.

There is no npm package, no PyPI package, and no REST endpoint: packages is [] and stays that way. The Claude Code path is /design (research preview, v2.1.233+, only documented in the Week 34 what's-new — it is not in the commands reference yet, unlike /design-sync and /design-login). Because it publishes through Artifacts you inherit the whole contract: strict CSP with Google Fonts as the single external host, no backend, single page, .html/.htm/.md only, a 16 MiB rendered ceiling, and a subscription-backed /login — API-key, gateway-token, and Bedrock/Vertex/Foundry sessions cannot publish at all. Two traps bite in practice: on Pro and Max a public link is the ONLY way to share, so a client mockup from a personal account is world-readable; and a new session that is not handed the artifact URL (or /artifacts) creates a second canvas instead of updating yours. For codeAmani the win is a MotionStack Dark token block in a repo's CLAUDE.md — Claude's built-in design skill reads your design system before choosing its own, so every artboard, artifact, and /dataviz chart from that repo lands on-brand with nobody prompting for it. Draft here, decide, then rebuild the survivor in Figma; and keep real MSISDNs, Daraja credentials, and customer rows off the canvas entirely, because publishing means it left the machine.

Six pieces of the Claude Design surface

One canvas, many artboards — drafted by Claude, refined by hand, exported or handed back to code.

Text
 ██████╗██╗      █████╗ ██╗   ██╗██████╗ ███████╗
██╔════╝██║     ██╔══██╗██║   ██║██╔══██╗██╔════╝
██║     ██║     ███████║██║   ██║██║  ██║█████╗
██║     ██║     ██╔══██║██║   ██║██║  ██║██╔══╝
╚██████╗███████╗██║  ██║╚██████╔╝██████╔╝███████╗
 ╚═════╝╚══════╝╚═╝  ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝

██████╗ ███████╗███████╗██╗ ██████╗ ███╗   ██╗
██╔══██╗██╔════╝██╔════╝██║██╔════╝ ████╗  ██║
██║  ██║█████╗  ███████╗██║██║  ███╗██╔██╗ ██║
██║  ██║██╔══╝  ╚════██║██║██║   ██║██║╚██╗██║
██████╔╝███████╗███████║██║╚██████╔╝██║ ╚████║
╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═════╝ ╚═╝  ╚═══╝

Claude Design Integration Guide

Focus: Getting a multi-artboard visual design out of Claude — UI mockups, screen flows, landing pages, posters and one-pagers — from claude.ai/design or the /design skill in Claude Code, then exporting it or handing it back to code.

Overview

Claude Design is Anthropic Labs' visual workspace: you describe what you want, Claude drafts it onto a canvas of artboards, and you refine it by talking, commenting, or editing directly on the canvas. It launched 17 April 2026 as a research preview on the Pro, Max, Team, and Enterprise plans, powered by Claude Opus 4.7, and lives at claude.ai/design and in the Claude Desktop sidebar.

The important structural fact: designs are generated as code, not pixels. Every artboard is a rendered HTML document. That is what makes the export and the handoff-to-Claude-Code path work at all — and it is also why the whole feature has no public API, no npm package, and no REST endpoint. You reach it through the product surfaces, not a client library.

There are two surfaces, and they are not the same product:

Claude Design (claude.ai/design)/design skill (Claude Code)
StatusResearch preview / beta (Anthropic Labs)Research preview, shipped in Claude Code v2.1.233+ (Week 34, Aug 17–21 2026)
WhereWeb + Claude Desktop sidebarClaude Code CLI + Claude Code Desktop
Built onIts own project/canvas workspaceArtifacts — the canvas is published as an artifact page
Projects & historyYes — projects, attached design systems, commentsPer-session; the artifact URL is the handle
Design systems/design-sync-uploaded or imported systemsWhatever it can infer + your CLAUDE.md design tokens
ExportZIP, PDF, PPTX, standalone HTML, partner sends, Handoff to Claude CodeView + export from the published canvas page
PlansPro, Max, Team, Enterprise (Enterprise: opt in)Pro, Max, Team, Enterprise (artifacts must be enabled)

Official Documentation


Setup

There is nothing to install for the web surface — sign in at claude.ai/design. For the /design skill you need a current Claude Code signed in with a claude.ai subscription (not an API key):

Bash
# Claude Code v2.1.233 or later is required for /design
npm install -g @anthropic-ai/claude-code
claude --version
Bash
# /design and artifacts both require a subscription-backed session
claude
> /login
> /design a few options for the rider check-in screen

Claude drafts the artboards, publishes the canvas, and prints a link. Open it, pick an artboard, and tell Claude which option to implement.

Environment variables

These are the artifact switches — /design inherits every one of them, because the canvas is published as an artifact.

Bash
# Turn artifacts (and therefore /design's canvas) off for your own sessions
CLAUDE_CODE_DISABLE_ARTIFACT=1

# Stop the browser opening automatically on publish
CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0

# Needed only if you disabled feature-flag fetching and still want comments
CLAUDE_CODE_ARTIFACT_COMMENTS=1
CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT=1

Equivalent settings-file form:

JSON
{
  "disableArtifact": true
}

Key patterns

1. Ask for options, not a design

The whole point of a multi-artboard canvas is comparison. A brief that names a count and an axis of variation gets you something to choose between; a brief that says "design the settings page" gets you one guess.

Text
/design four takes on the boda rider check-in screen — vary how much the map
dominates and whether the fare quote is a card or an inline row. One line under
each on the trade-off.

The same instinct works for an artifact without /design at all:

Text
Make an artifact with four distinctly different layouts for the settings panel.
Vary density and grouping, and lay them out as a grid with a one-line tradeoff
under each.

2. Give it your design system before it invents one

Claude applies a built-in design skill to every artifact it builds, and that skill looks for an existing design system in your project first. Record your tokens where Claude will find them — CLAUDE.md or a theme file — and they take precedence over Claude's own choices (your prompt beats both).

Markdown
## Design system

- Colors: primary #00d4ff, secondary #3ecf8e, tertiary #8b5cf6, surface #080b0f
- Typography: Outfit for display and body, JetBrains Mono for code and labels
- Spacing: 8px scale, 14px panel radius
- Panels: rgba(20,26,36,0.55) fill, 1px rgba(255,255,255,0.06) border, blur(14px)

That block is codeAmani's MotionStack Dark system (see anthropic/claude_dev_guide_reference.md) — drop it in a project's CLAUDE.md and every artboard and artifact that project produces comes out on-brand instead of generic-SaaS-purple.

Only Google Fonts loads from outside a published page. Any other typeface has to be inlined as a @font-face data URI, so pick a Google-hosted face (Outfit and JetBrains Mono both are) or accept the fallback stack.

3. /design-sync — push your real React components up

For teams that want the canvas building with actual components rather than lookalikes, the commands reference documents a pair:

Bash
claude
> /design-login              # authorize design-system access with your claude.ai account
> /design-sync codeAmani DS  # convert this repo's React design system and upload it

Caveats straight from the docs: a first-time sync verifies every component and can take a few hours on a large repo, and it is Anthropic-API only — on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, and Claude Platform on AWS the underlying tool cannot reach claude.ai, so the command is unavailable.

4. Refine on the canvas, not in the prompt

Three refinement channels, and they are not interchangeable:

  • Chat — structural change ("make it two columns", "add an empty state").
  • Inline comments — targeted feedback pinned to one element, the way you'd review a Figma frame.
  • Direct canvas editing — the pixel-level pass: select an element, edit text in place, nudge spacing and color.

Prompting for a 4px spacing change is a waste of a turn. Do structure by chat and polish by hand.

5. Export and handoff

From the Export control on a Claude Design project:

PathUse it for
Download as ZIPArchiving the whole project
Export as PDFStakeholder review, print, email attachment
Export as PPTXDecks that someone else has to keep editing
Export as standalone HTMLSelf-hosting an interactive prototype — one file, assets inlined
Send to partnersAdobe, Canva, Vercel, Wix and others
Handoff to Claude CodeBuilding it for real

The handoff bundle is the interesting one: it carries the component structure as a machine-readable spec plus the tokens actually used on the canvas, so Claude Code is reading a spec rather than inferring intent from a screenshot.

6. Updating a canvas later

A /design canvas is an artifact, so the artifact rules apply. From a new session, give Claude the URL or attach it with /artifacts — otherwise Claude creates a new canvas instead of updating yours.

Text
Update https://claude.ai/code/artifact/5fbea6f3-... — swap artboard 2's fare card
for the inline row treatment from artboard 4 and republish.

/artifacts lists everything you own or have been shared; o opens, c copies the link, Enter attaches it to the session. Ctrl+] reopens the most recent artifact from the terminal.


Where it fits next to Figma and Canva

codeAmani already runs figma/ and canva/ guides. They do not overlap as much as they look:

NeedReach for
First draft, exploration, "show me four ways this could go"Claude Design
Production design system, components, variants, tokens, real handoffFigma (figma/CLAUDE_CODE_INTEGRATION.md)
Mass-producing on-brand graphics from data (Brand Template + autofill)Canva Connect API (canva/CLAUDE_CODE_INTEGRATION.md)
Reading an existing design into codeFigma MCP get_design_context
A one-pager or poster nobody will maintainClaude Design, export PDF, done

The honest boundary: Claude Design collapses the blank-canvas problem and the "I need something to react to by Thursday" problem. It does not replace a maintained component library, and it has no version-controlled source of truth the way a Figma library does. Draft in Claude Design, decide, then rebuild the survivor in Figma or straight in code.


Constraints worth knowing before you promise something

Because the Claude Code canvas is an artifact, the artifact page constraints are the canvas constraints:

ConstraintEffect
External requestsCSP blocks scripts, styles, fonts, and images from other hosts, plus fetch/XHR/WebSocket. Google Fonts is the one exception; everything else is inlined or a data URI
No backendStatic page. It cannot store form input or authenticate viewers
Single pageRelative links do not resolve — in-page anchors only
File typesPublished file must be .html, .htm, or .md
Rendered size16 MiB max. Large embedded raster images are the usual cause of a failed publish
AuthSession must be signed in with /login. API-key, LLM-gateway, and cloud-provider-credential sessions cannot publish
Model providerAnthropic API only — not Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry
Org policyBlocked when CMEK, HIPAA, or Zero Data Retention are enabled for the org

And from the Claude Design admin guide: it is web-only today, there is no data-residency support, audit logs are not supported yet, and preview access is gated by short-lived signed tokens re-checked against sharing permissions on every open. Enterprise admins enable it under Organization settings > Capabilities > Anthropic Labs > Claude Design (default off), and a Claude Design Admin permission controls who may publish, default, or delete a design system.


codeAmani notes

  • Nothing sensitive goes on an artboard. A canvas is published to Anthropic-operated infrastructure and served from a sandboxed *.claudeusercontent.com origin. Treat every brief, screenshot, and pasted string as leaving the machine: no live keys, no Daraja shortcodes or passkeys, no Stripe secrets, no real customer rows. Mock the data — 254708374149 and 174379 are the Daraja sandbox values and are fine; a real MSISDN is not.
  • Know your sharing floor. On Pro and Max, a public link is the only way to share an artifact — there is no "just my org" option. A client mockup shared from a Pro account is world-readable by anyone with the URL. Org-scoped sharing and editor roles need Team or Enterprise, where public sharing is off until an Owner turns on External sharing.
  • Auth split. Application code calls Anthropic through the Vercel AI SDK / AI Gateway with an API key (see anthropic/). Claude Design and artifacts do not work from an API-key session — they need a subscription-backed /login. Two different credentials, two different purposes; don't try to unify them.
  • Design system in CLAUDE.md is the highest-leverage five minutes. MotionStack Dark tokens in a project's CLAUDE.md mean every artifact, /design canvas, and /dataviz chart from that repo comes out matching the docs UI without anyone prompting for it.
  • Keep the page light — this is a real constraint, not a nicety. Raster images as data URIs blow both the 16 MiB ceiling and the download budget. Prefer SVG and CSS for diagrams. This matters doubly for the Kenya-targeted builds (duka-order-bot, boda-dispatch, clinic-salon-booking, …): a shared canvas link opened on a 3G Android handset is a single self-contained page, so its weight is entirely under your control. A PDF export is usually the kinder artifact to WhatsApp to a shop owner than a link.
  • Where it earns its slot for us: flyer and one-pager artboards for the WhatsApp + M-Pesa product line, screen-flow mockups to agree on a rider or duka flow before anyone writes a route handler, and side-by-side option boards for internal decisions. Then Figma for anything that has to survive more than one round.
  • Preview means preview. /design is a research preview and is not yet in the commands reference; /design-sync and /design-login are. Pin nothing to this behavior in a runbook you can't edit quickly.

Troubleshooting

IssueFix
/design is not in the command menuNeeds Claude Code v2.1.233+; upgrade with npm install -g @anthropic-ai/claude-code. Unavailable commands are omitted from the menu entirely
Claude writes a local HTML file and no linkThe artifact tool is not enabled for the session — check plan, /login, model provider, and org policy against the availability table above
"Cannot publish" on a Bedrock / Vertex / Foundry sessionArtifacts and /design-sync are Anthropic-API only. Use a subscription-backed session
A new session created a second canvas instead of updating minePass the artifact URL in the prompt, or attach it first with /artifacts
Publish fails for sizeRendered page must be ≤ 16 MiB — the cause is nearly always embedded raster images; swap to SVG
Fonts render wrong for viewersOnly fonts.googleapis.com / fonts.gstatic.com load externally. Everything else must be an inlined @font-face data URI, and every face needs a fallback stack
Comments missing on a shared canvasComments require sharing within your organization (Team/Enterprise). A publicly shared artifact reports Comments aren't available while this Artifact is shared publicly.
/design-sync seems stuckA first sync verifies every component and can take hours on a large repo — expected, not hung
Enterprise users can't see Claude DesignDefault off on Enterprise. Owner enables it under Organization settings > Capabilities > Anthropic Labs; access changes take up to 15 minutes