@lism-css/mcp 0.12.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 (43) hide show
  1. package/README.ja.md +1 -1
  2. package/dist/data/docs-index.json +202 -151
  3. package/dist/data/guides/SKILL.md +95 -54
  4. package/dist/data/guides/base-styles.md +2 -2
  5. package/dist/data/guides/components-core.md +84 -130
  6. package/dist/data/guides/components-ui.md +3 -3
  7. package/dist/data/guides/css-rules.md +41 -21
  8. package/dist/data/guides/primitive-class.md +148 -0
  9. package/dist/data/guides/primitives/a--decorator.md +45 -0
  10. package/dist/data/guides/primitives/a--divider.md +69 -0
  11. package/dist/data/guides/primitives/a--icon.md +105 -0
  12. package/dist/data/guides/primitives/a--spacer.md +63 -0
  13. package/dist/data/guides/primitives/is--boxLink.md +97 -0
  14. package/dist/data/guides/primitives/is--container.md +46 -0
  15. package/dist/data/guides/primitives/is--layer.md +71 -0
  16. package/dist/data/guides/primitives/is--vertical.md +52 -0
  17. package/dist/data/guides/primitives/is--wrapper.md +87 -0
  18. package/dist/data/guides/primitives/l--box.md +31 -0
  19. package/dist/data/guides/primitives/l--center.md +55 -0
  20. package/dist/data/guides/primitives/l--cluster.md +38 -0
  21. package/dist/data/guides/primitives/l--columns.md +72 -0
  22. package/dist/data/guides/primitives/l--flex.md +74 -0
  23. package/dist/data/guides/primitives/l--flow.md +134 -0
  24. package/dist/data/guides/primitives/l--fluidCols.md +68 -0
  25. package/dist/data/guides/primitives/l--frame.md +94 -0
  26. package/dist/data/guides/primitives/l--grid.md +68 -0
  27. package/dist/data/guides/primitives/l--sideMain.md +102 -0
  28. package/dist/data/guides/primitives/l--stack.md +56 -0
  29. package/dist/data/guides/primitives/l--switchCols.md +69 -0
  30. package/dist/data/guides/primitives/l--tileGrid.md +61 -0
  31. package/dist/data/guides/property-class.md +6 -5
  32. package/dist/data/guides/set-class.md +11 -9
  33. package/dist/data/guides/tokens.md +18 -0
  34. package/dist/data/guides/utility-class.md +9 -8
  35. package/dist/data/meta.js +2 -2
  36. package/dist/lib/load-markdown.d.ts +3 -2
  37. package/dist/lib/load-markdown.js +23 -5
  38. package/dist/lib/search.js +20 -1
  39. package/dist/tools/get-component.js +119 -30
  40. package/dist/tools/get-guide.js +1 -1
  41. package/dist/tools/search-docs.js +1 -1
  42. package/package.json +1 -1
  43. package/dist/data/guides/module-class.md +0 -162
@@ -0,0 +1,46 @@
1
+ # is--container / `<Container>`
2
+
3
+ `container-type` を宣言してコンテナクエリを有効にするクラス。レスポンシブ Property Class(`p={['10', '30']}` のような配列指定)を使うとき、基準要素として必要になります。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `is--container`
8
+ - コンポーネント: `<Container>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/trait/_container.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/is--container/
11
+
12
+ ## 使い方
13
+
14
+ `<Container>` は `<Lism isContainer>` のエイリアスです。`isContainer` Prop は他のコンポーネントにも使用できます(例: `<Flow isContainer>`)。
15
+
16
+ | Prop | 出力 |
17
+ |------|------|
18
+ | `isContainer` | `.is--container` |
19
+
20
+ ## Usage
21
+
22
+ ### 使用例
23
+
24
+ ```jsx
25
+ <Container isWrapper="s" p="20">
26
+ <Box bd p={['10', '30']}>
27
+ このBOXは、padding が切り替わります
28
+ </Box>
29
+ </Container>
30
+ ```
31
+
32
+ ```html
33
+ <div class="is--container is--wrapper -contentSize:s -p:20">
34
+ <div class="l--box -bd -p:10 -p_sm" style="--p_sm: var(--s30)">
35
+ このBOXは、padding が切り替わります
36
+ </div>
37
+ </div>
38
+ ```
39
+
40
+ 子要素側は `p={['10', '30']}` のようなブレイクポイント配列指定にすることで、親の `is--container` を基準としたコンテナクエリで値が切り替わります。
41
+
42
+ ## 関連プリミティブ
43
+
44
+ - [is--wrapper](./is--wrapper.md) — コンテンツ幅ラッパー(`isContainer` と併用可)
45
+ - [l--flow](./l--flow.md) — 記事コンテンツ向けフローレイアウト
46
+ - [l--box](./l--box.md) — 汎用ボックス
@@ -0,0 +1,71 @@
1
+ # is--layer / `<Layer>`
2
+
3
+ `position: absolute` で親要素の上に被せて配置するオーバーレイ用クラス。親には `pos="relative"` が必要です。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `is--layer`
8
+ - コンポーネント: `<Layer>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/trait/_layer.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/is--layer/
11
+
12
+ ## 使い方
13
+
14
+ `<Layer>` は `<Lism isLayer>` のエイリアスです。他コンポーネントにも `isLayer` Prop で付与できます(例: `<Frame isLayer>`)。
15
+
16
+ ## Usage
17
+
18
+ ### 基本的な使い方
19
+
20
+ 親要素に `pos="relative"` を指定し、子に `<Layer>` を置くことで上に重なるオーバーレイになります。
21
+
22
+ ```jsx
23
+ <Box pos="relative" py="40">
24
+ <Text fz="2xl" fw="bold" ta="center">BACKGROUND</Text>
25
+ <Layer p="15" bgc="purple:10%">
26
+ <p>Layer Contents...</p>
27
+ </Layer>
28
+ </Box>
29
+ ```
30
+
31
+ ```html
32
+ <div class="l--box -pos:relative -py:40">
33
+ <p class="-fz:2xl -fw:bold -ta:center">BACKGROUND</p>
34
+ <div class="is--layer -p:15 -bgc" style="--bgc: color-mix(in srgb, var(--purple) 10%, transparent)">
35
+ <p>Layer Contents...</p>
36
+ </div>
37
+ </div>
38
+ ```
39
+
40
+ ### backdrop-filter の活用
41
+
42
+ `style` プロパティで `backdropFilter` を直接指定すると、背景をブラー・セピアなどの効果で加工できます。
43
+
44
+ ```jsx
45
+ <Frame ar="2/1" pos="relative">
46
+ <img src="/img/a-1.jpg" alt="" width="960" height="640" />
47
+ <Layer style={{ backdropFilter: 'contrast(1.1) sepia(0.4)' }} />
48
+ </Frame>
49
+ ```
50
+
51
+ ### メディアレイヤー(画像を背景にする)
52
+
53
+ `<Frame isLayer>` でメディアをレイヤー化して背景画像として配置し、さらに `<Layer>` で暗幕を重ね、本文は `pos="relative"` で上にのせる構成が定番です。
54
+
55
+ ```jsx
56
+ <Box pos="relative" py="50" px="40">
57
+ <Frame isLayer>
58
+ <Media src="/img/a-2.jpg" alt="" width="960" height="640" />
59
+ </Frame>
60
+ <Layer bgc="black:50%" />
61
+ <Stack pos="relative" g="30" c="white">
62
+ <p>本文テキスト...</p>
63
+ </Stack>
64
+ </Box>
65
+ ```
66
+
67
+ ## 関連プリミティブ
68
+
69
+ - [l--frame](./l--frame.md) — `isLayer` 併用でメディア背景のレイヤー化
70
+ - [l--grid](./l--grid.md) — `ga="1/1"` で position を使わずに重ね配置する代替パターン
71
+ - [l--center](./l--center.md) — レイヤー内のコンテンツ中央寄せ
@@ -0,0 +1,52 @@
1
+ # is--vertical
2
+
3
+ 要素に縦書きモード(`writing-mode`)を適用するクラス。対応するコンポーネントエイリアスはありません(直接クラス指定で使用)。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `is--vertical`
8
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/trait/_vertical.scss
9
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/is--vertical/
10
+
11
+ ## クラスバリエーション
12
+
13
+ 縦書き用の値はトークン(`--vertical-mode`)で管理されており、`lang` 属性に合わせて `vertical-rl` / `vertical-lr` を上書きできます。
14
+
15
+ | クラス名 | 説明 |
16
+ |---------|------|
17
+ | `is--vertical` | 常に縦書きモードにする |
18
+ | `is--vertical@sm` | `sm` サイズ以上で縦書きにする |
19
+ | `is--vertical@md` | `md` サイズ以上で縦書きにする |
20
+
21
+ **注意**: `is--vertical@sm`, `is--vertical@md` を使う場合は、**`set--bp` クラスを併用する必要があります**。
22
+
23
+ ## Usage
24
+
25
+ ### 常に縦書き
26
+
27
+ ```html
28
+ <div class="is--vertical">
29
+ <p>縦書きテキスト...</p>
30
+ </div>
31
+ ```
32
+
33
+ ### `sm` 以上で縦書きにする
34
+
35
+ ```jsx
36
+ <Flow set="gutter" py="20" w="100%" h="20em" className="is--vertical@sm set--bp">
37
+ <p>本文テキスト...</p>
38
+ <p>本文テキスト...</p>
39
+ </Flow>
40
+ ```
41
+
42
+ ```html
43
+ <div class="is--vertical@sm set--bp l--flow set--gutter -py:20 -w:100% -h" style="--h: 20em">
44
+ <p>本文テキスト...</p>
45
+ <p>本文テキスト...</p>
46
+ </div>
47
+ ```
48
+
49
+ ## 関連プリミティブ
50
+
51
+ - [l--flow](./l--flow.md) — 縦書きコンテンツと組み合わせる記事フロー
52
+ - [is--wrapper](./is--wrapper.md) — コンテンツ幅の制限
@@ -0,0 +1,87 @@
1
+ # is--wrapper / `<Wrapper>`
2
+
3
+ 直下のコンテンツ幅を一括制御するクラス。`max-width` とセンタリングを担い、記事・セクションのコンテンツ幅の統一に使います。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `is--wrapper`
8
+ - コンポーネント: `<Wrapper>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/trait/_wrapper.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/is--wrapper/
11
+
12
+ ## 使い方
13
+
14
+ `<Wrapper>` は `<Lism isWrapper>` のエイリアスです。`isWrapper` Prop は他のコンポーネントにも使用できます(例: `<Flow isWrapper>`)。
15
+
16
+ | 指定 | 出力 |
17
+ |------|------|
18
+ | `isWrapper` | `.is--wrapper` |
19
+ | `isWrapper="s"` | `.is--wrapper .-contentSize:s` |
20
+ | `isWrapper="l"` | `.is--wrapper .-contentSize:l` |
21
+ | `isWrapper="20rem"`(任意値) | `.is--wrapper` + `style="--contentSize: 20rem"` |
22
+
23
+ ## 専用Props
24
+
25
+ | Prop | 説明 |
26
+ |------|------|
27
+ | `contentSize` | コンテンツサイズ。`s` / `l` / トークン / 任意値 |
28
+
29
+ ```jsx
30
+ // 下記の ① と ② は同じ結果
31
+ <Flow isWrapper="s" isContainer>...</Flow>
32
+ <Wrapper contentSize="s" layout="flow" isContainer>...</Wrapper>
33
+ ```
34
+
35
+ ## Usage
36
+
37
+ ### `layout` との組み合わせ
38
+
39
+ ```jsx
40
+ <Wrapper layout="flow" p="20">
41
+ <p>Content</p>
42
+ <p>Content</p>
43
+ </Wrapper>
44
+ ```
45
+
46
+ ```html
47
+ <div class="l--flow is--wrapper -p:20">
48
+ <p>Content</p>
49
+ <p>Content</p>
50
+ </div>
51
+ ```
52
+
53
+ ### `contentSize` 指定
54
+
55
+ ```jsx
56
+ <Wrapper contentSize="s" layout="flow" p="20">
57
+ <p>Content</p>
58
+ <p>Content</p>
59
+ </Wrapper>
60
+ ```
61
+
62
+ ```html
63
+ <div class="l--flow is--wrapper -contentSize:s -p:20">
64
+ <p>Content</p>
65
+ <p>Content</p>
66
+ </div>
67
+ ```
68
+
69
+ ### 任意値のコンテンツ幅
70
+
71
+ ```jsx
72
+ <Lism isWrapper="20rem" p="20">
73
+ <div>Contents...</div>
74
+ </Lism>
75
+ ```
76
+
77
+ ```html
78
+ <div class="is--wrapper -p:20" style="--contentSize: 20rem">
79
+ <div>Contents...</div>
80
+ </div>
81
+ ```
82
+
83
+ ## 関連プリミティブ
84
+
85
+ - [is--container](./is--container.md) — コンテナクエリ基準(`isContainer` と併用可)
86
+ - [l--flow](./l--flow.md) — 記事フローレイアウト(`layout="flow"` で結合)
87
+ - [l--box](./l--box.md) — 汎用ボックス
@@ -0,0 +1,31 @@
1
+ # l--box / `<Box>`
2
+
3
+ コンテンツをグループ化するだけのシンプルなクラス。汎用的な箱として、パディング・ボーダー・背景色などの指定に使います。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `l--box`
8
+ - コンポーネント: `<Box>`
9
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/l--box/
10
+
11
+ ## Usage
12
+
13
+ ### 基本的な使い方
14
+
15
+ ```jsx
16
+ <Box p="30" bgc="base-2" bxsh="10" bdrs="10">
17
+ <p>コンテンツ...</p>
18
+ </Box>
19
+ ```
20
+
21
+ ```html
22
+ <div class="l--box -p:30 -bgc:base-2 -bxsh:10 -bdrs:10">
23
+ <p>コンテンツ...</p>
24
+ </div>
25
+ ```
26
+
27
+ ## 関連プリミティブ
28
+
29
+ - [l--flow](./l--flow.md) — テキスト主体のフローレイアウト
30
+ - [l--stack](./l--stack.md) — Flex 縦並び
31
+ - [is--wrapper](./is--wrapper.md) — コンテンツ幅ラッパー
@@ -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` とセットで使うことが多い)