@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.
- package/README.ja.md +1 -1
- package/dist/data/docs-index.json +267 -174
- package/dist/data/guides/SKILL.md +95 -54
- package/dist/data/guides/base-styles.md +2 -2
- package/dist/data/guides/components-core.md +87 -132
- package/dist/data/guides/components-ui.md +3 -15
- package/dist/data/guides/css-rules.md +110 -24
- package/dist/data/guides/naming.md +204 -0
- package/dist/data/guides/primitive-class.md +84 -0
- package/dist/data/guides/primitives/a--decorator.md +43 -0
- package/dist/data/guides/primitives/a--divider.md +62 -0
- package/dist/data/guides/primitives/a--icon.md +105 -0
- package/dist/data/guides/primitives/a--spacer.md +63 -0
- package/dist/data/guides/primitives/is--boxLink.md +97 -0
- package/dist/data/guides/primitives/is--container.md +46 -0
- package/dist/data/guides/primitives/is--layer.md +71 -0
- package/dist/data/guides/primitives/is--wrapper.md +87 -0
- package/dist/data/guides/primitives/l--box.md +31 -0
- package/dist/data/guides/primitives/l--center.md +55 -0
- package/dist/data/guides/primitives/l--cluster.md +38 -0
- package/dist/data/guides/primitives/l--columns.md +72 -0
- package/dist/data/guides/primitives/l--flex.md +74 -0
- package/dist/data/guides/primitives/l--flow.md +134 -0
- package/dist/data/guides/primitives/l--fluidCols.md +71 -0
- package/dist/data/guides/primitives/l--frame.md +94 -0
- package/dist/data/guides/primitives/l--grid.md +68 -0
- package/dist/data/guides/primitives/l--sideMain.md +102 -0
- package/dist/data/guides/primitives/l--stack.md +56 -0
- package/dist/data/guides/primitives/l--switchCols.md +69 -0
- package/dist/data/guides/primitives/l--tileGrid.md +61 -0
- package/dist/data/guides/property-class.md +12 -11
- package/dist/data/guides/set-class.md +11 -26
- package/dist/data/guides/tokens.md +26 -9
- package/dist/data/guides/utility-class.md +9 -8
- package/dist/data/meta.js +2 -2
- package/dist/lib/load-markdown.d.ts +3 -2
- package/dist/lib/load-markdown.js +23 -5
- package/dist/lib/search.js +20 -1
- package/dist/tools/get-component.js +119 -30
- package/dist/tools/get-guide.js +1 -1
- package/dist/tools/search-docs.js +1 -1
- package/package.json +1 -1
- package/dist/data/guides/module-class.md +0 -162
|
@@ -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,71 @@
|
|
|
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` | カラムが維持する最小幅を指定(`16em`, `320px` など) |
|
|
17
|
+
| `autoFill` | `--autoMode` | `auto-fill` モードに切り替え(デフォルトは `auto-fit`) |
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
### `--cols`でサイズを指定する
|
|
22
|
+
|
|
23
|
+
```jsx
|
|
24
|
+
<FluidCols cols="16em" g="20">
|
|
25
|
+
<Lism as="div" p="20" bd>Item A</Lism>
|
|
26
|
+
<Lism as="div" p="20" bd>Item B</Lism>
|
|
27
|
+
<Lism as="div" p="20" bd>Item C</Lism>
|
|
28
|
+
<Lism as="div" p="20" bd>Item D</Lism>
|
|
29
|
+
</FluidCols>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
<div class="l--fluidCols -g:20" style="--cols: 16em">
|
|
34
|
+
<div class="-p:20 -bd">Item A</div>
|
|
35
|
+
<div class="-p:20 -bd">Item B</div>
|
|
36
|
+
<div class="-p:20 -bd">Item C</div>
|
|
37
|
+
<div class="-p:20 -bd">Item D</div>
|
|
38
|
+
</div>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### `auto-fill`を使用する
|
|
42
|
+
|
|
43
|
+
`l--fluidCols` では、`grid-template-columns` の `repeat()` 関数の第一引数を `--autoMode` で指定できます(デフォルトは `auto-fit`)。`--autoMode:auto-fill`(`autoFill`)を指定することで、要素数が少ない時の挙動が変わります。
|
|
44
|
+
|
|
45
|
+
```jsx
|
|
46
|
+
<FluidCols cols="12em" autoFill g="20" fz="s">
|
|
47
|
+
<Lism as="div" p="20" bd>auto-fill</Lism>
|
|
48
|
+
<Lism as="div" p="20" bd>auto-fill</Lism>
|
|
49
|
+
</FluidCols>
|
|
50
|
+
<FluidCols cols="12em" g="20" fz="s">
|
|
51
|
+
<Lism as="div" p="20" bd>auto-fit</Lism>
|
|
52
|
+
<Lism as="div" p="20" bd>auto-fit</Lism>
|
|
53
|
+
</FluidCols>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<div class="l--fluidCols -g:20 -fz:s" style="--cols:12em; --autoMode:auto-fill">
|
|
58
|
+
<div class="-p:20 -bd">auto-fill</div>
|
|
59
|
+
<div class="-p:20 -bd">auto-fill</div>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="l--fluidCols -g:20 -fz:s" style="--cols:12em">
|
|
62
|
+
<div class="-p:20 -bd">auto-fit</div>
|
|
63
|
+
<div class="-p:20 -bd">auto-fit</div>
|
|
64
|
+
</div>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 関連プリミティブ
|
|
68
|
+
|
|
69
|
+
- [l--columns](./l--columns.md) — ブレイクポイント指定の等幅カラム
|
|
70
|
+
- [l--switchCols](./l--switchCols.md) — 複数列 ↔ 1列の2段階切り替え
|
|
71
|
+
- [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 カラム
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# l--sideMain / `<SideMain>`
|
|
2
|
+
|
|
3
|
+
メディアクエリ・コンテナクエリに依存せず、**維持したいコンテンツ幅を基準にして横並び・縦並びが自動で切り替わる2カラムレイアウト**。「画像 + コンテンツ」「メインエリア + サイドバー」などに活用できる。
|
|
4
|
+
|
|
5
|
+
## 基本情報
|
|
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/
|
|
11
|
+
|
|
12
|
+
## 動作の仕組み
|
|
13
|
+
|
|
14
|
+
- サイド側の横幅を `--sideW` で、メイン側で維持したい最小横幅を `--mainW` で指定
|
|
15
|
+
- メイン側が `--mainW` を維持できる範囲内では横並びを保ち、下回ると自動で縦並びに切り替わる
|
|
16
|
+
- 子要素の**一方に `is--side` を付ける必要がある**(コンポーネントでは `isSide` prop)
|
|
17
|
+
|
|
18
|
+
## 専用Props
|
|
19
|
+
|
|
20
|
+
| Prop | 出力 | 説明 |
|
|
21
|
+
|------|------|------|
|
|
22
|
+
| `sideW` | `--sideW` | サイド要素の横幅 |
|
|
23
|
+
| `mainW` | `--mainW` | メイン要素で維持したい最小幅 |
|
|
24
|
+
|
|
25
|
+
## HTML構造
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<div class="l--sideMain">
|
|
29
|
+
<div>Main Content</div>
|
|
30
|
+
<div class="is--side">Side Content</div>
|
|
31
|
+
</div>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
### 基本的な使い方
|
|
37
|
+
|
|
38
|
+
```jsx
|
|
39
|
+
<SideMain 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
|
+
</SideMain>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```html
|
|
51
|
+
<div class="l--sideMain -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
|
+
<SideMain 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
|
+
</SideMain>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
```html
|
|
76
|
+
<div class="l--sideMain -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
|
+
## `l--grid` との使い分け
|
|
85
|
+
|
|
86
|
+
- **`l--sideMain`**: ブレイクポイントに依存せず、コンテンツ幅で自動切り替え
|
|
87
|
+
- **`l--grid`** (`<Grid gta={[...]} gtc={[...]} />`): ブレイクポイント(`sm`/`md`)で明示的に切り替えたい場合
|
|
88
|
+
|
|
89
|
+
```jsx
|
|
90
|
+
// ブレイクポイント依存で似たレイアウトを構築する例
|
|
91
|
+
<Grid gta={[`'.' 'side'`, `'. side'`]} gtc={[null, '1fr 10rem']} g="20">
|
|
92
|
+
<Box>メインコンテンツ</Box>
|
|
93
|
+
<Box ga="side">サイドコンテンツ</Box>
|
|
94
|
+
</Grid>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## 関連プリミティブ
|
|
98
|
+
|
|
99
|
+
- [l--grid](./l--grid.md) — ブレイクポイント切り替え型の2カラム構築に使用
|
|
100
|
+
- [l--fluidCols](./l--fluidCols.md) — カラム幅ベースの自動段組
|
|
101
|
+
- [l--switchCols](./l--switchCols.md) — ブレイクポイント一括切り替え型カラム
|
|
102
|
+
- [is--container](./is--container.md) — レスポンシブ Property Class 利用時に必要
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# l--stack / `<Stack>`
|
|
2
|
+
|
|
3
|
+
複数の要素を Flex レイアウトで縦並びに配置するクラス。`gap` で余白を管理します。
|
|
4
|
+
|
|
5
|
+
## 基本情報
|
|
6
|
+
|
|
7
|
+
- クラス名: `l--stack`
|
|
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/
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
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
|
+
```
|
|
51
|
+
|
|
52
|
+
## 関連プリミティブ
|
|
53
|
+
|
|
54
|
+
- [l--flex](./l--flex.md) — 汎用 Flex 横並び
|
|
55
|
+
- [l--flow](./l--flow.md) — `margin-block-start` で余白を管理するテキスト向けフロー
|
|
56
|
+
- [l--cluster](./l--cluster.md) — 折り返し前提の横並び
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# l--switchCols / `<SwitchCols>`
|
|
2
|
+
|
|
3
|
+
複数列 ↔ 1列の切り替えをコンテナクエリやメディアクエリを使わずに実装するクラス。Flexbox ベースで、親コンテナ幅に応じて自動的に折り返します。
|
|
4
|
+
|
|
5
|
+
## 基本情報
|
|
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/
|
|
11
|
+
|
|
12
|
+
## 専用Props
|
|
13
|
+
|
|
14
|
+
| Prop | CSS変数 | 説明 |
|
|
15
|
+
|------|--------|------|
|
|
16
|
+
| `breakSize` | `--breakSize` | 横並びを維持するのに必要な親コンテナ幅を指定。`sz` トークンが使える |
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
### デフォルト幅で利用する
|
|
21
|
+
|
|
22
|
+
```jsx
|
|
23
|
+
<SwitchCols 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
|
+
</SwitchCols>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```html
|
|
31
|
+
<div class="l--switchCols -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
|
+
<SwitchCols 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
|
+
</SwitchCols>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```html
|
|
48
|
+
<div class="l--switchCols -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
|
+
<SwitchCols 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
|
+
</SwitchCols>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 関連プリミティブ
|
|
66
|
+
|
|
67
|
+
- [l--fluidCols](./l--fluidCols.md) — 最小幅ベースの自動段組
|
|
68
|
+
- [l--columns](./l--columns.md) — ブレイクポイント指定の等幅カラム
|
|
69
|
+
- [l--sideMain](./l--sideMain.md) — コンテンツ幅基準の2カラム切り替え
|