@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,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列切り替え
|