osad-sakana
← Works

Emerald Box — Web Sandbox

emerald-box

AIワークショップ用のHTML Sandbox

GitHub ↗アプリ ↗Web

🟢 Emerald Box

ブラウザだけで完結する HTML / CSS / JavaScript サンドボックス

VS Code と同等の操作感(Monaco Editor)を備え、AI が生成したコードをその場で安全に検証できる、完全クライアントサイドの Web プレイグラウンドです。

Astro Tailwind CSS Monaco Editor License: MIT

🌐 デモ: https://osad-sakana.github.io/emerald-box/


✨ 特長


🖼 画面構成

┌──────────────────────────────────────────────────────────────────────┐
│  🟢 Emerald Box  Web Sandbox        ▶ JS実行  ■ 強制終了  環境初期化  ⓘ │  ← ヘッダー
├──────────────────────────────────────────────────────────────────────┤
│  表示:  [HTML] [CSS] [JS] [プレビュー]                                  │  ← トグルバー
├───────────────┬───────────────┬───────────────┬──────────────────────┤
│     HTML      │      CSS      │  JavaScript   │      プレビュー        │
│  (Monaco)     ║  (Monaco)     ║  (Monaco)     ║   (iframe / 白背景)    │
│               ║               ║               ║                        │
└───────────────┴───────────────┴───────────────┴──────────────────────┘
                ↑ ガターをドラッグして各ペインの幅を変更

初期表示は HTML エディタ + プレビュー のみ。CSS / JS はトグルで開けます。


🚀 セットアップ

パッケージマネージャは pnpm を使用します。

# 依存関係のインストール
pnpm install

# 開発サーバー起動(http://localhost:4321)
pnpm dev

# 本番ビルド(静的ファイルを dist/ に出力)
pnpm build

# ビルド結果のプレビュー
pnpm preview

完全な静的サイト(SSG)なので、dist/ を任意の静的ホスティング(GitHub Pages / Cloudflare Pages / Netlify など)にそのまま配置できます。


🛠 技術スタック

領域 採用技術
フレームワーク Astro(SSG モード)
UI スタイリング Tailwind CSS 3(@astrojs/tailwind)
コードエディタ Monaco Editor(@monaco-editor/loader で CDN 読み込み)
状態管理 Web Storage API(localStorage)
フォント 0xProto(jsDelivr CDN)
実行隔離 サンドボックス化した動的 iframe

📁 プロジェクト構成

emerald-box/
├─ astro.config.mjs          # Astro 設定(SSG / Tailwind 統合)
├─ tailwind.config.mjs       # グリーンテーマ・0xProto フォント拡張
├─ src/
│  ├─ layouts/
│  │  └─ Layout.astro        # HTML 土台・@font-face 定義
│  ├─ components/
│  │  ├─ Header.astro        # アプリ名 + 操作ボタン群
│  │  └─ Credits.astro       # ライセンス表示モーダル
│  ├─ pages/
│  │  └─ index.astro         # 4ペイン UI + エディタ統合スクリプト
│  └─ lib/
│     ├─ storage.ts          # localStorage 保存/復元・デバウンス
│     ├─ preview.ts          # iframe 制御(実行・強制終了)
│     └─ licenses.ts         # 利用 OSS / フォントのライセンス情報
└─ plan.md                   # 開発計画書

🔒 セキュリティ


📜 ライセンス

本プロジェクトは MIT License で公開しています。

利用しているオープンソースソフトウェア・フォントのクレジットは、アプリ右上の 「ⓘ ライセンス」 から確認できます。

ライブラリ / フォント ライセンス
Astro / Tailwind CSS / Monaco Editor / @monaco-editor/loader MIT License
0xProto SIL Open Font License 1.1

Made with 💚 for AI workshops.