@lism-css/mcp 0.13.0 → 0.15.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 (42) hide show
  1. package/dist/data/docs-index.json +176 -85
  2. package/dist/data/guides/SKILL.md +29 -15
  3. package/dist/data/guides/base-styles.md +2 -0
  4. package/dist/data/guides/components-core.md +25 -20
  5. package/dist/data/guides/components-ui.md +16 -23
  6. package/dist/data/guides/css-rules.md +101 -26
  7. package/dist/data/guides/customize.md +220 -0
  8. package/dist/data/guides/naming.md +218 -0
  9. package/dist/data/guides/primitive-class.md +3 -90
  10. package/dist/data/guides/primitives/a--decorator.md +3 -5
  11. package/dist/data/guides/primitives/a--divider.md +4 -11
  12. package/dist/data/guides/primitives/a--spacer.md +1 -1
  13. package/dist/data/guides/primitives/l--box.md +1 -1
  14. package/dist/data/guides/primitives/l--flex.md +1 -1
  15. package/dist/data/guides/primitives/l--flow.md +1 -1
  16. package/dist/data/guides/primitives/l--fluidCols.md +31 -28
  17. package/dist/data/guides/primitives/l--frame.md +1 -1
  18. package/dist/data/guides/primitives/l--sideMain.md +1 -1
  19. package/dist/data/guides/prop-responsive.md +28 -3
  20. package/dist/data/guides/property-class/bd.md +127 -0
  21. package/dist/data/guides/property-class/hov.md +140 -0
  22. package/dist/data/guides/property-class/max-sz.md +99 -0
  23. package/dist/data/guides/property-class.md +52 -86
  24. package/dist/data/guides/set-class.md +62 -94
  25. package/dist/data/guides/tokens.md +24 -15
  26. package/dist/data/guides/trait-class/has--gutter.md +48 -0
  27. package/dist/data/guides/trait-class/has--mask.md +66 -0
  28. package/dist/data/guides/trait-class/has--snap.md +68 -0
  29. package/dist/data/guides/trait-class/has--transition.md +73 -0
  30. package/dist/data/guides/{primitives → trait-class}/is--boxLink.md +8 -8
  31. package/dist/data/guides/{primitives → trait-class}/is--container.md +2 -2
  32. package/dist/data/guides/{primitives → trait-class}/is--layer.md +2 -2
  33. package/dist/data/guides/{primitives → trait-class}/is--wrapper.md +2 -2
  34. package/dist/data/guides/trait-class.md +77 -0
  35. package/dist/data/guides/utility-class.md +0 -1
  36. package/dist/data/meta.js +2 -2
  37. package/dist/lib/load-markdown.js +1 -1
  38. package/dist/lib/search.js +8 -5
  39. package/dist/tools/get-component.js +7 -6
  40. package/dist/tools/get-guide.js +1 -1
  41. package/package.json +2 -2
  42. package/dist/data/guides/primitives/is--vertical.md +0 -52
@@ -0,0 +1,127 @@
1
+ # -bd(ボーダー)
2
+
3
+ Lism CSS のボーダーは、CSS 変数(`--bds` / `--bdw` / `--bdc`)で管理される特殊仕様の Property Class。`-bd` または `-bd-{side}` クラスで変数管理を有効化し、`bds` / `bdc` / `bdw` Prop で個別に上書きする。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `-bd` / `-bd-{side}` / `-bds:*` / `-bdc:*` / `-bdw` など
8
+ - Lism props: `bd`, `bd-{side}`, `bds`, `bdc`, `bdw`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/props/_border.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/property-class/bd/
11
+
12
+ ## 仕組み
13
+
14
+ `.-bd` または `.-bd-{side}` クラスが付くと、以下の初期値がセットされる。
15
+
16
+ ```scss
17
+ :where(.-bd, [class*=" -bd-"], [class^="-bd-"]) {
18
+ --bds: solid;
19
+ --bdw: 1px;
20
+ --bdc: var(--divider);
21
+ border-width: var(--bdw);
22
+ border-color: var(--bdc);
23
+ }
24
+ .-bd { border-style: var(--bds); }
25
+ .-bd-x { border-inline-style: var(--bds); }
26
+ .-bd-y { border-block-style: var(--bds); }
27
+ /* ...各 side ごとに style を適用 */
28
+ ```
29
+
30
+ `border-width` / `border-color` は全方向で共通出力され、`border-style` だけ `.-bd` または `.-bd-{side}` が出現している方向に適用される仕組み。`--bdw` を `0 0 1px 0.5em` のような複数値にすれば、方向ごとに太さを変えられる。
31
+
32
+ ## 方向指定クラス
33
+
34
+ | Prop | CSS プロパティ |
35
+ |------|--------------|
36
+ | `bd` | `border`(変数管理を有効化) |
37
+ | `bd-x` | `border-inline` |
38
+ | `bd-y` | `border-block` |
39
+ | `bd-x-s` | `border-inline-start` |
40
+ | `bd-x-e` | `border-inline-end` |
41
+ | `bd-y-s` | `border-block-start` |
42
+ | `bd-y-e` | `border-block-end` |
43
+ | `bd-t` | `border-top` |
44
+ | `bd-b` | `border-bottom` |
45
+ | `bd-l` | `border-left` |
46
+ | `bd-r` | `border-right` |
47
+
48
+ 標準で用意しているのは物理方向(`-t` / `-b` / `-l` / `-r`)と論理方向(`-x` / `-y` / `-x-s` / `-x-e` / `-y-s` / `-y-e`)のみ。
49
+
50
+ ## 値プロパティ
51
+
52
+ | Prop | 変数 | プリセット値クラス | BP クラス |
53
+ |------|------|-------------|-----|
54
+ | `bd` | — | `-bd:none` | — |
55
+ | `bds` | `--bds` | `-bds:dashed`, `-bds:dotted`, `-bds:double` | — |
56
+ | `bdc` | `--bdc` | `-bdc:brand`, `-bdc:accent`, `-bdc:divider`, `-bdc:inherit`, `-bdc:transparent`, `-bdc:current` | — |
57
+ | `bdw` | `--bdw` | — | `-bdw_sm`, `-bdw_md` |
58
+
59
+ `bdw` はブレイクポイント指定に対応。`--bdw` の値を BP で切り替えることで、ボーダーの方向自体を変化させることもできる。
60
+
61
+ ## Usage
62
+
63
+ ### 全方向にボーダー + カスタマイズ
64
+
65
+ ```jsx
66
+ <Box bd p="10">...</Box>
67
+ <Box bd bds="dashed" bdw="4px" bdc="red" p="15">...</Box>
68
+ ```
69
+ ```html
70
+ <div class="l--box -bd -p:10">...</div>
71
+ <div class="l--box -bd -bds:dashed -p:15" style="--bdw: 4px; --bdc: var(--red)">...</div>
72
+ ```
73
+
74
+ ### 単一方向
75
+
76
+ ```jsx
77
+ <Box bd-t px="10">-t: Top</Box>
78
+ <Box bd-x bdw="2px" px="10">inline</Box>
79
+ <Box bd-x-s bdw="2px" px="10">inline-start</Box>
80
+ ```
81
+ ```html
82
+ <div class="l--box -bd-t -px:10">-t: Top</div>
83
+ <div class="l--box -bd-x -px:10" style="--bdw: 2px">inline</div>
84
+ <div class="l--box -bd-x-s -px:10" style="--bdw: 2px">inline-start</div>
85
+ ```
86
+
87
+ ### 方向ごとに異なるスタイル
88
+
89
+ `-bd` + `--bdw` / `--bds` / `--bdc` を複数値指定すると、方向ごとにスタイルを変えられる。
90
+
91
+ ```jsx
92
+ <Box bd bdw="0 0 1px .5em" bds="dashed solid" bdc="var(--purple) var(--blue)" p="15">
93
+ border
94
+ </Box>
95
+ ```
96
+ ```html
97
+ <div class="l--box -bd -p:15"
98
+ style="--bdw: 0 0 1px 0.5em; --bds: dashed solid; --bdc: var(--purple) var(--blue)">
99
+ border
100
+ </div>
101
+ ```
102
+
103
+ ### ブレイクポイントで `bdw` を切り替え
104
+
105
+ ```jsx
106
+ <Box bd bdw={['1px', '3px', '6px']} p="15">border</Box>
107
+ ```
108
+ ```html
109
+ <div class="l--box -bd -bdw_sm -bdw_md -p:15"
110
+ style="--bdw: 1px; --bdw_sm: 3px; --bdw_md: 6px">border</div>
111
+ ```
112
+
113
+ ### BP でボーダー方向を切り替える
114
+
115
+ `bd-x-s` + `bd-y-s` に `bdw` の複数値を BP で差し替えると、「縦並び時は上下線・横並び時は左右線」のように方向を切り替えられる。
116
+
117
+ ```jsx
118
+ <Flex fxd={['column', 'row']}>
119
+ <Box px="15" py="5">Box</Box>
120
+ <Box px="15" py="5" bd-x-s bd-y-s bdw={['1px 0', '0 1px']}>Box</Box>
121
+ </Flex>
122
+ ```
123
+
124
+ ## 関連
125
+
126
+ - [`-bdrs`](https://lism-css.com/docs/property-class/) — 角丸(`border-radius`)
127
+ - [`-bd-{side}` + `has--gutter`](../trait-class/has--gutter.md) — セクション区切りに使うと相性が良い
@@ -0,0 +1,140 @@
1
+ # -hov(ホバー)
2
+
3
+ hover 時の挙動を制御する Property Class。`:hover` 擬似クラスで動作する系と、親の `set--var:hov` に連動する系の 2 系統に分かれる。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `-hov:-{prop}` / `-hov:{preset}` / `-hov:in:{preset}`
8
+ - Lism props: `hov`(`<Lism hov="-c">` / `<Box hov={{ bgc: 'brand' }}>` 等)
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/props/_hover.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/property-class/hov/
11
+
12
+ ## 3 つの形式
13
+
14
+ | 形式 | 役割 |
15
+ |------|------|
16
+ | `.-hov:-{prop}` | `--hov-{prop}` 変数を受け取り、hover 時に該当プロパティを変化させる |
17
+ | `.-hov:{preset}` | hover 時のスタイルセットをプリセット名でまとめて適用する |
18
+ | `.-hov:in:{preset}` | 親要素の `set--var:hov` を起点に、子要素のスタイルを変化させる |
19
+
20
+ `-hov:-{prop}` と `-hov:{preset}` は `@media (any-hover: hover)` 内で定義されるため、タッチデバイスでは無効。
21
+ `-hov:in:*` はメディアクエリ外で、親の `set--var:hov` がセットする `--_isHov` / `--_notHov` 変数で動作する。
22
+
23
+ トランジションを付けたい場合は [`has--transition`](../trait-class/has--transition.md) クラスを併用する。
24
+
25
+ ## `.-hov:-{prop}` — プロパティ変更
26
+
27
+ `:hover` で直接動作する。クラスを付けるだけで初期値で変化する。
28
+
29
+ | クラス | 変化するプロパティ | 初期値 |
30
+ |--------|----------------------|--------|
31
+ | `.-hov:-c` | `color` | `var(--hov-c, var(--link))` |
32
+ | `.-hov:-bdc` | `border-color` | `var(--hov-bdc, currentColor)` |
33
+ | `.-hov:-bgc` | `background-color` | `var(--hov-bgc, var(--base-2))` |
34
+ | `.-hov:-o` | `opacity` | `var(--hov-o, 0.7)` |
35
+ | `.-hov:-bxsh` | `box-shadow` | `var(--hov-bxsh, var(--bxsh--50))` |
36
+
37
+ 任意の値へ変化させたい場合は、`--hov-{prop}` 変数で値を指定する。
38
+
39
+ ```html
40
+ <!-- 初期値のまま使用 -->
41
+ <a class="is--boxLink -hov:-o -bgc:base-2 -bd -p:20" href="###">...</a>
42
+
43
+ <!-- 任意値を指定 -->
44
+ <a class="is--boxLink -hov:-bgc -hov:-c -bgc:base-2 -p:20"
45
+ style="--hov-bgc: var(--brand); --hov-c: var(--white)" href="###">...</a>
46
+ ```
47
+
48
+ ## `.-hov:{preset}` — プリセット
49
+
50
+ hover 時のスタイルセットをプリセット名でまとめて適用する。
51
+
52
+ | クラス | 内容 |
53
+ |--------|------|
54
+ | `.-hov:underline` | テキストに下線を表示 |
55
+ | `.-hov:neutral` | 背景色にニュートラルグレーをブレンド |
56
+
57
+ プロジェクト固有のプリセットは、以下のように自作して追加できる。
58
+
59
+ ```scss
60
+ @media (any-hover: hover) {
61
+ .-hov\:shadowUp:hover {
62
+ box-shadow: var(--bxsh--40);
63
+ translate: 0 -3px;
64
+ }
65
+ }
66
+ ```
67
+
68
+ ## `.-hov:in:{preset}` — 親連動
69
+
70
+ 親要素に `set--var:hov` を付けると、`--_isHov` / `--_notHov` 変数が hover 状態に応じて切り替わる。`-hov:in:*` はこの変数を参照する仕組み。
71
+
72
+ | クラス | 効果 | 仕組み |
73
+ |--------|------|--------|
74
+ | `.-hov:in:hide` | 親 hover 時にフェードアウト | `opacity: var(--_isHov, 0)` |
75
+ | `.-hov:in:show` | 親 hover 時にフェードイン | `opacity: var(--_notHov, 0)` / `visibility: var(--_notHov, hidden)` |
76
+ | `.-hov:in:zoom` | 親 hover 時にズーム | `scale: var(--_isHov, 1.1)` |
77
+
78
+ ```jsx
79
+ <Frame set="var:hov" isBoxLink href="#" ar="16/9">
80
+ <Media isLayer hasTransition hov="in:zoom" src="..." />
81
+ <Layer hasTransition hov="in:show" bgc="rgb(0 0 0 / 40%)">...</Layer>
82
+ </Frame>
83
+ ```
84
+
85
+ ## `<Lism>` コンポーネントでの `hov` 指定
86
+
87
+ `<Lism>`(およびその継承コンポーネント)の `hov` prop は、文字列・オブジェクトの 2 通りで指定できる。
88
+
89
+ ### 文字列指定
90
+
91
+ 入力した文字列がそのまま `-hov:{入力文字列}` クラスとして出力される。カンマ区切りで複数指定可能。**自動変換は行われない**(`"c"` → `-hov:-c` のような省略はサポートしない)。
92
+
93
+ ```jsx
94
+ <Lism hov="-o">...</Lism>
95
+ // → <div class="-hov:-o">...</div>
96
+
97
+ <Lism hov="shadowUp">...</Lism>
98
+ // → <div class="-hov:shadowUp">...</div>
99
+
100
+ <Lism hov="-c,-bxsh">...</Lism>
101
+ // → <div class="-hov:-c -hov:-bxsh">...</div>
102
+ ```
103
+
104
+ ### オブジェクト指定
105
+
106
+ 主に `.-hov:-{prop}` に任意の値を渡す用途。`hov={{ prop: value }}` で `-hov:-{prop}` クラス + `--hov-{prop}` 変数を出力。
107
+
108
+ ```jsx
109
+ <Lism hov={{ c: 'red' }}>...</Lism>
110
+ // → <div class="-hov:-c" style="--hov-c: var(--red)">...</div>
111
+ ```
112
+
113
+ 値に `true` を指定すると `-hov:{key}` クラスのみ出力される。任意値プロップとプリセット/自作クラスを**同時に**指定したい時に使う。
114
+
115
+ ```jsx
116
+ <Lism hov={{ shadowUp: true }}>...</Lism>
117
+ // → <div class="-hov:shadowUp">...</div>
118
+
119
+ <Lism hov={{ c: 'red', shadowUp: true }}>...</Lism>
120
+ // → <div class="-hov:-c -hov:shadowUp" style="--hov-c: var(--red)">...</div>
121
+ ```
122
+
123
+ ## `has--transition` との併用
124
+
125
+ `-hov:*` による変化は即時に切り替わる。なめらかなトランジションを付けたい場合は `has--transition` を併用し、`--duration` で所要時間を調整する。
126
+
127
+ ```jsx
128
+ <BoxLink href="###" hasTransition bxsh="10" hov={{ bxsh: '40' }} bd p="20">...</BoxLink>
129
+ // → <a class="is--boxLink has--transition -bxsh:10 -hov:-bxsh -bd -p:20"
130
+ // style="--hov-bxsh: var(--bxsh--40)" href="###">...</a>
131
+
132
+ <BoxLink href="###" hasTransition hov={{ bdc: 'red' }} bd p="20"
133
+ style={{ '--duration': '.5s' }}>...</BoxLink>
134
+ ```
135
+
136
+ ## 関連
137
+
138
+ - [`has--transition`](../trait-class/has--transition.md) — hover 時の変化にトランジションを付ける
139
+ - [`set--var:hov`](../set-class.md#set--varhov) — 親の hover 状態を子要素に伝播させる仕組み
140
+ - [`set--var:bxsh`](../set-class.md) — `-hov:-bxsh` と組み合わせる場合の影色再計算
@@ -0,0 +1,99 @@
1
+ # -max-sz(最大幅)
2
+
3
+ コンテンツの最大幅(`max-inline-size`)を制御する Property Class。標準のコンテンツサイズトークン(`xs`〜`xl`)に加え、特殊挙動の `full` / `container` を持つ。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `-max-sz:{xs|s|m|l|xl|full|container}`
8
+ - Lism props: `max-sz`(`<Lism max-sz="m">` 等)
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/props/_size.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/property-class/max-sz/
11
+
12
+ ## トークン対応クラス
13
+
14
+ コンテンツサイズ用のトークン `--sz--{xs|s|m|l|xl}` にそのまま対応するクラスが用意されている。
15
+
16
+ | クラス | 値 |
17
+ |--------|-----|
18
+ | `-max-sz:xs` | `var(--sz--xs)` |
19
+ | `-max-sz:s` | `var(--sz--s)` |
20
+ | `-max-sz:m` | `var(--sz--m)` |
21
+ | `-max-sz:l` | `var(--sz--l)` |
22
+ | `-max-sz:xl` | `var(--sz--xl)` |
23
+
24
+ ## 特殊クラス
25
+
26
+ ### `-max-sz:full`
27
+
28
+ **親要素のサイズいっぱいに広がる**クラス。`.has--gutter` の直下では、その gutter 分を**追加で外側に**拡張する(= gutter を無視して端まで広がる)。
29
+
30
+ ```scss
31
+ .-max-sz\:full {
32
+ max-inline-size: 100%;
33
+
34
+ :where(.has--gutter) > & {
35
+ max-inline-size: calc(100% + var(--gutter-size) * 2);
36
+ margin-inline: calc(var(--gutter-size) * -1);
37
+ }
38
+ }
39
+ ```
40
+
41
+ `.has--gutter` の内側で全幅画像・全幅バナーなどを配置したい時に使う。
42
+
43
+ ### `-max-sz:container`
44
+
45
+ **コンテナ要素を基準としたサイズ**まで広がる。`.is--container` ごとに `--sz--container` が更新されるため、直近の container を基準にサイズ決定される。
46
+
47
+ ```scss
48
+ .-max-sz\:container {
49
+ max-inline-size: var(--sz--container, 100cqi);
50
+ margin-inline: calc(50% - var(--sz--container) / 2);
51
+ }
52
+ ```
53
+
54
+ `margin-inline` で中央配置されるので、`is--wrapper` の内側にあっても container 基準の幅に広げつつ中央に揃う。
55
+
56
+ ## Usage
57
+
58
+ ### トークン値での使用
59
+
60
+ ```jsx
61
+ <Lism max-sz="m" mx="auto">...</Lism>
62
+ ```
63
+ ```html
64
+ <div class="-max-sz:m -mx:auto" style="max-inline-size: var(--sz--m)">...</div>
65
+ ```
66
+
67
+ ### `.has--gutter` 内の全幅要素
68
+
69
+ ```html
70
+ <div class="has--gutter">
71
+ <p>通常の gutter 内コンテンツ</p>
72
+ <img class="-max-sz:full" src="..." alt="" />
73
+ <p>通常の gutter 内コンテンツ</p>
74
+ </div>
75
+ ```
76
+
77
+ ### container 基準のサイズ
78
+
79
+ ```html
80
+ <div class="is--container">
81
+ <div class="is--wrapper -contentSize:s">
82
+ <p>狭めのコンテンツ</p>
83
+ <div class="-max-sz:container">
84
+ container 基準まで広がる要素
85
+ </div>
86
+ </div>
87
+ </div>
88
+ ```
89
+
90
+ ## DEMO
91
+
92
+ `-max-sz:*` の挙動確認用デモ:
93
+ - https://lism-css.com/demo/content-size
94
+
95
+ ## 関連
96
+
97
+ - [`is--container`](../trait-class/is--container.md) — `-max-sz:container` の基準となるコンテナ
98
+ - [`is--wrapper`](../trait-class/is--wrapper.md) — コンテンツ幅の制限
99
+ - [`has--gutter`](../trait-class/has--gutter.md) — `-max-sz:full` と組み合わせる左右余白
@@ -18,6 +18,12 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
18
18
 
19
19
  [詳細](https://lism-css.com/docs/property-class/)
20
20
 
21
+ 個別ドキュメント:
22
+
23
+ - [property-class/bd.md](./property-class/bd.md) — ボーダー(`-bd` / `-bd-{side}` 系)
24
+ - [property-class/hov.md](./property-class/hov.md) — ホバー(`-hov:*` 系)
25
+ - [property-class/max-sz.md](./property-class/max-sz.md) — 最大幅(`-max-sz:full` / `-max-sz:container` 等)
26
+
21
27
  ---
22
28
 
23
29
  ## 基本書式
@@ -77,7 +83,7 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
77
83
 
78
84
  | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
79
85
  |------|--------------|-------------|-----|
80
- | `d` | `display` | `-d:none`, `-d:block`, `-d:flex`, `-d:inline-flex`, `-d:grid`, `-d:inline-grid` | `-d_sm`, `-d_md` |
86
+ | `d` | `display` | `-d:none`, `-d:block`, `-d:flex`, `-d:inline-flex`, `-d:grid`, `-d:inline-grid`, `-d:inline`, `-d:inline-block` | `-d_sm`, `-d_md` |
81
87
  | `o` | `opacity` | `-o:0`, `-o:-10`, `-o:-20`, `-o:-30` | — |
82
88
  | `v` | `visibility` | `-v:hidden` | — |
83
89
  | `ov` | `overflow` | `-ov:hidden`, `-ov:auto`, `-ov:clip` | — |
@@ -98,14 +104,16 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
98
104
  | `sz` | `inline-size` | — | — |
99
105
  | `min-sz` | `min-inline-size` | — | — |
100
106
  | `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` | — | — |
107
+ | `bsz` | `block-size` | — | — |
108
+ | `min-bsz` | `min-block-size` | — | — |
109
+ | `max-bsz` | `max-block-size` | — | — |
104
110
 
105
111
  **`max-sz` の特殊クラス:**
106
- - `-max-sz:full` — `max-inline-size: 100%`。`.set--gutter` 内では gutter 分を含めた全幅に拡張
112
+ - `-max-sz:full` — `.has--gutter` 内では gutter 分を含めた全幅に拡張
107
113
  - `-max-sz:container` — コンテナ幅に合わせる(`margin-inline` で中央配置)
108
114
 
115
+ → 詳細は [property-class/max-sz.md](./property-class/max-sz.md) 参照
116
+
109
117
  ### 背景
110
118
 
111
119
  | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
@@ -146,9 +154,9 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
146
154
 
147
155
  | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
148
156
  |------|--------------|-------------|-----|
149
- | `bxsh` | `box-shadow` | `-bxsh:0`, `-bxsh:10`, `-bxsh:20`, `-bxsh:30`, `-bxsh:40` | `-bxsh_sm`, `-bxsh_md` |
157
+ | `bxsh` | `box-shadow` | `-bxsh:0`, `-bxsh:10`, `-bxsh:20`, `-bxsh:30`, `-bxsh:40`, `-bxsh:50` | `-bxsh_sm`, `-bxsh_md` |
150
158
 
151
- **注意:** `bxsh` の使用時は `set--shadow` クラスの併用が必要です(影色 `--shc` の再計算のため)。
159
+ **補足:** 影色(`--shc`)を要素内で上書きして再計算させたい場合は、`set--var:bxsh` クラスを併用する。
152
160
 
153
161
  ### ポジション
154
162
 
@@ -271,99 +279,43 @@ SPACE トークン(全値): `5`, `10`, `15`, `20`, `30`, `40`, `50`, `60`, `
271
279
 
272
280
  ### ボーダー(`bd` 系)
273
281
 
274
- [詳細](https://lism-css.com/docs/property-class/bd/)
282
+ Lism CSS のボーダーは CSS 変数(`--bds` / `--bdw` / `--bdc`)で管理される特殊仕様。`-bd` または `-bd-{side}` を付けると初期値(`solid` / `1px` / `var(--divider)`)がセットされ、`bds` / `bdc` / `bdw` Prop で上書きする。
275
283
 
276
- Lism CSS のボーダーは CSS 変数(`--bds`, `--bdw`, `--bdc`)で管理される特殊な仕様です。
277
- `-bd` または `-bd-{side}` クラスを付けると、初期値(`--bds: solid`, `--bdw: 1px`, `--bdc: var(--divider)`)がセットされ、`bds`, `bdc`, `bdw` Prop で個別に上書きできます。
284
+ | Prop | CSS プロパティ / 変数 | 主なクラス |
285
+ |------|-----------------------|------------|
286
+ | `bd` | `border`(変数管理を有効化) | `-bd`, `-bd-{x\|y\|x-s\|x-e\|y-s\|y-e\|t\|b\|l\|r}`, `-bd:none` |
287
+ | `bds` | `--bds` | `-bds:dashed`, `-bds:dotted`, `-bds:double` |
288
+ | `bdc` | `--bdc` | `-bdc:brand`, `-bdc:accent`, `-bdc:divider`, `-bdc:inherit`, `-bdc:transparent`, `-bdc:current` |
289
+ | `bdw` | `--bdw` | BP クラス: `-bdw_sm`, `-bdw_md` |
278
290
 
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
- ```
291
+ 詳細(方向ごとのスタイル指定、BP での方向切り替え等)は [property-class/bd.md](./property-class/bd.md) 参照
312
292
 
313
293
  ### ホバー(`hov` 系)
314
294
 
315
- [詳細](https://lism-css.com/docs/property-class/hov/)
316
-
317
- ホバーエフェクト用のクラスです。`-hov:{prop}` 系と `-hov:to:*` 系の2種類があります。
318
-
319
- **`-hov:{prop}` — ホバー時のプロパティ変更**
295
+ ホバーエフェクト用のクラス群。以下の 3 形式がある。
320
296
 
321
- `:hover` 擬似クラスで直接動作します(`set--hov` は不要)。`@media (any-hover: hover)` 内で定義され、タッチデバイスでは無効になります。
297
+ | 形式 | 役割 | 動作条件 |
298
+ |------|------|---------|
299
+ | `.-hov:-{prop}` | `--hov-{prop}` 変数で hover 時の値を変化させる | `:hover`(`@media (any-hover: hover)` 内) |
300
+ | `.-hov:{preset}` | hover 時のスタイルをプリセットで適用 | `:hover`(同上) |
301
+ | `.-hov:in:{preset}` | 親の `set--var:hov` を起点に子のスタイルを変化させる | 親に `set--var:hov` が必要 |
322
302
 
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(...)` |
303
+ **標準プリセット:** `.-hov:-c`, `.-hov:-bgc`, `.-hov:-bdc`, `.-hov:-o`, `.-hov:-bxsh`, `.-hov:underline`, `.-hov:neutral`, `.-hov:in:hide`, `.-hov:in:show`, `.-hov:in:zoom`
331
304
 
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
- ```
305
+ **`<Lism>` の `hov` prop:** 文字列指定(`hov="-c"` → `-hov:-c`。自動変換なし、カンマ区切りで複数可)とオブジェクト指定(`hov={{ c: 'red' }}` → `-hov:-c` + `--hov-c: var(--red)`。値 `true` でクラスのみ出力)が可能。
340
306
 
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
- ```
307
+ 詳細は [property-class/hov.md](./property-class/hov.md) 参照
357
308
 
358
309
  ## その他
359
310
 
360
311
  | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
361
312
  |------|--------------|-------------|-----|
362
- | `ovwrap` | `overflow-wrap` | `-ovwrap:anywhere` | — |
363
- | `whspace` | `white-space` | `-whspace:nowrap` | — |
313
+ | `ovw` | `overflow-wrap` | `-ovw:anywhere` | — |
314
+ | `whs` | `white-space` | `-whs:nowrap` | — |
364
315
  | `float` | `float` | `-float:left`, `-float:right` | — |
365
316
  | `clear` | `clear` | `-clear:both` | — |
366
- | `isolation` | `isolation` | `-isolation:isolate` | — |
317
+ | `iso` | `isolation` | `-iso:isolate` | — |
318
+ | `wm` | `writing-mode` | `-wm:vertical-rl` | `-wm_sm`, `-wm_md` |
367
319
 
368
320
 
369
321
  ## 値の省略形(例外一覧)
@@ -383,8 +335,22 @@ Property Class の値名は基本的に CSS の実値と同じですが、以下
383
335
 
384
336
  ### `alwaysVar` タイプ
385
337
 
386
- `fz`, `p`, `px`, `py`, `m`, `mx`, `my`, `g`, `c`, `bgc`, `bdrs`, `bxsh` など。
387
- プリセット値クラス(`-p:20`)でも常に CSS 変数(`--p`)経由で値が適用されます。これにより、子要素や疑似要素から `var(--p)` で親の値を参照できます。
338
+ `c`, `bgc`, `p`, `m`, `bdrs` 5 つ。
339
+
340
+ 例えば`-p`の場合、プリセット値クラス(`-p:20`)でも常に CSS 変数(`--p`)経由で値が適用されます。
341
+ さらに BP クラスでも `padding:var(--p);--p:var(--p_sm) !important;` の形で出力されるため、`--p` は常に現在適用中の値を指します。
342
+
343
+ これにより、子要素や疑似要素から `var(--p)` で親の値を参照できます。
344
+
345
+ **CSS 出力例:**
346
+
347
+ ```css
348
+ .-p, [class*="-p:"] { padding: var(--p) }
349
+ .-p\:20 { --p: var(--s20) }
350
+ @container (min-width: 480px) {
351
+ .-p_sm { padding: var(--p); --p: var(--p_sm) !important }
352
+ }
353
+ ```
388
354
 
389
355
 
390
356
  ## Property Class の検索・一括修正