@squadbase/vantage-template 0.1.1 → 0.2.0-dev1.a9938fc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -9
- package/base-template/.squadbase/skills/vantage-add-feature/SKILL.md +14 -7
- package/base-template/.squadbase/skills/vantage-app/SKILL.md +4 -0
- package/base-template/.squadbase/skills/vantage-design/SKILL.md +62 -52
- package/base-template/.squadbase/skills/vantage-design/references/extract.md +26 -27
- package/base-template/.squadbase/skills/vantage-design/references/format.md +12 -172
- package/base-template/.squadbase/skills/vantage-design/references/presets.md +50 -110
- package/base-template/.squadbase/skills/vantage-pitfalls/SKILL.md +50 -1
- package/base-template/.squadbase/skills/vantage-slide/SKILL.md +299 -0
- package/base-template/.squadbase/skills/vantage-slide/references/morph.md +102 -0
- package/base-template/.squadbase/skills/vantage-slide/references/steps.md +57 -0
- package/base-template/.squadbase/skills/vantage-slide/references/tokens.md +87 -0
- package/base-template/.squadbase/skills/vantage-slide/references/transitions.md +196 -0
- package/base-template/AGENTS.md +224 -17
- package/base-template/agents/api.md +36 -0
- package/base-template/agents/csv.md +2 -1
- package/base-template/agents/doc.md +52 -3
- package/base-template/agents/page.md +91 -10
- package/base-template/agents/slide.md +90 -4
- package/base-template/agents/xlsx.md +2 -1
- package/base-template/bun.lock +917 -0
- package/base-template/bunfig.toml +5 -0
- package/base-template/package.json +6 -6
- package/base-template/squadbase.yml +1 -0
- package/base-template/src/_layout.tsx +16 -7
- package/base-template/src/components/build-recovery.tsx +37 -1
- package/base-template/src/components/user-card.tsx +11 -11
- package/base-template/src/index.tsx +8 -3
- package/base-template/src/styles.css +108 -12
- package/dist/index.js +971 -6
- package/package.json +20 -17
- package/ui-templates/CLAUDE.md +2 -0
- package/ui-templates/kpi-chart-simple/pages/index.tsx +48 -48
- package/ui-templates/kpi-chart-simple-ja/pages/index.tsx +48 -48
- package/base-template/DESIGN.md +0 -108
- package/base-template/package-lock.json +0 -5841
package/README.md
CHANGED
|
@@ -14,25 +14,25 @@ npx @squadbase/vantage-template <command> [options]
|
|
|
14
14
|
|
|
15
15
|
#### `init`
|
|
16
16
|
|
|
17
|
-
Initialize a new Vantage project in the current directory. Copies the base template — `src/index.tsx`, `src/_layout.tsx`, `src/_404.tsx`, `src/_error.tsx`, `src/styles.css`, `server/api/`, `tsconfig.json`, `squadbase.yml`,
|
|
17
|
+
Initialize a new Vantage project in the current directory. Copies the base template — `src/index.tsx`, `src/_layout.tsx`, `src/_404.tsx`, `src/_error.tsx`, `src/styles.css`, `server/api/`, `tsconfig.json`, `squadbase.yml`, plus the agent guidance in `AGENTS.md` (and `agents/`, when the framework ships per-type knowledge files) and `.squadbase/skills/` — and installs dependencies.
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
npx @squadbase/vantage-template init
|
|
21
21
|
npx @squadbase/vantage-template init --force # Overwrite existing files
|
|
22
|
-
npx @squadbase/vantage-template init --skip-install # Skip npm
|
|
22
|
+
npx @squadbase/vantage-template init --skip-install # Skip dependency install (bun, or npm if bun is absent)
|
|
23
23
|
npx @squadbase/vantage-template init --chart sunset # Apply a chart preset during init
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
After initialization:
|
|
26
|
+
After initialization (the template ships `bun.lock` and declares `package_manager: bun` in `squadbase.yml`; `npm run` works too once dependencies are installed):
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
bun run dev # vantage dev --no-overlay — dev server + API on :5173
|
|
30
|
+
bun run build # vantage build → dist/
|
|
31
|
+
bun run check # vantage check — static diagnostics
|
|
32
|
+
bun run routes # vantage routes — page/API route map
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
There is no `vite.config.ts`, no `main.tsx`, and no route table: adding a file under `src/` adds a route (`src/index.tsx` → `/`, `src/sales/[id].tsx` → `/sales/:id`), and `src/_layout.tsx` builds the nav from `useRoutes()`.
|
|
35
|
+
There is no `vite.config.ts`, no `main.tsx`, and no route table: adding a file under `src/` adds a route (`src/index.tsx` → `/`, `src/sales/[id].tsx` → `/sales/:id`), and `src/_layout.tsx` builds the nav from `useRoutes()`. The layout passes Vantage's `useNavigate()` to the header page selector so selecting a page updates the route without reloading the app.
|
|
36
36
|
|
|
37
37
|
Since `@squadbase/vantage` v0.3.0, `src/` is the page-scan root and does not appear in URLs. `server/` and `public/` stay at the project root — `src/server/` is never scanned.
|
|
38
38
|
|
|
@@ -52,11 +52,21 @@ npx @squadbase/vantage-template add funnel --force # Overwrite existing fil
|
|
|
52
52
|
|
|
53
53
|
`add` replaces the entry page, so it warns before overwriting it, and it lists leftover files from a previously applied template (it never deletes them — you may have edited them). A project with pages on *both* sides — `src/` present but `index.tsx` / `_layout.tsx` / `styles.css` still at the root — is refused with the list of files to move into `src/` first: Vantage ignores the root ones, so `vantage check` already fails there with `SRC_DIR_SPLIT`.
|
|
54
54
|
|
|
55
|
+
#### `theme <theme-id>`
|
|
56
|
+
|
|
57
|
+
Apply a SquadKit theme (`neutral`, `ocean`, `forest`, `sunset`, `violet`, `rose`, `mono`; the old `default` / `calm` / `vivid` / `mono` are accepted too). Rewrites a marked range of the project's `styles.css` with the theme's colors, radius and font for both light and dark mode, leaving everything else intact. Re-running with the same theme changes nothing. Overrides you write *after* the range win over the theme.
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npx @squadbase/vantage-template theme ocean
|
|
61
|
+
npx @squadbase/vantage-template theme forest --dry-run
|
|
62
|
+
npx @squadbase/vantage-template theme sunset --reset-chart # drop a `chart` preset so the theme's chart colors apply
|
|
63
|
+
```
|
|
64
|
+
|
|
55
65
|
#### `chart <preset-name>`
|
|
56
66
|
|
|
57
67
|
Switch the chart color preset. Rewrites a marked block of `--chart-1`–`--chart-5` inside the project's `styles.css` (under `src/` when that layout is in use), leaving any other overrides in that file intact. Re-running replaces the block rather than stacking.
|
|
58
68
|
|
|
59
|
-
A new project starts on the `
|
|
69
|
+
A new project starts on the `neutral` theme and has no chart range; this command (or `init --chart`) adds one, which takes precedence over the theme's chart colors. `theme <id> --reset-chart` removes it again.
|
|
60
70
|
|
|
61
71
|
```bash
|
|
62
72
|
npx @squadbase/vantage-template chart ocean
|
|
@@ -16,7 +16,7 @@ CLI は雛形を出すだけで、規約の遵守はこちらの責任。**追
|
|
|
16
16
|
```bash
|
|
17
17
|
vantage add page <name> # ルートページ(.tsx)
|
|
18
18
|
vantage add api <name> # server/api/**.ts の API モジュール
|
|
19
|
-
vantage add ui <name> #
|
|
19
|
+
vantage add ui <name> # /ui・/components の部品ソースを components/ui/ にコピー(src/ があればその中)
|
|
20
20
|
vantage add block <name> # registry からブロックを components/blocks/ にコピー(同上)
|
|
21
21
|
```
|
|
22
22
|
|
|
@@ -112,6 +112,11 @@ if (q.isError) return <ErrorState message={q.error.message} /> // HttpError の
|
|
|
112
112
|
const rows = useApiQuery<Row[]>("/api/customers", { search: { segment } })
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
+
絞り込み(期間・セグメント)を持つページでは、この `ErrorState` の早期 return をデータを描く
|
|
116
|
+
子コンポーネントの中に置く。ページの先頭に置くと、失敗したときに絞り込みの欄ごと消えて条件を
|
|
117
|
+
直せなくなる。期間は `DateRangePicker` で選ばせる(→ `agents/page.md` の「絞り込みの欄は、
|
|
118
|
+
読み込み中も失敗したときも出し続ける」)。
|
|
119
|
+
|
|
115
120
|
書き込みは `useApiMutation(path, { method: "POST" })` — 変数がそのまま JSON ボディになる。
|
|
116
121
|
|
|
117
122
|
## UI コンポーネント / ブロックを追加する
|
|
@@ -121,15 +126,17 @@ vantage add ui data-table # → components/ui/data-table.tsx(編集可能
|
|
|
121
126
|
vantage add block sales-overview # → components/blocks/sales-overview.tsx
|
|
122
127
|
```
|
|
123
128
|
|
|
124
|
-
-
|
|
125
|
-
|
|
126
|
-
未知の名前を渡すと利用可能な名前一覧を出して失敗する。
|
|
127
|
-
- コピーが要らない大半のプリミティブは `@squadbase/vantage/ui` から、複合パーツは
|
|
128
|
-
`@squadbase/vantage/components` から**そのまま import**するのが基本(コピー不要)。
|
|
129
|
+
- **基本はコピーせず import する。** プリミティブは `@squadbase/vantage/ui` から、複合パーツと
|
|
130
|
+
チャートは `@squadbase/vantage/components` から**そのまま import**する。
|
|
129
131
|
```tsx
|
|
130
132
|
import { Button, Loading, ErrorState } from "@squadbase/vantage/ui"
|
|
131
|
-
import { DashboardCardPreset, DataTablePreset,
|
|
133
|
+
import { DashboardCardPreset, DataTablePreset, LineChart } from "@squadbase/vantage/components"
|
|
132
134
|
```
|
|
135
|
+
- `add ui` は**改造したいときだけ**使う。`/ui` と `/components` の部品はすべて kebab-case 名で
|
|
136
|
+
コピーできる(`add ui bar-chart`・`add ui combobox`)。未知の名前を渡すと利用可能な名前一覧を
|
|
137
|
+
出して失敗する。
|
|
138
|
+
- グラフは型付きチャート(`LineChart`・`BarChart` など)から選ぶ。選び方は `agents/page.md` の
|
|
139
|
+
「グラフはまず型付きチャートで描く」。
|
|
133
140
|
- **props は `vantage docs <name>` で確認してから書く**(`vantage docs button`・
|
|
134
141
|
`vantage docs parts/data-table`。名前が分からなければ `vantage search <やりたいこと>` で
|
|
135
142
|
探してから `vantage docs` に渡す)。
|
|
@@ -75,6 +75,10 @@ vantage add skill # 配置済みの skill(このファイルの仲間)と、そ
|
|
|
75
75
|
- 共通の枠(ヘッダ・サイドバー)は `_layout.tsx`、Not Found と例外は `_404.tsx` / `_error.tsx`。
|
|
76
76
|
- 一覧 → 詳細を作るなら、**動的パラメータの「3 つの綴り」を先に決めてから**両方のファイルを
|
|
77
77
|
書く。後から変えると静かにマッチしなくなる。
|
|
78
|
+
- **ページになるのは tsx だけではない。** `.csv` / `.xlsx` を `src/` に置けば表として読めるページに
|
|
79
|
+
なり、`<name>.slide.tsx` はスライドデッキになる(どちらもナビに同格で並ぶ)。ダッシュボード・
|
|
80
|
+
スライド・データを 1 つのアプリに並べたいときは、まずこの 2 つで足りないか考える —— 表を出すために
|
|
81
|
+
ページを書く必要は無い。スライドの書き方は `vantage-slide` スキル。
|
|
78
82
|
|
|
79
83
|
## Step 3 — データを繋ぐ
|
|
80
84
|
|
|
@@ -1,71 +1,76 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vantage-design
|
|
3
|
-
description: Vantage(@squadbase/vantage)
|
|
3
|
+
description: Vantage(@squadbase/vantage)アプリのテーマ(色・チャートの色・書体・角丸)を、`styles.css` とテーマコマンドで作る / 更新する手順。配色・ブランドカラー・テーマ・チャートの色・フォント・角丸・トーンを変えたいとき、既存サイトやロゴ・資料に合わせたいとき、プロジェクト作成時の初期デザイン(テーマ neutral / ocean / forest / sunset / violet / rose / mono)を決めるときに使う。「色を変えて」「ブランドに合わせて」「このサイトに合わせて」「落ち着いた感じに」「フォントを変えて」「テーマを作って」、"change the colors", "match our brand", "match this website", "theme", "color palette", "font", "design system" で起動。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# テーマと styles.css を更新する
|
|
7
7
|
|
|
8
|
-
Vantage
|
|
8
|
+
Vantage アプリの色・書体・角丸の値と色の割り当ては、SquadKit のテーマだけが持つ。
|
|
9
9
|
|
|
10
|
-
|
|
|
11
|
-
| --- | --- |
|
|
12
|
-
| `
|
|
13
|
-
| `styles.css`(ページと同じ側。通常 `src/styles.css`)
|
|
10
|
+
| 手段 | 何を決めるか |
|
|
11
|
+
| --- | --- |
|
|
12
|
+
| ThemeDialog / `theme <id>` / `chart <preset>`(CLI) | 出発点のテーマとチャートの配色 |
|
|
13
|
+
| `styles.css`(ページと同じ側。通常 `src/styles.css`)の `/* squadkit-theme:end */` より後ろ | ブランド色・書体など、テーマに無い値の上書き |
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
デザイン変更の依頼(「もっと落ち着いた色に」など)は、**テーマの切り替えかスタイルシートの上書きで完結させる。**
|
|
16
|
+
`DESIGN.md` へは記録しない。今のテーマ名は `styles.css` の `/* theme: <name> */` マーカーから読む。
|
|
17
|
+
ページ単位の `className` 修正で済ませない。
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
見た目の規則(意味トークンの使い分け・カードで包む・KPI → チャート → 表など)は `AGENTS.md` の
|
|
20
|
+
「見た目の規約」節が正本。ここでは手順だけを扱い、規則は重複させない。
|
|
21
|
+
任意の `DESIGN.md`(ユーザー固有の意図を書くファイル)は、ユーザーが望んだときだけ扱う(`references/format.md`)。
|
|
19
22
|
|
|
20
23
|
## リファレンス
|
|
21
24
|
|
|
22
25
|
| ファイル | 読む場面 |
|
|
23
26
|
| --- | --- |
|
|
24
|
-
| `references/format.md` | `DESIGN.md`
|
|
25
|
-
| `references/extract.md` | URL・画像・pptx/pdf
|
|
26
|
-
| `references/presets.md` |
|
|
27
|
+
| `references/format.md` | ユーザーが任意の `DESIGN.md` を望んだとき(位置づけと優先順位) |
|
|
28
|
+
| `references/extract.md` | URL・画像・pptx/pdf・言葉から色と書体を取り出すとき |
|
|
29
|
+
| `references/presets.md` | テーマ(`neutral` / `ocean` / `forest` / `sunset` / `violet` / `rose` / `mono`)の選び方と `theme` コマンド。旧プリセット id の読み替え |
|
|
27
30
|
| `scripts/contrast.mjs` | 文字色と背景色のコントラスト比を確かめるとき |
|
|
28
31
|
|
|
29
32
|
## 手順
|
|
30
33
|
|
|
31
34
|
### 1. 入力を集める
|
|
32
35
|
|
|
33
|
-
- 何に合わせるのか(URL
|
|
36
|
+
- 何に合わせるのか(URL・ロゴ画像・資料・言葉)を確認し、
|
|
34
37
|
`references/extract.md` の該当する節の手順で色・書体・トーンを取り出す。
|
|
35
|
-
- 既存の `
|
|
38
|
+
- 既存の `styles.css` を読み、マーカーから今のテーマ名を確かめる。今回触らない上書きは残す。
|
|
39
|
+
- プロジェクトルートに `DESIGN.md` があれば読む(ユーザー所有。書き換えない)。色の割り当てはテーマが優先。
|
|
36
40
|
- スライド(`*.slide.tsx`)があるかを `ls` / `vantage routes` で確認しておく。
|
|
37
41
|
|
|
38
42
|
### 2. 提案して確認を取る
|
|
39
43
|
|
|
40
44
|
書き込む前に、次の 2 つをユーザーに見せて確認を取る。
|
|
41
45
|
|
|
42
|
-
- **役割 → トークンの対応表**(
|
|
46
|
+
- **役割 → トークンの対応表**(主色・背景の段階・文字・チャート 5 色・書体。良い/悪い/注意/情報/中立はテーマの意味トークンに任せる)。
|
|
43
47
|
各行に「何に合わせてその色にしたか」を 1 語添える。
|
|
44
|
-
- **トーンの説明**(2〜3
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
### 3. styles.css
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
`/*
|
|
55
|
-
|
|
56
|
-
- チャートの 5
|
|
57
|
-
(`blue` / `ocean` / `sunset` / `forest` / `berry` / `mono
|
|
58
|
-
|
|
59
|
-
|
|
48
|
+
- **トーンの説明**(2〜3 行)。
|
|
49
|
+
|
|
50
|
+
テーマで足りる場合はテーマ id(`references/presets.md`)で提案してよい。旧プリセット id(`default` / `calm` / `vivid` / `mono`)で頼まれたら新 id に読み替える。
|
|
51
|
+
|
|
52
|
+
### 3. テーマを当て、styles.css を書く
|
|
53
|
+
|
|
54
|
+
- **テーマ範囲・チャート範囲のマーカーの中は手で編集しない。** 色・角丸・書体の出発点は 7 テーマ
|
|
55
|
+
(`neutral` / `ocean` / `forest` / `sunset` / `violet` / `rose` / `mono`)から選び、コマンドで当てる:
|
|
56
|
+
`npx @squadbase/vantage-template theme <id>`(プロジェクトルートで実行。`--dry-run` で書き込まずに
|
|
57
|
+
結果を見られる)。``/* squadkit-theme — regenerated by `theme`; edits here are lost */`` 〜
|
|
58
|
+
`/* squadkit-theme:end */` の間はコマンドが丸ごと書き換える生成物で、手で直した値は次の適用で消える。
|
|
59
|
+
旧プリセット id(`default` → `neutral` / `calm` → `ocean` / `vivid` → `sunset` / `mono`)もコマンドが受ける。
|
|
60
|
+
- チャートの 5 色はテーマが持つ。テーマと別の配色にしたいときだけ
|
|
61
|
+
`npx @squadbase/vantage-template chart <preset>`(`blue` / `ocean` / `sunset` / `forest` / `berry` / `mono`)を使う。
|
|
62
|
+
``/* vantage-template:chart-preset … */`` 〜 `/* vantage-template:chart-preset:end */` の間が置き換わり、
|
|
63
|
+
テーマのチャート色より優先される。テーマに揃え直すには `theme <id> --reset-chart`。
|
|
64
|
+
- プリセットに無いチャート色(ブランド色を `--chart-1` にしたいなど)は、**マーカーブロックの後ろ**に
|
|
60
65
|
別の `:root { --chart-1: …; }` と `.dark, [data-theme="dark"] { --chart-1: …; }` を足して上書きする
|
|
61
|
-
(後に書いた方が勝つ)
|
|
62
|
-
- `--primary` / `--primary-foreground` / `--radius`
|
|
63
|
-
(
|
|
64
|
-
|
|
65
|
-
(`var(--color-sky-600)`)で書く。
|
|
66
|
-
-
|
|
67
|
-
(
|
|
68
|
-
|
|
66
|
+
(後に書いた方が勝つ)。上書きするのは変えたい番号だけにし、残りはテーマに任せる。
|
|
67
|
+
- `--primary` / `--primary-foreground` / `--radius` などテーマに無い値・ブランド色の上書きも、
|
|
68
|
+
**マーカーブロックの後ろ**(ファイル末尾)に書く。マーカーより前に書いた値はテーマに負ける。
|
|
69
|
+
色は `:root` と `.dark, [data-theme="dark"]` の**両方**に書く。片方だけだとダークモードでテーマの値に
|
|
70
|
+
戻る。値は `oklch()` か Tailwind のパレット変数(`var(--color-sky-600)`)で書く。
|
|
71
|
+
- 書体は既定でシステムフォント。**ページの書体は `--font-sans`**(`styles.css` の `body` が
|
|
72
|
+
`font-family: var(--font-sans)` で参照する。テーマ範囲も `--font-sans` を持つので、書体を変えるには
|
|
73
|
+
マーカーブロックの後ろで `:root { --font-sans: …; }` を上書きする)。スライドの書体は `:root` の
|
|
69
74
|
`--slide-font-display`(見出し)/ `--slide-font-body`(本文)で決まる。Web フォントを使うときの
|
|
70
75
|
レシピ:
|
|
71
76
|
1. Google Fonts の CSS
|
|
@@ -73,24 +78,29 @@ Vantage アプリの見た目は 2 つのファイルで決まる。
|
|
|
73
78
|
から使う subset の `@font-face` ブロックだけを `styles.css` の先頭に貼る。
|
|
74
79
|
**`@import url(...)` は使わない** ― `styles.css` はテーマの後ろに連結されるので
|
|
75
80
|
「@import rules must precede all rules」の警告とともにビルドで捨てられる。
|
|
76
|
-
2.
|
|
81
|
+
2. マーカーブロックの後ろに次を書く(フォールバックは `theme.css` の既定と同じ並び):
|
|
77
82
|
|
|
78
83
|
```css
|
|
79
|
-
body {
|
|
80
|
-
font-family: "<Font>", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
81
|
-
}
|
|
82
84
|
:root {
|
|
83
|
-
--
|
|
85
|
+
--font-sans: "<Font>", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, ui-sans-serif, system-ui, sans-serif;
|
|
86
|
+
--slide-font-display: "<Font>", -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, system-ui, sans-serif;
|
|
84
87
|
--slide-font-body: var(--slide-font-display);
|
|
85
88
|
}
|
|
86
89
|
```
|
|
87
90
|
|
|
91
|
+
欧文の Web フォントだけを先頭に足すときも、日本語の system face(`"Hiragino Sans"` 〜 `Meiryo`)は
|
|
92
|
+
必ず残す。消すとカナ・漢字がブラウザ任せのフォールバックになり、細く表示される。
|
|
93
|
+
`ui-sans-serif` / `system-ui` は日本語の face より**後ろ**に置く。日本語の Windows ではどちらも
|
|
94
|
+
Yu Gothic UI(UI のリサイズを避けるために字幅を詰めた書体)に解決され、カナがここで決まって
|
|
95
|
+
半角風に見える。macOS の Chrome は `-apple-system` を解釈しないので `BlinkMacSystemFont` も並べる。
|
|
96
|
+
既存アプリの `styles.css` の `body` に `font-family` が直書きされている(`var(--font-sans)` ではない)、
|
|
97
|
+
または `ui-sans-serif, system-ui, …` が先頭にある、`"Yu Gothic UI"` が残っているときは、
|
|
98
|
+
`body { font-family: var(--font-sans); }` に直し、書体は `--font-sans` に上の並びで書く。
|
|
88
99
|
日本語の Web フォントは face が 100 を超えるので原則使わない(pptx 書き出しも壊れる。
|
|
89
100
|
`vantage-slide` の `references/tokens.md` 参照)。
|
|
90
101
|
|
|
91
|
-
`
|
|
92
|
-
|
|
93
|
-
`public/brand/logo.svg` のように `public/` 配下のパスで「ブランド素材」行に書く。
|
|
102
|
+
長い表(ダッシュボード): カードに `max-h-*` + `overflow-y-auto` の縦スクロール領域を作らず、
|
|
103
|
+
ページング付きの `DataTablePreset`(`enablePagination`)にする(ホイールや End キーがページに届かなくなるため)。
|
|
94
104
|
|
|
95
105
|
### 4. コントラストを確かめる
|
|
96
106
|
|
|
@@ -121,11 +131,11 @@ node <このスキルの場所>/scripts/contrast.mjs '<文字色>' '<背景色>'
|
|
|
121
131
|
npx vantage check
|
|
122
132
|
```
|
|
123
133
|
|
|
124
|
-
`HARDCODED_COLOR`(ページ内の色コード)
|
|
134
|
+
`HARDCODED_COLOR`(ページ内の色コード)などが出たらその場で直す。
|
|
125
135
|
|
|
126
136
|
### 7. 完了を報告する
|
|
127
137
|
|
|
128
|
-
報告には、更新したファイル(`
|
|
138
|
+
報告には、更新したファイル(`styles.css` など)と当てたテーマ名に加えて次を**必ず**入れる。
|
|
129
139
|
|
|
130
140
|
- プレビューページのパスと URL(`src/design-preview.tsx` → `/design-preview`)。
|
|
131
141
|
- 「ホームなど既存の画面は一部の色しか使っていないので、変更が見えないことがある。配色はプレビュー
|
|
@@ -133,5 +143,5 @@ npx vantage check
|
|
|
133
143
|
|
|
134
144
|
## 会話中の指示との関係
|
|
135
145
|
|
|
136
|
-
- 会話中の個別の指示(「このグラフだけ赤で」)
|
|
137
|
-
- 同じ指示が 2 回以上出たら、`
|
|
146
|
+
- 会話中の個別の指示(「このグラフだけ赤で」)はテーマより優先する。そのページだけ直せばよい。
|
|
147
|
+
- 同じ指示が 2 回以上出たら、`styles.css` の上書きへ反映することを提案する(この手順の 2 から)。
|
|
@@ -7,12 +7,13 @@
|
|
|
7
7
|
3. **書体**(見出しと本文の `font-family`。システムフォントで足りるか)
|
|
8
8
|
4. **トーン**(2〜3 語: 「落ち着いた」「明るい」「堅い」…)
|
|
9
9
|
|
|
10
|
-
チャートの 5
|
|
11
|
-
`npx @squadbase/vantage-template
|
|
12
|
-
配慮が済んでいる)
|
|
10
|
+
チャートの 5 色は、主色から直接作るより**主色に最も近いテーマ**を選び、
|
|
11
|
+
`npx @squadbase/vantage-template theme <id>` で適用する方が安全(5 色の明度差・色覚多様性への
|
|
12
|
+
配慮が済んでいる)。テーマと別のチャート配色が要るときは `chart <preset>`。`styles.css` の
|
|
13
|
+
`squadkit-theme` / `vantage-template:chart-preset` のマーカーブロックの中は
|
|
13
14
|
**手で編集しない**(次の適用で消える)。主色を `--chart-1` に入れたいときだけ、マーカーブロックの
|
|
14
15
|
**後ろ**に `:root` と `.dark, [data-theme="dark"]` の `--chart-1` 上書きを足し、残り 4 色は
|
|
15
|
-
プリセットに任せる。`--primary` や `--radius`
|
|
16
|
+
プリセットに任せる。`--primary` や `--radius` はマーカーブロックの後ろに書く。
|
|
16
17
|
|
|
17
18
|
## URL(既存サイトに合わせる)
|
|
18
19
|
|
|
@@ -36,14 +37,14 @@ grep -oE 'font-family:[^;]+' /tmp/site.css | sort | uniq -c | sort -rn | head
|
|
|
36
37
|
3. **ボタン・リンクの色**: `a {` `.btn` `button` `[class*=primary]` のセレクタの `color` /
|
|
37
38
|
`background-color`。出現回数の多い有彩色が主色。
|
|
38
39
|
4. **背景**: `body` / `html` の `background`。暗ければ「暗い基調」。
|
|
39
|
-
5. **書体**: `body` の `font-family
|
|
40
|
+
5. **書体**: `body` の `font-family`(書き込み先は `--font-sans`)。Google Fonts の `<link>` があればその family 名。
|
|
40
41
|
|
|
41
42
|
注意:
|
|
42
43
|
|
|
43
44
|
- SPA で HTML がほぼ空のときは、`<script>` より先に CSS の `<link>` を探す。それも無ければ
|
|
44
45
|
ユーザーにスクリーンショットかブランドカラーを聞く(推測で埋めない)。
|
|
45
46
|
- 取得できない(認証・ボット対策)ときは、その旨を伝えてスクリーンショットをもらう。
|
|
46
|
-
- ロゴを使うなら `public/brand/`
|
|
47
|
+
- ロゴを使うなら `public/brand/` に保存する。
|
|
47
48
|
|
|
48
49
|
## 画像・ロゴ
|
|
49
50
|
|
|
@@ -66,27 +67,26 @@ grep -oE 'font-family:[^;]+' /tmp/site.css | sort | uniq -c | sort -rn | head
|
|
|
66
67
|
|
|
67
68
|
## 言葉だけ(「落ち着いた感じに」)
|
|
68
69
|
|
|
69
|
-
形容詞を `presets.md` の
|
|
70
|
+
形容詞を `presets.md` の 7 テーマに寄せ、そのうえで主色だけを調整する。
|
|
70
71
|
|
|
71
72
|
| 言われたこと | 出発点 |
|
|
72
73
|
| --- | --- |
|
|
73
|
-
| 落ち着いた・信頼感・堅い・経営向け・青系 | `
|
|
74
|
-
| 明るい・元気・勢い・暖かい・営業向け | `
|
|
74
|
+
| 落ち着いた・信頼感・堅い・経営向け・青系 | `ocean` |
|
|
75
|
+
| 明るい・元気・勢い・暖かい・営業向け | `sunset` |
|
|
75
76
|
| シンプル・モノクロ・印刷する・資料に貼る | `mono` |
|
|
76
|
-
| 特に無し・標準・おまかせ | `
|
|
77
|
-
| 自然・環境・緑 | `
|
|
78
|
-
|
|
|
77
|
+
| 特に無し・標準・おまかせ | `neutral` |
|
|
78
|
+
| 自然・環境・緑 | `forest` |
|
|
79
|
+
| 華やか・ポップ・紫 | `violet` |
|
|
80
|
+
| 華やか・ポップ・ピンク | `rose` |
|
|
79
81
|
|
|
80
|
-
当てはまらない言葉は、2 案(例: `
|
|
82
|
+
当てはまらない言葉は、2 案(例: `ocean` と `neutral`)を並べて選んでもらう。
|
|
81
83
|
|
|
82
84
|
## 外部の DESIGN.md(Stitch などが書いたもの)
|
|
83
85
|
|
|
84
|
-
外部の DESIGN.md
|
|
85
|
-
Vantage
|
|
86
|
-
書き直す**。
|
|
86
|
+
外部の DESIGN.md が値(hex・px・フォント名)を持っているときは、値だけを拾って**テーマ側**へ移す。
|
|
87
|
+
Vantage に `DESIGN.md` は作らない。
|
|
87
88
|
|
|
88
|
-
1. 値を拾う: primary / secondary / surface / background / on-* / error
|
|
89
|
-
フォント、角丸。
|
|
89
|
+
1. 値を拾う: primary / secondary / surface / background / on-* / error、フォント、角丸。
|
|
90
90
|
2. 対応づける:
|
|
91
91
|
|
|
92
92
|
| 外部の名前 | Vantage のトークン |
|
|
@@ -96,15 +96,14 @@ Vantage の `DESIGN.md` は値を持たないので、**値を `styles.css` へ
|
|
|
96
96
|
| background / surface / surface-container | `--background` / `--card` / `--muted` |
|
|
97
97
|
| on-background / on-surface / on-surface-variant | `--foreground` / `--card-foreground` / `--muted-foreground` |
|
|
98
98
|
| outline | `--border` |
|
|
99
|
-
| error | `--destructive` |
|
|
100
|
-
| success / warning |
|
|
99
|
+
| error | `--destructive`(意味トークンの negative) |
|
|
100
|
+
| success / warning | テーマの意味トークン(positive / warning)に任せる。チャートの色には割り当てない |
|
|
101
101
|
| radius / corner | `--radius` |
|
|
102
|
-
| display / headline font | `--slide-font-display`(+ ページの見出しなら
|
|
103
|
-
| body font |
|
|
102
|
+
| display / headline font | `--slide-font-display`(+ ページの見出しなら `--font-sans`) |
|
|
103
|
+
| body font | `--font-sans`(ページ本文)と `--slide-font-body` |
|
|
104
104
|
|
|
105
105
|
3. `styles.css` のマーカーブロックの外に、`:root` と `.dark, [data-theme="dark"]` の両方で書く
|
|
106
|
-
(チャート色・書体の書き方は SKILL.md の手順 3)
|
|
107
|
-
|
|
108
|
-
4. `DESIGN.md`
|
|
109
|
-
|
|
110
|
-
5. 元のファイルは消さずに残すか(例: `docs/design-source.md`)、ユーザーに確認して削除する。
|
|
106
|
+
(チャート色・書体の書き方は SKILL.md の手順 3)。外部にダークの値が無ければ、ライトの色相を保って
|
|
107
|
+
明度だけ反転した値を作り、コントラストを確かめる。
|
|
108
|
+
4. 外部のトーン・Do/Don't・コンポーネントのルールは、ユーザーが望んだときだけ任意の `DESIGN.md`
|
|
109
|
+
(`format.md`)に要約して残す。値は書かない。
|
|
@@ -1,172 +1,12 @@
|
|
|
1
|
-
# DESIGN.md
|
|
2
|
-
|
|
3
|
-
`DESIGN.md`
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- **150 行以内。** 超えると `vantage check` が `DESIGN_MD_TOO_LONG` を警告する。エージェントが
|
|
14
|
-
毎回全文を読むファイルなので、網羅より判断に効くルールを優先する。
|
|
15
|
-
- **YAML frontmatter は付けない。** 先頭は下の「冒頭のコメント」から始める。
|
|
16
|
-
- **会話中の指示が優先。** `DESIGN.md` は既定値であって、個別の依頼を拒む根拠にしない。
|
|
17
|
-
- ロゴ・画像は `public/` 配下のパスで参照する(`public/brand/logo.svg`)。画像を埋め込まない。
|
|
18
|
-
|
|
19
|
-
## 節の順番と見出し
|
|
20
|
-
|
|
21
|
-
見出しは日本語 + 英語の括弧書き(外部の DESIGN.md — Stitch など — の節と対応づけやすくするため)。
|
|
22
|
-
この順番を崩さない。無い情報の節は消さずに「特になし」と書く。
|
|
23
|
-
|
|
24
|
-
| # | 見出し | 書くこと |
|
|
25
|
-
| --- | --- | --- |
|
|
26
|
-
| 0 | 冒頭のコメント(`<!-- … -->`) | 何のファイルか / 値は styles.css / 会話の指示が優先 / 「このサイトに合わせて」で更新できること / upgrade が触らないこと |
|
|
27
|
-
| 1 | `## 全体のトーン (Overview)` | 2〜4 行のトーン。最後に「ブランド素材:」行(任意。`public/` のパス) |
|
|
28
|
-
| 2 | `## 色 (Colors)` | 役割 → トークンの表。行は **主色 / 強調 / 良い / 悪い / 注意 / 背景の段階 / 境界 / 文字**。専用トークンが無い役割は「専用トークンなし」+ 代替 |
|
|
29
|
-
| 3 | `## チャート (Charts)` | 系列の順番(`--chart-1..5` とその色味)、1 系列だけ強調するときの色、良い / 悪いの色、禁止の組み合わせ、プリセット名 |
|
|
30
|
-
| 4 | `## 書体 (Typography)` | 見出し / 本文 / 数字 / スライドの書体(`--slide-font-display` / `--slide-font-body`)と、サイズの段階(Tailwind クラス・`--slide-size-*`) |
|
|
31
|
-
| 5 | `## レイアウトと密度 (Layout)` | カード・余白(`gap-*`)・`--radius`・並べ方・密度 |
|
|
32
|
-
| 6 | `## 成果物の種類ごとの規則 (Per-artifact)` | `### ダッシュボード` と `### スライド` の小節(他の種類があれば小節を足す) |
|
|
33
|
-
| 7 | `## Do / Don't` | 3 つずつ程度 |
|
|
34
|
-
|
|
35
|
-
外部の DESIGN.md の対応: Overview / Colors / Typography / Layout(Spacing・Elevation 含む)/
|
|
36
|
-
Components → 「成果物の種類ごとの規則」/ Do's and Don'ts。値は `styles.css` へ移す
|
|
37
|
-
(→ `extract.md` の「外部の DESIGN.md」)。
|
|
38
|
-
|
|
39
|
-
## 使えるトークン
|
|
40
|
-
|
|
41
|
-
| 系統 | トークン |
|
|
42
|
-
| --- | --- |
|
|
43
|
-
| 面と文字 | `--background` `--foreground` `--card` `--card-foreground` `--popover` `--popover-foreground` |
|
|
44
|
-
| 主色など | `--primary` `--primary-foreground` `--secondary` `--secondary-foreground` `--accent` `--accent-foreground` `--muted` `--muted-foreground` `--destructive` `--destructive-foreground` |
|
|
45
|
-
| 境界 | `--border` `--input` `--ring` |
|
|
46
|
-
| チャート | `--chart-1` 〜 `--chart-5` |
|
|
47
|
-
| 形 | `--radius` |
|
|
48
|
-
| サイドバー | `--sidebar` `--sidebar-foreground` `--sidebar-primary` … |
|
|
49
|
-
| スライド | `--slide-bg` `--slide-fg` `--slide-accent` `--slide-muted` `--slide-radius` `--slide-font-display` `--slide-font-body` `--slide-size-hero` `--slide-size-body` |
|
|
50
|
-
|
|
51
|
-
- `--muted` `--accent` `--secondary` `--border` は背景・境界用。文字色の役割に割り当てない。
|
|
52
|
-
- 良い / 注意の専用トークンは無い。`--chart-*` の中から割り当てるか、「専用トークンなし」と書く。
|
|
53
|
-
- ページ本文の書体はトークンではなく `body` の `font-family`(`styles.css` の `body` セレクタで上書きする。
|
|
54
|
-
`:root` / `html` に書いても `theme.css` の `body` 指定に負けて効かない)。
|
|
55
|
-
- `--slide-bg` などは既定で `--background` などの別名。`.dark` に書き直す必要は無い。
|
|
56
|
-
|
|
57
|
-
## 雛形(中立の既定テーマ)
|
|
58
|
-
|
|
59
|
-
ベーステンプレート(`packages/vantage-template/template/DESIGN.md`)と**同じ内容**。どちらかを
|
|
60
|
-
直したらもう片方も合わせること。既定テーマ(無彩色の `--primary`、チャートは `blue` プリセット)を
|
|
61
|
-
そのまま説明しているので、新規に作るときはこれを写して、変えた役割の行だけを書き換える。
|
|
62
|
-
|
|
63
|
-
````markdown
|
|
64
|
-
<!--
|
|
65
|
-
DESIGN.md — このアプリの「見た目の意図」を書くファイルです。
|
|
66
|
-
|
|
67
|
-
- 実際の色・角丸・書体の値は src/styles.css にあります。ここにはトークン名(--primary など)と
|
|
68
|
-
使い分けのルールだけを書き、色コードは書きません。
|
|
69
|
-
- エージェントはページ・スライド・コンポーネントを書く前にこのファイルを読みます。
|
|
70
|
-
会話の中での指示はこのファイルより優先されます。
|
|
71
|
-
- 「このサイトに合わせて」「色を落ち着いた感じに」と頼めば、このファイルと styles.css を
|
|
72
|
-
まとめて更新します。
|
|
73
|
-
- このファイルはあなたのものです。`vantage upgrade` が書き換えることはありません。
|
|
74
|
-
-->
|
|
75
|
-
|
|
76
|
-
# デザイン
|
|
77
|
-
|
|
78
|
-
## 全体のトーン (Overview)
|
|
79
|
-
|
|
80
|
-
- 落ち着いた無彩色のベースに、データだけが色を持つ業務ダッシュボード。
|
|
81
|
-
- 装飾より読みやすさを優先する。影・グラデーション・アニメーションは最小限。
|
|
82
|
-
- 数字が主役。1 画面で伝えたいことを 1 つに絞り、補足は小さく添える。
|
|
83
|
-
- ブランド素材: なし(ロゴを使う場合は `public/brand/logo.svg` のように `public/` 配下のパスで書く)
|
|
84
|
-
|
|
85
|
-
## 色 (Colors)
|
|
86
|
-
|
|
87
|
-
色は必ずトークン(Tailwind のセマンティッククラス)で指定する。素のパレット(`bg-blue-600` など)や
|
|
88
|
-
色コードを直接書かない。
|
|
89
|
-
|
|
90
|
-
| 役割 | トークン | 使う場所 |
|
|
91
|
-
| --- | --- | --- |
|
|
92
|
-
| 主色 (Primary) | `--primary` / `--primary-foreground` | 主要ボタン、選択中の状態。既定は無彩色 |
|
|
93
|
-
| 強調 (Accent) | `--chart-1` | 1 つだけ目立たせたい数値・系列・リンク的な強調 |
|
|
94
|
-
| 良い (Positive) | `--chart-2` | 前期比のプラスなど、良い変化の小さな印 |
|
|
95
|
-
| 悪い (Negative) | `--destructive` | 前期比のマイナス、エラー、削除操作 |
|
|
96
|
-
| 注意 (Warning) | 専用トークンなし | 文言とアイコンで示し、色は `--muted-foreground` |
|
|
97
|
-
| 背景の段階 | `--background` → `--card` → `--muted` | ページ → カード → カード内の区画・ホバー |
|
|
98
|
-
| 境界 | `--border` / `--input` / `--ring` | 罫線、入力欄、フォーカス |
|
|
99
|
-
| 文字 | `--foreground` / `--muted-foreground` | 本文 / 補足・ラベル・単位 |
|
|
100
|
-
|
|
101
|
-
- `--muted`・`--accent`・`--secondary`・`--border` は背景・境界用。文字色に使わない。
|
|
102
|
-
- 増減(▲▼・前期比)は向きで色を分ける: 増加・プラスは `--chart-2`(または `--primary`)、
|
|
103
|
-
減少・マイナスは `--destructive`。下向きの矢印やマイナスを `--primary` で塗らない。
|
|
104
|
-
- ライトとダークの両方がトークンで決まるので `dark:` を並べない。
|
|
105
|
-
|
|
106
|
-
## チャート (Charts)
|
|
107
|
-
|
|
108
|
-
- 系列の順番は `--chart-1` → `--chart-2` → `--chart-3` → `--chart-4` → `--chart-5`
|
|
109
|
-
(現在はプリセット `blue`: 青 → ティール → フクシア → バイオレット → グレー)。
|
|
110
|
-
- 1 系列だけを目立たせるときは、その系列を `--chart-1`、残りをすべて `--chart-5`(グレー)にする。
|
|
111
|
-
- 良い / 悪いを色で塗り分けるときは `--chart-2` / `--destructive`。色だけに頼らず ▲▼ や符号も添える。
|
|
112
|
-
- 系列は 5 つまで。それ以上はグループ化するか「その他」にまとめる。
|
|
113
|
-
- 禁止: 同じチャートで `--destructive` を普通の系列色として使う(悪い値に見える)。
|
|
114
|
-
- 禁止: 隣り合う系列に `--chart-3` と `--chart-4` を並べて細い線で描く(見分けにくい)。
|
|
115
|
-
- 配色を丸ごと変えるときは `npx @squadbase/vantage-template chart <preset>` を使う
|
|
116
|
-
(`blue` / `ocean` / `sunset` / `forest` / `berry` / `mono`)。
|
|
117
|
-
|
|
118
|
-
## 書体 (Typography)
|
|
119
|
-
|
|
120
|
-
| 用途 | 指定 | 備考 |
|
|
121
|
-
| --- | --- | --- |
|
|
122
|
-
| 見出し・本文 | システムフォント(`body` の `font-family`) | Web フォントは使わない |
|
|
123
|
-
| 数字 | 同上 + `tabular-nums` | 桁がそろうように必ず付ける |
|
|
124
|
-
| スライドの見出し | `--slide-font-display` | 既定は日本語を含むシステムフォント |
|
|
125
|
-
| スライドの本文 | `--slide-font-body` | 既定は見出しと同じ |
|
|
126
|
-
|
|
127
|
-
サイズの段階(ダッシュボード):
|
|
128
|
-
|
|
129
|
-
- ページ見出し: `text-2xl font-bold`
|
|
130
|
-
- カード見出し・ラベル: `text-sm font-medium text-muted-foreground`
|
|
131
|
-
- KPI の数値: `text-3xl font-semibold tabular-nums`
|
|
132
|
-
- 本文・表: `text-sm`
|
|
133
|
-
- 注釈・出典: `text-xs text-muted-foreground`
|
|
134
|
-
|
|
135
|
-
スライドのサイズは `--slide-size-hero`(表紙・大きな数字)と `--slide-size-body`(本文)を基準にする。
|
|
136
|
-
|
|
137
|
-
## レイアウトと密度 (Layout)
|
|
138
|
-
|
|
139
|
-
- 情報はカード(`bg-card` + `border-border`)で区切る。角丸は `--radius` に従う(個別に変えない)。
|
|
140
|
-
- グリッドの間隔は `gap-4`。セクション間は `gap-6` 程度。
|
|
141
|
-
- KPI は 1 行に 2〜4 枚。その下にチャート、最後に明細の表。
|
|
142
|
-
- 密度は「中」。余白を削って詰め込むより、ページを分ける。
|
|
143
|
-
|
|
144
|
-
## 成果物の種類ごとの規則 (Per-artifact)
|
|
145
|
-
|
|
146
|
-
### ダッシュボード
|
|
147
|
-
|
|
148
|
-
- 先頭に KPI カード、次にトレンドのチャート、最後に明細の表。
|
|
149
|
-
- 各 KPI には比較対象(前月比・目標比など)を 1 つ添える。
|
|
150
|
-
- チャートのタイトルは結論を書く(「売上推移」より「売上は 3 か月連続で増加」)。
|
|
151
|
-
|
|
152
|
-
### スライド
|
|
153
|
-
|
|
154
|
-
- 1 枚に 1 メッセージ。見出しに結論を書く。
|
|
155
|
-
- 色は `--slide-bg` / `--slide-fg` / `--slide-accent` / `--slide-muted` を使う
|
|
156
|
-
(既定では `--background` / `--foreground` / `--primary` / `--muted-foreground` に連動)。
|
|
157
|
-
- 強調色は 1 枚につき 1 か所まで。
|
|
158
|
-
|
|
159
|
-
## Do / Don't
|
|
160
|
-
|
|
161
|
-
Do:
|
|
162
|
-
|
|
163
|
-
- トークンと Tailwind のセマンティッククラスで色を指定する。
|
|
164
|
-
- 数値には単位と比較対象を付ける。
|
|
165
|
-
- 色の意味(良い / 悪い / 強調)をアプリ全体でそろえる。
|
|
166
|
-
|
|
167
|
-
Don't:
|
|
168
|
-
|
|
169
|
-
- 色コードや素のパレットクラスを直接書く。
|
|
170
|
-
- 1 画面で強調色を何か所にも使う。
|
|
171
|
-
- 3D チャート・円グラフの多用・装飾目的のグラデーション。
|
|
172
|
-
````
|
|
1
|
+
# 任意の DESIGN.md
|
|
2
|
+
|
|
3
|
+
`DESIGN.md` は、プロジェクトルートに置く**ユーザー所有の任意のファイル**。新規プロジェクトには作らない。
|
|
4
|
+
ユーザーが望んだときだけ、ユーザー固有の意図(密度・スライドの見出し方針・ブランド素材など)を書く。
|
|
5
|
+
|
|
6
|
+
- 色・書体・角丸の値と色の割り当ては書かない。テーマ(`styles.css`、ThemeDialog、CLI の `theme` / `chart`)が持つ。
|
|
7
|
+
デザイン変更の依頼を `DESIGN.md` に記録しない。
|
|
8
|
+
- 見た目の規則は `AGENTS.md` の「見た目の規約」節が正本。`DESIGN.md` はそれに**加えて**従われる。
|
|
9
|
+
色の割り当てが食い違うときはテーマを優先する。
|
|
10
|
+
- 既存の `DESIGN.md` は消さない。`vantage upgrade` も `vantage add agents` も書き換えない。
|
|
11
|
+
- 150 行以内(超えると `vantage check` が `DESIGN_MD_TOO_LONG` を警告する)。YAML frontmatter は付けない。
|
|
12
|
+
- ロゴ・画像は `public/` 配下のパスで参照する(`public/brand/logo.svg`)。
|