@lism-css/mcp 0.22.0 → 0.24.0

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.
Files changed (74) hide show
  1. package/README.ja.md +15 -15
  2. package/README.md +5 -5
  3. package/dist/data/docs-index.json +232 -96
  4. package/dist/data/guides/SKILL.md +162 -224
  5. package/dist/data/guides/antipatterns-layout.md +268 -0
  6. package/dist/data/guides/antipatterns.md +118 -196
  7. package/dist/data/guides/base-styles.md +14 -12
  8. package/dist/data/guides/components-core.md +26 -8
  9. package/dist/data/guides/components-ui.md +28 -24
  10. package/dist/data/guides/css-rules.md +40 -57
  11. package/dist/data/guides/customize.md +121 -37
  12. package/dist/data/guides/naming.md +23 -42
  13. package/dist/data/guides/primitive-class.md +5 -5
  14. package/dist/data/guides/primitives/a--decorator.md +2 -28
  15. package/dist/data/guides/primitives/a--divider.md +1 -52
  16. package/dist/data/guides/primitives/a--icon.md +2 -76
  17. package/dist/data/guides/primitives/a--spacer.md +1 -49
  18. package/dist/data/guides/primitives/l--autoColumns.md +7 -54
  19. package/dist/data/guides/primitives/l--box.md +1 -21
  20. package/dist/data/guides/primitives/l--center.md +6 -39
  21. package/dist/data/guides/primitives/l--cluster.md +6 -26
  22. package/dist/data/guides/primitives/l--columns.md +7 -56
  23. package/dist/data/guides/primitives/l--flex.md +5 -62
  24. package/dist/data/guides/primitives/l--flow.md +11 -72
  25. package/dist/data/guides/primitives/l--frame.md +7 -78
  26. package/dist/data/guides/primitives/l--grid.md +5 -56
  27. package/dist/data/guides/primitives/l--stack.md +5 -44
  28. package/dist/data/guides/primitives/l--switchColumns.md +8 -53
  29. package/dist/data/guides/primitives/l--tileGrid.md +7 -44
  30. package/dist/data/guides/primitives/l--withSide.md +9 -79
  31. package/dist/data/guides/property-class/all-props.md +244 -0
  32. package/dist/data/guides/property-class/bd.md +5 -70
  33. package/dist/data/guides/property-class/hov.md +14 -73
  34. package/dist/data/guides/property-class/max-sz.md +3 -39
  35. package/dist/data/guides/property-class.md +31 -249
  36. package/dist/data/guides/references/authoring.md +246 -0
  37. package/dist/data/guides/references/page-sections.md +99 -0
  38. package/dist/data/guides/references/verification.md +73 -0
  39. package/dist/data/guides/responsive.md +68 -20
  40. package/dist/data/guides/set-class.md +2 -12
  41. package/dist/data/guides/tokens.md +31 -31
  42. package/dist/data/guides/trait-class/has--gutter.md +3 -31
  43. package/dist/data/guides/trait-class/has--mask.md +3 -36
  44. package/dist/data/guides/trait-class/has--snap.md +3 -34
  45. package/dist/data/guides/trait-class/has--transition.md +3 -41
  46. package/dist/data/guides/trait-class/is--boxLink.md +2 -63
  47. package/dist/data/guides/trait-class/is--container.md +2 -29
  48. package/dist/data/guides/trait-class/is--layer.md +1 -57
  49. package/dist/data/guides/trait-class/is--wrapper.md +11 -60
  50. package/dist/data/guides/trait-class.md +8 -8
  51. package/dist/data/guides/utility-class.md +1 -1
  52. package/dist/data/meta.js +4 -3
  53. package/dist/index.js +4 -1
  54. package/dist/lib/load-markdown.d.ts +4 -0
  55. package/dist/lib/load-markdown.js +10 -0
  56. package/dist/lib/markdown-utils.d.ts +1 -1
  57. package/dist/lib/response.d.ts +5 -0
  58. package/dist/lib/response.js +15 -2
  59. package/dist/lib/schemas.d.ts +35 -0
  60. package/dist/lib/schemas.js +13 -0
  61. package/dist/lib/search.d.ts +2 -0
  62. package/dist/lib/search.js +45 -2
  63. package/dist/lib/types.d.ts +5 -21
  64. package/dist/lib/version.d.ts +2 -0
  65. package/dist/lib/version.js +8 -0
  66. package/dist/tools/convert-css.js +38 -15
  67. package/dist/tools/get-component.js +2 -2
  68. package/dist/tools/get-guide.d.ts +2 -0
  69. package/dist/tools/get-guide.js +40 -17
  70. package/dist/tools/get-overview.js +2 -2
  71. package/dist/tools/get-props-system.js +8 -6
  72. package/dist/tools/get-tokens.js +2 -2
  73. package/dist/tools/search-docs.js +13 -7
  74. package/package.json +17 -2
@@ -7,12 +7,10 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
7
7
 
8
8
  - [基本書式](#基本書式)
9
9
  - [プリセット外の値をクラス化する(`:value` 記法、Lism Props 限定)](#プリセット外の値をクラス化するvalue-記法lism-props-限定)
10
- - [表の読み方](#表の読み方)
11
- - [全 Prop 一覧](#全-prop-一覧)
10
+ - [Prop早見リスト](#prop早見リスト)
12
11
  - [特殊な Property Class](#特殊な-property-class)
13
12
  - [ボーダー(`bd` 系)](#ボーダーbd-系)
14
13
  - [ホバー(`hov` 系)](#ホバーhov-系)
15
- - [その他](#その他)
16
14
  - [値の省略形(例外一覧)](#値の省略形例外一覧)
17
15
  - [Property Class の特殊な出力タイプ](#property-class-の特殊な出力タイプ)
18
16
  - [Property Class の検索・一括修正](#property-class-の検索一括修正)
@@ -21,6 +19,7 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
21
19
 
22
20
  個別ドキュメント:
23
21
 
22
+ - [property-class/all-props.md](./property-class/all-props.md) — 全 Prop 一覧(プリセット値クラス・BP対応の詳細表)
24
23
  - [property-class/bd.md](./property-class/bd.md) — ボーダー(`-bd` / `-bd-{side}` 系)
25
24
  - [property-class/hov.md](./property-class/hov.md) — ホバー(`-hov:*` 系)
26
25
  - [property-class/max-sz.md](./property-class/max-sz.md) — 最大幅(`-max-sz:full` / `-max-sz:bleed` 等)
@@ -57,237 +56,29 @@ Lism コンポーネントの Propsに渡す値の頭に `:` を付けると、
57
56
  // → <p class="-lts:2xl">...</Text>
58
57
  ```
59
58
 
60
-
61
- ## 表の読み方
62
-
63
- | カラム | 説明 |
64
- |--------|------|
65
- | **Prop** | クラス名に使う省略名(例: `-fz:l` `fz` 部分)。Lism コンポーネントの Props 名でもある |
66
- | **CSS プロパティ** | 実際に制御される CSS プロパティ |
67
- | **プリセット値クラス** | そのまま使えるクラス名の一覧(`-{prop}:{value}` 形式)。`—` はカスタム値のみ対応 |
68
- | **BP** | ブレークポイント対応クラス(`-{prop}_{bp}` 形式)のサポート状況。`✔` は `sm`・`md`、`✔ lg``lg` まで対応、`—` は非対応 |
69
-
70
-
71
- ## Prop 一覧
72
-
73
- ソース: [props.ts](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/config/defaults/props.ts)
74
-
75
- ### タイポグラフィ
76
-
77
- | Prop | CSS プロパティ | プリセット値クラス | BP |
78
- |------|--------------|-------------|-----|
79
- | `f` | `font` | `-f:inherit` | — |
80
- | `fz` | `font-size` | `-fz:root`, `-fz:base`, `-fz:5xl`〜`-fz:2xs` | ✔ |
81
- | `fw` | `font-weight` | `-fw:light`, `-fw:normal`, `-fw:bold`, `-fw:100`〜`-fw:900` | — |
82
- | `ff` | `font-family` | `-ff:base`, `-ff:accent`, `-ff:mono` | — |
83
- | `fs` | `font-style` | `-fs:italic` | — |
84
- | `lh` | `line-height`(`--hl` 経由) | `-lh:base`, `-lh:xs`, `-lh:s`, `-lh:l`, `-lh:1` | — |
85
- | `hl` | `--hl` 変数のみ | — | — |
86
- | `lts` | `letter-spacing` | `-lts:base`, `-lts:s`, `-lts:l`, `-lts:xl` | — |
87
- | `ta` | `text-align` | `-ta:center`, `-ta:left`, `-ta:right` | — |
88
- | `td` | `text-decoration` | `-td:none` | — |
89
- | `tt` | `text-transform` | `-tt:upper`, `-tt:lower` | — |
90
-
91
- **注意:** `lh` は `--hl`(half-leading)変数を介して `line-height: calc(1em + var(--hl) * 2)` を制御します。`hl` は `--hl` 変数を直接セットするだけの isVar タイプです。
92
-
93
- ### 表示・可視性
94
-
95
- | Prop | CSS プロパティ | プリセット値クラス | BP |
96
- |------|--------------|-------------|-----|
97
- | `d` | `display` | `-d:none`, `-d:block`, `-d:flex`, `-d:inline-flex`, `-d:grid`, `-d:inline-grid`, `-d:inline`, `-d:inline-block` | ✔ lg |
98
- | `o` | `opacity` | `-o:0`, `-o:mp`, `-o:p`, `-o:pp`, `-o:ppp` | — |
99
- | `v` | `visibility` | `-v:hidden` | — |
100
- | `ov` | `overflow` | `-ov:hidden`, `-ov:auto`, `-ov:clip` | — |
101
- | `ov-x` | `overflow-x` | `-ov-x:clip`, `-ov-x:auto`, `-ov-x:scroll` | — |
102
- | `ov-y` | `overflow-y` | `-ov-y:clip`, `-ov-y:auto`, `-ov-y:scroll` | — |
103
- | `ar` | `aspect-ratio` | `-ar:21/9`, `-ar:16/9`, `-ar:3/2`, `-ar:1/1`, `-ar:og` | ✔ |
104
-
105
- ### サイズ
106
-
107
- | Prop | CSS プロパティ | プリセット値クラス | BP |
108
- |------|--------------|-------------|-----|
109
- | `w` | `width` | `-w:100%`, `-w:fit` | ✔ |
110
- | `h` | `height` | `-h:100%`, `-h:fit` | ✔ |
111
- | `min-w` | `min-width` | `-min-w:100%` | ✔ |
112
- | `max-w` | `max-width` | `-max-w:100%` | ✔ |
113
- | `min-h` | `min-height` | `-min-h:100%` | ✔ |
114
- | `max-h` | `max-height` | `-max-h:100%` | ✔ |
115
- | `sz` | `inline-size` | — | — |
116
- | `min-sz` | `min-inline-size` | — | — |
117
- | `max-sz` | `max-inline-size` | `-max-sz:xs`, `-max-sz:s`, `-max-sz:m`, `-max-sz:l`, `-max-sz:xl`, `-max-sz:full`, `-max-sz:bleed` | — |
118
- | `bsz` | `block-size` | — | — |
119
- | `min-bsz` | `min-block-size` | — | — |
120
- | `max-bsz` | `max-block-size` | — | — |
121
- | `contentSize` | `--contentSize` 変数のみ | `-contentSize:s`, `-contentSize:m`, `-contentSize:l`, `-contentSize:xl` | — |
122
-
123
- **`max-sz` の特殊クラス:**
124
- - `-max-sz:full` — `has--gutter` 内では gutter 分を含めた全幅に拡張
125
- - `-max-sz:bleed` — 最外側の `is--container` 幅まで広がる(`margin-inline` で中央配置、`is--container` 祖先がなければ `100svi` まで広がる)
126
-
127
- → 詳細は [property-class/max-sz.md](./property-class/max-sz.md) 参照
128
-
129
- **`contentSize` について:**
130
- `--contentSize` 変数をセットする isVar タイプの Prop です。`is--wrapper` と組み合わせるとコンテンツ幅の上限となり、`set--bleed` と組み合わせると `--bleed` の計算基準値として使われます。
131
- プリセット値(`s`, `m`, `l`, `xl`)は `-contentSize:{value}` クラスを出力し、それ以外の任意値は `--contentSize: {value}` をスタイル属性として出力します。
132
-
133
- ### 背景
134
-
135
- | Prop | CSS プロパティ | プリセット値クラス | BP |
136
- |------|--------------|-------------|-----|
137
- | `bg` | `background` | — | — |
138
- | `bgi` | `background-image` | — | — |
139
- | `bgr` | `background-repeat` | `-bgr:no-repeat` | — |
140
- | `bgp` | `background-position` | `-bgp:center` | — |
141
- | `bgsz` | `background-size` | `-bgsz:cover`, `-bgsz:contain` | — |
142
- | `bgc` | `background-color` | `-bgc:base`, `-bgc:base-2`, `-bgc:text`, `-bgc:brand`, `-bgc:accent`, `-bgc:inherit`, `-bgc:transparent` | — |
143
-
144
- ### カラー
145
-
146
- | Prop | CSS プロパティ | プリセット値クラス | BP |
147
- |------|--------------|-------------|-----|
148
- | `c` | `color` | `-c:base`, `-c:text`, `-c:text-2`, `-c:brand`, `-c:accent`, `-c:inherit` | — |
149
- | `keycolor` | `--keycolor` 変数のみ | — | — |
150
-
151
- セマンティックカラー: `base`, `base-2`, `text`, `text-2`, `divider`, `link`, `brand`, `accent`, `neutral`<br />
152
- パレットカラー: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `gray`, `white`, `black`
153
- キーカラー変数: `keycolor`(ユーザー定義の `--keycolor` を参照する独立変数。詳細は `tokens.md` を参照)
154
-
155
- ### 角丸
156
-
157
- | Prop | CSS プロパティ | プリセット値クラス | BP |
158
- |------|--------------|-------------|-----|
159
- | `bdrs` | `border-radius` | `-bdrs:0`, `-bdrs:10`, `-bdrs:20`, `-bdrs:30`, `-bdrs:40`, `-bdrs:99`, `-bdrs:inner` | ✔ |
160
- | `bdrs-tl` | `border-top-left-radius` | — | — |
161
- | `bdrs-tr` | `border-top-right-radius` | — | — |
162
- | `bdrs-br` | `border-bottom-right-radius` | — | — |
163
- | `bdrs-bl` | `border-bottom-left-radius` | — | — |
164
- | `bdrs-ss` | `border-start-start-radius` | — | — |
165
- | `bdrs-se` | `border-start-end-radius` | — | — |
166
- | `bdrs-es` | `border-end-start-radius` | — | — |
167
- | `bdrs-ee` | `border-end-end-radius` | — | — |
168
-
169
- ### 影
170
-
171
- | Prop | CSS プロパティ | プリセット値クラス | BP |
172
- |------|--------------|-------------|-----|
173
- | `bxsh` | `box-shadow` | `-bxsh:0`, `-bxsh:10`, `-bxsh:20`, `-bxsh:30`, `-bxsh:40`, `-bxsh:50` | ✔ |
174
-
175
- **補足:** 影色(`--shc`)を要素内で上書きして再計算させたい場合は、`set--bxsh` クラスを併用する。
176
-
177
- ### ポジション
178
-
179
- | Prop | CSS プロパティ | プリセット値クラス | BP |
180
- |------|--------------|-------------|-----|
181
- | `pos` | `position` | `-pos:static`, `-pos:fixed`, `-pos:sticky`, `-pos:relative`, `-pos:absolute` | ✔ |
182
- | `z` | `z-index` | `-z:-1`, `-z:0`, `-z:1`, `-z:99` | — |
183
- | `t` | `top` | `-t:0`, `-t:50%`, `-t:100%` | — |
184
- | `l` | `left` | `-l:0`, `-l:50%`, `-l:100%` | — |
185
- | `r` | `right` | `-r:0`, `-r:50%`, `-r:100%` | — |
186
- | `b` | `bottom` | `-b:0`, `-b:50%`, `-b:100%` | — |
187
- | `i` | `inset` | `-i:0` | — |
188
- | `i-x` | `inset-inline` | — | — |
189
- | `i-y` | `inset-block` | — | — |
190
- | `i-s` | `inset-inline-start` | — | — |
191
- | `i-e` | `inset-inline-end` | — | — |
192
- | `i-bs` | `inset-block-start` | — | — |
193
- | `i-be` | `inset-block-end` | — | — |
194
-
195
- ### 余白 — Padding
196
-
197
- | Prop | CSS プロパティ | プリセット値クラス | BP |
198
- |------|--------------|-------------|-----|
199
- | `p` | `padding` | `-p:0`, `-p:5`, `-p:10`, `-p:20`, ... (SPACEトークン) | ✔ |
200
- | `px` | `padding-inline` | `-px:0`, `-px:5`, `-px:10`, `-px:20`, ... (SPACEトークン) | ✔ |
201
- | `py` | `padding-block` | `-py:0`, `-py:5`, `-py:10`, `-py:20`, ... (SPACEトークン) | ✔ |
202
- | `ps` | `padding-inline-start` | — | ✔ |
203
- | `pe` | `padding-inline-end` | — | ✔ |
204
- | `pbs` | `padding-block-start` | — | ✔ |
205
- | `pbe` | `padding-block-end` | — | ✔ |
206
- | `pl` | `padding-left` | — | — |
207
- | `pr` | `padding-right` | — | — |
208
- | `pt` | `padding-top` | — | — |
209
- | `pb` | `padding-bottom` | — | — |
210
-
211
- SPACEトークン(全値): `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `50`, `60`, `70`, `80`
212
-
213
- ### 余白 — Margin
214
-
215
- | Prop | CSS プロパティ | プリセット値クラス | BP |
216
- |------|--------------|-------------|-----|
217
- | `m` | `margin` | `-m:auto`, `-m:0`, `-m:5`, `-m:10`, `-m:20`, ... (SPACEトークン) | ✔ |
218
- | `mx` | `margin-inline` | `-mx:auto`, `-mx:0`, `-mx:5`, `-mx:10`, `-mx:20`, ... (SPACEトークン) | ✔ |
219
- | `my` | `margin-block` | `-my:auto`, `-my:0`, `-my:5`, `-my:10`, `-my:20`, ... (SPACEトークン) | ✔ |
220
- | `ms` | `margin-inline-start` | `-ms:auto` | ✔ |
221
- | `me` | `margin-inline-end` | `-me:auto` | ✔ |
222
- | `mbs` | `margin-block-start` | `-mbs:auto`, `-mbs:0`, `-mbs:5`, `-mbs:10`, `-mbs:20`, ... (SPACEトークン) | ✔ |
223
- | `mbe` | `margin-block-end` | `-mbe:auto` | ✔ |
224
- | `ml` | `margin-left` | — | — |
225
- | `mr` | `margin-right` | — | — |
226
- | `mt` | `margin-top` | — | — |
227
- | `mb` | `margin-bottom` | — | — |
228
-
229
- ### Gap
230
-
231
- | Prop | CSS プロパティ | プリセット値クラス | BP |
232
- |------|--------------|-------------|-----|
233
- | `g` | `gap` | `-g:0`, `-g:inherit`, `-g:5`, `-g:10`, `-g:20`, ... (SPACEトークン) | ✔ lg |
234
- | `cg` | `column-gap` | — | — |
235
- | `rg` | `row-gap` | — | — |
236
-
237
- ### Flex
238
-
239
- | Prop | CSS プロパティ | プリセット値クラス | BP |
240
- |------|--------------|-------------|-----|
241
- | `fxf` | `flex-flow` | — | — |
242
- | `fxw` | `flex-wrap` | `-fxw:wrap` | ✔ |
243
- | `fxd` | `flex-direction` | `-fxd:column`, `-fxd:column-reverse`, `-fxd:row-reverse` | ✔ |
244
- | `fx` | `flex` | `-fx:1` | ✔ |
245
- | `fxg` | `flex-grow` | `-fxg:1` | — |
246
- | `fxsh` | `flex-shrink` | `-fxsh:0` | — |
247
- | `fxb` | `flex-basis` | — | ✔ |
248
-
249
- ### Grid
250
-
251
- | Prop | CSS プロパティ | プリセット値クラス | BP |
252
- |------|--------------|-------------|-----|
253
- | `gt` | `grid-template` | — | ✔ |
254
- | `gta` | `grid-template-areas` | — | ✔ lg |
255
- | `gtc` | `grid-template-columns` | `-gtc:subgrid` | ✔ lg |
256
- | `gtr` | `grid-template-rows` | `-gtr:subgrid` | ✔ lg |
257
- | `gaf` | `grid-auto-flow` | `-gaf:row`, `-gaf:column` | ✔ |
258
- | `gac` | `grid-auto-columns` | — | — |
259
- | `gar` | `grid-auto-rows` | — | — |
260
- | `cols` | `--cols` 変数 | — | ✔ lg |
261
- | `rows` | `--rows` 変数 | — | ✔ |
262
-
263
- ### Grid アイテム
264
-
265
- | Prop | CSS プロパティ | プリセット値クラス | BP |
266
- |------|--------------|-------------|-----|
267
- | `ga` | `grid-area` | `-ga:1/1` | ✔ lg |
268
- | `gc` | `grid-column` | `-gc:1/-1` | ✔ lg |
269
- | `gr` | `grid-row` | `-gr:1/-1` | ✔ lg |
270
- | `gcs` | `grid-column-start` | — | — |
271
- | `gce` | `grid-column-end` | — | — |
272
- | `grs` | `grid-row-start` | — | — |
273
- | `gre` | `grid-row-end` | — | — |
274
-
275
- ### 配置(Places)
276
-
277
- | Prop | CSS プロパティ | プリセット値クラス | BP |
278
- |------|--------------|-------------|-----|
279
- | `ai` | `align-items` | `-ai:start`, `-ai:center`, `-ai:end`, `-ai:stretch`, `-ai:flex-start`, `-ai:flex-end` | ✔ |
280
- | `ac` | `align-content` | `-ac:start`, `-ac:center`, `-ac:end`, `-ac:flex-start`, `-ac:flex-end`, `-ac:between` | ✔ |
281
- | `ji` | `justify-items` | `-ji:start`, `-ji:center`, `-ji:end`, `-ji:stretch`, `-ji:flex-start`, `-ji:flex-end` | ✔ |
282
- | `jc` | `justify-content` | `-jc:start`, `-jc:center`, `-jc:end`, `-jc:flex-start`, `-jc:flex-end`, `-jc:between` | ✔ |
283
- | `pi` | `place-items` | `-pi:start`, `-pi:center`, `-pi:end` | — |
284
- | `pc` | `place-content` | `-pc:start`, `-pc:center`, `-pc:end` | — |
285
- | `aslf` | `align-self` | `-aslf:start`, `-aslf:center`, `-aslf:end`, `-aslf:stretch` | — |
286
- | `jslf` | `justify-self` | `-jslf:start`, `-jslf:center`, `-jslf:end`, `-jslf:stretch` | — |
287
- | `pslf` | `place-self` | `-pslf:start`, `-pslf:center`, `-pslf:end` | — |
288
- | `order` | `order` | `-order:0`, `-order:-1`, `-order:1` | ✔ |
289
-
290
- **コンポーネント用ショートハンド:** `ai`, `ac`, `ji`, `jc`, `aslf`, `jslf` では `s`→`start`, `e`→`end`, `c`→`center`, `fs`→`flex-start`, `fe`→`flex-end` のショートハンドが使えます。
59
+ ## Prop早見リスト
60
+
61
+ 「このCSSプロパティにPropがあるか」の存在確認用の一覧です。プリセット値クラス・BP対応・特殊出力の詳細は[property-class/all-props.md](./property-class/all-props.md)を必ず参照してください。
62
+
63
+ - タイポグラフィ: `f` `fz` `fw` `ff` `fs` `hl` `lh` `lts` `ta` `td` `tt`
64
+ - 表示・可視性: `d` `o` `v` `ov` `ov-x` `ov-y` `ar`
65
+ - サイズ: `w` `h` `min-w` `max-w` `min-h` `max-h` `sz` `min-sz` `max-sz` `bsz` `min-bsz` `max-bsz` `contentSize`
66
+ - 背景: `bg` `bgi` `bgr` `bgp` `bgsz` `bgc`
67
+ - カラー: `c` `keycolor`
68
+ - 角丸: `bdrs` `bdrs-{tl|tr|br|bl|ss|se|es|ee}`
69
+ - 影: `bxsh`
70
+ - ポジション: `pos` `z` `t` `l` `r` `b` `i` `i-{x|y|s|e|bs|be}`
71
+ - Padding: `p` `px` `py` `ps` `pe` `pbs` `pbe` `pl` `pr` `pt` `pb`
72
+ - Margin: `m` `mx` `my` `ms` `me` `mbs` `mbe` `ml` `mr` `mt` `mb`
73
+ - Gap: `g` `cg` `rg`
74
+ - Flex: `fxf` `fxw` `fxd` `fx` `fxg` `fxsh` `fxb`
75
+ - Grid: `gt` `gta` `gtc` `gtr` `gaf` `gac` `gar` `cols` `rows` / アイテム側: `ga` `gc` `gr` `gcs` `gce` `grs` `gre`
76
+ - 配置: `ai` `ac` `ji` `jc` `pi` `pc` `aslf` `jslf` `pslf` `order`
77
+ - ボーダー: `bd` `bd-{side}` `bds` `bdc` `bdw`(特殊仕様→下記「ボーダー(bd系)」)
78
+ - ホバー: `hov`(特殊仕様→下記「ホバー(hov系)」)
79
+ - その他: `ovw` `whs` `float` `clear` `iso` `wm`
80
+
81
+ `padding`/`margin`/`gap`/`font-*`/`color`/`background`/`border-radius`/`width`/`height`/`text-align`など上記にあるプロパティの宣言は、カスタムCSSに書く前にProps/Property Classへ移せないか確認します(擬似要素・子孫セレクタ・状態切替を伴う場合のみCSSに残す)。
291
82
 
292
83
  ## 特殊な Property Class
293
84
 
@@ -298,7 +89,7 @@ SPACEトークン(全値): `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `5
298
89
  Lism CSS のボーダーは CSS 変数(`--bds` / `--bdw` / `--bdc`)で管理される特殊仕様。`-bd` または `-bd-{side}` を付けると初期値(`solid` / `1px` / `var(--divider)`)がセットされ、`bds` / `bdc` / `bdw` Prop で上書きする。
299
90
 
300
91
  | Prop | CSS プロパティ / 変数 | 主なクラス |
301
- |------|-----------------------|------------|
92
+ | --- | --- | --- |
302
93
  | `bd` | `border`(変数管理を有効化) | `-bd`, `-bd-{x\|y\|s\|e\|bs\|be\|t\|b\|l\|r}`, `-bd:none` |
303
94
  | `bds` | `--bds` | `-bds:dashed`, `-bds:dotted`, `-bds:double` |
304
95
  | `bdc` | `--bdc` | `-bdc:brand`, `-bdc:accent`, `-bdc:divider`, `-bdc:inherit`, `-bdc:transparent`, `-bdc:current` |
@@ -311,7 +102,7 @@ Lism CSS のボーダーは CSS 変数(`--bds` / `--bdw` / `--bdc`)で管理
311
102
  ホバーエフェクト用のクラス群。以下の 3 形式がある。
312
103
 
313
104
  | 形式 | 役割 | 動作条件 |
314
- |------|------|---------|
105
+ | --- | --- | --- |
315
106
  | `-hov:-{prop}` | `--hov-{prop}` 変数で hover 時の値を変化させる | `:hover`(`@media (any-hover: hover)` 内) |
316
107
  | `-hov:{preset}` | hover 時のスタイルをプリセットで適用 | `:hover`(同上) |
317
108
  | `-hov:in:{preset}` | 親の `set--hov` を起点に子のスタイルを変化させる | 親に `set--hov` が必要 |
@@ -322,24 +113,13 @@ Lism CSS のボーダーは CSS 変数(`--bds` / `--bdw` / `--bdc`)で管理
322
113
 
323
114
  → 詳細は [property-class/hov.md](./property-class/hov.md) 参照
324
115
 
325
- ## その他
326
-
327
- | Prop | CSS プロパティ | プリセット値クラス | BP |
328
- |------|--------------|-------------|-----|
329
- | `ovw` | `overflow-wrap` | `-ovw:anywhere` | — |
330
- | `whs` | `white-space` | `-whs:nowrap` | — |
331
- | `float` | `float` | `-float:left`, `-float:right` | — |
332
- | `clear` | `clear` | `-clear:both` | — |
333
- | `iso` | `isolation` | `-iso:isolate` | — |
334
- | `wm` | `writing-mode` | `-wm:vertical-rl` | ✔ |
335
-
336
116
 
337
117
  ## 値の省略形(例外一覧)
338
118
 
339
119
  Property Class の値名は基本的に CSS の実値と同じですが、以下は省略形が使われます。
340
120
 
341
121
  | クラス例 | 実際の CSS 値 | 対象 Prop |
342
- |----------|------------|-----------|
122
+ | --- | --- | --- |
343
123
  | `-tt:upper` | `text-transform: uppercase` | `tt` |
344
124
  | `-tt:lower` | `text-transform: lowercase` | `tt` |
345
125
  | `-w:fit` | `width: fit-content` | `w`, `h` |
@@ -368,13 +148,15 @@ Property Class の値名は基本的に CSS の実値と同じですが、以下
368
148
  }
369
149
  ```
370
150
 
151
+ 対象プロパティは、ソースの [props.ts](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/config/defaults/props.ts) で `alwaysVar: 1` がセットされているものです。
152
+
371
153
 
372
154
  ## Property Class の検索・一括修正
373
155
 
374
156
  Property Class をコードベース全体で一括修正する場合、同じ Prop が**複数の書式**で出現するため、以下のパターンをすべて検索する必要があります。
375
157
 
376
158
  | 出現場所 | 検索パターン例(`p` の場合) |
377
- |---------|--------------------------|
159
+ | --- | --- |
378
160
  | HTML / className — プリセット値 | `-p:20` |
379
161
  | HTML / className — BP対応・カスタム値 | `-p` / `-p_sm` / `-p_md` |
380
162
  | JSX Props | `p="20"` / `p={20}` / `p={[20, 30]}` |
@@ -0,0 +1,246 @@
1
+ # 実装プランの作り方(C0–C8詳細・出力フォーマット)
2
+
3
+ Lism CSSで新規UI・セクション・コンポーネントを書く前に作る「実装プラン」の詳細編です。実装フローの全体像・資料確認トリガー表・判定記号は`SKILL.md`を正本とします。ここでは各チェック項目(C0–C8)の詳細とプランの出力フォーマットをまとめます。
4
+
5
+ 判定記号(✅/🔁/⏸、`✅新規`・`✅例外`の注記を含む)の定義は`SKILL.md`の「判定記号」を参照してください。
6
+
7
+ ## 資料確認
8
+
9
+ どの操作の手前で何を読むかは`SKILL.md`の「資料確認トリガー」を正本とする。
10
+
11
+ ### 初期確認(C0前に実行)
12
+
13
+ 新規UI/コンポーネント/セクション、またはスクショ/Figma等のデザイン再現では、C0に入る前に対象へ明らかに関係する最小限の詳細ファイルを実際に開く。
14
+
15
+ 実装プランの先頭に「初期確認した資料」を必ず出す。
16
+
17
+ ```md
18
+ 初期確認した資料: primitives/l--stack.md, primitives/l--columns.md, tokens.md
19
+ ```
20
+
21
+ 新規UI/コンポーネント/セクションで初期確認した資料が空のまま実装に入ってはいけない。「必要なら参照」とだけ書くのも不可。軽微な既存パターン内の修正で既存コード確認のみで足りる場合は、その旨を明記する。
22
+
23
+ ### 資料確認の記録
24
+
25
+ 読んだ資料は「初期確認」「実装中」を区別して資料確認ログに記録する。提出前に、🔁が✅または⏸へ解消されたかを照合する。
26
+
27
+ ## C0–C8 実装前チェック詳細
28
+
29
+ 各Cは「列挙/照合・判定/決め方/参照先/よい例・避けたい例」の観点で判断します。
30
+
31
+ ### C0: 入力整理
32
+
33
+ - **列挙**: 対象(ページ/セクション/部品)、粒度、フレームワーク(React/Astro/素のHTML)、既存制約(命名・レイヤー・公開クラス・CMS・外部JS・E2E)、デザイン入力の種類(画像のみ/詳細なデザインデータ/既存実装の途中作業)、不明点。
34
+ - **照合・判定**: baseの値が読めない、状態の有無、反復数、再現度の方針など不明点は⏸。デザイン画像の書き出し倍率・想定キャンバス幅(スケール前提)は、明示するだけでなく**検証して確定する**: 画像の実寸を確認し(コマンドが使える環境では`sips`・`identify`等で実測、使えない環境では行送り・ボタン高さなど複数箇所の整合チェック)、判定根拠を実装プランに記載する。デザイン内の全寸法がこのスケール前提をもとに計算されるため、未検証のままではトークン差分表全体が無効になる。
35
+ - **決め方**: 既存コードの命名・レイヤー・実装パターンを先に確認してから方針を置く。
36
+ - **参照先**: なし。デザイン入力と既存コードが情報源。
37
+ - **よい例・避けたい例**: OK=「何を/どの粒度で/再利用するか」を先に宣言。罠=デザインpxからいきなり書き始める。
38
+
39
+ ### C1: 構造・セマンティクス選定
40
+
41
+ - **列挙**: 縦並び/横並び/カラム/メディア枠/幅制御/オーバーレイ/全体リンクなどの構造、要素、heading level、landmark。
42
+ - **照合・判定**: 標準Primitiveで組める→✅。カラム系など迷う→🔁。`@lism-css/ui`で済む→✅または🔁。使うPrimitive詳細を未読なら🔁のまま実装しない。
43
+ - **決め方**: Layout Primitive→Trait→Atomic→UIコンポーネントの順。`<div>`+Property ClassやCSSで押し切らない。
44
+ - **Primitive優先ガード**: `<div>`+CSSで押し切らず、`SKILL.md`の「目的別実装ガイド」で候補を先に確認する。この判断を書かずに実装しない。
45
+ - **参照先**: `SKILL.md`の「目的別実装ガイド」、`primitive-class.md`、`primitives/l--*.md`、`trait-class.md`、`components-core.md`、`components-ui.md`、`antipatterns-layout.md#レイアウト選択ミス`。
46
+ - **よい例・避けたい例**: OK=`<Columns cols={3}>`、`<Frame ar="16/9">`、Astroなら`import { Stack, Columns, Frame } from 'lism-css/astro'`。罠=素の`<div>`だらけ、`<div -d:grid gtc=...>`、手組みメディア枠、最外殻Wrapper。
47
+
48
+ ### C2: 再利用・コンポーネント境界
49
+
50
+ - **列挙**: 同じ部品が3箇所以上になりそうか、値差分・slot構造があるか。
51
+ - **照合・判定**: 3+反復見込みかつ同じ意味のUI部品として安定→`✅新規`(コンポーネント化して着手)。1〜2回・局所・一時的重複→✅そのまま。Props設計が必要→⏸。
52
+ - **決め方**: CSSの`c--`新設でなくReact/Astroコンポーネント抽出を優先。`className`/`style`/`data-*`/ARIA/イベントハンドラの受け渡しを最初から設計する。
53
+ - **参照先**: `components-core.md`、`components-ui.md`、`css-rules.md#component-classc--`、`property-class.md`、本ファイルの「出力フォーマット」。
54
+ - **よい例・避けたい例**: OK=反復するTagをTagコンポーネント化。罠=Property Classの組み合わせをコピペ展開。
55
+
56
+ ### C3: 命名設計
57
+
58
+ - **列挙**: 新設する`c--`/`z--`/`p--`名とBlock/Element/Modifier構造、`c--*` CSSを置くLayer。
59
+ - **照合・判定**: プレフィックス後の名前が規約に合う→✅。ハイフンや`__`がある→🔁。サイト領域→`✅新規`(`z--`)。ページ固有→`✅新規`(`p--`)。公開API・CMS・外部JS・E2E依存→⏸。`.c--*` CSSがLayer外になる→🔁。
60
+ - **決め方**: `naming.md`に従う。Block名にハイフンは使わず、Element区切りは`_`ひとつ、Modifierは`--`ふたつ。再利用UIでない領域は`z--`、ページ固有は`p--`。`c--*` CSSを書く場合は必ず`@layer lism-component {}`内に置く。
61
+ - **参照先**: `naming.md`、`css-rules.md#component-classc--`、`css-rules.md#独自プレフィックス`、`antipatterns-layout.md#クラス名の命名ミス`。
62
+ - **よい例・避けたい例**: OK=`c--featureCard`、`c--featureCard_body`、既存命名がアンダースコア寄せなら`c--feature_card`。罠=`c--feature-card`、`c--hero__inner`(正しくは`c--hero_inner`)、`c--feature-card__body`(正しくは`c--featureCard_body`)、サイトヘッダを`c--`にする。
63
+
64
+ ### C4: 状態・バリエーション設計
65
+
66
+ - **列挙**: active/open/disabled/currentなどの状態、solid/outlineなどの見た目違い。
67
+ - **照合・判定**: 状態→`✅新規`(`data-*`/ARIA)。見た目違い→`✅新規`(`c--name--variant`)。正規Traitが当たる→✅。
68
+ - **決め方**: 状態は属性セレクタ、バリエーションはBEM Modifier。`is--`を状態/バリエーションに流用しない。
69
+ - **参照先**: `trait-class.md`、`trait-class/is--*.md`、`antipatterns-layout.md#is---の誤用状態バリエーション`、`css-rules.md#component-classc--`。
70
+ - **よい例・避けたい例**: OK=`data-is-active`+`[data-is-active]`、`c--tag--solid`。罠=`is--active`、`is--solid`。
71
+
72
+ ### C5: 値・トークン照合
73
+
74
+ - **列挙**: spacing/color/fz/radius/shadow/size/lh/ltsなど、使う予定の値をすべて列挙。
75
+ - **照合・判定**: `tokens.md`に完全一致→✅。typo・既存規約上明確な置換→🔁(`tokens.md`で正規トークンを確認して置換し✅へ)。近似丸め・任意色・ブランド色・再現度の判断→⏸。`antipatterns.md`の「直書きしてよい例外」に該当→`✅例外`。`✅例外`にできるのはこの許可リストだけで、「ユーザー指示に基づく実測値」のような例外カテゴリを自作しない。
76
+ - **決め方**: トークン値を流用。⏸は本ファイルの「デザインデータ取り込みフロー」に従い、トークン候補と差分表を出して確認まで書かない。CSSへ書く前に、Lism Props/Property Classで表せる値かも同時に確認する。インストール済みの`lism-css`がある環境では、実CSS(`main.css`)やコンポーネント実装でトークン・クラスの実在を確認してから採用するとtypoを防げる。
77
+ - **参照先**: `tokens.md`、`property-class.md`、`antipatterns.md#token-typo存在しない値`、`antipatterns.md#px--固定値の直書き`。
78
+ - **よい例・避けたい例**: OK=`-fz:xs -p:10 -bgc:base-2 -bdrs:10`。罠=`padding:13px`、`bgc="secondary"`。
79
+
80
+ ### C6: レスポンシブ方針
81
+
82
+ - **列挙**: 各値のbaseの値、切替BP(sm/md/lg)、container queryかmedia queryか、container運用なら祖先`isContainer`の有無、固定Grid化していないか。
83
+ - **照合・判定**: baseの値あり・標準BP・必要な祖先あり→✅。base抜け・xs誤用→🔁。`$is_container_query:0`等でmedia query運用が確認できる場合は`isContainer`必須にしない→✅。固定列をレスポンシブ化するなど挙動変更→⏸。
84
+ - **決め方**: baseの値を必ず置く。標準BPへ寄せる。同じ値の繰り返しは省略する。等幅カラムはまず`Columns cols={[1, null, 3]}`などPrimitiveのレスポンシブAPIで表せるか確認し、できない場合だけ`@container`/`@media`を自分で書く。
85
+ - **参照先**: `responsive.md`、`trait-class/is--container.md`、`property-class.md`、`primitive-class.md#カラムレイアウト-primitive-の使い分けガイド`。
86
+ - **よい例・避けたい例**: OK=`p={{ base: '20', md: '30' }}`+祖先`isContainer`、`<Columns cols={[1, null, 3]}>`。罠=`gtc="repeat(3,1fr)"`固定、カード列数のためだけに`@container`直書き、base抜け、container祖先なし。
87
+
88
+ ### C7: CSSに書くもの/Propsに移すもの
89
+
90
+ - **列挙**: CSSへ書く予定の各宣言を「Property Class/Propsへ移す宣言」と「CSSにしか書けない宣言」に分ける。`c--*`のCSSに残る宣言を実装プランに明記する。
91
+ - **照合・判定**: 1つの要素にだけ効く見た目の指定→✅マークアップへ。擬似クラス・擬似要素・状態切替・子孫セレクタ→✅CSSへ残す。下表の宣言が`.c--*` CSSに残る→🔁未通過。
92
+ - **決め方**: `-{prop}:{value}`またはLism Propsへ移す。`.c--*`はCSSが空でも意味クラスとして残す。
93
+ - **参照先**: `property-class.md`、`css-rules.md#component-classc--`、`antipatterns.md#property-class-で書けるのに-css-で書く`。
94
+ - **移行表**:
95
+
96
+ | CSSでの記述 | Lism Props/Property Class |
97
+ | --- | --- |
98
+ | `padding: var(--s40)` | `p="40"` / `-p:40` |
99
+ | `padding-inline: var(--s50)` | `px="50"` / `-px:50` |
100
+ | `gap: var(--s30)` | `g="30"` / `-g:30` |
101
+ | `border-radius: var(--bdrs--20)` | `bdrs="20"` / `-bdrs:20` |
102
+ | `font-size: var(--fz--s)` | `fz="s"` / `-fz:s` |
103
+ | `font-weight: var(--fw--bold)` | `fw="bold"` / `-fw:bold` |
104
+ | `color: var(--text-2)` | `c="text-2"` / `-c:text-2` |
105
+ | `background-color: var(--base-2)` | `bgc="base-2"` / `-bgc:base-2` |
106
+ | `display: flex` | `Flex`/`Cluster`/`Stack`/`l--flex` |
107
+ | `flex-direction: column` | `Stack`/`l--stack` |
108
+
109
+ - **よい例・避けたい例**: OK=`<span class="c--tag -fz:xs -p:10 -bgc:base-2 -bdrs:10">`。罠=単一要素の宣言を全部`.c--tag{}`に書く。
110
+
111
+ ### C8: 既定値の確認
112
+
113
+ - **列挙**: 使うPrimitiveが既に持つ既定CSSを確認し、同値をProps/Property Classで重ねていないか。
114
+ - **照合・判定**: 既定と同値→足さない。既定と違う意図的上書き→✅。ガイドに未整備のPrimitive既定→今後の整備対象にする。
115
+ - **決め方**: `primitives/l--*.md`の「既定の挙動」を見る。念のための`ai="center"`/`ov="hidden"`/直下img`w/h/object-fit`を足さない。
116
+ - **参照先**: `primitives/l--cluster.md`、`primitives/l--frame.md`、`primitive-class.md`、`components-core.md`。
117
+ - **よい例・避けたい例**: OK=`<Cluster g="15">`、`<Frame ar="16/9"><img /></Frame>`。罠=`<Cluster fxw="wrap" ai="center">`、Frame直下imgに`-w:100%`や`object-fit`。
118
+
119
+ ## 出力フォーマット
120
+
121
+ 実装前チェックの成果物を実装プランと呼びます。各行に必ず判定記号(定義は`SKILL.md`参照)を付け、⏸が残る項目はその部分を実装しないで先にユーザー確認します。
122
+
123
+ 値照合付きレベルでは、実装プラン全体をチャットの返答としてではなく`.lism/plan.md`として保存します(固定名・上書き。冒頭のメタデータヘッダに日時・対象タスク・スケール前提とその判定根拠を書く)。規約は[`verification.md`](./verification.md)を参照してください。
124
+
125
+ ### 軽量レベル
126
+
127
+ 小変更では3〜5行で十分です。
128
+
129
+ 例:
130
+
131
+ ```md
132
+ - ✅ 構造: 既存`Stack`内へ1項目追加。Primitive変更なし。
133
+ - ✅ トークン: 既存パターンに合わせ`p="20"`/`fz="s"`を使用。
134
+ - 🔁 hover: `property-class/hov.md`を参照し`hov={{ bgc: 'base-2' }}`で実装。
135
+ ```
136
+
137
+ ### 通常/値照合付きレベル
138
+
139
+ #### 資料確認ログ
140
+
141
+ SKILL.md以外に実際に開いたファイルや外部サイトのページurlを、「初期確認」と「実装中」に分けて列挙します。
142
+
143
+ 例:
144
+ | タイミング | 種類 | 確認した資料 | 用途 |
145
+ | --- | --- | --- | --- |
146
+ | 初期確認 | 📄 | `primitives/l--columns.md` | カード一覧を`Columns`で組む判断 |
147
+ | 実装中 | 📄 | `tokens.md` | デザイン値とトークン照合(トークン丸めトリガー) |
148
+ | 実装中 | URL | `https://lism-css.com/docs/naming.md` | `c--*`命名トリガー |
149
+
150
+ 各行は実装プランの判断項目(特に🔁)と対応させ、提出前に🔁が✅/⏸へ解消されたかを照合します。
151
+
152
+ #### 🔁判断行
153
+
154
+ 未読の判断項目そのものに🔁と読む資料を紐づけます。
155
+
156
+ | 判断項目 | 採用案 | 読む資料 | 判定 |
157
+ | --- | --- | --- | --- |
158
+ | カード一覧 | `Columns cols={[1, null, 3]}` | `primitives/l--columns.md` | 🔁 |
159
+ | hover指定 | `hov={{ bgc: 'base-2' }}` | `property-class/hov.md` | 🔁 |
160
+
161
+ 対応資料を読んだら、同じ判断行を✅または⏸へ更新します。提出前に🔁が残っている場合は未通過です。
162
+
163
+ #### 構造表
164
+
165
+ | 対象領域 | 採用Primitive・コンポーネント | 理由 | 参照先 | 判定 |
166
+ | --- | --- | --- | --- | --- |
167
+ | 例: カード一覧 | `Columns` | 等幅3列で、BP切替に向く | `primitive-class.md` | ✅ |
168
+
169
+ #### トークン表
170
+
171
+ 値照合付きでは`デザイン値`と`差分`列を必須にします。
172
+
173
+ | 用途 | デザイン値 | 採用トークン | 差分 | 判定 |
174
+ | --- | --- | --- | --- | --- |
175
+ | 余白 | `24px` | `p="30"`候補 | +6px | ⏸ |
176
+ | 背景 | — | `bgc="base-2"` | — | ✅ |
177
+
178
+ #### レスポンシブ表
179
+
180
+ | 対象 | base | sm | md | lg | container祖先 | 注意 |
181
+ | --- | --- | --- | --- | --- | --- | --- |
182
+ | カード列数 | 1 | 2 | 3 | — | あり | `cols={[1,2,3]}` |
183
+
184
+ #### 構成表(命名・CSSとPropsの分担・状態・既定値)
185
+
186
+ | c--\*名 | Props・Property Classで書く | CSSに残す | 状態・バリエーション | 既定で足りる(指定しない) |
187
+ | --- | --- | --- | --- | --- |
188
+ | `c--featureCard` | `p="20" bgc="base" bdrs="20"` | `::before`装飾 | `c--featureCard--featured` | `Frame ov`、直下img fit |
189
+
190
+ #### 確認事項表(⏸)
191
+
192
+ | 項目 | 要確認理由 | 候補 |
193
+ | --- | --- | --- |
194
+ | `padding:24px` | 近いトークンへの丸めで見た目差が出る | A=`p="30"`へ丸め/B=カスタムトークン化・基準値上書き/C=px直書き(例外) |
195
+
196
+ ### デザインデータ取り込みフロー
197
+
198
+ #### 入力種別と既定動作
199
+
200
+ デザイン値の扱いは、入力の種類とプロジェクトの段階で決まります。「正確に再現して」等の指示があってもこの分岐が既定動作で、ユーザー指示を根拠に`✅例外`を自作してはいけません。
201
+
202
+ この表は⏸確認を省略する許可ではありません。丸め・任意色などの⏸判定自体は最小ゲート・C5のとおりで、既定動作は「確認時に第一候補として提示する案」と「確認が取れない場合に前提として選ぶ選択肢」を定めるものです(`SKILL.md`「判定記号」の⏸運用を参照)。
203
+
204
+ | 入力 | 既定動作 |
205
+ | --- | --- |
206
+ | PNG等の画像・曖昧なレイアウト指示のみ | トークン照合し、最寄りトークンへ丸める。実測pxをそのまま書かない |
207
+ | 詳細なデザインデータ(JSON・デザイントークン等)にpx値・色値が明示されている | 「どこまで丸め、どこを具体値にするか」を実装前に一括ですり合わせる(下記「値マッピングの初期すり合わせ」) |
208
+ | 既存プロジェクトの途中作業 | 現状の実装パターンに従う。迷う値だけ確認事項(⏸)にする |
209
+
210
+ #### 照合の手順
211
+
212
+ 1. **候補抽出**: デザイン値(px/色/比率など)ごとに最寄りトークンを1〜2個挙げる。
213
+ 2. **差分表**: `用途/デザイン値/候補トークン/差分/判定`で表にする。
214
+ 3. **判定**:
215
+ - 完全一致→✅そのまま採用。
216
+ - typo・既存規約上明確な置換(`secondary`→`base-2`など)→`tokens.md`で正規トークンを確認して置換し、✅にする(ユーザー確認は不要)。
217
+ - 近似丸め・任意色・ブランド色・密度/再現度の判断→⏸。A=最寄りトークンに丸める/B=カスタムトークン化または基準値(`--s-unit`等)の上書き/C=px直書き(例外)を提示する。この選択肢の定義はここが正本。
218
+ 4. **カスタムトークン化の条件**: 同値が複数箇所で再利用される、またはデザインシステム上の意味を持つ場合は候補にする。1回限りの局所値は丸めか例外で済ませる。
219
+ 5. **デザインデータが無い場合**: 差分表は省略し、既存トークンから意味が近い値を選ぶ。新規数値が必要な時だけ⏸にする。
220
+
221
+ `--s-unit`などの基準値をプロジェクトが上書きしているとpxの完全一致判定が変わります。値照合付きでは上書きの有無を先に確認してください。
222
+
223
+ プロセス違反の実例(NG):
224
+
225
+ - C5に「ユーザー要件の『正確に再現』に基づくページ固有実測値として採用」のような1行を書いて値照合を包括免除し、差分表を省略する。値照合付きレベルでトークン差分表の無い実装プランは無効。
226
+
227
+ #### 値マッピングの初期すり合わせ
228
+
229
+ デザインシステムが未確立のプロジェクトで初期実装を任された場合は、値ごとに⏸を出すのではなく、実装前にマッピング方針を一括ですり合わせます。トークン差分表と確認事項表をこの一括確認の提出物として使います。
230
+
231
+ - スペース・サイズ・タイポグラフィ: どの範囲を最寄りトークンへ丸め、どこを具体値(px直書き・カスタムトークン)にするかの境界。
232
+ - カラー: デザイン内の各色をどのセマンティックカラー(`--brand`/`--accent`/`--base`/`--base-2`/`--text`/`--text-2`等)へ割り当てるか。
233
+ - デザイン画像しか無い場合は、書き出し倍率・想定キャンバス幅の前提もここで確認する。倍率はC0の実測・整合チェックで確定してから提示する。
234
+
235
+ ユーザー確認が取れない場合は、原則準拠側(最寄りトークンへの丸め・セマンティック割り当て案)を前提として実装プランに明示して進め、完了報告で代替案とともに列挙します(`SKILL.md`「判定記号」の⏸運用を参照)。
236
+
237
+ ### 提出前セルフチェックへの接続
238
+
239
+ 実装後、実装プランと実装を1行ずつ照合します(チェック項目は`SKILL.md`の「提出前セルフチェック」を参照)。この照合とルール照合は、サブエージェント/タスク委任機能が使える環境では評価サブエージェントに実行させ、報告を`.lism/review.md`へ保存します([`verification.md`](./verification.md))。
240
+
241
+ | 計画項目 | 実装結果 | 分類 | 対応 |
242
+ | --- | --- | --- | --- |
243
+ | ✅ `Frame ar="16/9"` | 実装済み | OK | なし |
244
+ | ✅ `p="20"` | `p="30"`に変更 | 計画変更 | 理由を記録 |
245
+ | ⏸ `24px`丸め | 未確認のまま実装 | 要確認 | 実装を止め確認 |
246
+ | ✅ `data-is-active` | CSSだけ`is--active`のまま | 実装漏れ | CSS/JS/testを同時修正 |