Design Studio
Design Studio は、Elftia に組み込まれた AI デザインワークベンチです。デザイン Skill、Design System、Craft スニペットという 3 つの抽象を組み合わせることで、AI が一貫したビジュアル言語に基づいて Web ページ、ポスター、デッキ、ソーシャルグラフィックなどの成果物を生成できるようにし、その場でのプレビュー、Lint 検証、エクスポートにも対応します。
入口: 左ナビゲーションの Design Studio(ルート /design-studio)。
3 つの要素が行うこと
| 抽象 | 役割 | ソース |
|---|---|---|
| Skill(design skill) | 「何を作るか」を、再利用可能な prompt + 入力 schema としてカプセル化します。例: 「プロダクトのランディングページ」、「イベントポスター」、「ポッドキャストカバー」。 | 70+ built-in + user-defined |
| Design System | 「どのように見えるか」を、token + コンポーネント参照としてカプセル化します。色、タイポグラフィ、余白、角丸、影、ボタンスタイルなど。 | 140+ built-in + user-defined |
| Craft(snippet library) | 組み合わせ可能な HTML / CSS / SVG フラグメントです。装飾要素、レイアウトの骨格、チャートテンプレートなど。 | 7 built-in categories + user-defined |
新しいプロジェクトを開始するときは、Mode + Skill + Design System の軸を選びます。AI はこのコンテキストと Craft ライブラリを組み合わせて出力を生成します。
4 つのモード
新しいプロジェクトを作成するときは、次のいずれかのモードを選びます。モードは成果物の種類と編集フローを決定します。
| モード | 成果物 | ハイライト |
|---|---|---|
| Prototype | 単一ページの HTML プロトタイプ | デフォルトモード。左にチャット、右にワークスペースを配置し、コメントと surgical edits に対応 |
| Deck | 複数ページのスライド | iframe + 次/前ページ + フルスクリーン + クイック概要 + PDF/PPTX エクスポート |
| Template | フォーム駆動の HTML | EJS サブセットのプレースホルダーテンプレート。フォームを自動生成し、入力に応じて右ペインのプレビューをリアルタイム更新 |
| Design System | DESIGN.md + サンプルページ | 2 ペイン表示(左: DESIGN.md ソース + token swatches / 右: サンプルダッシュボード)。<userData>/elftia/design-systems/<slug>/ に保存 |
メインインターフェイス
ホーム(/design-studio)
上部に 2 つのタブがあり、全幅レイアウトです(サイドバーなし)。
| タブ | 内容 |
|---|---|
| Examples | Skill ごとに事前作成済みのサンプルプロジェクトを閲覧し、ワンクリックで新しいセッションとしてフォークできます。 |
| Design Systems | built-in + custom Design Systems を閲覧し、テンプレートへの効果をプレビューし、デフォルトを切り替えます。 |
過去の Design プロジェクトは、通常のセッション一覧に kind='design' のセッションとして表示されます。チャットセッションと同じ基盤を共有し、分岐、再生成、添付ファイルに対応します。
新しいプロジェクトの作成
入口は、新規セッションページの DesignStudio persona です。
- 新規セッションページで、上部の persona ピッカーから DesignStudio を選択します
- Skill(左)+ Design System(右)を選択します
- 要件を説明して送信します
- AI が成果物を出力し、プレビューパネルが自動的に開きます
詳細は 新規セッションと Persona を参照してください。
成果物プレビュー
AI が成果物(通常は HTML ドキュメント)を生成すると、「ワークスペースを開く」アクションがトリガーされ、右ペインがプレビューパネルに切り替わります。
- Preview — HTML をライブレンダリングします。ビューポート幅の切り替え(mobile / tablet / desktop)に対応します
- Source — 成果物のソースコードを表示します(CodeMirror、コピー可能)
- Lint — 成果物が Design System の制約に適合しているかを自動検証します(範囲外の色、token set にないフォントなど)
成果物を生成した各メッセージにも、個別の Preview ボタンが表示されます。ワークスペースを現在のものに戻さなくても、過去のバージョンを再生できます。
エクスポート
プレビューパネル上部の Export ボタンでは、次を出力できます。
| 種類 | 出力 |
|---|---|
| HTML | 単一ファイル HTML(リソースをインライン化) |
| PNG / JPG | 指定した解像度でのビューポートスクリーンショット |
| 複数ページ PDF(ポスター、デッキに適しています) | |
| Deck | Reveal.js スタイルの複数ページスライドパッケージ |
built-in アセットのソース
design-skills/、design-systems/、craft/ の 3 つのディレクトリは、初回起動時にユーザーデータディレクトリ(<userData>/elftia/)へ materialize されます。Elftia のインストールディレクトリには書き込まれません。
つまり、次のようになります。
- ユーザーディレクトリ内のファイルを直接編集することで、built-in Skills / DS / Craft をカスタマイズできます
- 編集内容は Elftia のアップグレードで上書きされません(アップグレードは新しいファイルを追加するだけで、既存ファイルには触れません)
- built-in アセットは、上流のオープンソースプロジェクト
nexu-io/open-designに由来し、コミットスナップショットで固定されています
最新の上流バージョンへアップグレードするには(開発者向け操作)、開発者ドキュメントの Built-in Resource Sync Process を参照してください。
チャットシステムとの関係
Design プロジェクトは内部的には通常の chat_sessions 行(kind='design')なので、次に対応します。
- 同じ LLM 設定、プロバイダー切り替え、API Key プールに対応
- メッセージの分岐と再生成に対応(再生成ごとに新しい成果物バージョンになります)
- 添付ファイルのアップロードに対応(参照画像、ブランドアセット)
- 履歴サイドバーで通常のチャットセッションと混在して表示され、フォルダー / タグを追加できます
相違点:
- Skill + Design System にバインドされている必要があり、セッション作成時に決まります。セッション途中で変更することはできません
- エンジン層は Design Adapter を経由します。すべてのエンジンがこれに対応しているわけではありません。
claude-sdk/tinyelf/chatなどは Prompt Injection 戦略で直接使用できます。cli(Claude Code、Codex CLI)は FilePlaced 戦略を使用します。純粋なapiエンジンは未対応で、プレースホルダーを表示します
0.1.7+ 常時有効(Experimental Flag は不要)
0.1.7 以降、Design Studio はデフォルトで有効です。Settings → System → Experimental Features で切り替える必要はありません。🎨 Design Studio の入口はナビゲーションバーに直接表示されます。
残る要件は 1 つだけです。現在の LLM プロバイダーのエンジンが Design Adapter に対応している必要があります。
対応マトリクス:
| Engine Type | Supported | Injection Method |
|---|---|---|
claude-sdk | ✅ | ネイティブな skill ロード。surgical-edit コメントとローカル編集に対応 |
tinyelf | ✅ | Prompt Injection — SKILL.md + DESIGN.md をシステムプロンプトへインライン化 |
chat | ✅ | Prompt Injection(オーバーフロー防止のため、>16k tokens の場合は拒否) |
cli (Claude Code, Codex) | ✅ | FilePlaced — .cursorrules / .aider.conf.yml などへ書き込み |
api | ❌ | 未対応。"Adapter unavailable" プレースホルダーを表示 |
FAQ
| 問題 | 解決策 |
|---|---|
| Design Studio ページに "Adapter unavailable" と表示される | 現在の LLM プロバイダーが Design Adapter に対応していないエンジン(ほとんどの場合 api)を使用しています。Claude SDK / TinyElf / Chat / 対応する CLI バックエンドへ切り替えてください |
| Custom Design System が表示されない | <userData>/elftia/design-systems/<your-ds>/ に有効な schema を持つ manifest.json が含まれているか確認し、Design Systems タブで "Rescan" をクリックしてください |
| Elftia のアップグレード後に built-in Skills / DS が更新されない | これは仕様です。既存ファイルは上書きされません(ユーザー編集は SHA-1 で検出されます)。ファイルをリセットするには、ユーザーディレクトリ内の該当ファイルを削除してください。再起動時に再 materialize されます |
| 成果物プレビューの Lint が "color out of range" を報告する | 成果物がデザイントークンに含まれない色値を使用しています。成果物を token を使うように更新するか、Design System の token テーブルを拡張してください |
| Surgical-edit(comments / Send to chat)が利用できない | claude-sdk エンジンでのみ有効です。他のエンジンでは、Comments ドロワーは表示のみ可能で、チャットへ送信することはできません |
関連リンク
- Skill System — Design Studio の Skills は Agent システムの Skill 抽象を再利用します
- LLM Providers — Design Studio が使用するモデルを設定します
- Developer: Design Studio Architecture
- Developer: Built-in Resource Sync Process