@lism-css/mcp 0.11.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.
- package/README.ja.md +4 -2
- package/README.md +4 -2
- package/dist/data/docs-index.json +456 -178
- package/dist/data/guides/SKILL.md +154 -0
- package/dist/data/guides/base-styles.md +106 -0
- package/dist/data/guides/components-core.md +292 -0
- package/dist/data/guides/components-ui.md +351 -0
- package/dist/data/guides/css-rules.md +166 -0
- package/dist/data/guides/primitive-class.md +148 -0
- package/dist/data/guides/primitives/a--decorator.md +45 -0
- package/dist/data/guides/primitives/a--divider.md +69 -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--vertical.md +52 -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 +68 -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/prop-responsive.md +54 -0
- package/dist/data/guides/property-class.md +401 -0
- package/dist/data/guides/set-class.md +192 -0
- package/dist/data/guides/tokens.md +228 -0
- package/dist/data/guides/utility-class.md +82 -0
- package/dist/data/meta.js +2 -2
- package/dist/index.js +4 -0
- package/dist/lib/load-data.js +2 -11
- package/dist/lib/load-markdown.d.ts +7 -0
- package/dist/lib/load-markdown.js +47 -0
- package/dist/lib/markdown-utils.d.ts +42 -0
- package/dist/lib/markdown-utils.js +158 -0
- package/dist/lib/schemas.d.ts +0 -242
- package/dist/lib/schemas.js +0 -64
- package/dist/lib/search.d.ts +2 -16
- package/dist/lib/search.js +29 -69
- package/dist/lib/types.d.ts +0 -64
- package/dist/tools/convert-css.js +96 -55
- package/dist/tools/get-component.js +150 -30
- package/dist/tools/get-guide.d.ts +2 -0
- package/dist/tools/get-guide.js +45 -0
- package/dist/tools/get-overview.js +26 -39
- package/dist/tools/get-props-system.js +45 -33
- package/dist/tools/get-tokens.js +9 -14
- package/dist/tools/search-docs.js +28 -10
- package/package.json +2 -2
- package/dist/data/components.json +0 -564
- package/dist/data/overview.json +0 -114
- package/dist/data/props-system.json +0 -1147
- package/dist/data/tokens.json +0 -148
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# a--decorator / `<Decorator>`
|
|
2
|
+
|
|
3
|
+
コンテンツを装飾するための空要素として使うクラス。`<Decorator>` はデフォルトで `aria-hidden="true"` が付与されます。
|
|
4
|
+
|
|
5
|
+
## 基本情報
|
|
6
|
+
|
|
7
|
+
- クラス名: `a--decorator`
|
|
8
|
+
- コンポーネント: `<Decorator>`
|
|
9
|
+
- ドキュメント(人間向け): https://lism-css.com/docs/primitives/a--decorator/
|
|
10
|
+
|
|
11
|
+
## 専用Props
|
|
12
|
+
|
|
13
|
+
| Prop | 説明 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| `size` | デコレーターのサイズを一括指定。この指定があると `w`(`width`)に値が渡され、自動で `ar="1/1"`(`aspect-ratio:1/1`)が付与される |
|
|
16
|
+
| `clipPath` | `style.clipPath` に渡す |
|
|
17
|
+
| `boxSizing` | `style.boxSizing` に渡す |
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
### 使用例(コーナー装飾)
|
|
22
|
+
|
|
23
|
+
`pos="absolute"` と組み合わせて、親の四隅にコーナー枠を配置する例です。`bdc="current"` で文字色に追随します。
|
|
24
|
+
|
|
25
|
+
```jsx
|
|
26
|
+
<Box p="30" pos="relative">
|
|
27
|
+
<p>本文テキスト...</p>
|
|
28
|
+
<Decorator size="1.25em" pos="absolute" t="0" l="0" bd-x-s bd-y-s bdc="current" />
|
|
29
|
+
<Decorator size="1.25em" pos="absolute" r="0" b="0" bd-x-e bd-y-e bdc="current" />
|
|
30
|
+
</Box>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<div class="l--box -p:30 -pos:relative">
|
|
35
|
+
<p>本文テキスト...</p>
|
|
36
|
+
<div class="a--decorator -pos:absolute -t:0 -l:0 -bd-x-s -bd-y-s -bdc:current -ar:1/1 -w" style="--w:1.25em" aria-hidden="true"></div>
|
|
37
|
+
<div class="a--decorator -pos:absolute -r:0 -b:0 -bd-x-e -bd-y-e -bdc:current -ar:1/1 -w" style="--w:1.25em" aria-hidden="true"></div>
|
|
38
|
+
</div>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 関連プリミティブ
|
|
42
|
+
|
|
43
|
+
- [a--spacer](./a--spacer.md) — 要素間スペース
|
|
44
|
+
- [a--divider](./a--divider.md) — 区切り線
|
|
45
|
+
- [is--layer](./is--layer.md) — `position: absolute` のオーバーレイ
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# a--divider / `<Divider>`
|
|
2
|
+
|
|
3
|
+
コンテンツ間に区切り線を描画するクラス。`--bdc` は `var(--divider)` が初期セットされます。`<Divider>` はデフォルトで `aria-hidden="true"` が付与されます。
|
|
4
|
+
|
|
5
|
+
## 基本情報
|
|
6
|
+
|
|
7
|
+
- クラス名: `a--divider`
|
|
8
|
+
- コンポーネント: `<Divider>`
|
|
9
|
+
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/atomic/_divider.scss
|
|
10
|
+
- ドキュメント(人間向け): https://lism-css.com/docs/primitives/a--divider/
|
|
11
|
+
|
|
12
|
+
## 専用Props
|
|
13
|
+
|
|
14
|
+
| Prop | 説明 |
|
|
15
|
+
|------|------|
|
|
16
|
+
| `bdw` / `bds` / `bdc` | 区切り線のボーダー幅 / スタイル / 色 |
|
|
17
|
+
| `isVertical` | 縦方向の区切り線にする(`is--vertical` クラス付与) |
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
### 基本的な使い方
|
|
22
|
+
|
|
23
|
+
```jsx
|
|
24
|
+
<Box bgc="base-2" py="40" ta="center">...Contents...</Box>
|
|
25
|
+
<Divider />
|
|
26
|
+
<Box bgc="base-2" py="40" ta="center">...Contents...</Box>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<div class="l--box -bgc:base-2 -py:40 -ta:center">...Contents...</div>
|
|
31
|
+
<div class="a--divider" aria-hidden="true"></div>
|
|
32
|
+
<div class="l--box -bgc:base-2 -py:40 -ta:center">...Contents...</div>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### スタイルの変更
|
|
36
|
+
|
|
37
|
+
```jsx
|
|
38
|
+
<Divider bds="dotted" bdw="4px" bdc="blue" />
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
<div class="a--divider" aria-hidden="true" style="--bds: dotted; --bdw: 4px; --bdc: var(--blue)"></div>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 縦方向の区切り線
|
|
46
|
+
|
|
47
|
+
`isVertical` を指定すると縦方向の区切り線になります。Flex 子要素として使うなら `aslf="stretch"` で高さいっぱいに伸ばせます。
|
|
48
|
+
|
|
49
|
+
```jsx
|
|
50
|
+
<Flex ai="center" g="20">
|
|
51
|
+
<Box fx="1" bgc="base-2" py="40">...Contents...</Box>
|
|
52
|
+
<Divider isVertical bds="dashed" bdw="2px" aslf="stretch" />
|
|
53
|
+
<Box fx="1" bgc="base-2" py="40">...Contents...</Box>
|
|
54
|
+
</Flex>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
```html
|
|
58
|
+
<div class="l--flex -g:20 -ai:center">
|
|
59
|
+
<div class="-fx:1 -bgc:base-2 -py:40">...Contents...</div>
|
|
60
|
+
<div class="a--divider is--vertical -aslf:stretch" style="--bds: dashed; --bdw: 2px" aria-hidden="true"></div>
|
|
61
|
+
<div class="-fx:1 -bgc:base-2 -py:40">...Contents...</div>
|
|
62
|
+
</div>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 関連プリミティブ
|
|
66
|
+
|
|
67
|
+
- [a--spacer](./a--spacer.md) — 要素間のスペース確保
|
|
68
|
+
- [a--decorator](./a--decorator.md) — 装飾用空要素
|
|
69
|
+
- [a--icon](./a--icon.md) — アイコン要素
|
|
@@ -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>` はデフォルトで `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,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) — コンテンツ幅ラッパー
|