@lism-css/mcp 0.15.0 → 0.17.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 (48) hide show
  1. package/dist/data/docs-index.json +63 -36
  2. package/dist/data/guides/SKILL.md +136 -24
  3. package/dist/data/guides/antipatterns.md +318 -0
  4. package/dist/data/guides/base-styles.md +3 -5
  5. package/dist/data/guides/components-core.md +8 -10
  6. package/dist/data/guides/components-ui.md +12 -4
  7. package/dist/data/guides/css-rules.md +29 -29
  8. package/dist/data/guides/customize.md +80 -26
  9. package/dist/data/guides/naming.md +13 -8
  10. package/dist/data/guides/primitive-class.md +79 -4
  11. package/dist/data/guides/primitives/a--decorator.md +1 -1
  12. package/dist/data/guides/primitives/a--divider.md +1 -1
  13. package/dist/data/guides/primitives/a--icon.md +1 -1
  14. package/dist/data/guides/primitives/a--spacer.md +1 -1
  15. package/dist/data/guides/primitives/l--autoColumns.md +71 -0
  16. package/dist/data/guides/primitives/l--box.md +1 -1
  17. package/dist/data/guides/primitives/l--center.md +1 -1
  18. package/dist/data/guides/primitives/l--cluster.md +2 -2
  19. package/dist/data/guides/primitives/l--columns.md +3 -3
  20. package/dist/data/guides/primitives/l--flex.md +1 -1
  21. package/dist/data/guides/primitives/l--flow.md +4 -4
  22. package/dist/data/guides/primitives/l--frame.md +1 -1
  23. package/dist/data/guides/primitives/l--grid.md +2 -2
  24. package/dist/data/guides/primitives/l--stack.md +1 -1
  25. package/dist/data/guides/primitives/{l--switchCols.md → l--switchColumns.md} +18 -18
  26. package/dist/data/guides/primitives/l--tileGrid.md +2 -2
  27. package/dist/data/guides/primitives/{l--sideMain.md → l--withSide.md} +41 -19
  28. package/dist/data/guides/prop-responsive.md +1 -1
  29. package/dist/data/guides/property-class/bd.md +4 -4
  30. package/dist/data/guides/property-class/hov.md +18 -18
  31. package/dist/data/guides/property-class/max-sz.md +20 -16
  32. package/dist/data/guides/property-class.md +23 -12
  33. package/dist/data/guides/set-class.md +2 -2
  34. package/dist/data/guides/tokens.md +13 -9
  35. package/dist/data/guides/trait-class/has--gutter.md +2 -2
  36. package/dist/data/guides/trait-class/has--mask.md +2 -2
  37. package/dist/data/guides/trait-class/has--snap.md +2 -2
  38. package/dist/data/guides/trait-class/has--transition.md +2 -2
  39. package/dist/data/guides/trait-class/is--boxLink.md +2 -2
  40. package/dist/data/guides/trait-class/is--container.md +13 -5
  41. package/dist/data/guides/trait-class/is--layer.md +5 -5
  42. package/dist/data/guides/trait-class/is--wrapper.md +23 -8
  43. package/dist/data/guides/trait-class.md +2 -2
  44. package/dist/data/guides/utility-class.md +9 -8
  45. package/dist/data/meta.js +2 -2
  46. package/dist/tools/get-guide.js +8 -1
  47. package/package.json +1 -1
  48. package/dist/data/guides/primitives/l--fluidCols.md +0 -71
@@ -1,34 +1,34 @@
1
- # l--switchCols / `<SwitchCols>`
1
+ # l--switchColumns / `<SwitchColumns>`
2
2
 
3
3
  複数列 ↔ 1列の切り替えをコンテナクエリやメディアクエリを使わずに実装するクラス。Flexbox ベースで、親コンテナ幅に応じて自動的に折り返します。
4
4
 
5
5
  ## 基本情報
6
6
 
7
- - クラス名: `l--switchCols`
8
- - コンポーネント: `<SwitchCols>`
9
- - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_switchCols.scss
10
- - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--switchCols/
7
+ - クラス名: `l--switchColumns`
8
+ - コンポーネント: `<SwitchColumns>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_switchColumns.scss
10
+ - 公式ドキュメント: https://lism-css.com/docs/primitives/l--switchColumns.md
11
11
 
12
12
  ## 専用Props
13
13
 
14
- | Prop | CSS変数 | 説明 |
15
- |------|--------|------|
16
- | `breakSize` | `--breakSize` | 横並びを維持するのに必要な親コンテナ幅を指定。`sz` トークンが使える |
14
+ | Prop | CSS変数 | デフォルト | 説明 |
15
+ |------|--------|-----------|------|
16
+ | `breakSize` | `--breakSize` | `var(--sz--xs)` | 横並びを維持するのに必要な親コンテナ幅を指定。`sz` トークンが使える |
17
17
 
18
18
  ## Usage
19
19
 
20
20
  ### デフォルト幅で利用する
21
21
 
22
22
  ```jsx
23
- <SwitchCols g="20">
23
+ <SwitchColumns g="20">
24
24
  <div class="-bgc:base-2 -p:20">Box</div>
25
25
  <div class="-bgc:base-2 -p:20">Box</div>
26
26
  <div class="-bgc:base-2 -p:20">Box</div>
27
- </SwitchCols>
27
+ </SwitchColumns>
28
28
  ```
29
29
 
30
30
  ```html
31
- <div class="l--switchCols -g:20">
31
+ <div class="l--switchColumns -g:20">
32
32
  <div class="-bgc:base-2 -p:20">Box</div>
33
33
  <div class="-bgc:base-2 -p:20">Box</div>
34
34
  <div class="-bgc:base-2 -p:20">Box</div>
@@ -38,14 +38,14 @@
38
38
  ### `breakSize` の指定
39
39
 
40
40
  ```jsx
41
- <SwitchCols breakSize="s" g="20">
41
+ <SwitchColumns breakSize="s" g="20">
42
42
  <div class="-bgc:base-2 -p:20">Box</div>
43
43
  <div class="-bgc:base-2 -p:20">Box</div>
44
- </SwitchCols>
44
+ </SwitchColumns>
45
45
  ```
46
46
 
47
47
  ```html
48
- <div class="l--switchCols -g:20" style="--breakSize: var(--sz--s)">
48
+ <div class="l--switchColumns -g:20" style="--breakSize: var(--sz--s)">
49
49
  <div class="-bgc:base-2 -p:20">Box</div>
50
50
  <div class="-bgc:base-2 -p:20">Box</div>
51
51
  </div>
@@ -56,14 +56,14 @@
56
56
  子要素に `flex-grow` を指定すると、横並び時の幅の比率を個別に調整できます。
57
57
 
58
58
  ```jsx
59
- <SwitchCols breakSize="s" g="20">
59
+ <SwitchColumns breakSize="s" g="20">
60
60
  <div class="-bgc:base-2 -p:20">Box</div>
61
61
  <div class="-bgc:base-2 -p:20" style={{ flexGrow: 2 }}>Box</div>
62
- </SwitchCols>
62
+ </SwitchColumns>
63
63
  ```
64
64
 
65
65
  ## 関連プリミティブ
66
66
 
67
- - [l--fluidCols](./l--fluidCols.md) — 最小幅ベースの自動段組
67
+ - [l--autoColumns](./l--autoColumns.md) — 最小幅ベースの自動段組
68
68
  - [l--columns](./l--columns.md) — ブレイクポイント指定の等幅カラム
69
- - [l--sideMain](./l--sideMain.md) — コンテンツ幅基準の2カラム切り替え
69
+ - [l--withSide](./l--withSide.md) — コンテンツ幅基準の2カラム切り替え
@@ -7,7 +7,7 @@
7
7
  - クラス名: `l--tileGrid`
8
8
  - コンポーネント: `<TileGrid>`
9
9
  - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_tileGrid.scss
10
- - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--tileGrid/
10
+ - 公式ドキュメント: https://lism-css.com/docs/primitives/l--tileGrid.md
11
11
 
12
12
  ## 専用Props
13
13
 
@@ -57,5 +57,5 @@
57
57
  ## 関連プリミティブ
58
58
 
59
59
  - [l--columns](./l--columns.md) — 等幅列のみ(1D)のカラム
60
- - [l--fluidCols](./l--fluidCols.md) — 自動折り返し型段組
60
+ - [l--autoColumns](./l--autoColumns.md) — 自動折り返し型段組
61
61
  - [l--grid](./l--grid.md) — 汎用 CSS Grid
@@ -1,13 +1,13 @@
1
- # l--sideMain / `<SideMain>`
1
+ # l--withSide / `<WithSide>`
2
2
 
3
3
  メディアクエリ・コンテナクエリに依存せず、**維持したいコンテンツ幅を基準にして横並び・縦並びが自動で切り替わる2カラムレイアウト**。「画像 + コンテンツ」「メインエリア + サイドバー」などに活用できる。
4
4
 
5
5
  ## 基本情報
6
6
 
7
- - クラス名: `l--sideMain`
8
- - コンポーネント: `<SideMain>`
9
- - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_sideMain.scss
10
- - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--sideMain/
7
+ - クラス名: `l--withSide`
8
+ - コンポーネント: `<WithSide>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_withSide.scss
10
+ - 公式ドキュメント: https://lism-css.com/docs/primitives/l--withSide.md
11
11
 
12
12
  ## 動作の仕組み
13
13
 
@@ -17,15 +17,15 @@
17
17
 
18
18
  ## 専用Props
19
19
 
20
- | Prop | 出力 | 説明 |
21
- |------|------|------|
22
- | `sideW` | `--sideW` | サイド要素の横幅 |
23
- | `mainW` | `--mainW` | メイン要素で維持したい最小幅 |
20
+ | Prop | 出力 | デフォルト | 説明 |
21
+ |------|------|-----------|------|
22
+ | `sideW` | `--sideW` | `auto` | サイド要素の横幅 |
23
+ | `mainW` | `--mainW` | `max(20rem, 50%)` | メイン要素で維持したい最小幅 |
24
24
 
25
25
  ## HTML構造
26
26
 
27
27
  ```html
28
- <div class="l--sideMain">
28
+ <div class="l--withSide">
29
29
  <div>Main Content</div>
30
30
  <div class="is--side">Side Content</div>
31
31
  </div>
@@ -36,7 +36,7 @@
36
36
  ### 基本的な使い方
37
37
 
38
38
  ```jsx
39
- <SideMain sideW="12rem" mainW="20rem" g="20">
39
+ <WithSide sideW="12rem" mainW="20rem" g="20">
40
40
  <Box p="15" bd bdc="blue">
41
41
  <p>Main Content</p>
42
42
  <p>メインコンテンツ本文...</p>
@@ -44,11 +44,11 @@
44
44
  <Box isSide p="15" bd bdc="red">
45
45
  <p>Side Content</p>
46
46
  </Box>
47
- </SideMain>
47
+ </WithSide>
48
48
  ```
49
49
 
50
50
  ```html
51
- <div class="l--sideMain -g:20" style="--sideW:12rem;--mainW:20rem">
51
+ <div class="l--withSide -g:20" style="--sideW:12rem;--mainW:20rem">
52
52
  <div class="l--box -p:15 -bd" style="--bdc:var(--blue)">
53
53
  <p>Main Content</p>
54
54
  <p>メインコンテンツ本文...</p>
@@ -64,16 +64,16 @@
64
64
  `flex-direction: row-reverse` を併用することで、横並びの時だけ順序を反転できます。**横並びで左側・縦並びで下側に Side を配置**したいときに便利。
65
65
 
66
66
  ```jsx
67
- <SideMain fxd="row-reverse" sideW="10rem" mainW="16rem" g="20">
67
+ <WithSide fxd="row-reverse" sideW="10rem" mainW="16rem" g="20">
68
68
  <Box>
69
69
  <p>Main content...</p>
70
70
  </Box>
71
71
  <Box isSide bgc="blue:20%">Side Content</Box>
72
- </SideMain>
72
+ </WithSide>
73
73
  ```
74
74
 
75
75
  ```html
76
- <div class="l--sideMain -fxd:row-reverse -g:20" style="--sideW:10rem;--mainW:16rem">
76
+ <div class="l--withSide -fxd:row-reverse -g:20" style="--sideW:10rem;--mainW:16rem">
77
77
  <div class="l--box">
78
78
  <p>Main content...</p>
79
79
  </div>
@@ -81,9 +81,31 @@
81
81
  </div>
82
82
  ```
83
83
 
84
+ ### メディアとテキストが交互に並ぶレイアウト
85
+
86
+ `l--withSide` は「メディア + テキスト」のペアを複数並べて、横並びの時はメディアの位置(左右)が交互に切り替わりつつも、縦並びの時はメディアが上側に統一されるレイアウトにも活用できる。
87
+
88
+ ```jsx
89
+ <Stack isContainer g="40">
90
+ <WithSide sideW="40%" g="30" ai="center">
91
+ <Frame ar="3/2" isSide max-h="50cqw">
92
+ <img src="..." alt="" width="960" height="640" />
93
+ </Frame>
94
+ <Box px="10">本文テキスト...</Box>
95
+ </WithSide>
96
+
97
+ <WithSide fxd="row-reverse" sideW="40%" g="30" ai="center">
98
+ <Frame ar="3/2" isSide max-h="50cqw">
99
+ <img src="..." alt="" width="960" height="640" />
100
+ </Frame>
101
+ <Box px="10">本文テキスト...</Box>
102
+ </WithSide>
103
+ </Stack>
104
+ ```
105
+
84
106
  ## `l--grid` との使い分け
85
107
 
86
- - **`l--sideMain`**: ブレイクポイントに依存せず、コンテンツ幅で自動切り替え
108
+ - **`l--withSide`**: ブレイクポイントに依存せず、コンテンツ幅で自動切り替え
87
109
  - **`l--grid`** (`<Grid gta={[...]} gtc={[...]} />`): ブレイクポイント(`sm`/`md`)で明示的に切り替えたい場合
88
110
 
89
111
  ```jsx
@@ -97,6 +119,6 @@
97
119
  ## 関連プリミティブ
98
120
 
99
121
  - [l--grid](./l--grid.md) — ブレイクポイント切り替え型の2カラム構築に使用
100
- - [l--fluidCols](./l--fluidCols.md) — カラム幅ベースの自動段組
101
- - [l--switchCols](./l--switchCols.md) — ブレイクポイント一括切り替え型カラム
122
+ - [l--autoColumns](./l--autoColumns.md) — カラム幅ベースの自動段組
123
+ - [l--switchColumns](./l--switchColumns.md) — ブレイクポイント一括切り替え型カラム
102
124
  - [is--container](../trait-class/is--container.md) — レスポンシブ Property Class 利用時に必要
@@ -8,7 +8,7 @@ Lism CSS はコンテナクエリをデフォルトで採用しています。
8
8
  - [HTML / Property Class での指定](#html--property-class-での指定)
9
9
  - [Lism コンポーネントでの指定](#lism-コンポーネントでの指定)
10
10
 
11
- [詳細](https://lism-css.com/docs/responsive/)
11
+ [詳細](https://lism-css.com/docs/responsive.md)
12
12
 
13
13
  ---
14
14
 
@@ -7,11 +7,11 @@ Lism CSS のボーダーは、CSS 変数(`--bds` / `--bdw` / `--bdc`)で管
7
7
  - クラス名: `-bd` / `-bd-{side}` / `-bds:*` / `-bdc:*` / `-bdw` など
8
8
  - Lism props: `bd`, `bd-{side}`, `bds`, `bdc`, `bdw`
9
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/
10
+ - 公式ドキュメント: https://lism-css.com/docs/property-class/bd.md
11
11
 
12
12
  ## 仕組み
13
13
 
14
- `.-bd` または `.-bd-{side}` クラスが付くと、以下の初期値がセットされる。
14
+ `-bd` または `-bd-{side}` クラスが付くと、以下の初期値がセットされる。
15
15
 
16
16
  ```scss
17
17
  :where(.-bd, [class*=" -bd-"], [class^="-bd-"]) {
@@ -27,7 +27,7 @@ Lism CSS のボーダーは、CSS 変数(`--bds` / `--bdw` / `--bdc`)で管
27
27
  /* ...各 side ごとに style を適用 */
28
28
  ```
29
29
 
30
- `border-width` / `border-color` は全方向で共通出力され、`border-style` だけ `.-bd` または `.-bd-{side}` が出現している方向に適用される仕組み。`--bdw` を `0 0 1px 0.5em` のような複数値にすれば、方向ごとに太さを変えられる。
30
+ `border-width` / `border-color` は全方向で共通出力され、`border-style` だけ `-bd` または `-bd-{side}` が出現している方向に適用される仕組み。`--bdw` を `0 0 1px 0.5em` のような複数値にすれば、方向ごとに太さを変えられる。
31
31
 
32
32
  ## 方向指定クラス
33
33
 
@@ -123,5 +123,5 @@ Lism CSS のボーダーは、CSS 変数(`--bds` / `--bdw` / `--bdc`)で管
123
123
 
124
124
  ## 関連
125
125
 
126
- - [`-bdrs`](https://lism-css.com/docs/property-class/) — 角丸(`border-radius`)
126
+ - [`-bdrs`](https://lism-css.com/docs/property-class.md) — 角丸(`border-radius`)
127
127
  - [`-bd-{side}` + `has--gutter`](../trait-class/has--gutter.md) — セクション区切りに使うと相性が良い
@@ -7,32 +7,32 @@ hover 時の挙動を制御する Property Class。`:hover` 擬似クラスで
7
7
  - クラス名: `-hov:-{prop}` / `-hov:{preset}` / `-hov:in:{preset}`
8
8
  - Lism props: `hov`(`<Lism hov="-c">` / `<Box hov={{ bgc: 'brand' }}>` 等)
9
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/
10
+ - 公式ドキュメント: https://lism-css.com/docs/property-class/hov.md
11
11
 
12
12
  ## 3 つの形式
13
13
 
14
14
  | 形式 | 役割 |
15
15
  |------|------|
16
- | `.-hov:-{prop}` | `--hov-{prop}` 変数を受け取り、hover 時に該当プロパティを変化させる |
17
- | `.-hov:{preset}` | hover 時のスタイルセットをプリセット名でまとめて適用する |
18
- | `.-hov:in:{preset}` | 親要素の `set--var:hov` を起点に、子要素のスタイルを変化させる |
16
+ | `-hov:-{prop}` | `--hov-{prop}` 変数を受け取り、hover 時に該当プロパティを変化させる |
17
+ | `-hov:{preset}` | hover 時のスタイルセットをプリセット名でまとめて適用する |
18
+ | `-hov:in:{preset}` | 親要素の `set--var:hov` を起点に、子要素のスタイルを変化させる |
19
19
 
20
20
  `-hov:-{prop}` と `-hov:{preset}` は `@media (any-hover: hover)` 内で定義されるため、タッチデバイスでは無効。
21
21
  `-hov:in:*` はメディアクエリ外で、親の `set--var:hov` がセットする `--_isHov` / `--_notHov` 変数で動作する。
22
22
 
23
23
  トランジションを付けたい場合は [`has--transition`](../trait-class/has--transition.md) クラスを併用する。
24
24
 
25
- ## `.-hov:-{prop}` — プロパティ変更
25
+ ## `-hov:-{prop}` — プロパティ変更
26
26
 
27
27
  `:hover` で直接動作する。クラスを付けるだけで初期値で変化する。
28
28
 
29
29
  | クラス | 変化するプロパティ | 初期値 |
30
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))` |
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, var(--o--p))` |
35
+ | `-hov:-bxsh` | `box-shadow` | `var(--hov-bxsh, var(--bxsh--50))` |
36
36
 
37
37
  任意の値へ変化させたい場合は、`--hov-{prop}` 変数で値を指定する。
38
38
 
@@ -45,14 +45,14 @@ hover 時の挙動を制御する Property Class。`:hover` 擬似クラスで
45
45
  style="--hov-bgc: var(--brand); --hov-c: var(--white)" href="###">...</a>
46
46
  ```
47
47
 
48
- ## `.-hov:{preset}` — プリセット
48
+ ## `-hov:{preset}` — プリセット
49
49
 
50
50
  hover 時のスタイルセットをプリセット名でまとめて適用する。
51
51
 
52
52
  | クラス | 内容 |
53
53
  |--------|------|
54
- | `.-hov:underline` | テキストに下線を表示 |
55
- | `.-hov:neutral` | 背景色にニュートラルグレーをブレンド |
54
+ | `-hov:underline` | テキストに下線を表示 |
55
+ | `-hov:neutral` | 背景色にニュートラルグレーをブレンド |
56
56
 
57
57
  プロジェクト固有のプリセットは、以下のように自作して追加できる。
58
58
 
@@ -65,15 +65,15 @@ hover 時のスタイルセットをプリセット名でまとめて適用す
65
65
  }
66
66
  ```
67
67
 
68
- ## `.-hov:in:{preset}` — 親連動
68
+ ## `-hov:in:{preset}` — 親連動
69
69
 
70
70
  親要素に `set--var:hov` を付けると、`--_isHov` / `--_notHov` 変数が hover 状態に応じて切り替わる。`-hov:in:*` はこの変数を参照する仕組み。
71
71
 
72
72
  | クラス | 効果 | 仕組み |
73
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)` |
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
77
 
78
78
  ```jsx
79
79
  <Frame set="var:hov" isBoxLink href="#" ar="16/9">
@@ -103,7 +103,7 @@ hover 時のスタイルセットをプリセット名でまとめて適用す
103
103
 
104
104
  ### オブジェクト指定
105
105
 
106
- 主に `.-hov:-{prop}` に任意の値を渡す用途。`hov={{ prop: value }}` で `-hov:-{prop}` クラス + `--hov-{prop}` 変数を出力。
106
+ 主に `-hov:-{prop}` に任意の値を渡す用途。`hov={{ prop: value }}` で `-hov:-{prop}` クラス + `--hov-{prop}` 変数を出力。
107
107
 
108
108
  ```jsx
109
109
  <Lism hov={{ c: 'red' }}>...</Lism>
@@ -1,13 +1,13 @@
1
1
  # -max-sz(最大幅)
2
2
 
3
- コンテンツの最大幅(`max-inline-size`)を制御する Property Class。標準のコンテンツサイズトークン(`xs`〜`xl`)に加え、特殊挙動の `full` / `container` を持つ。
3
+ コンテンツの最大幅(`max-inline-size`)を制御する Property Class。標準のコンテンツサイズトークン(`xs`〜`xl`)に加え、特殊挙動の `full` / `bleed` を持つ。
4
4
 
5
5
  ## 基本情報
6
6
 
7
- - クラス名: `-max-sz:{xs|s|m|l|xl|full|container}`
7
+ - クラス名: `-max-sz:{xs|s|m|l|xl|full|bleed}`
8
8
  - Lism props: `max-sz`(`<Lism max-sz="m">` 等)
9
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/
10
+ - 公式ドキュメント: https://lism-css.com/docs/property-class/max-sz.md
11
11
 
12
12
  ## トークン対応クラス
13
13
 
@@ -25,33 +25,37 @@
25
25
 
26
26
  ### `-max-sz:full`
27
27
 
28
- **親要素のサイズいっぱいに広がる**クラス。`.has--gutter` の直下では、その gutter 分を**追加で外側に**拡張する(= gutter を無視して端まで広がる)。
28
+ **親要素のサイズいっぱいに広がる**クラス。`has--gutter` の直下では、その gutter 分を**追加で外側に**拡張する(= gutter を無視して端まで広がる)。
29
29
 
30
30
  ```scss
31
31
  .-max-sz\:full {
32
32
  max-inline-size: 100%;
33
33
 
34
34
  :where(.has--gutter) > & {
35
+ inline-size: auto;
35
36
  max-inline-size: calc(100% + var(--gutter-size) * 2);
36
37
  margin-inline: calc(var(--gutter-size) * -1);
37
38
  }
38
39
  }
39
40
  ```
40
41
 
41
- `.has--gutter` の内側で全幅画像・全幅バナーなどを配置したい時に使う。
42
+ `has--gutter` の内側で全幅画像・全幅バナーなどを配置したい時に使う。`inline-size: auto` は、親が `is--wrapper` の場合に当たる `inline-size: 100%` を打ち消し、負 margin による hang を効かせるためのリセット。
42
43
 
43
- ### `-max-sz:container`
44
+ ### `-max-sz:bleed`
44
45
 
45
- **コンテナ要素を基準としたサイズ**まで広がる。`.is--container` ごとに `--sz--container` が更新されるため、直近の container を基準にサイズ決定される。
46
+ **最外側の `is--container` 幅**まで広がる。本文幅やネストされた container を突き抜け、ページ全体の full-bleed 表現を実現する。`is--container` が祖先に存在しない場合は、ビューポート幅(`100svi`)まで広がる fallback として動作する。
46
47
 
47
48
  ```scss
48
- .-max-sz\:container {
49
- max-inline-size: var(--sz--container, 100cqi);
50
- margin-inline: calc(50% - var(--sz--container) / 2);
49
+ .-max-sz\:bleed {
50
+ inline-size: auto;
51
+ max-inline-size: var(--sz--bleed, 100svi);
52
+ margin-inline: calc(50% - var(--sz--bleed, 100svi) / 2);
51
53
  }
52
54
  ```
53
55
 
54
- `margin-inline` で中央配置されるので、`is--wrapper` の内側にあっても container 基準の幅に広げつつ中央に揃う。
56
+ `--sz--bleed` は最外側の `is--container` 直下の子要素でだけ `100cqi` に上書きされ、ネストされた `is--container` は再度上書きしないため、内側の子要素は外側の値を inherit で参照する。
57
+
58
+ `margin-inline` で中央配置されるので、`is--wrapper` の内側にあっても最外側 container 基準の幅に広げつつ中央に揃う。`inline-size: auto` も同じく、`is--wrapper > *` で当たる `inline-size: 100%` を打ち消すためのリセット。
55
59
 
56
60
  ## Usage
57
61
 
@@ -64,7 +68,7 @@
64
68
  <div class="-max-sz:m -mx:auto" style="max-inline-size: var(--sz--m)">...</div>
65
69
  ```
66
70
 
67
- ### `.has--gutter` 内の全幅要素
71
+ ### `has--gutter` 内の全幅要素
68
72
 
69
73
  ```html
70
74
  <div class="has--gutter">
@@ -74,14 +78,14 @@
74
78
  </div>
75
79
  ```
76
80
 
77
- ### container 基準のサイズ
81
+ ### 最外側 container 基準のサイズ(full-bleed)
78
82
 
79
83
  ```html
80
84
  <div class="is--container">
81
85
  <div class="is--wrapper -contentSize:s">
82
86
  <p>狭めのコンテンツ</p>
83
- <div class="-max-sz:container">
84
- container 基準まで広がる要素
87
+ <div class="-max-sz:bleed">
88
+ 最外側 container 幅まで広がる要素(ネストされた is--container も突き抜ける)
85
89
  </div>
86
90
  </div>
87
91
  </div>
@@ -94,6 +98,6 @@
94
98
 
95
99
  ## 関連
96
100
 
97
- - [`is--container`](../trait-class/is--container.md) — `-max-sz:container` の基準となるコンテナ
101
+ - [`is--container`](../trait-class/is--container.md) — `-max-sz:bleed` の基準となるコンテナ
98
102
  - [`is--wrapper`](../trait-class/is--wrapper.md) — コンテンツ幅の制限
99
103
  - [`has--gutter`](../trait-class/has--gutter.md) — `-max-sz:full` と組み合わせる左右余白
@@ -6,6 +6,7 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
6
6
  ## TOC
7
7
 
8
8
  - [基本書式](#基本書式)
9
+ - [プリセット外の値をクラス化する(`:value` 記法、Lism Props 限定)](#プリセット外の値をクラス化するvalue-記法lism-props-限定)
9
10
  - [表の読み方](#表の読み方)
10
11
  - [全 Prop 一覧](#全-prop-一覧)
11
12
  - [特殊な Property Class](#特殊な-property-class)
@@ -16,13 +17,13 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
16
17
  - [Property Class の特殊な出力タイプ](#property-class-の特殊な出力タイプ)
17
18
  - [Property Class の検索・一括修正](#property-class-の検索一括修正)
18
19
 
19
- [詳細](https://lism-css.com/docs/property-class/)
20
+ [詳細](https://lism-css.com/docs/property-class.md)
20
21
 
21
22
  個別ドキュメント:
22
23
 
23
24
  - [property-class/bd.md](./property-class/bd.md) — ボーダー(`-bd` / `-bd-{side}` 系)
24
25
  - [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
+ - [property-class/max-sz.md](./property-class/max-sz.md) — 最大幅(`-max-sz:full` / `-max-sz:bleed` 等)
26
27
 
27
28
  ---
28
29
 
@@ -47,6 +48,16 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
47
48
  ```
48
49
 
49
50
 
51
+ ### プリセット外の値をクラス化する(`:value` 記法、Lism Props 限定)
52
+
53
+ Lism コンポーネントの Propsに渡す値の頭に `:` を付けると、 **強制的に Property Class を出力**できる。cssを追記してトークン値を独自に増やした場合などに活用できる。
54
+
55
+ ```jsx
56
+ <Text lts=":2xl">...</Text>
57
+ // → <p class="-lts:2xl">...</Text>
58
+ ```
59
+
60
+
50
61
  ## 表の読み方
51
62
 
52
63
  | カラム | 説明 |
@@ -72,7 +83,7 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
72
83
  | `fs` | `font-style` | `-fs:italic` | — |
73
84
  | `lh` | `line-height`(`--hl` 経由) | `-lh:base`, `-lh:xs`, `-lh:s`, `-lh:l`, `-lh:1` | — |
74
85
  | `hl` | `--hl` 変数のみ | — | `-hl_sm`, `-hl_md` |
75
- | `lts` | `letter-spacing` | `-lts:base`, `-lts:s`, `-lts:l` | — |
86
+ | `lts` | `letter-spacing` | `-lts:base`, `-lts:s`, `-lts:l`, `-lts:xl` | — |
76
87
  | `ta` | `text-align` | `-ta:center`, `-ta:left`, `-ta:right` | — |
77
88
  | `td` | `text-decoration` | `-td:none` | — |
78
89
  | `tt` | `text-transform` | `-tt:upper`, `-tt:lower` | — |
@@ -84,7 +95,7 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
84
95
  | Prop | CSS プロパティ | プリセット値クラス | BP クラス |
85
96
  |------|--------------|-------------|-----|
86
97
  | `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` |
87
- | `o` | `opacity` | `-o:0`, `-o:-10`, `-o:-20`, `-o:-30` | — |
98
+ | `o` | `opacity` | `-o:0`, `-o:mp`, `-o:p`, `-o:pp`, `-o:ppp` | — |
88
99
  | `v` | `visibility` | `-v:hidden` | — |
89
100
  | `ov` | `overflow` | `-ov:hidden`, `-ov:auto`, `-ov:clip` | — |
90
101
  | `ov-x` | `overflow-x` | `-ov-x:clip`, `-ov-x:auto`, `-ov-x:scroll` | — |
@@ -103,14 +114,14 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
103
114
  | `max-h` | `max-height` | `-max-h:100%` | `-max-h_sm`, `-max-h_md` |
104
115
  | `sz` | `inline-size` | — | — |
105
116
  | `min-sz` | `min-inline-size` | — | — |
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` | — |
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` | — |
107
118
  | `bsz` | `block-size` | — | — |
108
119
  | `min-bsz` | `min-block-size` | — | — |
109
120
  | `max-bsz` | `max-block-size` | — | — |
110
121
 
111
122
  **`max-sz` の特殊クラス:**
112
- - `-max-sz:full` — `.has--gutter` 内では gutter 分を含めた全幅に拡張
113
- - `-max-sz:container` — コンテナ幅に合わせる(`margin-inline` で中央配置)
123
+ - `-max-sz:full` — `has--gutter` 内では gutter 分を含めた全幅に拡張
124
+ - `-max-sz:bleed` — 最外側の `is--container` 幅まで広がる(`margin-inline` で中央配置、`is--container` 祖先がなければ `100svi` まで広がる)
114
125
 
115
126
  → 詳細は [property-class/max-sz.md](./property-class/max-sz.md) 参照
116
127
 
@@ -275,7 +286,7 @@ SPACE トークン(全値): `5`, `10`, `15`, `20`, `30`, `40`, `50`, `60`, `
275
286
 
276
287
  ## 特殊な Property Class
277
288
 
278
- 以下は通常の `.-{prop}:{value}` パターンとは異なる特殊な仕組みを持つ Prop です。
289
+ 以下は通常の `-{prop}:{value}` パターンとは異なる特殊な仕組みを持つ Prop です。
279
290
 
280
291
  ### ボーダー(`bd` 系)
281
292
 
@@ -296,11 +307,11 @@ Lism CSS のボーダーは CSS 変数(`--bds` / `--bdw` / `--bdc`)で管理
296
307
 
297
308
  | 形式 | 役割 | 動作条件 |
298
309
  |------|------|---------|
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` が必要 |
310
+ | `-hov:-{prop}` | `--hov-{prop}` 変数で hover 時の値を変化させる | `:hover`(`@media (any-hover: hover)` 内) |
311
+ | `-hov:{preset}` | hover 時のスタイルをプリセットで適用 | `:hover`(同上) |
312
+ | `-hov:in:{preset}` | 親の `set--var:hov` を起点に子のスタイルを変化させる | 親に `set--var:hov` が必要 |
302
313
 
303
- **標準プリセット:** `.-hov:-c`, `.-hov:-bgc`, `.-hov:-bdc`, `.-hov:-o`, `.-hov:-bxsh`, `.-hov:underline`, `.-hov:neutral`, `.-hov:in:hide`, `.-hov:in:show`, `.-hov:in:zoom`
314
+ **標準プリセット:** `-hov:-c`, `-hov:-bgc`, `-hov:-bdc`, `-hov:-o`, `-hov:-bxsh`, `-hov:underline`, `-hov:neutral`, `-hov:in:hide`, `-hov:in:show`, `-hov:in:zoom`
304
315
 
305
316
  **`<Lism>` の `hov` prop:** 文字列指定(`hov="-c"` → `-hov:-c`。自動変換なし、カンマ区切りで複数可)とオブジェクト指定(`hov={{ c: 'red' }}` → `-hov:-c` + `--hov-c: var(--red)`。値 `true` でクラスのみ出力)が可能。
306
317
 
@@ -22,7 +22,7 @@ set-- は目的別に 2 カテゴリに分かれます。
22
22
  - [`set--var:hov`](#set--varhov)
23
23
  - [`set--var:bdrsInner`](#set--varbdrsinner)
24
24
 
25
- [詳細](https://lism-css.com/docs/set-class/)
25
+ [詳細](https://lism-css.com/docs/set-class.md)
26
26
 
27
27
  ---
28
28
 
@@ -114,7 +114,7 @@ Lism CSSでは、クラスを持つリスト(`ul` / `ol`)ではスタイル
114
114
  .-hov\:test {
115
115
  color: var(--_isHov, green) var(--_notHov, red); /* hover時はgreen, 非hover時はred*/
116
116
  box-shadow: var(--_isHov, var(--bxsh--30)); /* hover時はshadowをつける(非hover時は無効な値) */
117
- opacity: var(--_notHov, var(--o---20)); /* 非hover時は不透明度を下げる(hover時は無効な値) */
117
+ opacity: var(--_notHov, var(--o--pp)); /* 非hover時は不透明度を下げる(hover時は無効な値) */
118
118
  }
119
119
  ```
120
120
 
@@ -20,7 +20,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
20
20
  - [カラー](#カラー)
21
21
  - [トークン値の命名規則](#トークン値の命名規則)
22
22
 
23
- [詳細](https://lism-css.com/docs/tokens/)
23
+ [詳細](https://lism-css.com/docs/tokens.md)
24
24
 
25
25
  ---
26
26
 
@@ -31,13 +31,13 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
31
31
  | 余白 (space) | `5`, `10`, `15`, `20`, `30`, `40`, `50`, `60`, `70`, `80` | `--s{N}` | `--s20` |
32
32
  | フォントサイズ (fz) | `root`, `base`, `2xs`, `xs`, `s`, `m`, `l`, `xl`, `2xl`, `3xl`, `4xl`, `5xl` | `--fz--{key}` | `--fz--l` |
33
33
  | ハーフレディング・行間 (lh/hl) | `base`, `xs`, `s`, `l` | `--hl--{key}` | `--hl--s` |
34
- | 字間 (lts) | `base`, `s`, `l` | `--lts--{key}` | `--lts--s` |
34
+ | 字間 (lts) | `base`, `s`, `l`, `xl` | `--lts--{key}` | `--lts--s` |
35
35
  | フォント (ff) | `base`, `accent`, `mono` | `--ff--{key}` | `--ff--mono` |
36
36
  | ウェイト (fw) | `light`, `normal`, `bold` | `--fw--{key}` | `--fw--bold` |
37
- | 透明度 (o) | `-10`, `-20`, `-30` | `--o--{-N}` | `--o---10` |
37
+ | 透明度 (o) | `mp`, `p`, `pp`, `ppp` | `--o--{key}` | `--o--p` |
38
38
  | 角丸 (bdrs) | `10`, `20`, `30`, `40`, `99`, `inner` | `--bdrs--{key}` | `--bdrs--20` |
39
39
  | 影 (bxsh) | `10`, `20`, `30`, `40`, `50` | `--bxsh--{N}` | `--bxsh--20` |
40
- | サイズ (sz) | `xs`, `s`, `m`, `l`, `xl`, `container` | `--sz--{key}` | `--sz--l` |
40
+ | サイズ (sz) | `xs`, `s`, `m`, `l`, `xl`, `bleed` | `--sz--{key}` | `--sz--l` |
41
41
  | アスペクト比 (ar) | `og` | `--ar--{key}` | `--ar--og` |
42
42
  | フロー余白 (flow) | `s`, `l` | `--flow--{key}` | `--flow--s` |
43
43
  | セマンティックカラー (c) | `base`, `base-2`, `text`, `text-2`, `divider`, `link`, `brand`, `accent` | `--{name}` | `--brand` |
@@ -83,7 +83,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
83
83
  | `--fz--s` | `calc(1em * var(--fz-mol) / (var(--fz-mol) + 1))` | S(mol/(mol+1)) |
84
84
  | `--fz--xs` | `calc(1em * var(--fz-mol) / (var(--fz-mol) + 2))` | XS(mol/(mol+2)) |
85
85
  | `--fz--2xs` | `calc(1em * var(--fz-mol) / (var(--fz-mol) + 3))` | 最小(mol/(mol+3)) |
86
- | `--fz--base` | `var(--REM)` | 本文の基本フォントサイズ(≒ 1rem) |
86
+ | `--fz--base` | `1rem` | 本文の基本フォントサイズ |
87
87
  | `--fz--root` | — | `:root` のフォントサイズ |
88
88
 
89
89
  `--fz-mol` を上書きすることでスケール全体を調整可能(7以上の値に対応)。
@@ -106,8 +106,9 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
106
106
  | CSS変数 | 値 | 説明 |
107
107
  |---------|-----|------|
108
108
  | `--lts--base` | `normal` | 基本の文字間隔 |
109
- | `--lts--s` | `-0.05em` | 狭めの文字間隔 |
109
+ | `--lts--s` | `-0.025em` | 狭めの文字間隔 |
110
110
  | `--lts--l` | `0.05em` | 広めの文字間隔 |
111
+ | `--lts--xl` | `0.1em` | より広い文字間隔 |
111
112
 
112
113
 
113
114
  ## フォント (ff)
@@ -132,11 +133,14 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
132
133
 
133
134
  ## 透明度 (o)
134
135
 
136
+ 音楽の強弱記号(piano 系列)に由来するセマンティック命名を採用。`p`(piano / 弱く)の反復回数が多いほど透明度が増す。Lism 内で「文字の反復回数で段階を表す」命名は opacity のみの例外。
137
+
135
138
  | CSS変数 | 値 | 説明 |
136
139
  |---------|-----|------|
137
- | `--o---10` | `0.75` | 75%の不透明度 |
138
- | `--o---20` | `0.5` | 50%の不透明度 |
139
- | `--o---30` | `0.25` | 25%の不透明度 |
140
+ | `--o--mp` | `0.9` | mezzo-piano: ごく軽い減衰 |
141
+ | `--o--p` | `0.75` | piano: hover fade, 補助テキスト等 |
142
+ | `--o--pp` | `0.5` | pianissimo: disabled, divider, decorator 等 |
143
+ | `--o--ppp` | `0.25` | pianississimo: 最も強く減衰 |
140
144
 
141
145
 
142
146
  ## 角丸 (bdrs)
@@ -6,8 +6,8 @@
6
6
 
7
7
  - クラス名: `has--gutter`
8
8
  - Lism props: `hasGutter`(`<Lism hasGutter>` 等)
9
- - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/trait/_hasGutter.scss
10
- - ドキュメント(人間向け): https://lism-css.com/docs/trait-class/#has--gutter
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/trait/has/_gutter.scss
10
+ - 公式ドキュメント: https://lism-css.com/docs/trait-class.md#has--gutter
11
11
 
12
12
  ## SCSS 定義
13
13