diff --git a/AGENTS.md b/AGENTS.md index 34f050aa..1e16a280 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -56,8 +56,9 @@ npm run deploy:dev # git push + scp + systemctl restart(git push だけでは | ドキュメント | 内容 | |-------------|------| | `STATUS.md` | **今何をしている最中か(毎セッション参照・更新)** | +| `DESIGN.md` | **UI 生成時はここの値のみ使うこと。色・クラス名・アイコン・spacing の正** | | `docs/master-architecture.md` | インフラ構成・全アプリ一覧・URL | -| `docs/design-system.md` | カラートークン・デザインシステム | +| `docs/design-system.md` | カラートークン詳細(DESIGN.md の補足) | | `docs/new-app-guide.md` | 新規アプリ作成チェックリスト | | `docs/disaster-recovery.md` | PC 消失時の復元手順 | | `docs/server-refactor-plan.md` | server.js 分割設計・実施タイミング・手順 | diff --git a/CLAUDE.md b/CLAUDE.md index 34f050aa..1e16a280 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -56,8 +56,9 @@ npm run deploy:dev # git push + scp + systemctl restart(git push だけでは | ドキュメント | 内容 | |-------------|------| | `STATUS.md` | **今何をしている最中か(毎セッション参照・更新)** | +| `DESIGN.md` | **UI 生成時はここの値のみ使うこと。色・クラス名・アイコン・spacing の正** | | `docs/master-architecture.md` | インフラ構成・全アプリ一覧・URL | -| `docs/design-system.md` | カラートークン・デザインシステム | +| `docs/design-system.md` | カラートークン詳細(DESIGN.md の補足) | | `docs/new-app-guide.md` | 新規アプリ作成チェックリスト | | `docs/disaster-recovery.md` | PC 消失時の復元手順 | | `docs/server-refactor-plan.md` | server.js 分割設計・実施タイミング・手順 | diff --git a/DESIGN.md b/DESIGN.md new file mode 100644 index 00000000..c28c05bd --- /dev/null +++ b/DESIGN.md @@ -0,0 +1,292 @@ +# DESIGN.md — Posimai Design System + +> CSS 変数・コンポーネントクラスの「正」は `posimai-ui/public/v1/base.css`(Vercel: https://posimai-ui.vercel.app/v1/base.css)。 +> このファイルはその **意図・制約・使い分けのルール** を記述する。値を変更する場合は base.css を先に更新し、このファイルをそれに合わせること。 + +--- + +## 適用外アプリ(冒頭必読) + +以下のアプリには **このデザインシステムを適用しない**。専用テーマを持つ。 + +| アプリ | 理由 | +|--------|------| +| `ponshu-room` / `ponshu_room_lite` | 独自テーマ(和紙 x 墨 x 琥珀)。Posimai デザインシステム適用外 | +| `posimai-analytics` | BtoB ダッシュボード。TailwindCSS + React + ライトテーマで構築 | + +--- + +## 1. ビジュアルテーマと雰囲気 + +「静かな深夜のオフィス。teal はモニターの中に 1 か所だけ灯る光」 + +- **ベーストーン**: ディープブラック。派手さではなく「奥行き」を出す +- **アクセント**: teal は画面全体の 1 割以下。CTA・アクティブ状態・データポイントのみに使う +- **静けさ優先**: neutral が 9 割を占めることで、teal が際立つ +- **日本語 UI**: 文字は小さく・weight は控えめに。ダッシュボード密度に耐える読みやすさ + +--- + +## 2. カラーパレットと役割 + +### ダークテーマ(デフォルト) + +```css +--bg: #0D0D0D /* ページ背景 */ +--surface: #1A1A1A /* カード・パネル面 */ +--surface2: #252525 /* ネスト面・入力フィールド背景 */ +--border: #2D2D2D /* ボーダー・区切り線 */ +--text: #F3F4F6 /* 主テキスト */ +--text2: #9CA3AF /* 副テキスト・ラベル */ +--text3: #6B7280 /* 弱テキスト・プレースホルダー */ +--accent: #6EE7B7 /* Posimai Teal — CTA・アクティブ状態のみ */ +--accent-dim: rgba(110,231,183,0.1) /* アクティブ背景 */ +--accent-border: rgba(110,231,183,0.25) /* アクティブボーダー */ +``` + +### ライトテーマ(`[data-theme="light"]`) + +```css +--bg: #F9FAFB +--surface: #FFFFFF +--accent: #059669 /* ライト時はより深い green に自動切替 */ +``` + +### アプリ別アクセント(特例) + +特例上書きは `[data-app-id]` セレクタで行う。`:root` や `body` への上書きは禁止。 + +```css +/* OK: アプリ固有の上書きパターン */ +[data-app-id="posimai-atlas"] { --accent: #22D3EE; } /* Cyan */ +[data-app-id="posimai-dev"] { --accent: #A78BFA; } /* Violet */ +[data-app-id="posimai-journal"]{ --accent: #80CAEE; } /* Sky-Blue */ + +/* NG: ルートへの直書き上書き */ +:root { --accent: #22D3EE; } +``` + +| アプリ | ダーク accent | 理由 | +|--------|-------------|------| +| 全般(デフォルト) | `#6EE7B7` Teal | Posimai ブランドカラー | +| posimai-journal / posimai-site | `#80CAEE` Sky-Blue | 静かで知的な印象 | +| posimai-atlas | `#22D3EE` Cyan | サイバー・ターミナル感。背景も `#0C1221` navy | +| posimai-dev | `#A78BFA` Violet | コード・AI・ターミナルの融合 | + +--- + +## 3. タイポグラフィ + +**現行**: Geist(v1/base.css で定義済み) +**移行予定**: フォントを別途比較検討中。決定後に base.css v2 でオプトイン移行。一斉変更はしない。 + +### 基本ルール + +- **フォントサイズ**: `14px` ベース。`11px` / `12px` / `13px` / `14px` / `15px` の5段階 +- **フォントウェイト**: 300 / 400 / 500 / 600 の4段階(700 は原則使わない) +- **letter-spacing**: ヘッダー・ブランド名には `-0.01em`、ラベル大文字には `0.08em` +- **行間**: `1.6`(本文) +- **日本語**: Noto Sans JP を補助フォントとして追加予定(font-family フォールバックに含める) + +--- + +## 4. アイコン + +**使用ライブラリ**: Lucide `@0.344.0` 固定(バージョン変更禁止) + +### サイズ標準(3段階) + +| 用途 | サイズ | +|------|--------| +| テキスト横・バッジ内 | 16px | +| ボタン内・リストアイテム | 20px | +| 空状態・大きな CTA | 24px | + +### stroke-width ルール + +```html + + + + + +``` + +- fill アイコン(play / heart 等を塗りつぶす場合)は `fill:currentColor; stroke:none` + +--- + +## 5. コンポーネントスタイル + +### クラス名対応表 + +| 用途 | クラス名 | +|------|---------| +| カード | `.card` | +| モーダル本体 | `.modal` | +| モーダル背景 | `.modal-overlay` / `.overlay` | +| CTA ボタン(teal) | `.btn.btn-primary` | +| セカンダリボタン | `.btn.btn-ghost` | +| アイコンボタン | `.icon-btn` | +| ヘッダー | `.header` | +| サイドバー | `.sidebar` | +| ナビアイテム | `.nav-item`(アクティブ: `.nav-item.active`)| +| セクションラベル | `.section-label` | +| トースト通知 | `#toast`(`.show` で表示)| + +### カード + +```html + +
まだデータがありません
+