[BUG] Design canvas: artboard PLAY button does nothing, and links between artboards don't navigate
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
What's Wrong?
On a design canvas (an artifact made from the Design type, as the /design skill creates), the PLAY button on an artboard's name strip does nothing, even when the artboard has "is_interactive": true. Clicking it doesn't enter the click-through prototype mode, and nothing appears in the page's console.
A related symptom: when the canvas opens straight into focused mode ("launch": {"view": "focused", "file": "Main.dc.html"}), the artboard renders, but clicking an <a href="Other.dc.html"> link inside it doesn't move to the other artboard, as format.md says it should.
It isn't caused by the content. It reproduces with the minimal artboard below, which is the skeleton from the type's own SKILL.md plus one link.
What Should Happen?
PLAY should open the artboard as a click-through prototype, and a link to another .dc.html should move Play to that artboard.
Error Messages/Logs
None. Nothing is logged to the console when PLAY is clicked.
Steps to Reproduce
- Create a canvas from the Design artifact type (for example with
/design). - Publish two artboards, both marked
"is_interactive": trueinproject/canvas.json:
project/Main.dc.html:
``html``
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Minimal</title>
<script src="./support.js"></script>
</head>
<body>
<x-dc>
<helmet>
<style>
body{margin:0;font-family:system-ui,sans-serif;background:#faf9f5}
</style>
</helmet>
<div style="width: 880px; height: 560px; box-sizing: border-box; padding: 64px; display: flex; flex-direction: column; gap: 24px">
<h1 style="margin: 0; font-size: 48px">Minimal board</h1>
<a href="Second.dc.html" style="font-size: 20px">Go to second</a>
</div>
</x-dc>
<script type="text/x-dc" data-dc-script data-props='{"$preview":{"width":880,"height":560}}'>
class Component extends DCLogic {
renderVals() {
return {};
}
}
</script>
</body>
</html>
project/Second.dc.html can be any second artboard.
project/canvas.json:
``json``
{"v":3,"title":"Play test","launch":{"view":"canvas"},"pages":[],
"boards":{"Main.dc.html":{"x":0,"y":0,"w":880,"h":560,"is_interactive":true},
"Second.dc.html":{"x":960,"y":0,"w":880,"h":560,"is_interactive":true}},
"order":["Main.dc.html","Second.dc.html"],"notes":{},"designSystems":[]}
- Open the canvas in Chrome on macOS. Both artboards render.
- Click PLAY on either artboard's name strip. Nothing happens. Selecting the artboard first makes no difference.
- Change
launchto{"view":"focused","file":"Main.dc.html"}and reload. The artboard opens focused, but clicking "Go to second" does nothing.
This was seen on two separate canvases, one of which held only the minimal artboard above.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.282 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
- Browser: Chrome on macOS
- Design type release:
1790348005-58ea, artifact contract0.2.47(the publish result reports0.2.59as newest) - Everything else on the canvas works: the artboards render, and the Tweaks panel (enum
data-props) applies.