@lism-css/mcp 0.22.0 → 0.24.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.
- package/README.ja.md +15 -15
- package/README.md +5 -5
- package/dist/data/docs-index.json +232 -96
- package/dist/data/guides/SKILL.md +162 -224
- package/dist/data/guides/antipatterns-layout.md +268 -0
- package/dist/data/guides/antipatterns.md +118 -196
- package/dist/data/guides/base-styles.md +14 -12
- package/dist/data/guides/components-core.md +26 -8
- package/dist/data/guides/components-ui.md +28 -24
- package/dist/data/guides/css-rules.md +40 -57
- package/dist/data/guides/customize.md +121 -37
- package/dist/data/guides/naming.md +23 -42
- package/dist/data/guides/primitive-class.md +5 -5
- package/dist/data/guides/primitives/a--decorator.md +2 -28
- package/dist/data/guides/primitives/a--divider.md +1 -52
- package/dist/data/guides/primitives/a--icon.md +2 -76
- package/dist/data/guides/primitives/a--spacer.md +1 -49
- package/dist/data/guides/primitives/l--autoColumns.md +7 -54
- package/dist/data/guides/primitives/l--box.md +1 -21
- package/dist/data/guides/primitives/l--center.md +6 -39
- package/dist/data/guides/primitives/l--cluster.md +6 -26
- package/dist/data/guides/primitives/l--columns.md +7 -56
- package/dist/data/guides/primitives/l--flex.md +5 -62
- package/dist/data/guides/primitives/l--flow.md +11 -72
- package/dist/data/guides/primitives/l--frame.md +7 -78
- package/dist/data/guides/primitives/l--grid.md +5 -56
- package/dist/data/guides/primitives/l--stack.md +5 -44
- package/dist/data/guides/primitives/l--switchColumns.md +8 -53
- package/dist/data/guides/primitives/l--tileGrid.md +7 -44
- package/dist/data/guides/primitives/l--withSide.md +9 -79
- package/dist/data/guides/property-class/all-props.md +244 -0
- package/dist/data/guides/property-class/bd.md +5 -70
- package/dist/data/guides/property-class/hov.md +14 -73
- package/dist/data/guides/property-class/max-sz.md +3 -39
- package/dist/data/guides/property-class.md +31 -249
- package/dist/data/guides/references/authoring.md +246 -0
- package/dist/data/guides/references/page-sections.md +99 -0
- package/dist/data/guides/references/verification.md +73 -0
- package/dist/data/guides/responsive.md +68 -20
- package/dist/data/guides/set-class.md +2 -12
- package/dist/data/guides/tokens.md +31 -31
- package/dist/data/guides/trait-class/has--gutter.md +3 -31
- package/dist/data/guides/trait-class/has--mask.md +3 -36
- package/dist/data/guides/trait-class/has--snap.md +3 -34
- package/dist/data/guides/trait-class/has--transition.md +3 -41
- package/dist/data/guides/trait-class/is--boxLink.md +2 -63
- package/dist/data/guides/trait-class/is--container.md +2 -29
- package/dist/data/guides/trait-class/is--layer.md +1 -57
- package/dist/data/guides/trait-class/is--wrapper.md +11 -60
- package/dist/data/guides/trait-class.md +8 -8
- package/dist/data/guides/utility-class.md +1 -1
- package/dist/data/meta.js +4 -3
- package/dist/index.js +4 -1
- package/dist/lib/load-markdown.d.ts +4 -0
- package/dist/lib/load-markdown.js +10 -0
- package/dist/lib/markdown-utils.d.ts +1 -1
- package/dist/lib/response.d.ts +5 -0
- package/dist/lib/response.js +15 -2
- package/dist/lib/schemas.d.ts +35 -0
- package/dist/lib/schemas.js +13 -0
- package/dist/lib/search.d.ts +2 -0
- package/dist/lib/search.js +45 -2
- package/dist/lib/types.d.ts +5 -21
- package/dist/lib/version.d.ts +2 -0
- package/dist/lib/version.js +8 -0
- package/dist/tools/convert-css.js +38 -15
- package/dist/tools/get-component.js +2 -2
- package/dist/tools/get-guide.d.ts +2 -0
- package/dist/tools/get-guide.js +40 -17
- package/dist/tools/get-overview.js +2 -2
- package/dist/tools/get-props-system.js +8 -6
- package/dist/tools/get-tokens.js +2 -2
- package/dist/tools/search-docs.js +13 -7
- package/package.json +17 -2
|
@@ -2,91 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
直下のメディア要素(`img`, `video`, `iframe`)を自身のサイズにフィットさせて表示するクラス。アスペクト比固定のメディア枠を簡単に作れます。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/primitives/l--frame.md
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
7
|
+
## 既定の挙動
|
|
8
|
+
|
|
9
|
+
- `overflow:hidden`を既定で持ちます。通常`ov="hidden"`は足しません。
|
|
10
|
+
- 直下の`img`/`video`/`iframe`を`display:block;width:100%;height:100%;object-fit:cover`でフレームにフィットさせます。
|
|
11
|
+
- 直下メディアへ`w`/`h`/`object-fit:cover`を重ねないでください。`object-fit:contain`や`object-position`など既定と違う意図がある場合だけ追加します。
|
|
11
12
|
|
|
12
13
|
## 専用Props
|
|
13
14
|
|
|
14
15
|
| Prop | 説明 |
|
|
15
|
-
|
|
16
|
+
| --- | --- |
|
|
16
17
|
| `ar` | フレームのアスペクト比を指定(`16/9` など)。`ar` 自体はどのコンポーネントにも指定できる汎用 CSS Prop |
|
|
17
18
|
|
|
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
19
|
## 関連プリミティブ
|
|
91
20
|
|
|
92
21
|
- [is--layer](../trait-class/is--layer.md) — `l--frame` 内のオーバーレイ配置に使用
|
|
@@ -2,64 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
コンテンツを CSS Grid レイアウトで配置するクラス。`gtc` / `gta` / `ga` などの Grid プロパティと組み合わせて使います。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/primitives/l--grid.md
|
|
6
6
|
|
|
7
|
-
|
|
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.md
|
|
7
|
+
## 既定の挙動
|
|
11
8
|
|
|
12
|
-
|
|
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 のトラックを継承し、複数行を揃えたレイアウトが作れます。記事一覧やテーブル風レイアウトに活用できます。
|
|
9
|
+
- `display:grid`。
|
|
10
|
+
- 直下の子要素に`min-width:0`を付与し、grid itemのはみ出しを抑えます。
|
|
11
|
+
- `grid-template-columns`や`gap`は既定で持たないため、必要な時だけ`gtc`/`g`などで指定します。
|
|
63
12
|
|
|
64
13
|
## 関連プリミティブ
|
|
65
14
|
|
|
@@ -2,52 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
複数の要素を Flex レイアウトで縦並びに配置するクラス。`gap` で余白を管理します。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/primitives/l--stack.md
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- コンポーネント: `<Stack>`
|
|
9
|
-
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_stack.scss
|
|
10
|
-
- 公式ドキュメント: https://lism-css.com/docs/primitives/l--stack.md
|
|
7
|
+
## 既定の挙動
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
```jsx
|
|
17
|
-
<Stack g="20">
|
|
18
|
-
<p>コンテンツ</p>
|
|
19
|
-
<p>コンテンツ</p>
|
|
20
|
-
<p>コンテンツ</p>
|
|
21
|
-
</Stack>
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
```html
|
|
25
|
-
<div class="l--stack -g:20">
|
|
26
|
-
<p>コンテンツ</p>
|
|
27
|
-
<p>コンテンツ</p>
|
|
28
|
-
<p>コンテンツ</p>
|
|
29
|
-
</div>
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### 内在的な中央寄せ(`ai="center"`)
|
|
33
|
-
|
|
34
|
-
`ai="center"` を併用すると、Every Layout で言うところの**内在的な中央寄せ**(コンテンツ幅が短い要素だけ中央揃え、長い要素はそのまま)になります。
|
|
35
|
-
|
|
36
|
-
```jsx
|
|
37
|
-
<Stack ai="center" g="20" p="30">
|
|
38
|
-
<h3>見出し</h3>
|
|
39
|
-
<p>短いテキスト</p>
|
|
40
|
-
<p>長めのテキスト...</p>
|
|
41
|
-
</Stack>
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
```html
|
|
45
|
-
<div class="l--stack -ai:center -p:30 -g:20">
|
|
46
|
-
<h3>見出し</h3>
|
|
47
|
-
<p>短いテキスト</p>
|
|
48
|
-
<p>長めのテキスト...</p>
|
|
49
|
-
</div>
|
|
50
|
-
```
|
|
9
|
+
- `display:flex`。
|
|
10
|
+
- `flex-direction:column`で縦並びにします。
|
|
11
|
+
- `gap`は既定で持たないため、間隔は`g`/`-g:*`で指定します。通常`fxd="column"`は足しません。
|
|
51
12
|
|
|
52
13
|
## 関連プリミティブ
|
|
53
14
|
|
|
@@ -2,66 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
複数列 ↔ 1列の切り替えをコンテナクエリやメディアクエリを使わずに実装するクラス。Flexbox ベースで、親コンテナ幅に応じて自動的に折り返します。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/primitives/l--switchColumns.md
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
7
|
+
## 既定の挙動
|
|
8
|
+
|
|
9
|
+
- `display:flex`。
|
|
10
|
+
- `flex-wrap:wrap`で折り返しを有効化済み。
|
|
11
|
+
- `--breakSize:var(--sz--xs)`を初期値にし、直下子要素の`flex-basis`で親幅に応じた縦横切替を行います。
|
|
12
|
+
- 通常`fxw="wrap"`は足しません。
|
|
11
13
|
|
|
12
14
|
## 専用Props
|
|
13
15
|
|
|
14
16
|
| Prop | CSS変数 | デフォルト | 説明 |
|
|
15
|
-
|
|
17
|
+
| --- | --- | --- | --- |
|
|
16
18
|
| `breakSize` | `--breakSize` | `var(--sz--xs)` | 横並びを維持するのに必要な親コンテナ幅を指定。`sz` トークンが使える |
|
|
17
19
|
|
|
18
|
-
## Usage
|
|
19
|
-
|
|
20
|
-
### デフォルト幅で利用する
|
|
21
|
-
|
|
22
|
-
```jsx
|
|
23
|
-
<SwitchColumns g="20">
|
|
24
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
25
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
26
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
27
|
-
</SwitchColumns>
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
```html
|
|
31
|
-
<div class="l--switchColumns -g:20">
|
|
32
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
33
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
34
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
35
|
-
</div>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### `breakSize` の指定
|
|
39
|
-
|
|
40
|
-
```jsx
|
|
41
|
-
<SwitchColumns breakSize="s" g="20">
|
|
42
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
43
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
44
|
-
</SwitchColumns>
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
```html
|
|
48
|
-
<div class="l--switchColumns -g:20" style="--breakSize: var(--sz--s)">
|
|
49
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
50
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
51
|
-
</div>
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### `flex-grow` で比率を調整
|
|
55
|
-
|
|
56
|
-
子要素に `flex-grow` を指定すると、横並び時の幅の比率を個別に調整できます。
|
|
57
|
-
|
|
58
|
-
```jsx
|
|
59
|
-
<SwitchColumns breakSize="s" g="20">
|
|
60
|
-
<div class="-bgc:base-2 -p:20">Box</div>
|
|
61
|
-
<div class="-bgc:base-2 -p:20" style={{ flexGrow: 2 }}>Box</div>
|
|
62
|
-
</SwitchColumns>
|
|
63
|
-
```
|
|
64
|
-
|
|
65
20
|
## 関連プリミティブ
|
|
66
21
|
|
|
67
22
|
- [l--autoColumns](./l--autoColumns.md) — 最小幅ベースの自動段組
|
|
@@ -2,58 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
`cols`(列数)と `rows`(行数)を指定して、**均等なタイル型グリッドレイアウト**を構成するクラス。内部的には `grid-template: repeat(rows, minmax(0, 1fr)) / repeat(cols, minmax(0, 1fr))` を使用します。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/primitives/l--tileGrid.md
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
7
|
+
## 既定の挙動
|
|
8
|
+
|
|
9
|
+
- `display:grid`。
|
|
10
|
+
- `grid-template:repeat(var(--rows, 1), minmax(0, 1fr)) / repeat(var(--cols, 1), minmax(0, 1fr))`で行数・列数を均等に割ります。
|
|
11
|
+
- `rows`/`cols`を省略するとどちらも1です。
|
|
11
12
|
|
|
12
13
|
## 専用Props
|
|
13
14
|
|
|
14
15
|
| Prop | CSS変数 | 説明 | デフォルト |
|
|
15
|
-
|
|
16
|
+
| --- | --- | --- | --- |
|
|
16
17
|
| `cols` | `--cols` | 列数を指定。配列でブレイクポイント指定可 | `1` |
|
|
17
18
|
| `rows` | `--rows` | 行数を指定。配列でブレイクポイント指定可 | `1` |
|
|
18
19
|
|
|
19
|
-
## Usage
|
|
20
|
-
|
|
21
|
-
### 基本的な使い方
|
|
22
|
-
|
|
23
|
-
```jsx
|
|
24
|
-
<TileGrid cols="3" rows="3" g="5" min-h="50svh">
|
|
25
|
-
<Box p="20" bgc="base-2">item1</Box>
|
|
26
|
-
<Box p="20" bgc="base-2">item2</Box>
|
|
27
|
-
<Box p="20" bgc="base-2">item3</Box>
|
|
28
|
-
<Box p="20" bgc="base-2">item4</Box>
|
|
29
|
-
<Box p="20" bgc="base-2" gc="span 2">item5</Box>
|
|
30
|
-
<Center gc="3" gr="1 / -1" p="20" bgc="blue">item6</Center>
|
|
31
|
-
</TileGrid>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
```html
|
|
35
|
-
<div class="l--tileGrid -g:5 -min-h:50svh" style="--cols: 3; --rows: 3">
|
|
36
|
-
<div class="l--box -p:20 -bgc:base-2">item1</div>
|
|
37
|
-
<div class="l--box -p:20 -bgc:base-2">item2</div>
|
|
38
|
-
<div class="l--box -p:20 -bgc:base-2">item3</div>
|
|
39
|
-
<div class="l--box -p:20 -bgc:base-2">item4</div>
|
|
40
|
-
<div class="l--box -p:20 -bgc:base-2 -gc:span 2">item5</div>
|
|
41
|
-
<div class="l--center -p:20 -bgc:blue" style="grid-column: 3; grid-row: 1 / -1">item6</div>
|
|
42
|
-
</div>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### ブレイクポイント別指定
|
|
46
|
-
|
|
47
|
-
`cols` / `rows` をブレイクポイントで切り替え、`gaf`(`grid-auto-flow`)と組み合わせて動的レイアウトも構築できます。
|
|
48
|
-
|
|
49
|
-
```jsx
|
|
50
|
-
<TileGrid cols={['2', '3']} rows="4" min-h="50svh" gaf="row dense">
|
|
51
|
-
<Box gc={['1 / -1', 'span 2']} gr={['span 2', '1 / -1']} p="20" bgc="base-2">A</Box>
|
|
52
|
-
<Box p="20" bgc="green:20%">B</Box>
|
|
53
|
-
<Box p="20" bgc="blue:20%">C</Box>
|
|
54
|
-
</TileGrid>
|
|
55
|
-
```
|
|
56
|
-
|
|
57
20
|
## 関連プリミティブ
|
|
58
21
|
|
|
59
22
|
- [l--columns](./l--columns.md) — 等幅列のみ(1D)のカラム
|
|
@@ -2,12 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
メディアクエリ・コンテナクエリに依存せず、**維持したいコンテンツ幅を基準にして横並び・縦並びが自動で切り替わる2カラムレイアウト**。「画像 + コンテンツ」「メインエリア + サイドバー」などに活用できる。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
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
|
|
5
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/primitives/l--withSide.md
|
|
11
6
|
|
|
12
7
|
## 動作の仕組み
|
|
13
8
|
|
|
@@ -15,10 +10,17 @@
|
|
|
15
10
|
- メイン側が `--mainW` を維持できる範囲内では横並びを保ち、下回ると自動で縦並びに切り替わる
|
|
16
11
|
- 子要素の**一方に `is--side` を付ける必要がある**(コンポーネントでは `isSide` prop)
|
|
17
12
|
|
|
13
|
+
## 既定の挙動
|
|
14
|
+
|
|
15
|
+
- `display:flex`。
|
|
16
|
+
- `flex-wrap:wrap`で折り返しを有効化済み。
|
|
17
|
+
- `--sideW:auto`、`--mainW:max(20rem, 50%)`を初期値にします。
|
|
18
|
+
- 直下の`.is--side`をサイド側、それ以外をメイン側としてflex比率・basis・`min-width:0`を設定します。通常`fxw="wrap"`は足しません。
|
|
19
|
+
|
|
18
20
|
## 専用Props
|
|
19
21
|
|
|
20
22
|
| Prop | 出力 | デフォルト | 説明 |
|
|
21
|
-
|
|
23
|
+
| --- | --- | --- | --- |
|
|
22
24
|
| `sideW` | `--sideW` | `auto` | サイド要素の横幅 |
|
|
23
25
|
| `mainW` | `--mainW` | `max(20rem, 50%)` | メイン要素で維持したい最小幅 |
|
|
24
26
|
|
|
@@ -31,78 +33,6 @@
|
|
|
31
33
|
</div>
|
|
32
34
|
```
|
|
33
35
|
|
|
34
|
-
## Usage
|
|
35
|
-
|
|
36
|
-
### 基本的な使い方
|
|
37
|
-
|
|
38
|
-
```jsx
|
|
39
|
-
<WithSide sideW="12rem" mainW="20rem" g="20">
|
|
40
|
-
<Box p="15" bd bdc="blue">
|
|
41
|
-
<p>Main Content</p>
|
|
42
|
-
<p>メインコンテンツ本文...</p>
|
|
43
|
-
</Box>
|
|
44
|
-
<Box isSide p="15" bd bdc="red">
|
|
45
|
-
<p>Side Content</p>
|
|
46
|
-
</Box>
|
|
47
|
-
</WithSide>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
```html
|
|
51
|
-
<div class="l--withSide -g:20" style="--sideW:12rem;--mainW:20rem">
|
|
52
|
-
<div class="l--box -p:15 -bd" style="--bdc:var(--blue)">
|
|
53
|
-
<p>Main Content</p>
|
|
54
|
-
<p>メインコンテンツ本文...</p>
|
|
55
|
-
</div>
|
|
56
|
-
<div class="l--box is--side -p:15 -bd" style="--bdc:var(--red)">
|
|
57
|
-
<p>Side Content</p>
|
|
58
|
-
</div>
|
|
59
|
-
</div>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Side 要素の位置を反転(`-fxd:row-reverse`)
|
|
63
|
-
|
|
64
|
-
`flex-direction: row-reverse` を併用することで、横並びの時だけ順序を反転できます。**横並びで左側・縦並びで下側に Side を配置**したいときに便利。
|
|
65
|
-
|
|
66
|
-
```jsx
|
|
67
|
-
<WithSide fxd="row-reverse" sideW="10rem" mainW="16rem" g="20">
|
|
68
|
-
<Box>
|
|
69
|
-
<p>Main content...</p>
|
|
70
|
-
</Box>
|
|
71
|
-
<Box isSide bgc="blue:20%">Side Content</Box>
|
|
72
|
-
</WithSide>
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
```html
|
|
76
|
-
<div class="l--withSide -fxd:row-reverse -g:20" style="--sideW:10rem;--mainW:16rem">
|
|
77
|
-
<div class="l--box">
|
|
78
|
-
<p>Main content...</p>
|
|
79
|
-
</div>
|
|
80
|
-
<div class="l--box is--side">Side Content</div>
|
|
81
|
-
</div>
|
|
82
|
-
```
|
|
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
|
-
|
|
106
36
|
## `l--grid` との使い分け
|
|
107
37
|
|
|
108
38
|
- **`l--withSide`**: ブレイクポイントに依存せず、コンテンツ幅で自動切り替え
|