@lism-css/mcp 0.14.0 → 0.15.1
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/dist/data/docs-index.json +152 -82
- package/dist/data/guides/SKILL.md +43 -19
- package/dist/data/guides/antipatterns.md +147 -0
- package/dist/data/guides/base-styles.md +3 -1
- package/dist/data/guides/components-core.md +21 -17
- package/dist/data/guides/components-ui.md +18 -13
- package/dist/data/guides/css-rules.md +43 -34
- package/dist/data/guides/customize.md +220 -0
- package/dist/data/guides/naming.md +26 -7
- package/dist/data/guides/primitive-class.md +82 -30
- package/dist/data/guides/primitives/a--decorator.md +2 -2
- package/dist/data/guides/primitives/a--divider.md +1 -1
- package/dist/data/guides/primitives/a--icon.md +1 -1
- package/dist/data/guides/primitives/a--spacer.md +1 -1
- package/dist/data/guides/primitives/l--autoColumns.md +71 -0
- package/dist/data/guides/primitives/l--box.md +2 -2
- package/dist/data/guides/primitives/l--center.md +1 -1
- package/dist/data/guides/primitives/l--cluster.md +2 -2
- package/dist/data/guides/primitives/l--columns.md +3 -3
- package/dist/data/guides/primitives/l--flex.md +2 -2
- package/dist/data/guides/primitives/l--flow.md +5 -5
- package/dist/data/guides/primitives/l--frame.md +2 -2
- package/dist/data/guides/primitives/l--grid.md +2 -2
- package/dist/data/guides/primitives/l--stack.md +1 -1
- package/dist/data/guides/primitives/{l--switchCols.md → l--switchColumns.md} +18 -18
- package/dist/data/guides/primitives/l--tileGrid.md +2 -2
- package/dist/data/guides/primitives/{l--sideMain.md → l--withSide.md} +42 -20
- package/dist/data/guides/prop-responsive.md +29 -4
- package/dist/data/guides/property-class/bd.md +127 -0
- package/dist/data/guides/property-class/hov.md +140 -0
- package/dist/data/guides/property-class/max-sz.md +99 -0
- package/dist/data/guides/property-class.md +49 -83
- package/dist/data/guides/set-class.md +65 -80
- package/dist/data/guides/tokens.md +26 -13
- package/dist/data/guides/trait-class/has--gutter.md +48 -0
- package/dist/data/guides/trait-class/has--mask.md +66 -0
- package/dist/data/guides/trait-class/has--snap.md +68 -0
- package/dist/data/guides/trait-class/has--transition.md +73 -0
- package/dist/data/guides/{primitives → trait-class}/is--boxLink.md +8 -8
- package/dist/data/guides/{primitives → trait-class}/is--container.md +11 -5
- package/dist/data/guides/{primitives → trait-class}/is--layer.md +5 -5
- package/dist/data/guides/{primitives → trait-class}/is--wrapper.md +8 -8
- package/dist/data/guides/trait-class.md +77 -0
- package/dist/data/guides/utility-class.md +9 -9
- package/dist/data/meta.js +2 -2
- package/dist/lib/load-markdown.js +1 -1
- package/dist/lib/search.js +8 -5
- package/dist/tools/get-component.js +4 -3
- package/dist/tools/get-guide.js +9 -2
- package/package.json +2 -2
- package/dist/data/guides/primitives/l--fluidCols.md +0 -71
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
- クラス名: `l--flow`
|
|
8
8
|
- コンポーネント: `<Flow>`
|
|
9
9
|
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_flow.scss
|
|
10
|
-
-
|
|
10
|
+
- 公式ドキュメント: https://lism-css.com/docs/primitives/l--flow.md
|
|
11
11
|
|
|
12
12
|
## 余白の仕組み
|
|
13
13
|
|
|
14
|
-
`l--flow` 直下の子要素は、`--flow` 変数と `margin-block-start` で間隔が管理されます。見出しタグ(`
|
|
14
|
+
`l--flow` 直下の子要素は、`--flow` 変数と `margin-block-start` で間隔が管理されます。見出しタグ(`h1`〜`h6`)のみ余白が大きくなり、`calc(var(--flow) * 2 + 0.5em)` で計算されます。
|
|
15
15
|
|
|
16
16
|
| クラス | 余白量 |
|
|
17
17
|
|--------|-------|
|
|
18
|
-
|
|
|
18
|
+
| `l--flow` | `--flow--base`(`--s30`) |
|
|
19
19
|
| `.l--flow.-flow:s` | `--flow--s`(`--s20`) |
|
|
20
20
|
| `.l--flow.-flow:` | `--flow` を直接指定した値 |
|
|
21
21
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
| Prop | 説明 |
|
|
25
25
|
|------|------|
|
|
26
|
-
| `flow` | `--flow` の値を指定。`s` / `l` などのトークン値を渡すと
|
|
26
|
+
| `flow` | `--flow` の値を指定。`s` / `l` などのトークン値を渡すと `-flow:{value}` クラスが付与、任意値を渡すと `-flow:` + `style="--flow:..."` が出力される |
|
|
27
27
|
|
|
28
28
|
## Usage
|
|
29
29
|
|
|
@@ -131,4 +131,4 @@
|
|
|
131
131
|
## 関連プリミティブ
|
|
132
132
|
|
|
133
133
|
- [l--stack](./l--stack.md) — `gap` で余白を管理する縦積み(こちらは Flexbox)
|
|
134
|
-
- [is--wrapper](
|
|
134
|
+
- [is--wrapper](../trait-class/is--wrapper.md) — 記事コンテンツ幅の制限用ラッパー(`l--flow` とセットで使うことが多い)
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- クラス名: `l--frame`
|
|
8
8
|
- コンポーネント: `<Frame>`
|
|
9
9
|
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_frame.scss
|
|
10
|
-
-
|
|
10
|
+
- 公式ドキュメント: https://lism-css.com/docs/primitives/l--frame.md
|
|
11
11
|
|
|
12
12
|
## 専用Props
|
|
13
13
|
|
|
@@ -89,6 +89,6 @@
|
|
|
89
89
|
|
|
90
90
|
## 関連プリミティブ
|
|
91
91
|
|
|
92
|
-
- [is--layer](
|
|
92
|
+
- [is--layer](../trait-class/is--layer.md) — `l--frame` 内のオーバーレイ配置に使用
|
|
93
93
|
- [l--center](./l--center.md) — フレーム内でテキストを中央配置する時に組み合わせる
|
|
94
94
|
- [a--icon](./a--icon.md) — アイコン画像の表示(`src` 指定)
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- クラス名: `l--grid`
|
|
8
8
|
- コンポーネント: `<Grid>`
|
|
9
9
|
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_grid.scss
|
|
10
|
-
-
|
|
10
|
+
- 公式ドキュメント: https://lism-css.com/docs/primitives/l--grid.md
|
|
11
11
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
@@ -65,4 +65,4 @@
|
|
|
65
65
|
|
|
66
66
|
- [l--tileGrid](./l--tileGrid.md) — 自動繰り返しのタイル型 Grid
|
|
67
67
|
- [l--columns](./l--columns.md) — 等幅カラム専用
|
|
68
|
-
- [l--
|
|
68
|
+
- [l--withSide](./l--withSide.md) — コンテンツ幅自動切り替え型 2 カラム
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- クラス名: `l--stack`
|
|
8
8
|
- コンポーネント: `<Stack>`
|
|
9
9
|
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_stack.scss
|
|
10
|
-
-
|
|
10
|
+
- 公式ドキュメント: https://lism-css.com/docs/primitives/l--stack.md
|
|
11
11
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
# l--
|
|
1
|
+
# l--switchColumns / `<SwitchColumns>`
|
|
2
2
|
|
|
3
3
|
複数列 ↔ 1列の切り替えをコンテナクエリやメディアクエリを使わずに実装するクラス。Flexbox ベースで、親コンテナ幅に応じて自動的に折り返します。
|
|
4
4
|
|
|
5
5
|
## 基本情報
|
|
6
6
|
|
|
7
|
-
- クラス名: `l--
|
|
8
|
-
- コンポーネント: `<
|
|
9
|
-
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/
|
|
10
|
-
-
|
|
7
|
+
- クラス名: `l--switchColumns`
|
|
8
|
+
- コンポーネント: `<SwitchColumns>`
|
|
9
|
+
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_switchColumns.scss
|
|
10
|
+
- 公式ドキュメント: https://lism-css.com/docs/primitives/l--switchColumns.md
|
|
11
11
|
|
|
12
12
|
## 専用Props
|
|
13
13
|
|
|
14
|
-
| Prop | CSS変数 | 説明 |
|
|
15
|
-
|
|
16
|
-
| `breakSize` | `--breakSize` | 横並びを維持するのに必要な親コンテナ幅を指定。`sz` トークンが使える |
|
|
14
|
+
| Prop | CSS変数 | デフォルト | 説明 |
|
|
15
|
+
|------|--------|-----------|------|
|
|
16
|
+
| `breakSize` | `--breakSize` | `var(--sz--xs)` | 横並びを維持するのに必要な親コンテナ幅を指定。`sz` トークンが使える |
|
|
17
17
|
|
|
18
18
|
## Usage
|
|
19
19
|
|
|
20
20
|
### デフォルト幅で利用する
|
|
21
21
|
|
|
22
22
|
```jsx
|
|
23
|
-
<
|
|
23
|
+
<SwitchColumns g="20">
|
|
24
24
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
25
25
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
26
26
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
27
|
-
</
|
|
27
|
+
</SwitchColumns>
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
```html
|
|
31
|
-
<div class="l--
|
|
31
|
+
<div class="l--switchColumns -g:20">
|
|
32
32
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
33
33
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
34
34
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
@@ -38,14 +38,14 @@
|
|
|
38
38
|
### `breakSize` の指定
|
|
39
39
|
|
|
40
40
|
```jsx
|
|
41
|
-
<
|
|
41
|
+
<SwitchColumns breakSize="s" g="20">
|
|
42
42
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
43
43
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
44
|
-
</
|
|
44
|
+
</SwitchColumns>
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
```html
|
|
48
|
-
<div class="l--
|
|
48
|
+
<div class="l--switchColumns -g:20" style="--breakSize: var(--sz--s)">
|
|
49
49
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
50
50
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
51
51
|
</div>
|
|
@@ -56,14 +56,14 @@
|
|
|
56
56
|
子要素に `flex-grow` を指定すると、横並び時の幅の比率を個別に調整できます。
|
|
57
57
|
|
|
58
58
|
```jsx
|
|
59
|
-
<
|
|
59
|
+
<SwitchColumns breakSize="s" g="20">
|
|
60
60
|
<div class="-bgc:base-2 -p:20">Box</div>
|
|
61
61
|
<div class="-bgc:base-2 -p:20" style={{ flexGrow: 2 }}>Box</div>
|
|
62
|
-
</
|
|
62
|
+
</SwitchColumns>
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
## 関連プリミティブ
|
|
66
66
|
|
|
67
|
-
- [l--
|
|
67
|
+
- [l--autoColumns](./l--autoColumns.md) — 最小幅ベースの自動段組
|
|
68
68
|
- [l--columns](./l--columns.md) — ブレイクポイント指定の等幅カラム
|
|
69
|
-
- [l--
|
|
69
|
+
- [l--withSide](./l--withSide.md) — コンテンツ幅基準の2カラム切り替え
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- クラス名: `l--tileGrid`
|
|
8
8
|
- コンポーネント: `<TileGrid>`
|
|
9
9
|
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/_tileGrid.scss
|
|
10
|
-
-
|
|
10
|
+
- 公式ドキュメント: https://lism-css.com/docs/primitives/l--tileGrid.md
|
|
11
11
|
|
|
12
12
|
## 専用Props
|
|
13
13
|
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
## 関連プリミティブ
|
|
58
58
|
|
|
59
59
|
- [l--columns](./l--columns.md) — 等幅列のみ(1D)のカラム
|
|
60
|
-
- [l--
|
|
60
|
+
- [l--autoColumns](./l--autoColumns.md) — 自動折り返し型段組
|
|
61
61
|
- [l--grid](./l--grid.md) — 汎用 CSS Grid
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
# l--
|
|
1
|
+
# l--withSide / `<WithSide>`
|
|
2
2
|
|
|
3
3
|
メディアクエリ・コンテナクエリに依存せず、**維持したいコンテンツ幅を基準にして横並び・縦並びが自動で切り替わる2カラムレイアウト**。「画像 + コンテンツ」「メインエリア + サイドバー」などに活用できる。
|
|
4
4
|
|
|
5
5
|
## 基本情報
|
|
6
6
|
|
|
7
|
-
- クラス名: `l--
|
|
8
|
-
- コンポーネント: `<
|
|
9
|
-
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/layout/
|
|
10
|
-
-
|
|
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
|
|
11
11
|
|
|
12
12
|
## 動作の仕組み
|
|
13
13
|
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
|
|
18
18
|
## 専用Props
|
|
19
19
|
|
|
20
|
-
| Prop | 出力 | 説明 |
|
|
21
|
-
|
|
22
|
-
| `sideW` | `--sideW` | サイド要素の横幅 |
|
|
23
|
-
| `mainW` | `--mainW` | メイン要素で維持したい最小幅 |
|
|
20
|
+
| Prop | 出力 | デフォルト | 説明 |
|
|
21
|
+
|------|------|-----------|------|
|
|
22
|
+
| `sideW` | `--sideW` | `auto` | サイド要素の横幅 |
|
|
23
|
+
| `mainW` | `--mainW` | `max(20rem, 50%)` | メイン要素で維持したい最小幅 |
|
|
24
24
|
|
|
25
25
|
## HTML構造
|
|
26
26
|
|
|
27
27
|
```html
|
|
28
|
-
<div class="l--
|
|
28
|
+
<div class="l--withSide">
|
|
29
29
|
<div>Main Content</div>
|
|
30
30
|
<div class="is--side">Side Content</div>
|
|
31
31
|
</div>
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
### 基本的な使い方
|
|
37
37
|
|
|
38
38
|
```jsx
|
|
39
|
-
<
|
|
39
|
+
<WithSide sideW="12rem" mainW="20rem" g="20">
|
|
40
40
|
<Box p="15" bd bdc="blue">
|
|
41
41
|
<p>Main Content</p>
|
|
42
42
|
<p>メインコンテンツ本文...</p>
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
<Box isSide p="15" bd bdc="red">
|
|
45
45
|
<p>Side Content</p>
|
|
46
46
|
</Box>
|
|
47
|
-
</
|
|
47
|
+
</WithSide>
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
```html
|
|
51
|
-
<div class="l--
|
|
51
|
+
<div class="l--withSide -g:20" style="--sideW:12rem;--mainW:20rem">
|
|
52
52
|
<div class="l--box -p:15 -bd" style="--bdc:var(--blue)">
|
|
53
53
|
<p>Main Content</p>
|
|
54
54
|
<p>メインコンテンツ本文...</p>
|
|
@@ -64,16 +64,16 @@
|
|
|
64
64
|
`flex-direction: row-reverse` を併用することで、横並びの時だけ順序を反転できます。**横並びで左側・縦並びで下側に Side を配置**したいときに便利。
|
|
65
65
|
|
|
66
66
|
```jsx
|
|
67
|
-
<
|
|
67
|
+
<WithSide fxd="row-reverse" sideW="10rem" mainW="16rem" g="20">
|
|
68
68
|
<Box>
|
|
69
69
|
<p>Main content...</p>
|
|
70
70
|
</Box>
|
|
71
71
|
<Box isSide bgc="blue:20%">Side Content</Box>
|
|
72
|
-
</
|
|
72
|
+
</WithSide>
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
```html
|
|
76
|
-
<div class="l--
|
|
76
|
+
<div class="l--withSide -fxd:row-reverse -g:20" style="--sideW:10rem;--mainW:16rem">
|
|
77
77
|
<div class="l--box">
|
|
78
78
|
<p>Main content...</p>
|
|
79
79
|
</div>
|
|
@@ -81,9 +81,31 @@
|
|
|
81
81
|
</div>
|
|
82
82
|
```
|
|
83
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
|
+
|
|
84
106
|
## `l--grid` との使い分け
|
|
85
107
|
|
|
86
|
-
- **`l--
|
|
108
|
+
- **`l--withSide`**: ブレイクポイントに依存せず、コンテンツ幅で自動切り替え
|
|
87
109
|
- **`l--grid`** (`<Grid gta={[...]} gtc={[...]} />`): ブレイクポイント(`sm`/`md`)で明示的に切り替えたい場合
|
|
88
110
|
|
|
89
111
|
```jsx
|
|
@@ -97,6 +119,6 @@
|
|
|
97
119
|
## 関連プリミティブ
|
|
98
120
|
|
|
99
121
|
- [l--grid](./l--grid.md) — ブレイクポイント切り替え型の2カラム構築に使用
|
|
100
|
-
- [l--
|
|
101
|
-
- [l--
|
|
102
|
-
- [is--container](
|
|
122
|
+
- [l--autoColumns](./l--autoColumns.md) — カラム幅ベースの自動段組
|
|
123
|
+
- [l--switchColumns](./l--switchColumns.md) — ブレイクポイント一括切り替え型カラム
|
|
124
|
+
- [is--container](../trait-class/is--container.md) — レスポンシブ Property Class 利用時に必要
|
|
@@ -8,7 +8,7 @@ Lism CSS はコンテナクエリをデフォルトで採用しています。
|
|
|
8
8
|
- [HTML / Property Class での指定](#html--property-class-での指定)
|
|
9
9
|
- [Lism コンポーネントでの指定](#lism-コンポーネントでの指定)
|
|
10
10
|
|
|
11
|
-
[詳細](https://lism-css.com/docs/responsive
|
|
11
|
+
[詳細](https://lism-css.com/docs/responsive.md)
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -29,9 +29,34 @@ Lism CSS はコンテナクエリをデフォルトで採用しています。
|
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
**仕組み:**
|
|
32
|
-
|
|
33
|
-
2
|
|
34
|
-
|
|
32
|
+
- BPクラス `-{prop}_{bp}` は `@container (min-width: ...)` 内で発火し、`--{prop}_{bp}` 変数で切り替え先の値を指定
|
|
33
|
+
- 出力形式はプロパティによって 2 パターン(基本 / 例外)
|
|
34
|
+
|
|
35
|
+
**基本パターン** — BP 用変数を直接読む:
|
|
36
|
+
|
|
37
|
+
```css
|
|
38
|
+
.-d { display: var(--d) }
|
|
39
|
+
@container (min-width: 480px) {
|
|
40
|
+
.-d_sm { display: var(--d_sm) }
|
|
41
|
+
}
|
|
42
|
+
@container (min-width: 800px) {
|
|
43
|
+
.-d_md { display: var(--d_md) }
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**例外パターン** — `alwaysVar` 対応の `c`, `bgc`, `p`, `m`, `bdrs` のみ。ベース変数 `--p` が常に現在適用中の値を指すように上書きされる(state 変数扱い):
|
|
48
|
+
|
|
49
|
+
```css
|
|
50
|
+
.-p { padding: var(--p) }
|
|
51
|
+
@container (min-width: 480px) {
|
|
52
|
+
.-p_sm { padding: var(--p); --p: var(--p_sm) !important }
|
|
53
|
+
}
|
|
54
|
+
@container (min-width: 800px) {
|
|
55
|
+
.-p_md { padding: var(--p); --p: var(--p_md) !important }
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
ソースコードの [props.ts](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/config/defaults/props.ts) で `alwaysVar: 1` がセットされているプロパティがこのパターンで出力されます。
|
|
35
60
|
|
|
36
61
|
## Lism コンポーネントでの指定
|
|
37
62
|
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# -bd(ボーダー)
|
|
2
|
+
|
|
3
|
+
Lism CSS のボーダーは、CSS 変数(`--bds` / `--bdw` / `--bdc`)で管理される特殊仕様の Property Class。`-bd` または `-bd-{side}` クラスで変数管理を有効化し、`bds` / `bdc` / `bdw` Prop で個別に上書きする。
|
|
4
|
+
|
|
5
|
+
## 基本情報
|
|
6
|
+
|
|
7
|
+
- クラス名: `-bd` / `-bd-{side}` / `-bds:*` / `-bdc:*` / `-bdw` など
|
|
8
|
+
- Lism props: `bd`, `bd-{side}`, `bds`, `bdc`, `bdw`
|
|
9
|
+
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/props/_border.scss
|
|
10
|
+
- 公式ドキュメント: https://lism-css.com/docs/property-class/bd.md
|
|
11
|
+
|
|
12
|
+
## 仕組み
|
|
13
|
+
|
|
14
|
+
`-bd` または `-bd-{side}` クラスが付くと、以下の初期値がセットされる。
|
|
15
|
+
|
|
16
|
+
```scss
|
|
17
|
+
:where(.-bd, [class*=" -bd-"], [class^="-bd-"]) {
|
|
18
|
+
--bds: solid;
|
|
19
|
+
--bdw: 1px;
|
|
20
|
+
--bdc: var(--divider);
|
|
21
|
+
border-width: var(--bdw);
|
|
22
|
+
border-color: var(--bdc);
|
|
23
|
+
}
|
|
24
|
+
.-bd { border-style: var(--bds); }
|
|
25
|
+
.-bd-x { border-inline-style: var(--bds); }
|
|
26
|
+
.-bd-y { border-block-style: var(--bds); }
|
|
27
|
+
/* ...各 side ごとに style を適用 */
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`border-width` / `border-color` は全方向で共通出力され、`border-style` だけ `-bd` または `-bd-{side}` が出現している方向に適用される仕組み。`--bdw` を `0 0 1px 0.5em` のような複数値にすれば、方向ごとに太さを変えられる。
|
|
31
|
+
|
|
32
|
+
## 方向指定クラス
|
|
33
|
+
|
|
34
|
+
| Prop | CSS プロパティ |
|
|
35
|
+
|------|--------------|
|
|
36
|
+
| `bd` | `border`(変数管理を有効化) |
|
|
37
|
+
| `bd-x` | `border-inline` |
|
|
38
|
+
| `bd-y` | `border-block` |
|
|
39
|
+
| `bd-x-s` | `border-inline-start` |
|
|
40
|
+
| `bd-x-e` | `border-inline-end` |
|
|
41
|
+
| `bd-y-s` | `border-block-start` |
|
|
42
|
+
| `bd-y-e` | `border-block-end` |
|
|
43
|
+
| `bd-t` | `border-top` |
|
|
44
|
+
| `bd-b` | `border-bottom` |
|
|
45
|
+
| `bd-l` | `border-left` |
|
|
46
|
+
| `bd-r` | `border-right` |
|
|
47
|
+
|
|
48
|
+
標準で用意しているのは物理方向(`-t` / `-b` / `-l` / `-r`)と論理方向(`-x` / `-y` / `-x-s` / `-x-e` / `-y-s` / `-y-e`)のみ。
|
|
49
|
+
|
|
50
|
+
## 値プロパティ
|
|
51
|
+
|
|
52
|
+
| Prop | 変数 | プリセット値クラス | BP クラス |
|
|
53
|
+
|------|------|-------------|-----|
|
|
54
|
+
| `bd` | — | `-bd:none` | — |
|
|
55
|
+
| `bds` | `--bds` | `-bds:dashed`, `-bds:dotted`, `-bds:double` | — |
|
|
56
|
+
| `bdc` | `--bdc` | `-bdc:brand`, `-bdc:accent`, `-bdc:divider`, `-bdc:inherit`, `-bdc:transparent`, `-bdc:current` | — |
|
|
57
|
+
| `bdw` | `--bdw` | — | `-bdw_sm`, `-bdw_md` |
|
|
58
|
+
|
|
59
|
+
`bdw` はブレイクポイント指定に対応。`--bdw` の値を BP で切り替えることで、ボーダーの方向自体を変化させることもできる。
|
|
60
|
+
|
|
61
|
+
## Usage
|
|
62
|
+
|
|
63
|
+
### 全方向にボーダー + カスタマイズ
|
|
64
|
+
|
|
65
|
+
```jsx
|
|
66
|
+
<Box bd p="10">...</Box>
|
|
67
|
+
<Box bd bds="dashed" bdw="4px" bdc="red" p="15">...</Box>
|
|
68
|
+
```
|
|
69
|
+
```html
|
|
70
|
+
<div class="l--box -bd -p:10">...</div>
|
|
71
|
+
<div class="l--box -bd -bds:dashed -p:15" style="--bdw: 4px; --bdc: var(--red)">...</div>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 単一方向
|
|
75
|
+
|
|
76
|
+
```jsx
|
|
77
|
+
<Box bd-t px="10">-t: Top</Box>
|
|
78
|
+
<Box bd-x bdw="2px" px="10">inline</Box>
|
|
79
|
+
<Box bd-x-s bdw="2px" px="10">inline-start</Box>
|
|
80
|
+
```
|
|
81
|
+
```html
|
|
82
|
+
<div class="l--box -bd-t -px:10">-t: Top</div>
|
|
83
|
+
<div class="l--box -bd-x -px:10" style="--bdw: 2px">inline</div>
|
|
84
|
+
<div class="l--box -bd-x-s -px:10" style="--bdw: 2px">inline-start</div>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 方向ごとに異なるスタイル
|
|
88
|
+
|
|
89
|
+
`-bd` + `--bdw` / `--bds` / `--bdc` を複数値指定すると、方向ごとにスタイルを変えられる。
|
|
90
|
+
|
|
91
|
+
```jsx
|
|
92
|
+
<Box bd bdw="0 0 1px .5em" bds="dashed solid" bdc="var(--purple) var(--blue)" p="15">
|
|
93
|
+
border
|
|
94
|
+
</Box>
|
|
95
|
+
```
|
|
96
|
+
```html
|
|
97
|
+
<div class="l--box -bd -p:15"
|
|
98
|
+
style="--bdw: 0 0 1px 0.5em; --bds: dashed solid; --bdc: var(--purple) var(--blue)">
|
|
99
|
+
border
|
|
100
|
+
</div>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### ブレイクポイントで `bdw` を切り替え
|
|
104
|
+
|
|
105
|
+
```jsx
|
|
106
|
+
<Box bd bdw={['1px', '3px', '6px']} p="15">border</Box>
|
|
107
|
+
```
|
|
108
|
+
```html
|
|
109
|
+
<div class="l--box -bd -bdw_sm -bdw_md -p:15"
|
|
110
|
+
style="--bdw: 1px; --bdw_sm: 3px; --bdw_md: 6px">border</div>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### BP でボーダー方向を切り替える
|
|
114
|
+
|
|
115
|
+
`bd-x-s` + `bd-y-s` に `bdw` の複数値を BP で差し替えると、「縦並び時は上下線・横並び時は左右線」のように方向を切り替えられる。
|
|
116
|
+
|
|
117
|
+
```jsx
|
|
118
|
+
<Flex fxd={['column', 'row']}>
|
|
119
|
+
<Box px="15" py="5">Box</Box>
|
|
120
|
+
<Box px="15" py="5" bd-x-s bd-y-s bdw={['1px 0', '0 1px']}>Box</Box>
|
|
121
|
+
</Flex>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## 関連
|
|
125
|
+
|
|
126
|
+
- [`-bdrs`](https://lism-css.com/docs/property-class.md) — 角丸(`border-radius`)
|
|
127
|
+
- [`-bd-{side}` + `has--gutter`](../trait-class/has--gutter.md) — セクション区切りに使うと相性が良い
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# -hov(ホバー)
|
|
2
|
+
|
|
3
|
+
hover 時の挙動を制御する Property Class。`:hover` 擬似クラスで動作する系と、親の `set--var:hov` に連動する系の 2 系統に分かれる。
|
|
4
|
+
|
|
5
|
+
## 基本情報
|
|
6
|
+
|
|
7
|
+
- クラス名: `-hov:-{prop}` / `-hov:{preset}` / `-hov:in:{preset}`
|
|
8
|
+
- Lism props: `hov`(`<Lism hov="-c">` / `<Box hov={{ bgc: 'brand' }}>` 等)
|
|
9
|
+
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/props/_hover.scss
|
|
10
|
+
- 公式ドキュメント: https://lism-css.com/docs/property-class/hov.md
|
|
11
|
+
|
|
12
|
+
## 3 つの形式
|
|
13
|
+
|
|
14
|
+
| 形式 | 役割 |
|
|
15
|
+
|------|------|
|
|
16
|
+
| `-hov:-{prop}` | `--hov-{prop}` 変数を受け取り、hover 時に該当プロパティを変化させる |
|
|
17
|
+
| `-hov:{preset}` | hover 時のスタイルセットをプリセット名でまとめて適用する |
|
|
18
|
+
| `-hov:in:{preset}` | 親要素の `set--var:hov` を起点に、子要素のスタイルを変化させる |
|
|
19
|
+
|
|
20
|
+
`-hov:-{prop}` と `-hov:{preset}` は `@media (any-hover: hover)` 内で定義されるため、タッチデバイスでは無効。
|
|
21
|
+
`-hov:in:*` はメディアクエリ外で、親の `set--var:hov` がセットする `--_isHov` / `--_notHov` 変数で動作する。
|
|
22
|
+
|
|
23
|
+
トランジションを付けたい場合は [`has--transition`](../trait-class/has--transition.md) クラスを併用する。
|
|
24
|
+
|
|
25
|
+
## `-hov:-{prop}` — プロパティ変更
|
|
26
|
+
|
|
27
|
+
`:hover` で直接動作する。クラスを付けるだけで初期値で変化する。
|
|
28
|
+
|
|
29
|
+
| クラス | 変化するプロパティ | 初期値 |
|
|
30
|
+
|--------|----------------------|--------|
|
|
31
|
+
| `-hov:-c` | `color` | `var(--hov-c, var(--link))` |
|
|
32
|
+
| `-hov:-bdc` | `border-color` | `var(--hov-bdc, currentColor)` |
|
|
33
|
+
| `-hov:-bgc` | `background-color` | `var(--hov-bgc, var(--base-2))` |
|
|
34
|
+
| `-hov:-o` | `opacity` | `var(--hov-o, var(--o--p))` |
|
|
35
|
+
| `-hov:-bxsh` | `box-shadow` | `var(--hov-bxsh, var(--bxsh--50))` |
|
|
36
|
+
|
|
37
|
+
任意の値へ変化させたい場合は、`--hov-{prop}` 変数で値を指定する。
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<!-- 初期値のまま使用 -->
|
|
41
|
+
<a class="is--boxLink -hov:-o -bgc:base-2 -bd -p:20" href="###">...</a>
|
|
42
|
+
|
|
43
|
+
<!-- 任意値を指定 -->
|
|
44
|
+
<a class="is--boxLink -hov:-bgc -hov:-c -bgc:base-2 -p:20"
|
|
45
|
+
style="--hov-bgc: var(--brand); --hov-c: var(--white)" href="###">...</a>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## `-hov:{preset}` — プリセット
|
|
49
|
+
|
|
50
|
+
hover 時のスタイルセットをプリセット名でまとめて適用する。
|
|
51
|
+
|
|
52
|
+
| クラス | 内容 |
|
|
53
|
+
|--------|------|
|
|
54
|
+
| `-hov:underline` | テキストに下線を表示 |
|
|
55
|
+
| `-hov:neutral` | 背景色にニュートラルグレーをブレンド |
|
|
56
|
+
|
|
57
|
+
プロジェクト固有のプリセットは、以下のように自作して追加できる。
|
|
58
|
+
|
|
59
|
+
```scss
|
|
60
|
+
@media (any-hover: hover) {
|
|
61
|
+
.-hov\:shadowUp:hover {
|
|
62
|
+
box-shadow: var(--bxsh--40);
|
|
63
|
+
translate: 0 -3px;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## `-hov:in:{preset}` — 親連動
|
|
69
|
+
|
|
70
|
+
親要素に `set--var:hov` を付けると、`--_isHov` / `--_notHov` 変数が hover 状態に応じて切り替わる。`-hov:in:*` はこの変数を参照する仕組み。
|
|
71
|
+
|
|
72
|
+
| クラス | 効果 | 仕組み |
|
|
73
|
+
|--------|------|--------|
|
|
74
|
+
| `-hov:in:hide` | 親 hover 時にフェードアウト | `opacity: var(--_isHov, 0)` |
|
|
75
|
+
| `-hov:in:show` | 親 hover 時にフェードイン | `opacity: var(--_notHov, 0)` / `visibility: var(--_notHov, hidden)` |
|
|
76
|
+
| `-hov:in:zoom` | 親 hover 時にズーム | `scale: var(--_isHov, 1.1)` |
|
|
77
|
+
|
|
78
|
+
```jsx
|
|
79
|
+
<Frame set="var:hov" isBoxLink href="#" ar="16/9">
|
|
80
|
+
<Media isLayer hasTransition hov="in:zoom" src="..." />
|
|
81
|
+
<Layer hasTransition hov="in:show" bgc="rgb(0 0 0 / 40%)">...</Layer>
|
|
82
|
+
</Frame>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## `<Lism>` コンポーネントでの `hov` 指定
|
|
86
|
+
|
|
87
|
+
`<Lism>`(およびその継承コンポーネント)の `hov` prop は、文字列・オブジェクトの 2 通りで指定できる。
|
|
88
|
+
|
|
89
|
+
### 文字列指定
|
|
90
|
+
|
|
91
|
+
入力した文字列がそのまま `-hov:{入力文字列}` クラスとして出力される。カンマ区切りで複数指定可能。**自動変換は行われない**(`"c"` → `-hov:-c` のような省略はサポートしない)。
|
|
92
|
+
|
|
93
|
+
```jsx
|
|
94
|
+
<Lism hov="-o">...</Lism>
|
|
95
|
+
// → <div class="-hov:-o">...</div>
|
|
96
|
+
|
|
97
|
+
<Lism hov="shadowUp">...</Lism>
|
|
98
|
+
// → <div class="-hov:shadowUp">...</div>
|
|
99
|
+
|
|
100
|
+
<Lism hov="-c,-bxsh">...</Lism>
|
|
101
|
+
// → <div class="-hov:-c -hov:-bxsh">...</div>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### オブジェクト指定
|
|
105
|
+
|
|
106
|
+
主に `-hov:-{prop}` に任意の値を渡す用途。`hov={{ prop: value }}` で `-hov:-{prop}` クラス + `--hov-{prop}` 変数を出力。
|
|
107
|
+
|
|
108
|
+
```jsx
|
|
109
|
+
<Lism hov={{ c: 'red' }}>...</Lism>
|
|
110
|
+
// → <div class="-hov:-c" style="--hov-c: var(--red)">...</div>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
値に `true` を指定すると `-hov:{key}` クラスのみ出力される。任意値プロップとプリセット/自作クラスを**同時に**指定したい時に使う。
|
|
114
|
+
|
|
115
|
+
```jsx
|
|
116
|
+
<Lism hov={{ shadowUp: true }}>...</Lism>
|
|
117
|
+
// → <div class="-hov:shadowUp">...</div>
|
|
118
|
+
|
|
119
|
+
<Lism hov={{ c: 'red', shadowUp: true }}>...</Lism>
|
|
120
|
+
// → <div class="-hov:-c -hov:shadowUp" style="--hov-c: var(--red)">...</div>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## `has--transition` との併用
|
|
124
|
+
|
|
125
|
+
`-hov:*` による変化は即時に切り替わる。なめらかなトランジションを付けたい場合は `has--transition` を併用し、`--duration` で所要時間を調整する。
|
|
126
|
+
|
|
127
|
+
```jsx
|
|
128
|
+
<BoxLink href="###" hasTransition bxsh="10" hov={{ bxsh: '40' }} bd p="20">...</BoxLink>
|
|
129
|
+
// → <a class="is--boxLink has--transition -bxsh:10 -hov:-bxsh -bd -p:20"
|
|
130
|
+
// style="--hov-bxsh: var(--bxsh--40)" href="###">...</a>
|
|
131
|
+
|
|
132
|
+
<BoxLink href="###" hasTransition hov={{ bdc: 'red' }} bd p="20"
|
|
133
|
+
style={{ '--duration': '.5s' }}>...</BoxLink>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## 関連
|
|
137
|
+
|
|
138
|
+
- [`has--transition`](../trait-class/has--transition.md) — hover 時の変化にトランジションを付ける
|
|
139
|
+
- [`set--var:hov`](../set-class.md#set--varhov) — 親の hover 状態を子要素に伝播させる仕組み
|
|
140
|
+
- [`set--var:bxsh`](../set-class.md) — `-hov:-bxsh` と組み合わせる場合の影色再計算
|