画面操作仕様をAIエージェントと一緒に考えるなら、FigmaよりもAstro+HTML+CSSが最高なのでは説
まえおき
最近、思い立ったスマホアプリのUI設計とか機能設計とかをClaude Codeでいろいろ試している。
ちょっと前までは、FigmaとかSketchとかで画面イメージを作ってからそれをAIエージェントになんとか読ませて実装する、という流れでやっていたわけだけど、なんかそろそろpencil.devみたいなイケイケツールも出てきたくらいだからAIエージェントと壁打ちしながらUI/UX設計をやりたいものだ。
FigmaのMCPを使うとできるのか?とかも考えていたが、なんかどうもしっくり来なかった。
AIに図を書かせるならHTMLが意外といいらしい
少し前に仕事でドキュメントをClaudeとChatGPTに書かせていたときの話。
Markdownベースで提案書を書いていく中で、
- 業務フローの概要説明
- メリットデメリットをいらすとやの絵も効果的に使って挿絵
- GitHubフローの概念説明
みたいな図をラクして描けないかなぁと考えていたことがある。
GeminiのNano Bananaもだいぶ良くなってきたとはいえまだ「いかにもGeminiで作ったな」って感じの図なので微妙。SVGを生成させるか、Mermaidか、MCPで何かできるのか、 などいろいろ調べていたときに、たまたまこの記事を見つけた↓
そうか、iframeでHTML+CSSで図を描かせたらいいのか!と。確かにこの方法は速くて割と的確な図を描いてくれる。
言うなれば、 AIエージェントの思考回路をアウトプットするのに、HTML+CSSはとても素直な表現手段たりえる ということだ。
デザインシステムを食わせると、いい感じのドキュメント、いい感じの図になる
横道をさらにそれるが、Markdown形式でドキュメントを書かせていること自体にも疑問を持つようになった。AIエージェントが素直に表現できるのがHTMLなのであれば、それよりも表現能力の低いMarkdownをアウトプットしてPDFにする意味なくね?と。
そして、企画の提案書をAstro+HTMLで作らせてみると、意外とこれがいい感じだった。ただ、図のトーンや文書のトーンは、何も指示しないとBootstrapぽくなってみたり、謎の立体的な図がいっぱいになったりするので、流石にここはどうにかしたい。
◯◯のサイトみたいに、って指示を最初は使ってたけど、それはすなわちデザインシステムを指示してるわけなので、
こういうサイトから取ってきて、デザインシステムのコンポーネントのサイトURLをペタっとプロンプトに貼って、AIエージェントに指示すれば、だいぶ見た目がいい感じになる。
スマホアプリの画面操作仕様だって同じ
今回あらためて、
- HTML+CSSでUIを書かせて, iframeでそれをそのまま埋め込む
- 画面イメージの図はMaterial 3 webのコンポーネントで、ドキュメンテーション自体はAtlassianデザインシステムで、Astro製のドキュメンテーションサイトを作るように指示
ということを画面操作仕様でやってみると、これが思っていたよりだいぶ良かった。
みんなFigmaとかで画面遷移とか設計書とか作ろうとするけど、実はAIエージェントにHTML+CSSで適当なデザインシステム食わせてAstroでドキュメント作らせると結構いいのができるんよね。最近こればっかり使っててFigmaほぼ使ってない pic.twitter.com/3Wvhi5fhAA
— Yusuke Iwaki (@yi01imagination) March 28, 2026
画面設計ドキュメントを、Figmaじゃなくて、AstroでHTML+CSSで作らせるといいなーとおもうのは、こういうのもほんのわずかな指示で組み込んでくれるところ。
— Yusuke Iwaki (@yi01imagination) March 28, 2026
Figmaでも頑張ればできるんだけど、HTML+CSS ならより少ない努力でAIエージェントにこういうのを作らせられるんよ。 pic.twitter.com/Zz5BcRwcM3
何がよかったって、
画面操作を検討するときに、実際にUIがそのまま動くのだ。フロントエンド開発のStorybookみたいなもんではあるのだけど、コンポーネント単位ではなく画面操作単位でそういうことができる。
今までのやり方だと
- Sketchで画面を作る
- AIエージェント向けにドキュメントや長大なプロンプトを書く
- AIエージェントに実装してもらう
だったので、画面を動かして試せるのは実装が終わった後になるので、実装指示が悪かったりすると全然UI議論に行き着かないというのが大きな問題としてあった。画面操作仕様をHTMLで書かせる今回のやり方なら、いわゆる前工程で画面のUIの壁打ちができるので、とても効率が良い。雰囲気だけで言うと、ProttってサービスがAIネイティブになった感じ。
元の画面で「ちがーう!」ってなっても、淡々とプロンプトに打つとHTML+CSSをチャカチャカと書き換えて、2~3分で理想的なUIになってしまうのだ。
— Yusuke Iwaki (@yi01imagination) March 28, 2026
昔Prottとかで頑張ってたのは何だったんだって感じ pic.twitter.com/I5PrlXpCnc
UIの壁打ちのみならず、チューニングもできる
ちらっと書いた通り、このHTML+CSSで画面仕様を出すというのは、単なる利便性と言うよりは、 AIが考えていることを正確に効率よくアウトプット している側面が大きい。なので人間が考えることをより支援して、より正確にフィードバックが行える可能性を示唆している。
今回作ろうとしているアプリは、ドキュメントスキャナーのアプリなので、台形補正だったり画像の補正アルゴリズムあたりが大事だ。
いろんなパターンの画像でうまくできているかを、1こ1こ開くのはとても大変なので、こんな感じでサイトでそれぞれのstepの成果物を展示するようにしておくと、アプリの複雑な実装を入れる前に、macOSのOpenCVベースでどういう処理をするとどうなる、というのをいろんな画像パターンで見て、計画をかなり綿密にレビューすることができる。
元の画面でも十分それっぽくはあるんだけど、長押し選択になるのはちょっと気に入らんということで直させてみる。 pic.twitter.com/rBZkjBeJaS
— Yusuke Iwaki (@yi01imagination) March 28, 2026
ようするに、画面操作仕様をHTMLにしたことで起きた変化とは..
もともとなんでFigma MCPが微妙だなーと思ってたかというと、このあたりのAIが考えていることがより明確になるなどの実感が皆無だったことだろう。
MarkdownやConfluenceでドキュメントを書いているとき、 Claude Codeにいろいろ考えさせているはずなのに、 その思考の一部しかドキュメントにアウトプットされていない というのが意外と気づくのに時間がかかっていたわけだ。
もちろんMarkdownにも良いところはあって、「人間が読みやすい」というのは最大の利点だ。ただ、やはり百聞は一見にしかずで、テキストで全部を伝えるのはAIでも難しい。壁打ちをするにおいては、AIエージェントが自身の考えを正確に早くアウトプットできる&人間が視覚的に簡単に理解できる方向に寄せたほうが、設計品質は上げることができるだろう。
繰り返しになるが、 AIが考えていることをほぼそのままdumpできる 手段こそ、HTML+CSSなわけだ。
このHTML+CSS / Astroという構成は、Markdownと同様にコンテンツはテキストベースなので、GitHubで同一のリポジトリで管理することは容易だ。仕様とUIが分離しないよう、ドキュメントと実装を行き来することも簡単にできるし、ドキュメンテーションサイトはVercelで簡単にデプロイできるので、他の人にこんなものを作ろうとしていると説明する材料としてもとても有用だ。
ところでこの文章はAIが書いてるの?
ChatGPTにXの投稿を要約させて書いてみました。でも全然だめだったので、結局 YusukeIwaki が手で書いていますw
AIに個人エンジニアブログを代行で書かせるのはまだ少し時代が追いついてないかなという感じする。