@lism-css/mcp 0.11.0 → 0.13.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 (61) hide show
  1. package/README.ja.md +4 -2
  2. package/README.md +4 -2
  3. package/dist/data/docs-index.json +456 -178
  4. package/dist/data/guides/SKILL.md +154 -0
  5. package/dist/data/guides/base-styles.md +106 -0
  6. package/dist/data/guides/components-core.md +292 -0
  7. package/dist/data/guides/components-ui.md +351 -0
  8. package/dist/data/guides/css-rules.md +166 -0
  9. package/dist/data/guides/primitive-class.md +148 -0
  10. package/dist/data/guides/primitives/a--decorator.md +45 -0
  11. package/dist/data/guides/primitives/a--divider.md +69 -0
  12. package/dist/data/guides/primitives/a--icon.md +105 -0
  13. package/dist/data/guides/primitives/a--spacer.md +63 -0
  14. package/dist/data/guides/primitives/is--boxLink.md +97 -0
  15. package/dist/data/guides/primitives/is--container.md +46 -0
  16. package/dist/data/guides/primitives/is--layer.md +71 -0
  17. package/dist/data/guides/primitives/is--vertical.md +52 -0
  18. package/dist/data/guides/primitives/is--wrapper.md +87 -0
  19. package/dist/data/guides/primitives/l--box.md +31 -0
  20. package/dist/data/guides/primitives/l--center.md +55 -0
  21. package/dist/data/guides/primitives/l--cluster.md +38 -0
  22. package/dist/data/guides/primitives/l--columns.md +72 -0
  23. package/dist/data/guides/primitives/l--flex.md +74 -0
  24. package/dist/data/guides/primitives/l--flow.md +134 -0
  25. package/dist/data/guides/primitives/l--fluidCols.md +68 -0
  26. package/dist/data/guides/primitives/l--frame.md +94 -0
  27. package/dist/data/guides/primitives/l--grid.md +68 -0
  28. package/dist/data/guides/primitives/l--sideMain.md +102 -0
  29. package/dist/data/guides/primitives/l--stack.md +56 -0
  30. package/dist/data/guides/primitives/l--switchCols.md +69 -0
  31. package/dist/data/guides/primitives/l--tileGrid.md +61 -0
  32. package/dist/data/guides/prop-responsive.md +54 -0
  33. package/dist/data/guides/property-class.md +401 -0
  34. package/dist/data/guides/set-class.md +192 -0
  35. package/dist/data/guides/tokens.md +228 -0
  36. package/dist/data/guides/utility-class.md +82 -0
  37. package/dist/data/meta.js +2 -2
  38. package/dist/index.js +4 -0
  39. package/dist/lib/load-data.js +2 -11
  40. package/dist/lib/load-markdown.d.ts +7 -0
  41. package/dist/lib/load-markdown.js +47 -0
  42. package/dist/lib/markdown-utils.d.ts +42 -0
  43. package/dist/lib/markdown-utils.js +158 -0
  44. package/dist/lib/schemas.d.ts +0 -242
  45. package/dist/lib/schemas.js +0 -64
  46. package/dist/lib/search.d.ts +2 -16
  47. package/dist/lib/search.js +29 -69
  48. package/dist/lib/types.d.ts +0 -64
  49. package/dist/tools/convert-css.js +96 -55
  50. package/dist/tools/get-component.js +150 -30
  51. package/dist/tools/get-guide.d.ts +2 -0
  52. package/dist/tools/get-guide.js +45 -0
  53. package/dist/tools/get-overview.js +26 -39
  54. package/dist/tools/get-props-system.js +45 -33
  55. package/dist/tools/get-tokens.js +9 -14
  56. package/dist/tools/search-docs.js +28 -10
  57. package/package.json +2 -2
  58. package/dist/data/components.json +0 -564
  59. package/dist/data/overview.json +0 -114
  60. package/dist/data/props-system.json +0 -1147
  61. package/dist/data/tokens.json +0 -148
@@ -0,0 +1,401 @@
1
+ # Property Class
2
+
3
+ Property Class は、主要な CSS プロパティに対して頻繁に使用される値やトークンを手軽にセットできるユーティリティクラスです。
4
+ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})` / `-{prop}_{bp}` の形式で定義されています。
5
+
6
+ ## TOC
7
+
8
+ - [基本書式](#基本書式)
9
+ - [表の読み方](#表の読み方)
10
+ - [全 Prop 一覧](#全-prop-一覧)
11
+ - [特殊な Property Class](#特殊な-property-class)
12
+ - [ボーダー(`bd` 系)](#ボーダーbd-系)
13
+ - [ホバー(`hov` 系)](#ホバーhov-系)
14
+ - [その他](#その他)
15
+ - [値の省略形(例外一覧)](#値の省略形例外一覧)
16
+ - [Property Class の特殊な出力タイプ](#property-class-の特殊な出力タイプ)
17
+ - [Property Class の検索・一括修正](#property-class-の検索一括修正)
18
+
19
+ [詳細](https://lism-css.com/docs/property-class/)
20
+
21
+ ---
22
+
23
+ ## 基本書式
24
+
25
+ ### プリセット値
26
+
27
+ トークンやプリセットに対応する値は、`-{prop}:{value}` の書式でクラスを指定します。
28
+
29
+ ```html
30
+ <div class="-p:20 -fz:l -c:brand">...</div>
31
+ ```
32
+
33
+ ### カスタム値(任意の値)
34
+
35
+ トークンやプリセットに該当しない任意の値は、**`-{prop}` クラス** と **`--{prop}` CSS変数** の組み合わせで指定します。
36
+
37
+ ```html
38
+ <!-- カスタム値: .-{prop} クラス + --{prop} 変数 -->
39
+ <div class="-w" style="--w: 200px">...</div>
40
+ <div class="-gtc" style="--gtc: 1fr 2fr 1fr">...</div>
41
+ ```
42
+
43
+
44
+ ## 表の読み方
45
+
46
+ | カラム | 説明 |
47
+ |--------|------|
48
+ | **Prop** | クラス名に使う省略名(例: `-fz:l` の `fz` 部分)。Lism コンポーネントの Props 名でもある |
49
+ | **CSS プロパティ** | 実際に制御される CSS プロパティ |
50
+ | **プリセット値クラス** | そのまま使えるクラス名の一覧(`-{prop}:{value}` 形式)。`—` はカスタム値のみ対応 |
51
+ | **BP クラス** | ブレークポイント対応クラス。`—` は非対応 |
52
+
53
+
54
+ ## 全 Prop 一覧
55
+
56
+ ソース: [props.ts](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/config/defaults/props.ts)
57
+
58
+ ### タイポグラフィ
59
+
60
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
61
+ |------|--------------|-------------|-----|
62
+ | `f` | `font` | `-f:inherit` | — |
63
+ | `fz` | `font-size` | `-fz:root`, `-fz:base`, `-fz:5xl`〜`-fz:2xs` | `-fz_sm`, `-fz_md` |
64
+ | `fw` | `font-weight` | `-fw:light`, `-fw:normal`, `-fw:bold`, `-fw:100`〜`-fw:900` | — |
65
+ | `ff` | `font-family` | `-ff:base`, `-ff:accent`, `-ff:mono` | — |
66
+ | `fs` | `font-style` | `-fs:italic` | — |
67
+ | `lh` | `line-height`(`--hl` 経由) | `-lh:base`, `-lh:xs`, `-lh:s`, `-lh:l`, `-lh:1` | — |
68
+ | `hl` | `--hl` 変数のみ | — | `-hl_sm`, `-hl_md` |
69
+ | `lts` | `letter-spacing` | `-lts:base`, `-lts:s`, `-lts:l` | — |
70
+ | `ta` | `text-align` | `-ta:center`, `-ta:left`, `-ta:right` | — |
71
+ | `td` | `text-decoration` | `-td:none` | — |
72
+ | `tt` | `text-transform` | `-tt:upper`, `-tt:lower` | — |
73
+
74
+ **注意:** `lh` は `--hl`(half-leading)変数を介して `line-height: calc(1em + var(--hl) * 2)` を制御します。`hl` は `--hl` 変数を直接セットするだけの isVar タイプです。
75
+
76
+ ### 表示・可視性
77
+
78
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
79
+ |------|--------------|-------------|-----|
80
+ | `d` | `display` | `-d:none`, `-d:block`, `-d:flex`, `-d:inline-flex`, `-d:grid`, `-d:inline-grid` | `-d_sm`, `-d_md` |
81
+ | `o` | `opacity` | `-o:0`, `-o:-10`, `-o:-20`, `-o:-30` | — |
82
+ | `v` | `visibility` | `-v:hidden` | — |
83
+ | `ov` | `overflow` | `-ov:hidden`, `-ov:auto`, `-ov:clip` | — |
84
+ | `ov-x` | `overflow-x` | `-ov-x:clip`, `-ov-x:auto`, `-ov-x:scroll` | — |
85
+ | `ov-y` | `overflow-y` | `-ov-y:clip`, `-ov-y:auto`, `-ov-y:scroll` | — |
86
+ | `ar` | `aspect-ratio` | `-ar:21/9`, `-ar:16/9`, `-ar:3/2`, `-ar:1/1`, `-ar:og` | `-ar_sm`, `-ar_md` |
87
+
88
+ ### サイズ
89
+
90
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
91
+ |------|--------------|-------------|-----|
92
+ | `w` | `width` | `-w:100%`, `-w:fit` | `-w_sm`, `-w_md` |
93
+ | `h` | `height` | `-h:100%`, `-h:fit` | `-h_sm`, `-h_md` |
94
+ | `min-w` | `min-width` | `-min-w:100%` | `-min-w_sm`, `-min-w_md` |
95
+ | `max-w` | `max-width` | `-max-w:100%` | `-max-w_sm`, `-max-w_md` |
96
+ | `min-h` | `min-height` | `-min-h:100%` | `-min-h_sm`, `-min-h_md` |
97
+ | `max-h` | `max-height` | `-max-h:100%` | `-max-h_sm`, `-max-h_md` |
98
+ | `sz` | `inline-size` | — | — |
99
+ | `min-sz` | `min-inline-size` | — | — |
100
+ | `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:container` | — |
101
+ | `ysz` | `block-size` | — | — |
102
+ | `min-ysz` | `min-block-size` | — | — |
103
+ | `max-ysz` | `max-block-size` | — | — |
104
+
105
+ **`max-sz` の特殊クラス:**
106
+ - `-max-sz:full` — `max-inline-size: 100%`。`.set--gutter` 内では gutter 分を含めた全幅に拡張
107
+ - `-max-sz:container` — コンテナ幅に合わせる(`margin-inline` で中央配置)
108
+
109
+ ### 背景
110
+
111
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
112
+ |------|--------------|-------------|-----|
113
+ | `bg` | `background` | — | `-bg_sm`, `-bg_md` |
114
+ | `bgi` | `background-image` | — | — |
115
+ | `bgr` | `background-repeat` | `-bgr:no-repeat` | — |
116
+ | `bgp` | `background-position` | `-bgp:center` | — |
117
+ | `bgsz` | `background-size` | `-bgsz:cover`, `-bgsz:contain` | — |
118
+ | `bgc` | `background-color` | `-bgc:base`, `-bgc:base-2`, `-bgc:text`, `-bgc:brand`, `-bgc:accent`, `-bgc:inherit`, `-bgc:transparent` | — |
119
+
120
+ ### カラー
121
+
122
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
123
+ |------|--------------|-------------|-----|
124
+ | `c` | `color` | `-c:base`, `-c:text`, `-c:text-2`, `-c:brand`, `-c:accent`, `-c:inherit` | — |
125
+ | `keycolor` | `--keycolor` 変数のみ | — | — |
126
+
127
+ セマンティックカラー: `base`, `base-2`, `text`, `text-2`, `divider`, `link`, `brand`, `accent`
128
+ パレットカラー: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `gray`, `white`, `black`
129
+ キーカラー変数: `keycolor`(ユーザー定義の `--keycolor` を参照する独立変数。詳細は `tokens.md` を参照)
130
+
131
+ ### 角丸
132
+
133
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
134
+ |------|--------------|-------------|-----|
135
+ | `bdrs` | `border-radius` | `-bdrs:0`, `-bdrs:10`, `-bdrs:20`, `-bdrs:30`, `-bdrs:40`, `-bdrs:99`, `-bdrs:inner` | `-bdrs_sm`, `-bdrs_md` |
136
+ | `bdrs-tl` | `border-top-left-radius` | — | — |
137
+ | `bdrs-tr` | `border-top-right-radius` | — | — |
138
+ | `bdrs-br` | `border-bottom-right-radius` | — | — |
139
+ | `bdrs-bl` | `border-bottom-left-radius` | — | — |
140
+ | `bdrs-ss` | `border-start-start-radius` | — | — |
141
+ | `bdrs-se` | `border-start-end-radius` | — | — |
142
+ | `bdrs-es` | `border-end-start-radius` | — | — |
143
+ | `bdrs-ee` | `border-end-end-radius` | — | — |
144
+
145
+ ### 影
146
+
147
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
148
+ |------|--------------|-------------|-----|
149
+ | `bxsh` | `box-shadow` | `-bxsh:0`, `-bxsh:10`, `-bxsh:20`, `-bxsh:30`, `-bxsh:40` | `-bxsh_sm`, `-bxsh_md` |
150
+
151
+ **注意:** `bxsh` の使用時は `set--shadow` クラスの併用が必要です(影色 `--shc` の再計算のため)。
152
+
153
+ ### ポジション
154
+
155
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
156
+ |------|--------------|-------------|-----|
157
+ | `pos` | `position` | `-pos:static`, `-pos:fixed`, `-pos:sticky`, `-pos:relative`, `-pos:absolute` | — |
158
+ | `z` | `z-index` | `-z:-1`, `-z:0`, `-z:1`, `-z:99` | — |
159
+ | `t` | `top` | `-t:0`, `-t:50%`, `-t:100%` | — |
160
+ | `l` | `left` | `-l:0`, `-l:50%`, `-l:100%` | — |
161
+ | `r` | `right` | `-r:0`, `-r:50%`, `-r:100%` | — |
162
+ | `b` | `bottom` | `-b:0`, `-b:50%`, `-b:100%` | — |
163
+ | `i` | `inset` | `-i:0` | — |
164
+ | `i-x` | `inset-inline` | — | — |
165
+ | `i-y` | `inset-block` | — | — |
166
+ | `i-x-s` | `inset-inline-start` | — | — |
167
+ | `i-x-e` | `inset-inline-end` | — | — |
168
+ | `i-y-s` | `inset-block-start` | — | — |
169
+ | `i-y-e` | `inset-block-end` | — | — |
170
+
171
+ ### スペーシング — Padding
172
+
173
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
174
+ |------|--------------|-------------|-----|
175
+ | `p` | `padding` | `-p:0`, `-p:5`, `-p:10`, `-p:20`, ... (SPACE トークン) | `-p_sm`, `-p_md` |
176
+ | `px` | `padding-inline` | `-px:0`, `-px:5`, `-px:10`, `-px:20`, ... (SPACE トークン) | `-px_sm`, `-px_md` |
177
+ | `py` | `padding-block` | `-py:0`, `-py:5`, `-py:10`, `-py:20`, ... (SPACE トークン) | `-py_sm`, `-py_md` |
178
+ | `px-s` | `padding-inline-start` | — | `-px-s_sm`, `-px-s_md` |
179
+ | `px-e` | `padding-inline-end` | — | `-px-e_sm`, `-px-e_md` |
180
+ | `py-s` | `padding-block-start` | — | `-py-s_sm`, `-py-s_md` |
181
+ | `py-e` | `padding-block-end` | — | `-py-e_sm`, `-py-e_md` |
182
+ | `pl` | `padding-left` | — | `-pl_sm`, `-pl_md` |
183
+ | `pr` | `padding-right` | — | `-pr_sm`, `-pr_md` |
184
+ | `pt` | `padding-top` | — | `-pt_sm`, `-pt_md` |
185
+ | `pb` | `padding-bottom` | — | `-pb_sm`, `-pb_md` |
186
+
187
+ SPACE トークン(全値): `5`, `10`, `15`, `20`, `30`, `40`, `50`, `60`, `70`, `80`
188
+
189
+ ### スペーシング — Margin
190
+
191
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
192
+ |------|--------------|-------------|-----|
193
+ | `m` | `margin` | `-m:auto`, `-m:0`, `-m:5`, `-m:10`, `-m:20`, ... (SPACE トークン) | `-m_sm`, `-m_md` |
194
+ | `mx` | `margin-inline` | `-mx:auto`, `-mx:0`, `-mx:5`, `-mx:10`, `-mx:20`, ... (SPACE トークン) | `-mx_sm`, `-mx_md` |
195
+ | `my` | `margin-block` | `-my:auto`, `-my:0`, `-my:5`, `-my:10`, `-my:20`, ... (SPACE トークン) | `-my_sm`, `-my_md` |
196
+ | `mx-s` | `margin-inline-start` | `-mx-s:auto` | `-mx-s_sm`, `-mx-s_md` |
197
+ | `mx-e` | `margin-inline-end` | `-mx-e:auto` | `-mx-e_sm`, `-mx-e_md` |
198
+ | `my-s` | `margin-block-start` | `-my-s:auto`, `-my-s:0`, `-my-s:5`, `-my-s:10`, `-my-s:20`, ... (SPACE トークン) | `-my-s_sm`, `-my-s_md` |
199
+ | `my-e` | `margin-block-end` | `-my-e:auto` | `-my-e_sm`, `-my-e_md` |
200
+ | `ml` | `margin-left` | — | `-ml_sm`, `-ml_md` |
201
+ | `mr` | `margin-right` | — | `-mr_sm`, `-mr_md` |
202
+ | `mt` | `margin-top` | — | `-mt_sm`, `-mt_md` |
203
+ | `mb` | `margin-bottom` | — | `-mb_sm`, `-mb_md` |
204
+
205
+ ### Gap
206
+
207
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
208
+ |------|--------------|-------------|-----|
209
+ | `g` | `gap` | `-g:0`, `-g:inherit`, `-g:5`, `-g:10`, `-g:20`, ... (SPACE トークン) | `-g_sm`, `-g_md` |
210
+ | `cg` | `column-gap` | — | `-cg_sm`, `-cg_md` |
211
+ | `rg` | `row-gap` | — | `-rg_sm`, `-rg_md` |
212
+
213
+ ### Flex
214
+
215
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
216
+ |------|--------------|-------------|-----|
217
+ | `fxf` | `flex-flow` | — | — |
218
+ | `fxw` | `flex-wrap` | `-fxw:wrap` | `-fxw_sm`, `-fxw_md` |
219
+ | `fxd` | `flex-direction` | `-fxd:column`, `-fxd:column-reverse`, `-fxd:row-reverse` | `-fxd_sm`, `-fxd_md` |
220
+ | `fx` | `flex` | `-fx:1` | `-fx_sm`, `-fx_md` |
221
+ | `fxg` | `flex-grow` | `-fxg:1` | — |
222
+ | `fxsh` | `flex-shrink` | `-fxsh:0` | — |
223
+ | `fxb` | `flex-basis` | — | `-fxb_sm`, `-fxb_md` |
224
+
225
+ ### Grid
226
+
227
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
228
+ |------|--------------|-------------|-----|
229
+ | `gt` | `grid-template` | — | `-gt_sm`, `-gt_md` |
230
+ | `gta` | `grid-template-areas` | — | `-gta_sm`, `-gta_md` |
231
+ | `gtc` | `grid-template-columns` | `-gtc:subgrid` | `-gtc_sm`, `-gtc_md` |
232
+ | `gtr` | `grid-template-rows` | `-gtr:subgrid` | `-gtr_sm`, `-gtr_md` |
233
+ | `gaf` | `grid-auto-flow` | `-gaf:row`, `-gaf:column` | `-gaf_sm`, `-gaf_md` |
234
+ | `gac` | `grid-auto-columns` | — | — |
235
+ | `gar` | `grid-auto-rows` | — | — |
236
+ | `cols` | `--cols` 変数 | — | `-cols_sm`, `-cols_md` |
237
+ | `rows` | `--rows` 変数 | — | `-rows_sm`, `-rows_md` |
238
+
239
+ ### Grid アイテム
240
+
241
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
242
+ |------|--------------|-------------|-----|
243
+ | `ga` | `grid-area` | `-ga:1/1` | `-ga_sm`, `-ga_md` |
244
+ | `gc` | `grid-column` | `-gc:1/-1` | `-gc_sm`, `-gc_md` |
245
+ | `gr` | `grid-row` | `-gr:1/-1` | `-gr_sm`, `-gr_md` |
246
+ | `gcs` | `grid-column-start` | — | — |
247
+ | `gce` | `grid-column-end` | — | — |
248
+ | `grs` | `grid-row-start` | — | — |
249
+ | `gre` | `grid-row-end` | — | — |
250
+
251
+ ### 配置(Places)
252
+
253
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
254
+ |------|--------------|-------------|-----|
255
+ | `ai` | `align-items` | `-ai:start`, `-ai:center`, `-ai:end`, `-ai:stretch`, `-ai:flex-start`, `-ai:flex-end` | `-ai_sm`, `-ai_md` |
256
+ | `ac` | `align-content` | `-ac:start`, `-ac:center`, `-ac:end`, `-ac:flex-start`, `-ac:flex-end`, `-ac:between` | `-ac_sm`, `-ac_md` |
257
+ | `ji` | `justify-items` | `-ji:start`, `-ji:center`, `-ji:end`, `-ji:stretch`, `-ji:flex-start`, `-ji:flex-end` | `-ji_sm`, `-ji_md` |
258
+ | `jc` | `justify-content` | `-jc:start`, `-jc:center`, `-jc:end`, `-jc:flex-start`, `-jc:flex-end`, `-jc:between` | `-jc_sm`, `-jc_md` |
259
+ | `pi` | `place-items` | `-pi:start`, `-pi:center`, `-pi:end` | — |
260
+ | `pc` | `place-content` | `-pc:start`, `-pc:center`, `-pc:end` | — |
261
+ | `aslf` | `align-self` | `-aslf:start`, `-aslf:center`, `-aslf:end`, `-aslf:stretch` | — |
262
+ | `jslf` | `justify-self` | `-jslf:start`, `-jslf:center`, `-jslf:end`, `-jslf:stretch` | — |
263
+ | `pslf` | `place-self` | `-pslf:start`, `-pslf:center`, `-pslf:end` | — |
264
+ | `order` | `order` | `-order:0`, `-order:-1`, `-order:1` | — |
265
+
266
+ **コンポーネント用ショートハンド:** `ai`, `ac`, `ji`, `jc`, `aslf`, `jslf` では `s`→`start`, `e`→`end`, `c`→`center`, `fs`→`flex-start`, `fe`→`flex-end` のショートハンドが使えます。
267
+
268
+ ## 特殊な Property Class
269
+
270
+ 以下は通常の `.-{prop}:{value}` パターンとは異なる特殊な仕組みを持つ Prop です。
271
+
272
+ ### ボーダー(`bd` 系)
273
+
274
+ [詳細](https://lism-css.com/docs/property-class/bd/)
275
+
276
+ Lism CSS のボーダーは CSS 変数(`--bds`, `--bdw`, `--bdc`)で管理される特殊な仕様です。
277
+ `-bd` または `-bd-{side}` クラスを付けると、初期値(`--bds: solid`, `--bdw: 1px`, `--bdc: var(--divider)`)がセットされ、`bds`, `bdc`, `bdw` Prop で個別に上書きできます。
278
+
279
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
280
+ |------|--------------|-------------|-----|
281
+ | `bd` | `border`(変数管理を有効化) | `-bd:none` | — |
282
+ | `bds` | `--bds` 変数 | `-bds:dashed`, `-bds:dotted`, `-bds:double` | — |
283
+ | `bdc` | `--bdc` 変数 | `-bdc:brand`, `-bdc:accent`, `-bdc:divider`, `-bdc:inherit`, `-bdc:transparent`, `-bdc:current` | — |
284
+ | `bdw` | `--bdw` 変数 | — | `-bdw_sm`, `-bdw_md` |
285
+
286
+ **方向指定:**
287
+
288
+ | Prop | CSS プロパティ |
289
+ |------|--------------|
290
+ | `bd-x` | `border-inline` |
291
+ | `bd-y` | `border-block` |
292
+ | `bd-x-s` | `border-inline-start` |
293
+ | `bd-x-e` | `border-inline-end` |
294
+ | `bd-y-s` | `border-block-start` |
295
+ | `bd-y-e` | `border-block-end` |
296
+ | `bd-t` | `border-top` |
297
+ | `bd-b` | `border-bottom` |
298
+ | `bd-l` | `border-left` |
299
+ | `bd-r` | `border-right` |
300
+
301
+ ```jsx
302
+ // JSX: ボーダー + カスタマイズ
303
+ <Box bd bdc="brand" bdw="2px" bds="dashed">...</Box>
304
+
305
+ // HTML
306
+ <div class="l--box -bd -bdc:brand" style="--bdw: 2px; --bds: dashed">...</div>
307
+
308
+ // 方向指定
309
+ <Box bd-y bdc="divider">...</Box>
310
+ // → <div class="l--box -bd-y -bdc:divider">...</div>
311
+ ```
312
+
313
+ ### ホバー(`hov` 系)
314
+
315
+ [詳細](https://lism-css.com/docs/property-class/hov/)
316
+
317
+ ホバーエフェクト用のクラスです。`-hov:{prop}` 系と `-hov:to:*` 系の2種類があります。
318
+
319
+ **`-hov:{prop}` — ホバー時のプロパティ変更**
320
+
321
+ `:hover` 擬似クラスで直接動作します(`set--hov` は不要)。`@media (any-hover: hover)` 内で定義され、タッチデバイスでは無効になります。
322
+
323
+ | クラス | 効果 | デフォルト値 |
324
+ |--------|------|-------------|
325
+ | `-hov:c` | テキスト色を変更 | `var(--hov-c, var(--link))` |
326
+ | `-hov:bgc` | 背景色を変更 | `var(--hov-bgc, var(--base-2))` |
327
+ | `-hov:bdc` | ボーダー色を変更 | `var(--hov-bdc, currentColor)` |
328
+ | `-hov:o` | 不透明度を変更 | `var(--hov-o, 0.7)` |
329
+ | `-hov:bxsh` | シャドウを変更 | `var(--hov-bxsh, var(--bxsh--40))` |
330
+ | `-hov:neutral` | ニュートラルグレーを混合 | `color-mix(...)` |
331
+
332
+ ```jsx
333
+ // JSX: ホバーで色変更(set--hov なしで動作する)
334
+ <Link hov={{ c: true }}>リンク</Link>
335
+ // → <a class="-hov:c" href="...">リンク</a>
336
+
337
+ // カスタム値を指定
338
+ <Box hov={{ bgc: true }} style={{ '--hov-bgc': 'var(--brand)' }}>...</Box>
339
+ ```
340
+
341
+ **`-hov:to:*` — `set--hov` 連動のトランジションクラス**
342
+
343
+ `set--hov` がセットする `--_isHov` / `--_notHov` 変数を利用して動作します。`set--hov` と `set--transition` の併用が必要です。
344
+
345
+ | クラス | 効果 | 仕組み |
346
+ |--------|------|--------|
347
+ | `-hov:to:hide` | ホバー時にフェードアウト | `opacity: var(--_isHov, 0)` |
348
+ | `-hov:to:show` | ホバー時にフェードイン | `opacity: var(--_notHov, 0)` |
349
+ | `-hov:to:zoom` | ホバー時にズーム | `scale: var(--_isHov, 1.1)` |
350
+
351
+ ```jsx
352
+ // set--hov + set--transition が必要
353
+ <Box set="hov transition">
354
+ <Box hov={{ to: 'show' }}>ホバーで表示</Box>
355
+ </Box>
356
+ ```
357
+
358
+ ## その他
359
+
360
+ | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
361
+ |------|--------------|-------------|-----|
362
+ | `ovwrap` | `overflow-wrap` | `-ovwrap:anywhere` | — |
363
+ | `whspace` | `white-space` | `-whspace:nowrap` | — |
364
+ | `float` | `float` | `-float:left`, `-float:right` | — |
365
+ | `clear` | `clear` | `-clear:both` | — |
366
+ | `isolation` | `isolation` | `-isolation:isolate` | — |
367
+
368
+
369
+ ## 値の省略形(例外一覧)
370
+
371
+ Property Class の値名は基本的に CSS の実値と同じですが、以下は省略形が使われます。
372
+
373
+ | クラス例 | 実際の CSS 値 | 対象 Prop |
374
+ |----------|------------|-----------|
375
+ | `-tt:upper` | `text-transform: uppercase` | `tt` |
376
+ | `-tt:lower` | `text-transform: lowercase` | `tt` |
377
+ | `-w:fit` | `width: fit-content` | `w`, `h` |
378
+ | `-ac:between` | `align-content: space-between` | `ac`, `jc` |
379
+ | `-bdc:current` | `border-color: currentColor` | `bdc` |
380
+
381
+
382
+ ## Property Class の特殊な出力タイプ
383
+
384
+ ### `alwaysVar` タイプ
385
+
386
+ `fz`, `p`, `px`, `py`, `m`, `mx`, `my`, `g`, `c`, `bgc`, `bdrs`, `bxsh` など。
387
+ プリセット値クラス(`-p:20`)でも常に CSS 変数(`--p`)経由で値が適用されます。これにより、子要素や疑似要素から `var(--p)` で親の値を参照できます。
388
+
389
+
390
+ ## Property Class の検索・一括修正
391
+
392
+ Property Class をコードベース全体で一括修正する場合、同じ Prop が**複数の書式**で出現するため、以下のパターンをすべて検索する必要があります。
393
+
394
+ | 出現場所 | 検索パターン例(`p` の場合) |
395
+ |---------|--------------------------|
396
+ | HTML / className — プリセット値 | `-p:20` |
397
+ | HTML / className — BP対応・カスタム値 | `-p` / `-p_sm` / `-p_md` |
398
+ | JSX Props | `p="20"` / `p={20}` / `p={[20, 30]}` |
399
+ | getLismProps オブジェクト | `{ p: '20' }` / `{ p: 20 }` |
400
+
401
+
@@ -0,0 +1,192 @@
1
+ # `set--` クラス
2
+
3
+ `@layer lism-base` に属し、特定の機能を有効にするために CSS変数やベーススタイルをセットアップするクラス群です。
4
+ HTML では直接クラスを付与し、Lism コンポーネントでは `set` prop(`set="plain"`, `set="shadow"` 等)で指定します。
5
+
6
+ `set` prop の記法(複数値指定・`-` prefix による除外)は [components-core.md](./components-core.md#共通-props) を参照してください。
7
+
8
+ ## TOC
9
+
10
+ - [`set--plain`](#set--plain)
11
+ - [`set--shadow`](#set--shadow)
12
+ - [`set--hov`](#set--hov)
13
+ - [`set--transition`](#set--transition)
14
+ - [`set--gutter`](#set--gutter)
15
+ - [`set--innerRs`](#set--innerrs)
16
+ - [`set--bp`](#set--bp)
17
+
18
+ [詳細](https://lism-css.com/docs/set-class/)
19
+
20
+ ---
21
+
22
+ ## 対応ソースコード
23
+
24
+ ソース: https://github.com/lism-css/lism-css/tree/main/packages/lism-css/src/scss/base/set
25
+
26
+ | クラス | ソースファイル |
27
+ |--------|---------------|
28
+ | `set--plain` | [`_plain.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_plain.scss) |
29
+ | `set--shadow` | [`_shadow.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_shadow.scss) |
30
+ | `set--hov` | [`_hov.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_hov.scss) |
31
+ | `set--transition` | [`_transition.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_transition.scss) |
32
+ | `set--gutter` | [`_gutter.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_gutter.scss) |
33
+ | `set--innerRs` | [`_innerRs.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_innerRs.scss) |
34
+ | `set--bp` | [`_bp.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_bp.scss) |
35
+
36
+ ---
37
+
38
+ ## `set--plain`
39
+
40
+ `width`, `color`, `font`, `pading`, `border`など、ブラウザデフォルトスタイルを完全にリセットします。
41
+ ボタン・リンク等のスタイリング時に活用します。
42
+
43
+ 使用例:
44
+ ```html
45
+ <button class="set--plain">...</button>
46
+ ```
47
+ ```jsx
48
+ <Lism as="button" set="plain">...</Lism>
49
+ ```
50
+
51
+ ## `set--shadow`
52
+
53
+ `SHADOW`トークン変数(`--bxsh--{token}`)を再計算するためのクラスです。`:root` で定義される `--shc`(影の色)を特定要素で上書きしたい時に利用します。
54
+
55
+ 使用例:
56
+
57
+ ```html
58
+ <div class="l--box set--shadow -bxsh:20" style="--shc: hsl(200 50% 50% / 20%)">...</div>
59
+ ```
60
+ ```jsx
61
+ <Box set="shadow" bxsh='20' style={{ '--shc': 'hsl(200 50% 50% / 20%)' }}>...</Box>
62
+ ```
63
+
64
+
65
+
66
+ ## `set--hov`
67
+
68
+ ホバー状態の判定変数(`--_notHov`, `--_isHov`)を次のようにセットします。主に**子要素のホバースタイルを制御する**時に活用します。
69
+
70
+ - `--_isHov`は非hover時(かつ非focus-within時)にのみ空白定義さます。
71
+ - `--_notHov`は逆に、hover時またはfocus-within時に空白定義されます。
72
+
73
+ この空変数トリックにより、次のような書き方ができます。
74
+
75
+ - `var(--_isHov, {ホバー時に適用させたい値})`
76
+ - `var(--_notHov, {非ホバー時に適用させたい値})`
77
+
78
+ (`var(--_isHov, ...) var(--_notHov, ...)`とするとホバー前後のスタイルを1行で書くこともできますが、`box-shadow`などの半角スペースで区切って値を調整するプロパティではこの書き方無効となります。)
79
+
80
+ 使用例:
81
+
82
+ ```html
83
+ <div class="-hov:test">...</div>
84
+ ```
85
+ ```css
86
+ .-hov\:test {
87
+ color: var(--_isHov, green) var(--_notHov, red); /* hover時はgreen, 非hover時はred*/
88
+ box-shadow: var(--_isHov, var(--bxsh--30)); /* hover時はshadowをつける(非hover時は無効な値) */
89
+ opacity: var(--_notHov, var(--o--n20)); /* 非hover時は不透明度を下げる(hover時は無効な値) */
90
+ }
91
+ ```
92
+
93
+ さらに、親要素に`set--hov`を付与してその子要素で`--_isHov`変数と`--_notHov`変数を使うことで、親要素のhoverをトリガーとして子要素のスタイルを変化させることも可能になります。
94
+
95
+ 例えば、親のボックスがhoverされたら、その内部の画像をズームするようなケースで活用でき、`-hov:to:zoom`クラスが標準で用意されています。
96
+
97
+ ```html
98
+ <a href="###" class="l--frame is--boxLink set--hov -ar:21/9 -ov:hidden">
99
+ <img class="set--transition -hov:to:zoom" src="https://cdn.lism-css.com/img/a-2.jpg" width="960" height="640" loading="lazy" />
100
+ <div class="is--layer -bgc" style="--c: #fff; --bgc: rgb(0 0 0 / 50%)"></div>
101
+ <div class="l--center is--layer -c" style="--c: #fff;">
102
+ <span class="-fz:xl">バナーリンク</span>
103
+ </div>
104
+ </a>
105
+ ```
106
+
107
+ ```css
108
+ .-hov\:to\:zoom {
109
+ --transProp: scale;
110
+ scale: var(--_isHov, 1.1);
111
+ }
112
+ ```
113
+
114
+
115
+ ## `set--transition`
116
+
117
+ トランジション用の CSS をセットアップします。
118
+
119
+ ```scss
120
+ .set--transition {
121
+ transition: var(--hov-duration, 0.25s) var(--hov-ease, linear) var(--hov-delay, 0s);
122
+ transition-property: var(--hov-prop, all);
123
+ }
124
+ ```
125
+
126
+ | カスタム変数 | デフォルト |
127
+ |-------------|-----------|
128
+ | `--hov-prop` | `all` |
129
+ | `--hov-duration` | `0.25s` |
130
+ | `--hov-ease` | `linear` |
131
+ | `--hov-delay` | `0s` |
132
+
133
+ ```html
134
+ <div class="set--transition -hov:c" style="--hov-prop: color; --hov-c: var(--red);">...</div>
135
+ ```
136
+ ```jsx
137
+ <Lism set="transition" hov={{c: 'red'}} style={{ '--hov-prop': 'color'}}>...</Lism>
138
+ ```
139
+
140
+
141
+
142
+ ## `set--gutter`
143
+
144
+ 要素に左右パディングを適用します。`--gutter-size` のデフォルトは `var(--s30)` です。
145
+
146
+ ```scss
147
+ .set--gutter {
148
+ padding-inline: var(--gutter-size);
149
+ }
150
+ ```
151
+
152
+ ```html
153
+ <div class="set--gutter">...</div>
154
+ ```
155
+ ```jsx
156
+ <Lism set="gutter">...</Lism>
157
+ ```
158
+
159
+
160
+ ## `set--innerRs`
161
+
162
+ 親要素の角丸(`--bdrs`)とPadding(`--p`)の値から、その内側の角丸(`--bdrs--inner`)を自動計算するためのクラスです。
163
+ 親要素に`set--innerRs`をクラスをセットし、子要素では`-bdrs:inner`をセットすることで、計算された`--bdrs--inner`をセットすることができます。
164
+
165
+ (親要素では`bdrs`と`p`の指定が必須となります。)
166
+
167
+ 使用例:
168
+ ```html "set--innerRs" "-bdrs:inner"
169
+ <div class="set--innerRs -p:15 -bdrs:40 -bd">
170
+ <div class="-bdrs:inner">...</div>
171
+ </div>
172
+ ```
173
+ ```jsx
174
+ <Lism set="innerRs" p="15" bdrs="40" bd>
175
+ <Lism bdrs="inner">...</Lism>
176
+ </Lism>
177
+ ```
178
+
179
+
180
+ ## `set--bp`
181
+
182
+ ブレークポイント判定用の hack 変数をセットします。コンテナクエリで各ブレークポイントを超えた時に空変数がセットされ、CSS の空変数トリックで条件分岐に使えます。
183
+ `sm`, `md`にのみ対応しています。(`--_is_sm`, `--_is_md`が定義されます。)
184
+
185
+ smサイズ以上でテキストカラーを赤に変える例:
186
+
187
+ ```html
188
+ <div class="set--bp -p:20" style="color: var(--_is_sm) red">...</div>
189
+ ```
190
+ ```jsx
191
+ <Lism set="bp" p="20" style={{ color: 'var(--_is_sm) red;' }}>...</Lism>
192
+ ```