<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Claude Design on ICE-ICE-BEAR-BLOG</title><link>https://ice-ice-bear.github.io/tags/claude-design/</link><description>Recent content in Claude Design on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 22 Apr 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/tags/claude-design/index.xml" rel="self" type="application/rss+xml"/><item><title>Claude Design, Tested on a Real Project — PopCon UI Refinement</title><link>https://ice-ice-bear.github.io/posts/2026-04-22-claude-design/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/posts/2026-04-22-claude-design/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post Claude Design, Tested on a Real Project — PopCon UI Refinement" /&gt;&lt;h2 id="overview"&gt;Overview
&lt;/h2&gt;&lt;p&gt;Anthropic launched &lt;strong&gt;Claude Design&lt;/strong&gt; at claude.ai/design — a conversational canvas that generates slides, websites, wireframes, and 3D graphics, and which also imports directly from a GitHub repository and exports to tools like PowerPoint, Canva, or code. I tried it on a live problem — refining the PopCon frontend — and this post is the first-pass assessment of what it is, what it integrates with, and where it falls short.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 Start["claude.ai/design"] --&gt; Install["Install 'Claude Design Import' GitHub App"]
 Install --&gt; OAuth["GitHub OAuth&lt;br/&gt;authorize account"]
 OAuth --&gt; Select["Select repo"]
 Select --&gt; Project["Project canvas&lt;br/&gt;(e.g. PopCon UI Refinement)"]
 Project --&gt; Files["Import HTML/CSS/TSX files"]
 Files --&gt; Convo["Conversational edits&lt;br/&gt;'make the CTA more prominent'"]
 Convo --&gt; Preview["Live preview.&lt;br/&gt;refresh URL"]
 Preview --&gt; Export["Export: code / Figma / PPT"]&lt;/pre&gt;&lt;h2 id="what-claude-design-actually-is"&gt;What Claude Design Actually Is
&lt;/h2&gt;&lt;p&gt;The short YouTube tutorial from the community put it this way: &amp;ldquo;you may not even need Canva, Figma, or Google Slides … you can literally talk to Claude design and tell it to build full slide decks, websites, wireframes, nearly anything.&amp;rdquo; The two differentiating moves in the pitch are &lt;strong&gt;brand-matching from a screenshot, code, or GitHub repo&lt;/strong&gt;, and &lt;strong&gt;direct export to existing design tools&lt;/strong&gt;. The first is familiar if you&amp;rsquo;ve seen Claude Artifacts evolve; the second is the real shift — it&amp;rsquo;s the part that turns Claude Design from a toy into a step in an existing design workflow.&lt;/p&gt;
&lt;p&gt;The URL structure reveals the architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;claude.ai/design&lt;/code&gt; — the landing/projects surface&lt;/li&gt;
&lt;li&gt;&lt;code&gt;claude.ai/design/p/{project-uuid}&lt;/code&gt; — a project&lt;/li&gt;
&lt;li&gt;&lt;code&gt;claude.ai/design/p/{project-uuid}?file={FileName}.html&lt;/code&gt; — a specific artifact inside a project&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{project-uuid}.claudeusercontent.com/v1/design/projects/{project-uuid}/serve/{File}.html?_r={timestamp}&lt;/code&gt; — live-preview subdomain per project&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The preview is served from a per-project subdomain on &lt;code&gt;claudeusercontent.com&lt;/code&gt;, which is the same pattern Anthropic uses for Artifacts. The &lt;code&gt;?_r=&lt;/code&gt; query param is a cache-busting refresh token.&lt;/p&gt;
&lt;h2 id="the-github-import-flow"&gt;The GitHub Import Flow
&lt;/h2&gt;&lt;p&gt;The part I wanted most — import a real repo — was also the longest to set up. The flow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click &amp;ldquo;Install Claude Design Import&amp;rdquo; from the Design home — this redirects to GitHub&amp;rsquo;s App install page (&lt;code&gt;github.com/apps/claude-design-import&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Choose the install target (user or org) and the repos to grant access to. The App is scoped: you pick which repos Claude Design can read.&lt;/li&gt;
&lt;li&gt;GitHub bounces to &lt;code&gt;claude.ai/design/v1/design/github/callback?code=...&amp;amp;state=...&lt;/code&gt; to complete OAuth.&lt;/li&gt;
&lt;li&gt;A second round-trip &lt;code&gt;...github/callback?code=...&amp;amp;installation_id=...&amp;amp;setup_action=install&lt;/code&gt; confirms the App installation.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;From there, creating a project backed by a repo — in my case, &lt;strong&gt;popcon-ui-refinement&lt;/strong&gt; — gives Claude direct access to the files. You can then open specific files into the canvas (I opened &lt;code&gt;PopCon UI Refinement.html&lt;/code&gt;) and iterate on them conversationally while the live preview updates.&lt;/p&gt;
&lt;p&gt;Two things worth flagging for anyone about to try this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The App scope is per-user.&lt;/strong&gt; If your primary GitHub account is different from the one you use for Claude, you&amp;rsquo;ll go through the OAuth two-step for each identity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The preview subdomain is dynamic.&lt;/strong&gt; Bookmarking a preview URL works for the life of a project but the &lt;code&gt;?_r&lt;/code&gt; refresh token expires — you&amp;rsquo;ll see &lt;code&gt;/v1/design/preview/refresh&lt;/code&gt; calls hit the backend regularly, which is the session keeping itself alive.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-its-good-at-and-where-it-isnt"&gt;What It&amp;rsquo;s Good At (and Where It Isn&amp;rsquo;t)
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Good:&lt;/strong&gt; quick visual iteration on a single file or artifact. The &amp;ldquo;brand match from a screenshot&amp;rdquo; claim is real — it pulls color and type from reference images reasonably well, and the generated layouts respect spacing conventions from the reference. For presentation decks and marketing pages it&amp;rsquo;s the fastest zero-to-draft tool I&amp;rsquo;ve used.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mixed:&lt;/strong&gt; importing a &lt;em&gt;real&lt;/em&gt; codebase. The GitHub App gives it access but it doesn&amp;rsquo;t &lt;em&gt;understand&lt;/em&gt; your frontend like Cursor or Claude Code does. It reads the files as design artifacts, not as a component graph. So &amp;ldquo;change this button in the actual React codebase&amp;rdquo; is still better served by Claude Code with the repo checked out locally.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not there yet:&lt;/strong&gt; round-trip editing. You can export code, but the export isn&amp;rsquo;t a PR against the source — it&amp;rsquo;s a new artifact. If the repo has a real component library (Button, Input, etc.), Claude Design doesn&amp;rsquo;t modify those components; it produces a design that &lt;em&gt;looks&lt;/em&gt; like it was built with them. That gap is exactly where a design tool becomes a development bottleneck instead of an accelerator.&lt;/p&gt;
&lt;h2 id="how-it-slots-into-a-real-workflow"&gt;How It Slots Into a Real Workflow
&lt;/h2&gt;&lt;p&gt;For PopCon&amp;rsquo;s case the value was narrow but real: &lt;strong&gt;generate a design-handoff HTML&lt;/strong&gt; that the engineering side (Claude Code, in this case) then translates into React components. That&amp;rsquo;s what the &lt;code&gt;docs/design_handoff/README.md&lt;/code&gt; in the popcon repo ends up doing — a Claude Design artifact becomes the single source of visual truth, and Claude Code reads it to do the structural refactor. The loop is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude Design: conversational design iteration, exports HTML.&lt;/li&gt;
&lt;li&gt;Claude Code: reads HTML, implements in TSX with the real component library.&lt;/li&gt;
&lt;li&gt;Browser preview + QA, back to Claude Design for the next round.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is a two-tool pattern, not one-tool. Claude Design is the ideation and handoff surface; Claude Code is the implementation surface.&lt;/p&gt;
&lt;h2 id="insights"&gt;Insights
&lt;/h2&gt;&lt;p&gt;Claude Design is genuinely useful for the &lt;strong&gt;pre-implementation loop&lt;/strong&gt; — turning a vague &amp;ldquo;make it cleaner&amp;rdquo; intent into a concrete HTML artifact you can hand to an engineer (or an agent). What it is not, yet, is a tool that edits your production component library in place. The product&amp;rsquo;s positioning against Figma and Canva is reasonable for greenfield decks and marketing; for product UI work on an existing codebase, the honest framing is &amp;ldquo;Claude Design produces a visual spec; Claude Code implements it.&amp;rdquo; That&amp;rsquo;s still a step change over &amp;ldquo;Figma mockup → engineer eyeballs it → writes TSX by hand,&amp;rdquo; because the HTML is runnable and the behavioral details (hover states, focus rings, spacing) are already concrete. The missing primitive is &lt;strong&gt;round-tripping through the real component library&lt;/strong&gt; — once that lands, the two-tool loop collapses to one.&lt;/p&gt;</description></item></channel></rss>