@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
@@ -9,7 +9,13 @@
9
9
  - [`lism.config.js` でのカスタマイズ](#lismconfigjs-でのカスタマイズ)
10
10
  - [追加スタイルを読み込ませる方法](#追加スタイルを読み込ませる方法)
11
11
 
12
- [詳細](https://lism-css.com/docs/customize.md)
12
+ 詳細(公式ドキュメント):
13
+
14
+ - 概要: [https://lism-css.com/docs/customize/](https://lism-css.com/docs/customize/)
15
+ - CSSビルドの選択(`@layer` / `full.css` / `isFullMode`): [https://lism-css.com/docs/customize/build/](https://lism-css.com/docs/customize/build/)
16
+ - `lism.config.js`(props / tokens / traits・breakpoints・追加スタイル): [https://lism-css.com/docs/customize/config/](https://lism-css.com/docs/customize/config/)
17
+ - SCSS(`$setting` / `$props`・BP上書き): [https://lism-css.com/docs/customize/scss/](https://lism-css.com/docs/customize/scss/)
18
+ - CSS Purge: [https://lism-css.com/docs/customize/purge/](https://lism-css.com/docs/customize/purge/)
13
19
 
14
20
  ---
15
21
 
@@ -38,9 +44,8 @@ import 'lism-css/main_no_layer.css';
38
44
  ### 上書き可能な変数
39
45
 
40
46
  | 変数 | 用途 | デフォルト |
41
- |------|------|-----------|
42
- | `$breakpoints` | ブレイクポイント数値の定義 | `('sm': '480px', 'md': '800px', 'lg': '1120px')` |
43
- | `$common_support_bp` | 主要な Property Class が共通サポートするブレイクポイント上限 | `'md'` |
47
+ | --- | --- | --- |
48
+ | `$breakpoints` | ブレイクポイント数値の定義(`0` は無効=クエリを出力しない) | `('xs': 0, 'sm': '480px', 'md': '800px', 'lg': '1120px', 'xl': 0)` |
44
49
  | `$is_container_query` | コンテナクエリで出力するか(`1` = container query, `0` = media query) | `1` |
45
50
  | `$default_important` | Property Class にデフォルトで `!important` を付与するか | `0` |
46
51
  | `$props` | Property Class ごとの個別出力設定 | `prop-config` のデフォルト |
@@ -53,7 +58,6 @@ import 'lism-css/main_no_layer.css';
53
58
  $breakpoints: (
54
59
  'sm': '400px', // 個別キーの上書き可
55
60
  ),
56
- $common_support_bp: 'lg',
57
61
  $is_container_query: 0,
58
62
  $default_important: 1,
59
63
  $props: (
@@ -69,7 +73,7 @@ import 'lism-css/main_no_layer.css';
69
73
 
70
74
  ### `$props` の個別カスタマイズ
71
75
 
72
- 各 Property Class について、出力範囲やユーティリティクラスを追加できます。
76
+ 各 Property Class について、出力するブレイクポイントを絞ったり、ユーティリティクラスを追加したりできます。
73
77
 
74
78
  ```scss
75
79
  @use '../path-to/node_modules/lism-css/scss/setting' with (
@@ -81,7 +85,7 @@ import 'lism-css/main_no_layer.css';
81
85
  bp: 0, // .-h_sm 等のブレイクポイント版を出力しない
82
86
  ),
83
87
  'p': (
84
- bp: 'lg', // .-p_sm / .-p_md / .-p_lg まで出力
88
+ bp: ('sm', 'md'), // BP対応クラスを .-p_sm / .-p_md だけに限定(bp は 0 / 1 / BPキーのリストのみ)
85
89
  utilities: (
86
90
  'box': '2em', // .-p:box { --p: 2em } を追加
87
91
  ),
@@ -98,32 +102,90 @@ SCSS を直接読み込む構成では、コンパイル時に `lism-css` 本体
98
102
 
99
103
  ## `lism.config.js` でのカスタマイズ
100
104
 
101
- プロジェクトのルート直下に `lism.config.js`(または `lism.config.mjs`)を置くことで、**コンポーネントの挙動**(受け付ける props の値や、出力されるクラス名)をカスタマイズできます。
105
+ プロジェクトのルート直下に `lism.config.js`(または `lism.config.ts` / `lism.config.mjs`)を置くことで、**コンポーネントの挙動**(受け付ける props の値や、出力されるクラス名)をカスタマイズできます。
106
+
107
+ 設定ファイルの型チェック・補完には `lism-css/config-types` の `LismConfig` 型を使います。`.ts` は `export default { ... } satisfies LismConfig`、`.js` は `/** @type {import('lism-css/config-types').LismConfig} */` を付けると、キー名の typo や値の形をエディタが検出します(コンポーネント側の prop/trait を解禁する生成物 `lism-env.d.ts` とは別物)。
102
108
 
103
- > **注意**: `lism.config.js` HTML 出力(クラス名)を変えるだけで、追加されたクラスに対する CSS は別途読み込ませる必要があります([追加スタイルを読み込ませる方法](#追加スタイルを読み込ませる方法) を参照)。
109
+ ### Vite / Astro プラグインの登録(推奨セットアップ)
104
110
 
105
- ### Vite プラグインの登録(必須)
111
+ `lism.config.js` を読み込ませるには、Vite(または Astro)の設定ファイルで `@lism-css/plugin` の統合プラグインを登録します。**未登録の場合、ファイルを置いてもデフォルト設定のまま**になります。
112
+
113
+ ```bash
114
+ pnpm add -D @lism-css/plugin
115
+ ```
116
+
117
+ ```js
118
+ // vite.config.js
119
+ import { defineConfig } from 'vite';
120
+ import { lismCss } from '@lism-css/plugin/vite';
106
121
 
107
- `lism.config.js` を読み込ませるには、Vite(または Astro)の設定ファイルで `lism-css/vite-plugin` を登録する必要があります。**未登録の場合、ファイルを置いてもデフォルト設定のまま**になります。
122
+ export default defineConfig({
123
+ plugins: [lismCss()],
124
+ });
125
+ ```
108
126
 
109
127
  ```js
110
128
  // astro.config.mjs
111
129
  import { defineConfig } from 'astro/config';
112
- import lismCss from 'lism-css/vite-plugin';
130
+ import { lismCss } from '@lism-css/plugin/astro';
113
131
 
114
132
  export default defineConfig({
115
- vite: {
116
- plugins: [lismCss()],
117
- },
133
+ integrations: [lismCss()],
118
134
  });
119
135
  ```
120
136
 
121
- プラグインはプロジェクトルートから `lism.config.js` → `lism.config.mjs` の順で自動検出します。別の場所に置く場合は `configPath` で指定できます。
137
+ この統合プラグイン1つで、以下がまとめて有効になります。
138
+
139
+ - **config alias**: コンポーネント(JS ランタイム)が `lism.config.js` を読み込めるようになる
140
+ - **動的CSSビルド**: `import 'lism-css/main.css'` 等を捕捉し、`lism.config.js` を反映済みの CSS をその場で生成する(props / tokens を追加すると CSS に自動反映される)
141
+ - **型の自動生成**: 有効化したブレイクポイント・追加した props / traits を反映した `lism-env.d.ts` を起動時に自動生成する
142
+
143
+ 設定ファイルはプロジェクトルートから `lism.config.ts` → `lism.config.mjs` → `lism.config.js` の順で自動検出します。別の場所に置く場合は `configPath` で指定できます。
122
144
 
123
145
  ```js
146
+ // Vite
124
147
  plugins: [lismCss({ configPath: './config/lism.config.js' })],
148
+ // Astro
149
+ integrations: [lismCss({ configPath: './config/lism.config.js' })],
125
150
  ```
126
151
 
152
+ ### Next.js(16 以降)での導入
153
+
154
+ Next.js には Vite / Astro のような「import をその場で変換する仕組み」が無いため、`@lism-css/plugin/next` の `withLism()` で `next.config.mjs` をラップします。`lism.config.js` を反映した CSS を `.lism-css/css/` へ事前生成し、`lism-css/main.css` 等の import をその生成物へ alias します(型生成・dev 中の config 変更追従も含む)。
155
+
156
+ ```js
157
+ // next.config.mjs
158
+ import { withLism } from '@lism-css/plugin/next';
159
+
160
+ export default withLism({ /* nextConfig */ });
161
+ ```
162
+
163
+ - `app/layout.tsx` などで `import 'lism-css/main.css'` をグローバル読み込みする。
164
+ - `.lism-css/` は `.gitignore`、`lism-env.d.ts` は `tsconfig.json` の `include` に追加してコミットする。
165
+ - CSS purge は現状 Vite / Astro のみ対応(Next.js は未対応)。
166
+
167
+ ### ブレイクポイントの有効化(xs / xl)
168
+
169
+ デフォルトのブレイクポイントは **`xs: 0`(無効) / `sm: 480px` / `md: 800px` / `lg: 1120px` / `xl: 0`(無効)** です。値 `0` は「無効=CSSクエリを出力しない」を表します。
170
+
171
+ `xs` / `xl` を有効にするには、`lism.config.js` の `breakpoints` にサイズを差分指定するだけで済みます。
172
+
173
+ ```js
174
+ // lism.config.js
175
+ export default {
176
+ breakpoints: {
177
+ xs: '360px', // xs を有効化
178
+ xl: '1400px', // xl を有効化
179
+ },
180
+ };
181
+ ```
182
+
183
+ これだけで、ブレイクポイント対応の全 Property Class が `xs` / `xl` のレスポンシブクラス(`-p_xs` / `-p_xl` 等)も出力するようになります。prop ごとの個別指定は不要です。
184
+
185
+ 統合プラグイン(型自動生成が有効)を使っている場合、有効化したブレイクポイントを反映した `lism-env.d.ts` がプロジェクト直下に**自動生成**されます。型補完も有効化したブレイクポイントのキーを自動で提示するため、`BreakpointRegistry` をプロジェクト側の `.d.ts` で手書き拡張する必要はありません。`lism-env.d.ts` は git にコミットしてください(`astro check` 等の型チェックがこのファイルを拠り所にします)。
186
+
187
+ > SCSS を直接利用する構成では、`@use 'lism-css/scss/setting' with ($breakpoints: ...)` で有効化する方法も引き続き利用できます([SCSS でのカスタマイズ](#scss-でのカスタマイズ) を参照)。
188
+
127
189
  ### フォーマット
128
190
 
129
191
  ```js
@@ -133,7 +195,7 @@ export default {
133
195
  // Property Class の出力をカスタマイズ
134
196
  },
135
197
  tokens: {
136
- // トークン値を追加
198
+ // トークンを { key: value } の値マップで定義(CSS変数の値出力・ユーティリティ生成・props受理を一括)
137
199
  },
138
200
  traits: {
139
201
  // Trait(is--* / has--*)用の props を追加
@@ -152,7 +214,7 @@ export default {
152
214
  ```js
153
215
  // lism.config.js
154
216
  import DEFAULT_CONFIG from 'lism-css/default-config';
155
- const { props, tokens } = DEFAULT_CONFIG;
217
+ const { props } = DEFAULT_CONFIG;
156
218
 
157
219
  export default {
158
220
  props: {
@@ -164,8 +226,12 @@ export default {
164
226
  filter: { utils: { blur: 'blur(3px)' } },
165
227
  },
166
228
  tokens: {
167
- // tokenClass:1 のpropは、tokens を追加するだけで自動でユーティリティ化される
168
- lts: [...(tokens.lts || []), '2xl'],
229
+ // トークンは { key: value } の値マップで定義(既定に deep-merge される)
230
+ // → :root { --lts--2xl: .5em } を出力し、tokenClass:1 の lts -lts:2xl も自動生成される
231
+ lts: { '2xl': '.5em' },
232
+ // space は --s{key}、color は --{key} の変数名で出力される
233
+ space: { '90': '6rem' }, // → --s90: 6rem
234
+ color: { success: 'oklch(0.6 0.15 150)' }, // → --success: ...
169
235
  },
170
236
  traits: {
171
237
  isHoge: 'is--hoge',
@@ -176,7 +242,7 @@ export default {
176
242
  これによってコンポーネント側で次のような挙動が追加されます:
177
243
 
178
244
  | 入力 | 出力されるクラス |
179
- |------|----------------|
245
+ | --- | --- |
180
246
  | `ta="justify"` | `-ta:justify` |
181
247
  | `p="box"` | `-p:box` |
182
248
  | `filter="blur"` | `-filter:blur` |
@@ -188,23 +254,37 @@ export default {
188
254
  // → <div class="l--box is--hoge -p:box -ta:justify -filter:blur -lts:2xl">Box</div>
189
255
  ```
190
256
 
257
+ ### 追加した prop / trait の型解禁
258
+
259
+ 統合プラグイン(型自動生成が有効)を使っている場合、`lism.config.js` で追加した **prop / trait も `lism-env.d.ts` 経由で型側に自動解禁**されます(`CustomPropRegistry` / `CustomTraitRegistry` の拡張として出力)。そのため上記の `<Box filter="blur" ... isHoge>` のような新規 prop / trait も、エディタや `astro check` で型エラーになりません。手書きの型拡張は不要です。
260
+
261
+ なお、既存 prop への値追加(`ta="justify"` 等)はもともと任意の文字列を受け付けるため、型エラーにはなりません(ただし補完候補には出ません)。
262
+
191
263
 
192
264
  ## 追加スタイルを読み込ませる方法
193
265
 
194
- `lism.config.js` で props を増やしただけでは、対応するユーティリティクラスのスタイルは存在しません。次のいずれかでスタイルを追加してください。
266
+ `lism.config.js` で props を増やしただけでは、対応するユーティリティクラスのスタイルが必要になります。構成によって反映方法が異なります。
195
267
 
196
- ### 1. 軽微な追加であれば手書きで済ませる(推奨ライト)
268
+ ### Vite / Astro(統合プラグイン使用時)は自動反映(手動ビルド不要)
197
269
 
198
- カスタムトークンが少数で済むなら、CLI 再ビルドや SCSS 構成変更まで踏み込まず、Lism Props `:value` 記法(→ [property-class.md](./property-class.md))と `global.css` への手書きで十分。
270
+ `@lism-css/plugin` の統合プラグインを登録している場合、`lism.config.js` props / tokens を追加すると、**dev サーバ / ビルドの CSS に自動反映されます**。追加クラス分の CSS を手動で追記したり `npx lism-css build` を回したりする必要はありません。dev 中に `lism.config.js` を変更すると HMR で CSS が再生成され、型 `.d.ts` も追従します。
199
271
 
200
- ```css
201
- /* global.css */
202
- @layer lism-base {
203
- :root {
204
- --lts--2xl: 0.15em;
205
- }
206
- }
272
+ 参照先の **CSS 変数の値そのもの**(`:root { --lts--2xl: .5em }` のような定義)も、`tokens` に値を書けば自動生成されます。値の定義・ユーティリティ生成・props 受理がまとめて反映されるため、`global.css` への手書きは不要です(既定値の上書きも可能)。
207
273
 
274
+ ```js
275
+ // lism.config.js — 値そのものも config に集約できる
276
+ export default {
277
+ tokens: {
278
+ lts: { '2xl': '.5em' }, // :root { --lts--2xl: .5em } + .-lts:2xl を自動生成
279
+ },
280
+ };
281
+ ```
282
+
283
+ > `is--*` クラスのスタイルは `traits` ではクラス名のみを追加するため、対応するスタイルは別途必要です(後述の手動追記 / SCSS を参照)。
284
+
285
+ 軽微な追加であれば、props を増やさず Lism Props の `:value` 記法(→ [property-class.md](./property-class.md))と `global.css` への手書きだけで済ませることもできます。
286
+
287
+ ```css
208
288
  /* Property Class は @layer を付けない */
209
289
  .-lts\:2xl {
210
290
  letter-spacing: var(--lts--2xl);
@@ -215,12 +295,15 @@ export default {
215
295
  <Text lts=":2xl">...</Text>
216
296
  ```
217
297
 
218
- トークンを体系的に拡張したい場合のみ、後述の CLI / SCSS 経由に切り替える。
298
+ ### CLI コマンドで CSS を再ビルド(Vite / Astro を使わない構成)
299
+
300
+ 純 SCSS 構成や他バンドラなど、Vite / Astro の統合プラグインを使わない構成では、`@lism-css/plugin` が提供する `npx lism-css build` が `lism.config.js` を CSS に反映するための正規の手段です。
219
301
 
220
- ### 2. CLI コマンドで CSS を再ビルド
302
+ webpack 主導のバンドラ(`@wordpress/scripts` 等)では `@lism-css/plugin/webpack` `withLismWebpack()` で webpack config をラップできます。自前の SCSS ビルドで config 適用済みの `setting` を `@use` したい構成では、`@lism-css/plugin/builder` の `generateLismScss()` が bridge SCSS(`@use 'lism-setting'`)を生成します。
221
303
 
222
304
  ```bash
223
- npx lism-css build
305
+ npx lism-css build # lism.config.js 反映の CSS を再生成
306
+ npx lism-css build --full # full.css / full_no_layer.css も生成
224
307
  ```
225
308
 
226
309
  `lism.config.js` の内容に基づいて `lism-css/main.css` を再生成します。上記カスタマイズ例だと、以下のスタイルが自動生成されます:
@@ -233,10 +316,11 @@ npx lism-css build
233
316
  ```
234
317
 
235
318
  > **注意**:
236
- > - 生成されるのはあくまで `var(--lts--2xl)` を参照する **ユーティリティクラスまで**。参照先の CSS 変数(`:root { --lts--2xl: ... }` のような **値そのもの** の定義)と `is--*` クラスのスタイルは自動生成されないため、手動で追加してください。
319
+ > - `tokens` に値を書けば、`-lts:2xl` **ユーティリティクラス**と、参照先の CSS 変数(`:root { --lts--2xl: .5em }` のような **値そのもの**)の両方が CLI ビルドでも出力されます。値が `'-'` のキーはカタログ登録のみで `:root` 宣言を出力しません(実値は手書きSCSS側)。
320
+ > - `is--*` クラスのスタイルは自動生成されないため、手動で追加してください。
237
321
  > - `lism-css` パッケージ自体を上書きする処理のため、**パッケージ更新ごとに再実行**が必要です。
238
322
 
239
- ### 3. 手動で CSS を追記
323
+ ### 手動で CSS を追記
240
324
 
241
325
  CLI を使わず、追加クラス分の CSS をプロジェクト側で書いて読み込ませる方法でも問題ありません。
242
326
 
@@ -252,7 +336,7 @@ CLI を使わず、追加クラス分の CSS をプロジェクト側で書い
252
336
  }
253
337
  ```
254
338
 
255
- ### 4. SCSS で `lism.config.js` と整合させる
339
+ ### SCSS で `lism.config.js` と整合させる
256
340
 
257
341
  SCSS 経由で読み込む構成なら、`lism.config.js` と同じ追加分を `$props` の `utilities` 設定として書いておけば、ビルドコマンドなしで反映できます。
258
342
 
@@ -18,7 +18,7 @@
18
18
  ### トークン変数
19
19
 
20
20
  | 種類 | 形式 | 例 |
21
- |------|------|-----|
21
+ | --- | --- | --- |
22
22
  | 基本 | `--{prop}--{token}` | `--fz--l`, `--bdrs--20`, `--bxsh--10`, `--sz--s` |
23
23
  | カラー | `--{color}` | `--brand`, `--text`, `--text-2`, `--red` |
24
24
  | 余白 | `--s{Token}` | `--s10`, `--s40` |
@@ -26,7 +26,7 @@
26
26
  トークンのバリエーション:
27
27
 
28
28
  | 表記 | 条件 | 例 |
29
- |------|------|-----|
29
+ | --- | --- | --- |
30
30
  | `s`, `m`, `l`, `xl`... | ベース値を中心に大小の段階を示す | `--fz--s`, `--fz--l` |
31
31
  | `base` | `:root`/`body` の初期値にセットされるもの | `--fz--base`, `--lh--base` |
32
32
  | `10`, `20`, `30`... | `0`(`none`)基準で段階的に増加 | `--bdrs--20`, `--bxsh--30` |
@@ -38,45 +38,28 @@
38
38
  ### Property Class 用の変数
39
39
 
40
40
  | 形式 | 説明 | 例 |
41
- |------|------|-----|
42
- | `--{prop}` | クラスの `{prop}` 部分と同じ省略名 | `--p`, `--bgc`, `--bdrs`, `--max-sz` |
41
+ | --- | --- | --- |
42
+ | `--{prop}` | クラスの `{prop}` 部分と同じ省略名 | `--p`, `--bgc`, `--bdrs`, `--m` |
43
43
  | `--{prop}_{bp}` | ブレークポイント値 | `--p_sm`, `--mx_md` |
44
44
 
45
45
  ### その他の変数
46
46
 
47
47
  | 形式 | 用途 | 例 |
48
- |------|------|-----|
48
+ | --- | --- | --- |
49
49
  | `--{target}-{prop}` | 要素・クラスに対するプロパティ(`:root`で上書き可) | `--link-td`, `--headings-ff` |
50
50
  | `--{propName}` | クラス自身の主要機能を制御する変数。要素側で値が初期化され、`:root` からは初期値の定義ができないもの | `--sideW`, `--mainW` |
51
51
  | `--_{item}-{propName}` | `c--` の子要素プロパティ | `--_icon-size` |
52
52
  | `--_{varName}` | 状態管理用の内部変数 | `--_isHov`, `--_notHov` |
53
53
 
54
-
55
54
  ## クラスの命名規則
56
55
 
57
- プレフィックスとクラス分類の対応:
58
-
59
- - Component: `c--`
60
- - Atomic Primitives: `a--`
61
- - Layout Primitives: `l--`
62
- - Trait(役割宣言): `is--`
63
- - Trait(機能付与): `has--`
64
- - Set Class: `set--`
65
- - Utility Class: `u--`
66
-
67
- プレフィックスに続く名称は camelCase(例: `c--myComponent`)。
56
+ クラス分類ごとのプレフィックス(`c--`/`a--`/`l--`/`is--`/`has--`/`set--`/`u--`)と各分類の責務・所属レイヤーは、[css-rules.md](./css-rules.md#クラス分類とプレフィックス)の分類表を正本とします。
68
57
 
69
- **使い分けの判断軸:**
58
+ プレフィックスに続く名称は camelCase(例: `c--myComponent`)。`is--`/`has--`/`set--`/`u--`にも同じ規則が適用されます。
70
59
 
71
- | プレフィックス | 責務 | 代表例 |
72
- |---|---|---|
73
- | `set--` | HTML 要素の基礎スタイリング / 変数セット | `set--plain`, `set--revert`, `set--hov`, `set--bxsh` |
74
- | `is--` | 〜である(役割・存在の宣言)。CSS 変数は必須ではない | `is--container`, `is--wrapper`, `is--layer` |
75
- | `has--` | 〜を持つ(単一機能 trait の付与)。CSS 変数でカスタマイズ可 | `has--transition`, `has--gutter`, `has--snap`, `has--mask` |
76
- | `u--` | 装飾的効果(単独 or 子要素の装飾) | `u--trim`, `u--cbox`, `u--divide`, `u--enclose` |
60
+ ### `c--*`の命名
77
61
 
78
- - `set--` は `lism-base` 層で HTML 要素の基礎スタイル・変数を提供するもの。
79
- - `is--` / `has--` は `lism-trait` 層に属する。
62
+ Block/Element/Modifierの形式(Block=`c--{name}`、Element=`_`ひとつ、Modifier=`--`ふたつ)は[css-rules.md](./css-rules.md#component-classc--)を参照。Block名はcamelCaseを第一候補にし、既存コードがアンダースコア区切りならそれに合わせます。単語区切りのハイフン(`c--feature-card`)とBEM風の`__`は使いません(NG→OK例は[antipatterns-layout.md](./antipatterns-layout.md#クラス名の命名ミス)を参照)。
80
63
 
81
64
  Property Class の形式:
82
65
 
@@ -85,7 +68,6 @@ Property Class の形式:
85
68
  - ブレークポイント値を受け取る: `-{prop}_{bp}`
86
69
  - 修飾子 + Property Class 合成: `-{modifier}:-{prop}`(例: `-hov:-c` は `-c` の hover バリアント)
87
70
 
88
-
89
71
  ## `{prop}` の省略ルール
90
72
 
91
73
  基本は [Emmet](https://docs.emmet.io/cheat-sheet/) 準拠。
@@ -97,15 +79,15 @@ Property Class の形式:
97
79
  1文字に省略する主要プロパティは以下の通り(このリストが全て)。
98
80
 
99
81
  | 省略 | プロパティ | 省略 | プロパティ |
100
- |------|-----------|------|-----------|
101
- | `p` | `padding` | `i` | `inset` |
102
- | `m` | `margin` | `t` | `top` |
103
- | `g` | `gap` | `b` | `bottom` |
104
- | `c` | `color` | `l` | `left` |
105
- | `f` | `font` | `r` | `right` |
106
- | `w` | `width` | `o` | `opacity` |
107
- | `h` | `height` | `v` | `visibility` |
108
- | `d` | `display` | `z` | `z-index` |
82
+ | --- | --- | --- | --- |
83
+ | `p` | `padding` | `i` | `inset` |
84
+ | `m` | `margin` | `t` | `top` |
85
+ | `g` | `gap` | `b` | `bottom` |
86
+ | `c` | `color` | `l` | `left` |
87
+ | `f` | `font` | `r` | `right` |
88
+ | `w` | `width` | `o` | `opacity` |
89
+ | `h` | `height` | `v` | `visibility` |
90
+ | `d` | `display` | `z` | `z-index` |
109
91
 
110
92
  Emmet と異なるのは `o` (`opacity`) のみ。
111
93
 
@@ -114,7 +96,7 @@ Emmet と異なるのは `o` (`opacity`) のみ。
114
96
  #### 基本形式: 「グループ略称」+「サブプロパティ名の省略形」
115
97
 
116
98
  | CSS プロパティ | Prop |
117
- |-------------|------|
99
+ | --- | --- |
118
100
  | font-size | `fz` |
119
101
  | font-weight | `fw` |
120
102
  | background-color | `bgc` |
@@ -130,7 +112,7 @@ Emmet と異なるのは `o` (`opacity`) のみ。
130
112
  `inline-start`/`inline-end`は`is`/`ie`ではなく、すでに普及しているCSSフレームワークの慣習に沿って`s`/`e`とする。
131
113
 
132
114
  | 方向 | サフィックス | 例 |
133
- |------|-----------|-----|
115
+ | --- | --- | --- |
134
116
  | physical | `-t` / `-b` / `-l` / `-r` | `bd-t`, `bd-b`, `bd-l`, `bd-r` |
135
117
  | inline / block | `-x` / `-y` | `bd-x`, `bd-y` |
136
118
  | inline-start / end | `-s` / `-e` | `bd-s`, `bd-e`, `ps`, `pe`, `ms`, `me`, `i-s`, `i-e` |
@@ -154,7 +136,7 @@ NG例: `flex` → `fx` としたうえで `flex-shrink` を `fsh` にする(`f
154
136
  2. ハイフン繋がり、または6文字以上: Emmet形式または認識しやすい範囲で省略
155
137
 
156
138
  | CSS プロパティ | Prop | 分類 |
157
- |-------------|------|------|
139
+ | --- | --- | --- |
158
140
  | float | `float` | そのまま |
159
141
  | order | `order` | そのまま |
160
142
  | position | `pos` | 省略 |
@@ -170,13 +152,12 @@ NG例: `flex` → `fx` としたうえで `flex-shrink` を `fsh` にする(`f
170
152
  グループを持たない1文字プロパティや、方向プロパティのみをサブプロパティに持つ場合は、衝突しない範囲で再利用可。
171
153
 
172
154
  | 1文字 Prop | 再利用先 | 展開例 |
173
- |-----------|---------|--------|
155
+ | --- | --- | --- |
174
156
  | `t`(`top`) | `text-*` | `ta`(`text-align`) |
175
157
  | `l`(`left`) | `line-*` | `lh`(`line-height`) |
176
158
  | `w`(`width`) | `writing-*` | `wm`(`writing-mode`) |
177
159
  | `p`(`padding`) | `place-*` | `pi`(`place-items`) |
178
160
 
179
-
180
161
  ## `{value}` の省略ルール
181
162
 
182
163
  ### 基本: CSS の実値をそのまま使う
@@ -218,7 +199,7 @@ opacity トークンは音楽記号に由来する例外的な命名で、その
218
199
  6文字以上かつ省略しても意味が通るものは省略可:
219
200
 
220
201
  | 実際の値 | 省略名 | クラスの例 |
221
- |--------|------------|-----|
202
+ | --- | --- | --- |
222
203
  | `uppercase` | `upper` | `-tt:upper` |
223
204
  | `lowercase` | `lower` | `-tt:lower` |
224
205
  | `fit-content` | `fit` | `-w:fit`, `-h:fit` |
@@ -18,11 +18,11 @@ Lism CSS では、レイアウトを組み立てる小さな積み木として *
18
18
  ## プレフィックス一覧
19
19
 
20
20
  | プレフィックス | 種類 | サブレイヤー | 役割 |
21
- |--------------|------|------------|------|
21
+ | --- | --- | --- | --- |
22
22
  | `l--` | Layout Primitive | `lism-primitive.layout` | レイアウトの構成単位となる Primitive |
23
23
  | `a--` | Atomic Primitive | `lism-primitive.atomic` | レイアウトの最小単位(アイコン・区切り線等) |
24
24
 
25
- 併用ルールは [css-rules.md](./css-rules.md#プレフィックスとクラス分類) を参照してください。
25
+ 併用ルールは [css-rules.md](./css-rules.md#クラス分類とプレフィックス) を参照してください。
26
26
 
27
27
 
28
28
  ## Layout Primitive(`l--`)
@@ -30,7 +30,7 @@ Lism CSS では、レイアウトを組み立てる小さな積み木として *
30
30
  レイアウト構造を定義するメインの Primitive 群です。
31
31
 
32
32
  | クラス | 用途 |
33
- |--------|-------------|
33
+ | --- | --- |
34
34
  | `l--box` | 汎用ボックス |
35
35
  | `l--flex` | 横方向の基本的なFlexboxレイアウト |
36
36
  | `l--stack` | 縦方向の縦積みFlexboxレイアウト(`flex-direction: column`)。 |
@@ -57,7 +57,7 @@ Lism CSS では、レイアウトを組み立てる小さな積み木として *
57
57
  各 Primitive がどの用途に向いているか:
58
58
 
59
59
  | やりたいこと | `l--columns` | `l--autoColumns` | `l--switchColumns` | `l--withSide` | `l--grid` |
60
- |---|---|---|---|---|---|
60
+ | --- | --- | --- | --- | --- | --- |
61
61
  | 等幅 N 列 | ◯ | ◯ | ✗ | ✗ | △ |
62
62
  | 横並び ↔ 1 列の一括切替 | ◯ | ✗ | ◯ | ✗ | △ |
63
63
  | カラム最小幅で自動折返し | ✗ | ◯ | ✗ | ✗ | △ |
@@ -127,7 +127,7 @@ Lism CSS では、レイアウトを組み立てる小さな積み木として *
127
127
  レイアウト構成物の最小単位となる Primitive です。
128
128
 
129
129
  | クラス | 用途 |
130
- |--------|------|
130
+ | --- | --- |
131
131
  | `a--icon` | SVG アイコン。`flex-shrink: 0`, デフォルトサイズ `1em` |
132
132
  | `a--divider` | 区切り線。`--bdc`, `--bds`, `--bdw` 変数でカスタマイズ |
133
133
  | `a--spacer` | 空白要素(`min-height: 1px; min-width: 1px`) |
@@ -2,40 +2,14 @@
2
2
 
3
3
  コンテンツを装飾するための空要素として使うクラス。`<Decorator>` は `<Lism atomic="decorator" aria-hidden="true" />` のエイリアスとして用意されています。
4
4
 
5
- ## 基本情報
6
-
7
- - クラス名: `a--decorator`
8
- - コンポーネント: `<Decorator>`
9
- - 公式ドキュメント: https://lism-css.com/docs/primitives/a--decorator.md
5
+ 公式ドキュメント(使い方・コード例): https://lism-css.com/docs/primitives/a--decorator.md
10
6
 
11
7
  ## 専用Props
12
8
 
13
9
  | Prop | 説明 |
14
- |------|------|
10
+ | --- | --- |
15
11
  | `size` | デコレーターのサイズを一括指定。この指定があると `w`(`width`)に値が渡され、自動で `ar="1/1"`(`aspect-ratio:1/1`)が付与される |
16
12
 
17
- ## Usage
18
-
19
- ### 装飾に使用する例(コーナー装飾)
20
-
21
- `pos="absolute"` と組み合わせて、親の四隅にコーナー枠を配置する例です。`bdc="current"` で文字色に追随します。
22
-
23
- ```jsx
24
- <Box p="30" pos="relative">
25
- <p>本文テキスト...</p>
26
- <Decorator size="1.25em" pos="absolute" t="0" l="0" bd-s bd-bs bdc="current" />
27
- <Decorator size="1.25em" pos="absolute" r="0" b="0" bd-e bd-be bdc="current" />
28
- </Box>
29
- ```
30
-
31
- ```html
32
- <div class="l--box -p:30 -pos:relative">
33
- <p>本文テキスト...</p>
34
- <div class="a--decorator -pos:absolute -t:0 -l:0 -bd-s -bd-bs -bdc:current -ar:1/1 -w" style="--w:1.25em" aria-hidden="true"></div>
35
- <div class="a--decorator -pos:absolute -r:0 -b:0 -bd-e -bd-be -bdc:current -ar:1/1 -w" style="--w:1.25em" aria-hidden="true"></div>
36
- </div>
37
- ```
38
-
39
13
  ## 関連プリミティブ
40
14
 
41
15
  - [a--spacer](./a--spacer.md) — 要素間スペース
@@ -2,58 +2,7 @@
2
2
 
3
3
  コンテンツ間に区切り線を描画するクラス。`--bdc` は `var(--divider)` が初期セットされます。`<Divider>` は `<Lism atomic="divider" aria-hidden="true" />` のエイリアスとして用意されています。
4
4
 
5
- ## 基本情報
6
-
7
- - クラス名: `a--divider`
8
- - コンポーネント: `<Divider>`
9
- - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/atomic/_divider.scss
10
- - 公式ドキュメント: https://lism-css.com/docs/primitives/a--divider.md
11
-
12
- ## Usage
13
-
14
- ### 基本的な使い方
15
-
16
- ```jsx
17
- <Box bgc="base-2" py="40" ta="center">...Contents...</Box>
18
- <Divider />
19
- <Box bgc="base-2" py="40" ta="center">...Contents...</Box>
20
- ```
21
-
22
- ```html
23
- <div class="l--box -bgc:base-2 -py:40 -ta:center">...Contents...</div>
24
- <div class="a--divider" aria-hidden="true"></div>
25
- <div class="l--box -bgc:base-2 -py:40 -ta:center">...Contents...</div>
26
- ```
27
-
28
- ### スタイルの変更
29
-
30
- ```jsx
31
- <Divider bds="dotted" bdw="4px" bdc="blue" />
32
- ```
33
-
34
- ```html
35
- <div class="a--divider" aria-hidden="true" style="--bds: dotted; --bdw: 4px; --bdc: var(--blue)"></div>
36
- ```
37
-
38
- ### 縦方向の区切り線
39
-
40
- Property Class `-wm:vertical-rl`(または `<Divider wm="vertical-rl">`)を指定すると縦方向の区切り線になります。Flex 子要素として使うなら `aslf="stretch"` で高さいっぱいに伸ばせます。
41
-
42
- ```jsx
43
- <Flex ai="center" g="20">
44
- <Box fx="1" bgc="base-2" py="40">...Contents...</Box>
45
- <Divider wm="vertical-rl" bds="dashed" bdw="2px" aslf="stretch" />
46
- <Box fx="1" bgc="base-2" py="40">...Contents...</Box>
47
- </Flex>
48
- ```
49
-
50
- ```html
51
- <div class="l--flex -g:20 -ai:center">
52
- <div class="-fx:1 -bgc:base-2 -py:40">...Contents...</div>
53
- <div class="a--divider -wm:vertical-rl -aslf:stretch" style="--bds: dashed; --bdw: 2px" aria-hidden="true"></div>
54
- <div class="-fx:1 -bgc:base-2 -py:40">...Contents...</div>
55
- </div>
56
- ```
5
+ 公式ドキュメント(使い方・コード例): https://lism-css.com/docs/primitives/a--divider.md
57
6
 
58
7
  ## 関連プリミティブ
59
8