@lism-css/mcp 0.12.0 → 0.14.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 +267 -174
  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 +87 -132
  6. package/dist/data/guides/components-ui.md +3 -15
  7. package/dist/data/guides/css-rules.md +110 -24
  8. package/dist/data/guides/naming.md +204 -0
  9. package/dist/data/guides/primitive-class.md +84 -0
  10. package/dist/data/guides/primitives/a--decorator.md +43 -0
  11. package/dist/data/guides/primitives/a--divider.md +62 -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--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 +71 -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 +12 -11
  32. package/dist/data/guides/set-class.md +11 -26
  33. package/dist/data/guides/tokens.md +26 -9
  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,105 @@
1
+ # a--icon / `<Icon>`
2
+
3
+ アイコン要素を表示するためのクラス。`flex-shrink: 0`、デフォルトサイズ `1em`。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `a--icon`
8
+ - コンポーネント: `<Icon>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/atomic/_icon.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/a--icon/
11
+
12
+ ## 出力されるHTML構造
13
+
14
+ `<Icon>` は `label` の有無でアクセシビリティ属性を自動切り替えします。
15
+
16
+ ```html
17
+ <!-- label なし -->
18
+ <svg class="a--icon" aria-hidden="true">...</svg>
19
+
20
+ <!-- label あり -->
21
+ <svg class="a--icon" aria-label="..." role="img">...</svg>
22
+ ```
23
+
24
+ ## 専用Props
25
+
26
+ | Prop | 説明 |
27
+ |------|------|
28
+ | `icon` | アイコンを指定。文字列(プリセット名)・オブジェクト(`{as, ...exProps}`)のどちらでも可 |
29
+ | `size` | プリセットアイコン使用時の `width` / `height`(通常は `fz` で指定するほうが推奨) |
30
+ | `label` | `aria-label` として出力。指定があれば `role="img"`、なければ `aria-hidden="true"` |
31
+
32
+ ## Usage
33
+
34
+ `<Icon>` には**4つの使い方**があります。
35
+
36
+ ### 1. 外部パッケージのアイコンを使う(`as` + `exProps`)
37
+
38
+ `react-icons`, `@phosphor-icons/react`, `lucide-react` などのサードパーティアイコンコンポーネントを `as` で渡すと、Lism が未処理の props は自動的にそのコンポーネントに転送されます。外部コンポーネント専用の props を明示的に分離したい場合は `exProps` を使います。
39
+
40
+ ```jsx
41
+ import { SmileyIcon } from '@phosphor-icons/react';
42
+ import { Icon } from 'lism-css/react';
43
+
44
+ // 基本形
45
+ <Icon as={SmileyIcon} fz="2rem" />
46
+
47
+ // exProps で外部 props を明示的に分離
48
+ <Icon as={SmileyIcon} exProps={{ weight: 'fill', size: '3em' }} c="blue" />
49
+
50
+ // 上と同じ結果(Lism が "weight" を処理しないため最終的に SmileyIcon に渡る)
51
+ <Icon as={SmileyIcon} weight="fill" c="blue" />
52
+ ```
53
+
54
+ ### 2. `as` と `exProps` を `icon` prop に一括指定
55
+
56
+ `icon={{as: Component, ...exProps}}` の形式で、`as` と `exProps` を1つのオブジェクトとしてまとめて渡せます。アイコンを選択制にする親コンポーネントを作るときに便利です。
57
+
58
+ ```jsx
59
+ import { Home } from 'lucide-react';
60
+
61
+ <Icon icon={{ as: Home, strokeWidth: 1, size: 64 }} />
62
+
63
+ // 同じ結果(分割形式)
64
+ <Icon as={Home} exProps={{ strokeWidth: 1, size: 64 }} />
65
+ ```
66
+
67
+ ### 3. プリセットアイコンを使う
68
+
69
+ `lism-css` パッケージ内に [Phosphor Icons](https://phosphoricons.com/) ベースのプリセットアイコンが同梱されています。`icon="アイコン名"` の文字列で呼び出せます。
70
+
71
+ ```jsx
72
+ <Icon icon="menu" />
73
+ <Icon icon="lightbulb" fz="2xl" c="blue" />
74
+ <Icon icon="warning" size="40px" />
75
+ ```
76
+
77
+ プリセット一覧のエクスポート元:
78
+
79
+ ```jsx
80
+ import { phIcons, logoIcons } from 'lism-css/react/atomic/Icon/presets';
81
+ ```
82
+
83
+ ### 4. SVG の `path` を直接記述する
84
+
85
+ `viewBox` を指定すると `<svg>` 要素として出力されるため、子要素に `<path>` 等をそのまま書けます。
86
+
87
+ ```jsx
88
+ <Icon viewBox="0 0 256 256" label="Smiley icon" fz="4xl" c="blue">
89
+ <path d="M128,24A104,104,0,1,0,232,128..." />
90
+ </Icon>
91
+ ```
92
+
93
+ ### 5. `src` で画像をアイコンとして使う
94
+
95
+ `src` を指定すると `<img>` として出力されます(厳密には4パターンに加えて画像指定も可能)。
96
+
97
+ ```jsx
98
+ <Icon fz="4xl" src="/img/avatar01.jpg" alt="avatar" />
99
+ ```
100
+
101
+ ## 関連プリミティブ
102
+
103
+ - [a--divider](./a--divider.md) — 区切り線
104
+ - [a--spacer](./a--spacer.md) — 空白要素
105
+ - [a--decorator](./a--decorator.md) — 装飾用要素
@@ -0,0 +1,63 @@
1
+ # a--spacer / `<Spacer>`
2
+
3
+ 要素間のスペースを確保するクラス。`<Spacer>` は `<Lism atomic="spacer" aria-hidden="true" />` のエイリアスとして用意されています。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `a--spacer`
8
+ - コンポーネント: `<Spacer>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/atomic/_spacer.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/a--spacer/
11
+
12
+ ## 専用Props
13
+
14
+ `<Spacer>` では **`w` / `h` に対して SPACE トークンの値**が使えます(他のコンポーネントでは SIZE トークンが優先されるため、スペースサイズを直感的に指定できる特殊対応)。
15
+
16
+ ## Usage
17
+
18
+ ### 縦方向のスペース
19
+
20
+ ```jsx
21
+ <p>Content...</p>
22
+ <Spacer h="100px" />
23
+ <p>Content...</p>
24
+ ```
25
+
26
+ ```html
27
+ <p>Content...</p>
28
+ <div class="a--spacer -h" style="--h:100px" aria-hidden="true"></div>
29
+ <p>Content...</p>
30
+ ```
31
+
32
+ ### SPACE トークンを使う
33
+
34
+ ```jsx
35
+ <p>Content...</p>
36
+ <Spacer h="60" />
37
+ <p>Content...</p>
38
+ ```
39
+
40
+ ```html
41
+ <p>Content...</p>
42
+ <div class="a--spacer -h" style="--h:var(--s60)" aria-hidden="true"></div>
43
+ <p>Content...</p>
44
+ ```
45
+
46
+ ### 横方向のスペーサー
47
+
48
+ Flex コンテナ内で `w` を指定すれば横方向のスペーサーとしても使えます。
49
+
50
+ ```jsx
51
+ <Flex g="10">
52
+ <Box p="20" bd>Box</Box>
53
+ <Spacer w="40" />
54
+ <Box p="20" bd>Box</Box>
55
+ <Box p="20" bd>Box</Box>
56
+ </Flex>
57
+ ```
58
+
59
+ ## 関連プリミティブ
60
+
61
+ - [a--divider](./a--divider.md) — 区切り線
62
+ - [a--decorator](./a--decorator.md) — 装飾用空要素
63
+ - [l--stack](./l--stack.md) — `gap` で余白を管理する縦積み
@@ -0,0 +1,97 @@
1
+ # is--boxLink / `<BoxLink>`
2
+
3
+ ボックス全体をクリック可能なリンク領域にするクラス。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `is--boxLink`
8
+ - コンポーネント: `<BoxLink>`
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/trait/_boxLink.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/primitives/is--boxLink/
11
+
12
+ ## 専用Props
13
+
14
+ | Prop | 説明 |
15
+ |------|------|
16
+ | `href` | リンク先を指定。`href` があれば `<BoxLink>` 自体が `<a>` タグに、なければ `<div>` として出力される(**特殊挙動**) |
17
+
18
+ 通常の `<Lism>` エイリアスコンポーネントと異なり、`<BoxLink>` だけは `href` 指定の有無で出力タグが動的に切り替わります。
19
+
20
+ ## Usage
21
+
22
+ BoxLink には主に2通りの使い方があります。
23
+
24
+ ### パターン1: `<BoxLink>` 自身を `<a>` にする
25
+
26
+ `href` を指定すると `<BoxLink>` 自体が `<a>` タグとして出力されます。シンプルなカード全体リンクに最適。
27
+
28
+ ```jsx
29
+ <BoxLink href="/article/1" p="30" bgc="base" bd bdrs="30" hov="o">
30
+ <Group fz="xl" fw="bold">Heading text</Group>
31
+ <Text lh="s" my-s="15">記事の抜粋テキスト...</Text>
32
+ <Group fz="s" c="text-2" ta="right" lh="1" my-s="10">
33
+ MORE →
34
+ </Group>
35
+ </BoxLink>
36
+ ```
37
+
38
+ ```html
39
+ <a class="is--boxLink -hov:o -p:30 -bgc:base -bd -bdrs:30" href="/article/1">
40
+ <p class="-fz:xl -fw:bold">Heading text</p>
41
+ <p class="-c:text-2 -lh:s -my-s:15">記事の抜粋テキスト...</p>
42
+ <p class="-fz:s -c:text-2 -ta:right -lh:1 -my-s:10">MORE →</p>
43
+ </a>
44
+ ```
45
+
46
+ ### パターン2: `<div>` + 内部に `is--coverLink`
47
+
48
+ `<BoxLink>` は `<div>` にしたまま、内部のアンカー要素に `is--coverLink` クラスを付けてボックス全体をクリック可能にします。**BoxLink 内部にさらに別のリンクを配置したい場合はこちらを選ぶこと**。
49
+
50
+ ```jsx
51
+ <BoxLink as="section" p="30" bgc="base" bd bdrs="30" set="transition" hov="bxsh">
52
+ <Group fz="xl" fw="bold">
53
+ <Link isCoverLink href="/article/1">
54
+ Heading link text
55
+ </Link>
56
+ </Group>
57
+ <Text c="text-2" lh="s" my-s="15">記事の抜粋テキスト...</Text>
58
+ <Group my-s="10">
59
+ <a href="/tag/foo" className="-hov:o">Inner Link</a>
60
+ </Group>
61
+ </BoxLink>
62
+ ```
63
+
64
+ ```html
65
+ <div class="is--boxLink -hov:bxsh -p:30 -bgc:base -bd -bdrs:30 set--transition">
66
+ <div class="-fz:xl -fw:bold">
67
+ <a class="is--coverLink" href="/article/1">Heading link text</a>
68
+ </div>
69
+ <p class="-c:text-2 -lh:s -my-s:15">記事の抜粋テキスト...</p>
70
+ <div class="-my-s:10">
71
+ <a href="/tag/foo" class="-hov:o">Inner Link</a>
72
+ </div>
73
+ </div>
74
+ ```
75
+
76
+ ## Opt-in スタイル
77
+
78
+ ### Tabキーフォーカス時のアウトラインをボックス全体に広げる
79
+
80
+ パターン2 の場合、デフォルトでは Tab フォーカス時のアウトラインがリンクテキスト部分のみに表示されます。ボックス全体に広げたい場合は以下のCSSを追記してください。
81
+
82
+ ```css
83
+ @supports selector(:has(*)) {
84
+ .is--boxLink:has(.is--coverLink:focus-visible) {
85
+ outline: auto 1px;
86
+ outline: auto 1px -webkit-focus-ring-color;
87
+ }
88
+ .is--coverLink:focus {
89
+ outline: 0;
90
+ }
91
+ }
92
+ ```
93
+
94
+ ## 関連プリミティブ
95
+
96
+ - [is--container](./is--container.md) — コンテナクエリの基準要素
97
+ - [is--wrapper](./is--wrapper.md) — コンテンツ幅ラッパー
@@ -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,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列切り替え