Webサイトのデザインを瞬時に抽出する「designlang」
「このサイトの余白感、すごく綺麗なんだけど、どうやって組んでるんだろう?」
フロントエンドに関わるエンジニアやデザイナーであれば、一度は優れたWebサイトを開き、ブラウザのデベロッパーツールを立ち上げた経験があるはずだ。要素をインスペクトしてComputedタブを睨みつけ、フォントファミリーをメモし、カラーコードを抽出し、見えないグリッドの法則性を推測する。この泥臭い「デザインのリバースエンジニアリング」は、Web開発における一種の通過儀礼のようなものだった。
しかし、そんな職人芸のような手作業を一掃してしまうツールが現れた。
ただのカラーパレット抽出ではない
色やフォントを抽出するだけのブラウザ拡張機能なら、昔からいくらでも存在した。しかし、今回取り上げる「designlang」は、その解像度と出力の方向性が根本的に異なっている。
使い方は拍子抜けするほど簡単だ。手元のターミナルで以下のコマンドを叩くだけでいい。
npx designlang https://stripe.com --full
背後でヘッドレスブラウザが立ち上がり、対象サイトをクローリングする。モバイルやタブレットを含む4つのブレイクポイントを検証し、ホバーやフォーカス時のインタラクション状態まで記録する。さらにはWCAG 2.1に基づくアクセシビリティのスコアまで計測してしまうのだ。
特筆すべきは、「レイアウトシステム」の抽出にある。カラムパターンの使われ方、フレックスコンテナの配置、ギャップの数値など、サイトの「骨格」となる構造データを丸裸にする。リポジトリのReadmeに記された「他のツールはペイント(塗料)を提供するが、我々はアーキテクチャを提供する」という開発者の言葉も大いに頷ける。
AIエージェントに「デザインの文脈」を教え込む
designlangが単なる便利スクリプトの域を超え、今まさに注目を集めている最大の理由は、その出力フォーマットの多様性と、AI(LLM)を見据えた現代的なアーキテクチャにある。
| 出力ファイル例 | 用途・エコシステム |
|---|---|
*-tailwind.config.js |
Tailwind CSSの即戦力テーマ設定 |
*-shadcn-theme.css |
shadcn/uiのグローバル変数定義 |
*-figma-variables.json |
FigmaのVariables(ダークモード対応)インポート用 |
*-design-language.md |
AIにデザインシステムを理解させるためのマークダウン |
とりわけ強烈なのが、AI向けに最適化されたマークダウンファイルと、MCP(Model Context Protocol)サーバーとしての機能だ。
これまでのコーディング支援AIは、「良い感じのUIを作って」と指示しても、一般的で無難なデザインしか生成できなかった。しかし、designlangが抽出した *-design-language.md をCursorやWindsurf、Claude Codeなどのエージェントに読み込ませれば話は変わる。
「この抽出されたデザインシステムと余白の法則に従って、新しいダッシュボードのUIを組んで」というプロンプトが、具体的なCSSやコンポーネント設計の裏付けを持った指示として機能するようになるのだ。さらにv7から搭載されたMCPを利用すれば、AIはローカルに保存されたコンポーネントデータやヘルスデータにシームレスにアクセスしながらコードを書くことができる。
優れたデザインは、一貫したシステムの上に成り立つ。そのシステムをコマンド一つで手元に引き寄せ、AIのコンテキストとして流し込み、新たなUIを紡ぎ出す。フロントエンド開発における「リファレンス」の使い方は、デザインの「見た目」を真似る時代から、「文脈」をコードとして取り込む全く新しいフェーズに入ったと言えるだろう。
参考リポジトリ: Manavarya09/design-extract
Photo by Nick Karvounis on Unsplash