@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,55 @@
1
+ # l--center / `<Center>`
2
+
3
+ 要素を上下左右中央揃えで配置するクラス。高さの有無で水平中央のみ / 上下左右中央を自動的に切り替えます。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `l--center`
8
+ - コンポーネント: `<Center>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_center.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--center/
11
+
12
+ ## 動作の仕組み
13
+
14
+ - 高さを持たない場合: コンテンツを**水平方向のみ**中央揃え(内在的な中央寄せ。長いテキストは左寄せのまま)
15
+ - 高さ・アスペクト比(`h`, `min-h`, `ar` など)が設定されている場合: **垂直方向も中央揃え**
16
+
17
+ ## Usage
18
+
19
+ ### 水平方向に中央配置
20
+
21
+ ```jsx
22
+ <Center bd p="30">
23
+ <Text fz="l">TEXT</Text>
24
+ </Center>
25
+ ```
26
+
27
+ ```html
28
+ <div class="l--center -bd -p:30">
29
+ <p class="-fz:l">TEXT</p>
30
+ </div>
31
+ ```
32
+
33
+ ### 上下左右中央に配置する
34
+
35
+ `ar` や高さを指定すると、垂直方向に対しても中央揃えになります。
36
+
37
+ ```jsx
38
+ <Center g="10" ar="3/2" bd>
39
+ <Text fz="l">TEXT</Text>
40
+ <Text fz="s">Lorem ipsum dolor sit amet.</Text>
41
+ </Center>
42
+ ```
43
+
44
+ ```html
45
+ <div class="l--center -bd -g:10 -ar:3/2">
46
+ <p class="-fz:l">TEXT</p>
47
+ <p class="-fz:s">Lorem ipsum dolor sit amet.</p>
48
+ </div>
49
+ ```
50
+
51
+ ## 関連プリミティブ
52
+
53
+ - [l--frame](./l--frame.md) — アスペクト比付きメディアフレーム(`<Center>` と組み合わせられる)
54
+ - [l--stack](./l--stack.md) — `ai="center"` で水平中央の内在的な中央寄せが可能
55
+ - [l--grid](./l--grid.md) — `ga="1/1"` で重ね配置のオーバーレイ
@@ -0,0 +1,38 @@
1
+ # l--cluster / `<Cluster>`
2
+
3
+ 複数の要素を横方向に並べ、数が多ければ自動的に折り返すクラス。タグリスト・ボタングループなどに使います。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `l--cluster`
8
+ - コンポーネント: `<Cluster>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_cluster.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--cluster/
11
+
12
+ ## Usage
13
+
14
+ ### 基本的な使い方
15
+
16
+ ```jsx
17
+ <Cluster g="15">
18
+ <Lism bd px="10" bdrs="10">Lorem</Lism>
19
+ <Lism bd px="10" bdrs="10">ipsum</Lism>
20
+ <Lism bd px="10" bdrs="10">Dolor</Lism>
21
+ <Lism bd px="10" bdrs="10">Sit amet</Lism>
22
+ </Cluster>
23
+ ```
24
+
25
+ ```html
26
+ <div class="l--cluster -g:15">
27
+ <span class="-bd -px:10 -bdrs:10">Lorem</span>
28
+ <span class="-bd -px:10 -bdrs:10">ipsum</span>
29
+ <span class="-bd -px:10 -bdrs:10">Dolor</span>
30
+ <span class="-bd -px:10 -bdrs:10">Sit amet</span>
31
+ </div>
32
+ ```
33
+
34
+ ## 関連プリミティブ
35
+
36
+ - [l--flex](./l--flex.md) — 汎用 Flex 横並び(折り返しなしが基本)
37
+ - [l--stack](./l--stack.md) — Flex 縦並び
38
+ - [l--switchCols](./l--switchCols.md) — ブレイクポイントで縦横切り替えるカラム
@@ -0,0 +1,72 @@
1
+ # l--columns / `<Columns>`
2
+
3
+ ブレイクポイントごとに指定した列数で表示できるカラムクラス。等幅の複数カラムを定義したい場合に使います。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `l--columns`
8
+ - コンポーネント: `<Columns>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_columns.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--columns/
11
+
12
+ ## 専用Props
13
+
14
+ | Prop | CSS変数 | 説明 | デフォルト |
15
+ |------|--------|------|------------|
16
+ | `cols` | `--cols` | 列数を指定。配列でブレイクポイント指定可 | `2` |
17
+
18
+ ## Usage
19
+
20
+ ### 2列レイアウト
21
+
22
+ ```jsx
23
+ <Columns cols={2} g="20">
24
+ <Box bgc="base-2" p="20">Box</Box>
25
+ <Box bgc="base-2" p="20">Box</Box>
26
+ <Box bgc="base-2" p="20">Box</Box>
27
+ <Box bgc="base-2" p="20">Box</Box>
28
+ </Columns>
29
+ ```
30
+
31
+ ```html
32
+ <div class="l--columns -g:20" style="--cols: 2">
33
+ <div class="l--box -bgc:base-2 -p:20">Box</div>
34
+ <div class="l--box -bgc:base-2 -p:20">Box</div>
35
+ <div class="l--box -bgc:base-2 -p:20">Box</div>
36
+ <div class="l--box -bgc:base-2 -p:20">Box</div>
37
+ </div>
38
+ ```
39
+
40
+ ### ブレイクポイント別指定
41
+
42
+ ```jsx
43
+ <Columns cols={[1, 2, 3]} g="20">
44
+ <Box>Box1</Box>
45
+ <Box>Box2</Box>
46
+ <Box>Box3</Box>
47
+ </Columns>
48
+ ```
49
+
50
+ ```html
51
+ <div class="l--columns -cols_sm -cols_md -g:20" style="--cols: 1; --cols_sm: 2; --cols_md: 3">
52
+ <div class="l--box">Box1</div>
53
+ <div class="l--box">Box2</div>
54
+ <div class="l--box">Box3</div>
55
+ </div>
56
+ ```
57
+
58
+ `null` でブレイクポイントをスキップ可:`cols={[2, null, 4]}` で「デフォルト2列、`md` から4列」になります。
59
+
60
+ ### `gc`(grid-column)で子要素の横幅を個別制御
61
+
62
+ 子要素側で `gc="span 2"` のように指定すると、その子だけ複数列にまたがって配置できます。`cols="6"` 等の多めの列数と組み合わせると、不揃いなブロックレイアウトを作れます。
63
+
64
+ ### subgrid でカード高さ揃え
65
+
66
+ 子要素を `<Grid gtr="subgrid" gr="span 4">` にすると、親 Columns の行グリッドを継承しカード内のメディア・タイトル・本文・フッタを縦方向に揃えられます。
67
+
68
+ ## 関連プリミティブ
69
+
70
+ - [l--tileGrid](./l--tileGrid.md) — 列数×行数を指定する均等タイル
71
+ - [l--fluidCols](./l--fluidCols.md) — カラム幅ベースの自動段組
72
+ - [l--switchCols](./l--switchCols.md) — 複数列 ↔ 1列切り替え
@@ -0,0 +1,74 @@
1
+ # l--flex / `<Flex>`
2
+
3
+ コンテンツを Flex レイアウトで配置するためのクラス。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `l--flex`
8
+ - コンポーネント: `<Flex>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_flex.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--flex/
11
+
12
+ ## Usage
13
+
14
+ ### 基本的な使い方
15
+
16
+ ```jsx
17
+ <Flex>
18
+ <div>Item</div>
19
+ <div>Item</div>
20
+ <div>Item</div>
21
+ </Flex>
22
+ ```
23
+
24
+ ```html
25
+ <div class="l--flex">
26
+ <div>Item</div>
27
+ <div>Item</div>
28
+ <div>Item</div>
29
+ </div>
30
+ ```
31
+
32
+ ### Flex プロパティの指定
33
+
34
+ Property Class や Lism Props で Flex 関連プロパティ(`g`, `fxw`, `jc`, `ai`, `fxd` など)を指定できます。レスポンシブ対応プロパティは配列・オブジェクトで指定可能。
35
+
36
+ ```jsx
37
+ <Flex fxw="wrap" jc="center" g="20">
38
+ <div>Flex Content</div>
39
+ <div>Flex Content</div>
40
+ <div>Flex Content</div>
41
+ </Flex>
42
+ ```
43
+
44
+ ```html
45
+ <div class="l--flex -fxw:wrap -g:20 -jc:center">
46
+ <div>Flex Content</div>
47
+ <div>Flex Content</div>
48
+ <div>Flex Content</div>
49
+ </div>
50
+ ```
51
+
52
+ ### 子要素の Flex プロパティ
53
+
54
+ 子要素側も `fx`(flex shorthand), `fxb`(flex-basis), `fxg`(flex-grow), `fxs`(flex-shrink)などで個別制御できます。
55
+
56
+ ```jsx
57
+ <Flex g="20">
58
+ <Lism fx="1">Flex Content</Lism>
59
+ <Lism fxb={['33%', '25%']}>Flex Content</Lism>
60
+ </Flex>
61
+ ```
62
+
63
+ ```html
64
+ <div class="l--flex -g:20">
65
+ <div class="-fx:1">Flex Content</div>
66
+ <div class="-fxb -fxb_sm" style="--fxb:33%;--fxb_sm:25%">Flex Content</div>
67
+ </div>
68
+ ```
69
+
70
+ ## 関連プリミティブ
71
+
72
+ - [l--stack](./l--stack.md) — 縦積みの Flexbox(`flex-direction: column`)
73
+ - [l--cluster](./l--cluster.md) — 折り返し前提の横並び(`flex-wrap: wrap`)
74
+ - [l--grid](./l--grid.md) — CSS Grid レイアウト
@@ -0,0 +1,134 @@
1
+ # l--flow / `<Flow>`
2
+
3
+ 子要素間の余白を `margin-block-start` で管理するフローレイアウト。**記事コンテンツなどテキスト主体のフローレイアウト**に最適。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `l--flow`
8
+ - コンポーネント: `<Flow>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_flow.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--flow/
11
+
12
+ ## 余白の仕組み
13
+
14
+ `l--flow` 直下の子要素は、`--flow` 変数と `margin-block-start` で間隔が管理されます。見出しタグ(`h2`〜`h6`)のみ余白が大きくなる(`--flow-hScale` で調整可能)。
15
+
16
+ | クラス | 余白量 |
17
+ |--------|-------|
18
+ | `.l--flow` | `--flow--base`(`--s30`) |
19
+ | `.l--flow.-flow:s` | `--flow--s`(`--s20`) |
20
+ | `.l--flow.-flow:` | `--flow` を直接指定した値 |
21
+
22
+ ## 専用Props
23
+
24
+ | Prop | 説明 |
25
+ |------|------|
26
+ | `flow` | `--flow` の値を指定。`s` / `l` などのトークン値を渡すと `.-flow:{value}` クラスが付与、任意値を渡すと `.-flow:` + `style="--flow:..."` が出力される |
27
+
28
+ ## Usage
29
+
30
+ ### 基本的な使い方
31
+
32
+ ```jsx
33
+ <Flow>
34
+ <p>本文1...</p>
35
+ <p>本文2...</p>
36
+ <h2>Heading 2</h2>
37
+ <p>本文3...</p>
38
+ <ul>
39
+ <li>リスト項目1</li>
40
+ <li>リスト項目2</li>
41
+ </ul>
42
+ </Flow>
43
+ ```
44
+
45
+ ```html
46
+ <div class="l--flow">
47
+ <p>本文1...</p>
48
+ <p>本文2...</p>
49
+ <h2>Heading 2</h2>
50
+ <p>本文3...</p>
51
+ <ul>...</ul>
52
+ </div>
53
+ ```
54
+
55
+ ### 余白量をトークンで変える(`flow="s"`)
56
+
57
+ ```jsx
58
+ <Flow flow="s">
59
+ <p>本文...</p>
60
+ <h2>Heading</h2>
61
+ <p>本文...</p>
62
+ </Flow>
63
+ ```
64
+
65
+ ```html
66
+ <div class="l--flow -flow:s">
67
+ <p>本文...</p>
68
+ <h2>Heading</h2>
69
+ <p>本文...</p>
70
+ </div>
71
+ ```
72
+
73
+ ### 任意の値を指定する
74
+
75
+ トークン値以外を `flow` に渡すと、`-flow:` クラスと `--flow` CSS変数で出力されます。
76
+
77
+ ```jsx
78
+ <Flow flow="10px">
79
+ <p>本文...</p>
80
+ <p>本文...</p>
81
+ </Flow>
82
+ ```
83
+
84
+ ```html
85
+ <div class="l--flow -flow:" style="--flow:10px">
86
+ <p>本文...</p>
87
+ <p>本文...</p>
88
+ </div>
89
+ ```
90
+
91
+ ## `is--skipFlow`
92
+
93
+ `l--flow` 直下で使用し、**次の兄弟要素との余白を打ち消す**トレイトクラス。フローコンテンツの先頭に `position: absolute` な要素を配置したい場合などに使用します。
94
+
95
+ ```html
96
+ <div class="l--flow">
97
+ <div class="is--skipFlow">スキップ対象</div>
98
+ <p>本文1(上の要素との余白が打ち消される)</p>
99
+ <p>本文2</p>
100
+ </div>
101
+ ```
102
+
103
+ `is--skipFlow` は `l--flow` 専用のトレイトクラスで、独立したドキュメントは持ちません。
104
+
105
+ ## 入れ子時の注意点
106
+
107
+ `l--flow` の直下で `l--flow` をネストして `--flow` をカスタム値で直接指定すると、**その子側の `l--flow` 自身の `margin-block-start` にも影響**が出ます。直下にネストせず、別要素で一度ラップすれば回避できます。
108
+
109
+ ```jsx
110
+ // NG: 直下ネストで --flow を上書きすると親子両方に影響
111
+ <Flow>
112
+ <p>親コンテンツ</p>
113
+ <Flow flow="5px"> {/* この Flow 自体の上マージンも 5px になる */}
114
+ <p>子コンテンツ</p>
115
+ </Flow>
116
+ </Flow>
117
+
118
+ // OK: 間に1段ラップを挟む
119
+ <Flow>
120
+ <p>親コンテンツ</p>
121
+ <div>
122
+ <Flow flow="5px">
123
+ <p>子コンテンツ</p>
124
+ </Flow>
125
+ </div>
126
+ </Flow>
127
+ ```
128
+
129
+ またネストされた `l--flow` は、`--flow` が未定義の場合 `--flow--base` ではなく**親の値を継承**することにも注意してください。
130
+
131
+ ## 関連プリミティブ
132
+
133
+ - [l--stack](./l--stack.md) — `gap` で余白を管理する縦積み(こちらは Flexbox)
134
+ - [is--wrapper](./is--wrapper.md) — 記事コンテンツ幅の制限用ラッパー(`l--flow` とセットで使うことが多い)
@@ -0,0 +1,68 @@
1
+ # l--fluidCols / `<FluidCols>`
2
+
3
+ カラム要素が指定した幅より小さくならないように自動で折り返す、**ブレイクポイント非依存の段組みクラス**。`auto-fit` / `auto-fill` を使った流動カラムを簡潔に記述できます。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `l--fluidCols`
8
+ - コンポーネント: `<FluidCols>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_fluidCols.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--fluidCols/
11
+
12
+ ## 専用Props
13
+
14
+ | Prop | CSS変数 | 説明 |
15
+ |------|--------|------|
16
+ | `cols` | `--cols` | カラムが維持する最小幅を指定(`12rem`, `320px` など) |
17
+ | `autoFill` | `--autoMode` | `auto-fill` モードに切り替え(デフォルトは `auto-fit`) |
18
+
19
+ ## Usage
20
+
21
+ ### デフォルト幅で利用する
22
+
23
+ ```jsx
24
+ <FluidCols g="20">
25
+ <Box bxsh="20" p="20"><p>カード1のコンテンツ</p></Box>
26
+ <Box bxsh="20" p="20"><p>カード2のコンテンツ</p></Box>
27
+ <Box bxsh="20" p="20"><p>カード3のコンテンツ</p></Box>
28
+ </FluidCols>
29
+ ```
30
+
31
+ ```html
32
+ <div class="l--fluidCols -g:20">
33
+ <div class="l--box -bxsh:20 -p:20"><p>カード1のコンテンツ</p></div>
34
+ <div class="l--box -bxsh:20 -p:20"><p>カード2のコンテンツ</p></div>
35
+ <div class="l--box -bxsh:20 -p:20"><p>カード3のコンテンツ</p></div>
36
+ </div>
37
+ ```
38
+
39
+ ### カラム最小幅と `auto-fill` の指定
40
+
41
+ ```jsx
42
+ <FluidCols cols="12rem" autoFill g="20" fz="s">
43
+ <Box bxsh="20" p="20"><p>A</p></Box>
44
+ <Box bxsh="20" p="20"><p>B</p></Box>
45
+ <Box bxsh="20" p="20"><p>C</p></Box>
46
+ </FluidCols>
47
+ ```
48
+
49
+ ### 2列 → 1列
50
+
51
+ カラム最小幅を大きめに設定すれば「2列 → コンテナが狭まれば 1列」のような段階的段組も自然に作れます。
52
+
53
+ ```jsx
54
+ <FluidCols cols="320px" g="20">
55
+ <Frame ar="16/9">
56
+ <img src="/img/a-1.jpg" width="600" height="400" />
57
+ </Frame>
58
+ <Frame ar="16/9">
59
+ <img src="/img/a-3.jpg" width="600" height="400" />
60
+ </Frame>
61
+ </FluidCols>
62
+ ```
63
+
64
+ ## 関連プリミティブ
65
+
66
+ - [l--columns](./l--columns.md) — ブレイクポイント指定の等幅カラム
67
+ - [l--switchCols](./l--switchCols.md) — 複数列 ↔ 1列の2段階切り替え
68
+ - [l--sideMain](./l--sideMain.md) — メイン幅ベースの2カラム自動切替
@@ -0,0 +1,94 @@
1
+ # l--frame / `<Frame>`
2
+
3
+ 直下のメディア要素(`img`, `video`, `iframe`)を自身のサイズにフィットさせて表示するクラス。アスペクト比固定のメディア枠を簡単に作れます。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `l--frame`
8
+ - コンポーネント: `<Frame>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_frame.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--frame/
11
+
12
+ ## 専用Props
13
+
14
+ | Prop | 説明 |
15
+ |------|------|
16
+ | `ar` | フレームのアスペクト比を指定(`16/9` など)。`ar` 自体はどのコンポーネントにも指定できる汎用 CSS Prop |
17
+
18
+ ## Usage
19
+
20
+ ### アスペクト比の指定
21
+
22
+ ```jsx
23
+ <Frame ar="16/9">
24
+ <img src="/img/a-1.jpg" alt="" width="960" height="640" />
25
+ </Frame>
26
+ ```
27
+
28
+ ```html
29
+ <div class="l--frame -ar:16/9">
30
+ <img src="/img/a-1.jpg" alt="" width="960" height="640" />
31
+ </div>
32
+ ```
33
+
34
+ ### `figure` / `figcaption` の使用
35
+
36
+ `as="figure"` を指定してセマンティックな `<figure>` 要素として出力できます。
37
+
38
+ ```jsx
39
+ <Frame as="figure" ar="16/9" pos="relative">
40
+ <img src="/img/a-1.jpg" alt="" width="960" height="640" />
41
+ <Flex as="figcaption" pos="absolute" b="0" w="100%" jc="center" p="10" c="white" bgc="rgb(0 0 0 / 40%)">
42
+ Caption text
43
+ </Flex>
44
+ </Frame>
45
+ ```
46
+
47
+ ### `iframe` / `video` の使用
48
+
49
+ `iframe`(YouTube 埋め込みなど)や `video` も同様に `l--frame` 直下に配置すれば自動的にフィットします。
50
+
51
+ ```jsx
52
+ <Frame ar="16/9">
53
+ <iframe src="https://www.youtube.com/embed/xxx" allowfullscreen />
54
+ </Frame>
55
+ ```
56
+
57
+ ### Layer 系を活用したオーバーレイ
58
+
59
+ `<Layer>` と組み合わせると、メディア上にテキストやオーバーレイを重ねられます。
60
+
61
+ ```jsx
62
+ <Frame ar="3/2" pos="relative" c="#fff">
63
+ <img src="/img/a-1.jpg" alt="" width="960" height="640" />
64
+ <Layer bgc="rgb(0 0 0 / 40%)" />
65
+ <Layer p="30">
66
+ <Center min-h="100%" g="15">
67
+ <h2>Heading</h2>
68
+ <Text>オーバーレイ内のテキスト...</Text>
69
+ </Center>
70
+ </Layer>
71
+ </Frame>
72
+ ```
73
+
74
+ ### レスポンシブな `ar`
75
+
76
+ `ar` はブレイクポイント別に配列で指定できます。
77
+
78
+ ```jsx
79
+ <Frame ar={['1/1', '3/2', '16/9']} pos="relative">
80
+ <img src="/img/a-1.jpg" alt="" width="960" height="640" />
81
+ </Frame>
82
+ ```
83
+
84
+ ```html
85
+ <div class="l--frame -ar:1/1 -ar_sm -ar_md" style="--ar_sm: 3/2; --ar_md: 16/9">
86
+ <img src="/img/a-1.jpg" alt="" />
87
+ </div>
88
+ ```
89
+
90
+ ## 関連プリミティブ
91
+
92
+ - [is--layer](./is--layer.md) — `l--frame` 内のオーバーレイ配置に使用
93
+ - [l--center](./l--center.md) — フレーム内でテキストを中央配置する時に組み合わせる
94
+ - [a--icon](./a--icon.md) — アイコン画像の表示(`src` 指定)
@@ -0,0 +1,68 @@
1
+ # l--grid / `<Grid>`
2
+
3
+ コンテンツを CSS Grid レイアウトで配置するクラス。`gtc` / `gta` / `ga` などの Grid プロパティと組み合わせて使います。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `l--grid`
8
+ - コンポーネント: `<Grid>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_grid.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--grid/
11
+
12
+ ## Usage
13
+
14
+ ### 基本的な使い方
15
+
16
+ `gtc`(`grid-template-columns`)で列を定義します。
17
+
18
+ ```jsx
19
+ <Grid gtc="auto 1fr auto" g="15">
20
+ <Center p="20" bgc="base-2">L</Center>
21
+ <Center p="20" bd>Center</Center>
22
+ <Center p="20" bgc="base-2">R</Center>
23
+ </Grid>
24
+ ```
25
+
26
+ ```html
27
+ <div class="l--grid -gtc -g:15" style="--gtc: auto 1fr auto">
28
+ <div class="l--center -p:20 -bgc:base-2">L</div>
29
+ <div class="l--center -p:20 -bd">Center</div>
30
+ <div class="l--center -p:20 -bgc:base-2">R</div>
31
+ </div>
32
+ ```
33
+
34
+ ### ブレイクポイントでエリアを切り替える
35
+
36
+ `gta`(`grid-template-areas`)と `gtc` を配列で渡すと、ブレイクポイントごとに別レイアウトを定義できます。子要素には `ga`(`grid-area`)で対応するエリア名を指定します。
37
+
38
+ ```jsx
39
+ <Grid g="15" gtc={['1fr 1fr', '8em 1fr 8em']} gta={[`'main main' 'left right'`, `'left main right'`]}>
40
+ <Box ga="left" p="15" bgc="base-2">Left</Box>
41
+ <Box ga="main" p="15" bd>Center</Box>
42
+ <Box ga="right" p="15" bgc="base-2">Right</Box>
43
+ </Grid>
44
+ ```
45
+
46
+ ### 子要素を重ねて表示する(`ga="1/1"`)
47
+
48
+ `position: absolute` を使わず、`grid-area: 1/1` を複数子要素に指定することで要素を重ねられます。
49
+
50
+ ```jsx
51
+ <Grid ar="16/9">
52
+ <Frame ga="1/1" w="100%" h="100%" pos="relative">
53
+ <Media src="/img/a-1.jpg" alt="" inferSize />
54
+ <Layer bgc="rgb(0 0 0 / 40%)" />
55
+ </Frame>
56
+ <Center ga="1/1" fz="3xl" z="1" c="white">SAMPLE TEXT</Center>
57
+ </Grid>
58
+ ```
59
+
60
+ ### subgrid の活用
61
+
62
+ `gtc="subgrid"` を入れ子の Grid に指定することで親 Grid のトラックを継承し、複数行を揃えたレイアウトが作れます。記事一覧やテーブル風レイアウトに活用できます。
63
+
64
+ ## 関連プリミティブ
65
+
66
+ - [l--tileGrid](./l--tileGrid.md) — 自動繰り返しのタイル型 Grid
67
+ - [l--columns](./l--columns.md) — 等幅カラム専用
68
+ - [l--sideMain](./l--sideMain.md) — コンテンツ幅自動切り替え型 2 カラム