@lism-css/mcp 0.13.0 → 0.15.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/dist/data/docs-index.json +176 -85
- package/dist/data/guides/SKILL.md +29 -15
- package/dist/data/guides/base-styles.md +2 -0
- package/dist/data/guides/components-core.md +25 -20
- package/dist/data/guides/components-ui.md +16 -23
- package/dist/data/guides/css-rules.md +101 -26
- package/dist/data/guides/customize.md +220 -0
- package/dist/data/guides/naming.md +218 -0
- package/dist/data/guides/primitive-class.md +3 -90
- package/dist/data/guides/primitives/a--decorator.md +3 -5
- package/dist/data/guides/primitives/a--divider.md +4 -11
- package/dist/data/guides/primitives/a--spacer.md +1 -1
- package/dist/data/guides/primitives/l--box.md +1 -1
- package/dist/data/guides/primitives/l--flex.md +1 -1
- package/dist/data/guides/primitives/l--flow.md +1 -1
- package/dist/data/guides/primitives/l--fluidCols.md +31 -28
- package/dist/data/guides/primitives/l--frame.md +1 -1
- package/dist/data/guides/primitives/l--sideMain.md +1 -1
- package/dist/data/guides/prop-responsive.md +28 -3
- 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 +52 -86
- package/dist/data/guides/set-class.md +62 -94
- package/dist/data/guides/tokens.md +24 -15
- 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 +2 -2
- package/dist/data/guides/{primitives → trait-class}/is--layer.md +2 -2
- package/dist/data/guides/{primitives → trait-class}/is--wrapper.md +2 -2
- package/dist/data/guides/trait-class.md +77 -0
- package/dist/data/guides/utility-class.md +0 -1
- 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 +7 -6
- package/dist/tools/get-guide.js +1 -1
- package/package.json +2 -2
- package/dist/data/guides/primitives/is--vertical.md +0 -52
|
@@ -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/
|
|
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/) — 角丸(`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/
|
|
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, 0.7)` |
|
|
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` と組み合わせる場合の影色再計算
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# -max-sz(最大幅)
|
|
2
|
+
|
|
3
|
+
コンテンツの最大幅(`max-inline-size`)を制御する Property Class。標準のコンテンツサイズトークン(`xs`〜`xl`)に加え、特殊挙動の `full` / `container` を持つ。
|
|
4
|
+
|
|
5
|
+
## 基本情報
|
|
6
|
+
|
|
7
|
+
- クラス名: `-max-sz:{xs|s|m|l|xl|full|container}`
|
|
8
|
+
- Lism props: `max-sz`(`<Lism max-sz="m">` 等)
|
|
9
|
+
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/props/_size.scss
|
|
10
|
+
- ドキュメント(人間向け): https://lism-css.com/docs/property-class/max-sz/
|
|
11
|
+
|
|
12
|
+
## トークン対応クラス
|
|
13
|
+
|
|
14
|
+
コンテンツサイズ用のトークン `--sz--{xs|s|m|l|xl}` にそのまま対応するクラスが用意されている。
|
|
15
|
+
|
|
16
|
+
| クラス | 値 |
|
|
17
|
+
|--------|-----|
|
|
18
|
+
| `-max-sz:xs` | `var(--sz--xs)` |
|
|
19
|
+
| `-max-sz:s` | `var(--sz--s)` |
|
|
20
|
+
| `-max-sz:m` | `var(--sz--m)` |
|
|
21
|
+
| `-max-sz:l` | `var(--sz--l)` |
|
|
22
|
+
| `-max-sz:xl` | `var(--sz--xl)` |
|
|
23
|
+
|
|
24
|
+
## 特殊クラス
|
|
25
|
+
|
|
26
|
+
### `-max-sz:full`
|
|
27
|
+
|
|
28
|
+
**親要素のサイズいっぱいに広がる**クラス。`.has--gutter` の直下では、その gutter 分を**追加で外側に**拡張する(= gutter を無視して端まで広がる)。
|
|
29
|
+
|
|
30
|
+
```scss
|
|
31
|
+
.-max-sz\:full {
|
|
32
|
+
max-inline-size: 100%;
|
|
33
|
+
|
|
34
|
+
:where(.has--gutter) > & {
|
|
35
|
+
max-inline-size: calc(100% + var(--gutter-size) * 2);
|
|
36
|
+
margin-inline: calc(var(--gutter-size) * -1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`.has--gutter` の内側で全幅画像・全幅バナーなどを配置したい時に使う。
|
|
42
|
+
|
|
43
|
+
### `-max-sz:container`
|
|
44
|
+
|
|
45
|
+
**コンテナ要素を基準としたサイズ**まで広がる。`.is--container` ごとに `--sz--container` が更新されるため、直近の container を基準にサイズ決定される。
|
|
46
|
+
|
|
47
|
+
```scss
|
|
48
|
+
.-max-sz\:container {
|
|
49
|
+
max-inline-size: var(--sz--container, 100cqi);
|
|
50
|
+
margin-inline: calc(50% - var(--sz--container) / 2);
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
`margin-inline` で中央配置されるので、`is--wrapper` の内側にあっても container 基準の幅に広げつつ中央に揃う。
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
### トークン値での使用
|
|
59
|
+
|
|
60
|
+
```jsx
|
|
61
|
+
<Lism max-sz="m" mx="auto">...</Lism>
|
|
62
|
+
```
|
|
63
|
+
```html
|
|
64
|
+
<div class="-max-sz:m -mx:auto" style="max-inline-size: var(--sz--m)">...</div>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### `.has--gutter` 内の全幅要素
|
|
68
|
+
|
|
69
|
+
```html
|
|
70
|
+
<div class="has--gutter">
|
|
71
|
+
<p>通常の gutter 内コンテンツ</p>
|
|
72
|
+
<img class="-max-sz:full" src="..." alt="" />
|
|
73
|
+
<p>通常の gutter 内コンテンツ</p>
|
|
74
|
+
</div>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### container 基準のサイズ
|
|
78
|
+
|
|
79
|
+
```html
|
|
80
|
+
<div class="is--container">
|
|
81
|
+
<div class="is--wrapper -contentSize:s">
|
|
82
|
+
<p>狭めのコンテンツ</p>
|
|
83
|
+
<div class="-max-sz:container">
|
|
84
|
+
container 基準まで広がる要素
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## DEMO
|
|
91
|
+
|
|
92
|
+
`-max-sz:*` の挙動確認用デモ:
|
|
93
|
+
- https://lism-css.com/demo/content-size
|
|
94
|
+
|
|
95
|
+
## 関連
|
|
96
|
+
|
|
97
|
+
- [`is--container`](../trait-class/is--container.md) — `-max-sz:container` の基準となるコンテナ
|
|
98
|
+
- [`is--wrapper`](../trait-class/is--wrapper.md) — コンテンツ幅の制限
|
|
99
|
+
- [`has--gutter`](../trait-class/has--gutter.md) — `-max-sz:full` と組み合わせる左右余白
|
|
@@ -18,6 +18,12 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
18
18
|
|
|
19
19
|
[詳細](https://lism-css.com/docs/property-class/)
|
|
20
20
|
|
|
21
|
+
個別ドキュメント:
|
|
22
|
+
|
|
23
|
+
- [property-class/bd.md](./property-class/bd.md) — ボーダー(`-bd` / `-bd-{side}` 系)
|
|
24
|
+
- [property-class/hov.md](./property-class/hov.md) — ホバー(`-hov:*` 系)
|
|
25
|
+
- [property-class/max-sz.md](./property-class/max-sz.md) — 最大幅(`-max-sz:full` / `-max-sz:container` 等)
|
|
26
|
+
|
|
21
27
|
---
|
|
22
28
|
|
|
23
29
|
## 基本書式
|
|
@@ -77,7 +83,7 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
77
83
|
|
|
78
84
|
| Prop | CSS プロパティ | プリセット値クラス | BP クラス |
|
|
79
85
|
|------|--------------|-------------|-----|
|
|
80
|
-
| `d` | `display` | `-d:none`, `-d:block`, `-d:flex`, `-d:inline-flex`, `-d:grid`, `-d:inline-grid` | `-d_sm`, `-d_md` |
|
|
86
|
+
| `d` | `display` | `-d:none`, `-d:block`, `-d:flex`, `-d:inline-flex`, `-d:grid`, `-d:inline-grid`, `-d:inline`, `-d:inline-block` | `-d_sm`, `-d_md` |
|
|
81
87
|
| `o` | `opacity` | `-o:0`, `-o:-10`, `-o:-20`, `-o:-30` | — |
|
|
82
88
|
| `v` | `visibility` | `-v:hidden` | — |
|
|
83
89
|
| `ov` | `overflow` | `-ov:hidden`, `-ov:auto`, `-ov:clip` | — |
|
|
@@ -98,14 +104,16 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
98
104
|
| `sz` | `inline-size` | — | — |
|
|
99
105
|
| `min-sz` | `min-inline-size` | — | — |
|
|
100
106
|
| `max-sz` | `max-inline-size` | `-max-sz:xs`, `-max-sz:s`, `-max-sz:m`, `-max-sz:l`, `-max-sz:xl`, `-max-sz:full`, `-max-sz:container` | — |
|
|
101
|
-
| `
|
|
102
|
-
| `min-
|
|
103
|
-
| `max-
|
|
107
|
+
| `bsz` | `block-size` | — | — |
|
|
108
|
+
| `min-bsz` | `min-block-size` | — | — |
|
|
109
|
+
| `max-bsz` | `max-block-size` | — | — |
|
|
104
110
|
|
|
105
111
|
**`max-sz` の特殊クラス:**
|
|
106
|
-
- `-max-sz:full` —
|
|
112
|
+
- `-max-sz:full` — `.has--gutter` 内では gutter 分を含めた全幅に拡張
|
|
107
113
|
- `-max-sz:container` — コンテナ幅に合わせる(`margin-inline` で中央配置)
|
|
108
114
|
|
|
115
|
+
→ 詳細は [property-class/max-sz.md](./property-class/max-sz.md) 参照
|
|
116
|
+
|
|
109
117
|
### 背景
|
|
110
118
|
|
|
111
119
|
| Prop | CSS プロパティ | プリセット値クラス | BP クラス |
|
|
@@ -146,9 +154,9 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
146
154
|
|
|
147
155
|
| Prop | CSS プロパティ | プリセット値クラス | BP クラス |
|
|
148
156
|
|------|--------------|-------------|-----|
|
|
149
|
-
| `bxsh` | `box-shadow` | `-bxsh:0`, `-bxsh:10`, `-bxsh:20`, `-bxsh:30`, `-bxsh:40` | `-bxsh_sm`, `-bxsh_md` |
|
|
157
|
+
| `bxsh` | `box-shadow` | `-bxsh:0`, `-bxsh:10`, `-bxsh:20`, `-bxsh:30`, `-bxsh:40`, `-bxsh:50` | `-bxsh_sm`, `-bxsh_md` |
|
|
150
158
|
|
|
151
|
-
|
|
159
|
+
**補足:** 影色(`--shc`)を要素内で上書きして再計算させたい場合は、`set--var:bxsh` クラスを併用する。
|
|
152
160
|
|
|
153
161
|
### ポジション
|
|
154
162
|
|
|
@@ -271,99 +279,43 @@ SPACE トークン(全値): `5`, `10`, `15`, `20`, `30`, `40`, `50`, `60`, `
|
|
|
271
279
|
|
|
272
280
|
### ボーダー(`bd` 系)
|
|
273
281
|
|
|
274
|
-
|
|
282
|
+
Lism CSS のボーダーは CSS 変数(`--bds` / `--bdw` / `--bdc`)で管理される特殊仕様。`-bd` または `-bd-{side}` を付けると初期値(`solid` / `1px` / `var(--divider)`)がセットされ、`bds` / `bdc` / `bdw` Prop で上書きする。
|
|
275
283
|
|
|
276
|
-
|
|
277
|
-
|
|
284
|
+
| Prop | CSS プロパティ / 変数 | 主なクラス |
|
|
285
|
+
|------|-----------------------|------------|
|
|
286
|
+
| `bd` | `border`(変数管理を有効化) | `-bd`, `-bd-{x\|y\|x-s\|x-e\|y-s\|y-e\|t\|b\|l\|r}`, `-bd:none` |
|
|
287
|
+
| `bds` | `--bds` | `-bds:dashed`, `-bds:dotted`, `-bds:double` |
|
|
288
|
+
| `bdc` | `--bdc` | `-bdc:brand`, `-bdc:accent`, `-bdc:divider`, `-bdc:inherit`, `-bdc:transparent`, `-bdc:current` |
|
|
289
|
+
| `bdw` | `--bdw` | BP クラス: `-bdw_sm`, `-bdw_md` |
|
|
278
290
|
|
|
279
|
-
|
|
280
|
-
|------|--------------|-------------|-----|
|
|
281
|
-
| `bd` | `border`(変数管理を有効化) | `-bd:none` | — |
|
|
282
|
-
| `bds` | `--bds` 変数 | `-bds:dashed`, `-bds:dotted`, `-bds:double` | — |
|
|
283
|
-
| `bdc` | `--bdc` 変数 | `-bdc:brand`, `-bdc:accent`, `-bdc:divider`, `-bdc:inherit`, `-bdc:transparent`, `-bdc:current` | — |
|
|
284
|
-
| `bdw` | `--bdw` 変数 | — | `-bdw_sm`, `-bdw_md` |
|
|
285
|
-
|
|
286
|
-
**方向指定:**
|
|
287
|
-
|
|
288
|
-
| Prop | CSS プロパティ |
|
|
289
|
-
|------|--------------|
|
|
290
|
-
| `bd-x` | `border-inline` |
|
|
291
|
-
| `bd-y` | `border-block` |
|
|
292
|
-
| `bd-x-s` | `border-inline-start` |
|
|
293
|
-
| `bd-x-e` | `border-inline-end` |
|
|
294
|
-
| `bd-y-s` | `border-block-start` |
|
|
295
|
-
| `bd-y-e` | `border-block-end` |
|
|
296
|
-
| `bd-t` | `border-top` |
|
|
297
|
-
| `bd-b` | `border-bottom` |
|
|
298
|
-
| `bd-l` | `border-left` |
|
|
299
|
-
| `bd-r` | `border-right` |
|
|
300
|
-
|
|
301
|
-
```jsx
|
|
302
|
-
// JSX: ボーダー + カスタマイズ
|
|
303
|
-
<Box bd bdc="brand" bdw="2px" bds="dashed">...</Box>
|
|
304
|
-
|
|
305
|
-
// HTML
|
|
306
|
-
<div class="l--box -bd -bdc:brand" style="--bdw: 2px; --bds: dashed">...</div>
|
|
307
|
-
|
|
308
|
-
// 方向指定
|
|
309
|
-
<Box bd-y bdc="divider">...</Box>
|
|
310
|
-
// → <div class="l--box -bd-y -bdc:divider">...</div>
|
|
311
|
-
```
|
|
291
|
+
→ 詳細(方向ごとのスタイル指定、BP での方向切り替え等)は [property-class/bd.md](./property-class/bd.md) 参照
|
|
312
292
|
|
|
313
293
|
### ホバー(`hov` 系)
|
|
314
294
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
ホバーエフェクト用のクラスです。`-hov:{prop}` 系と `-hov:to:*` 系の2種類があります。
|
|
318
|
-
|
|
319
|
-
**`-hov:{prop}` — ホバー時のプロパティ変更**
|
|
295
|
+
ホバーエフェクト用のクラス群。以下の 3 形式がある。
|
|
320
296
|
|
|
321
|
-
|
|
297
|
+
| 形式 | 役割 | 動作条件 |
|
|
298
|
+
|------|------|---------|
|
|
299
|
+
| `.-hov:-{prop}` | `--hov-{prop}` 変数で hover 時の値を変化させる | `:hover`(`@media (any-hover: hover)` 内) |
|
|
300
|
+
| `.-hov:{preset}` | hover 時のスタイルをプリセットで適用 | `:hover`(同上) |
|
|
301
|
+
| `.-hov:in:{preset}` | 親の `set--var:hov` を起点に子のスタイルを変化させる | 親に `set--var:hov` が必要 |
|
|
322
302
|
|
|
323
|
-
|
|
324
|
-
|--------|------|-------------|
|
|
325
|
-
| `-hov:c` | テキスト色を変更 | `var(--hov-c, var(--link))` |
|
|
326
|
-
| `-hov:bgc` | 背景色を変更 | `var(--hov-bgc, var(--base-2))` |
|
|
327
|
-
| `-hov:bdc` | ボーダー色を変更 | `var(--hov-bdc, currentColor)` |
|
|
328
|
-
| `-hov:o` | 不透明度を変更 | `var(--hov-o, 0.7)` |
|
|
329
|
-
| `-hov:bxsh` | シャドウを変更 | `var(--hov-bxsh, var(--bxsh--40))` |
|
|
330
|
-
| `-hov:neutral` | ニュートラルグレーを混合 | `color-mix(...)` |
|
|
303
|
+
**標準プリセット:** `.-hov:-c`, `.-hov:-bgc`, `.-hov:-bdc`, `.-hov:-o`, `.-hov:-bxsh`, `.-hov:underline`, `.-hov:neutral`, `.-hov:in:hide`, `.-hov:in:show`, `.-hov:in:zoom`
|
|
331
304
|
|
|
332
|
-
|
|
333
|
-
// JSX: ホバーで色変更(set--hov なしで動作する)
|
|
334
|
-
<Link hov={{ c: true }}>リンク</Link>
|
|
335
|
-
// → <a class="-hov:c" href="...">リンク</a>
|
|
336
|
-
|
|
337
|
-
// カスタム値を指定
|
|
338
|
-
<Box hov={{ bgc: true }} style={{ '--hov-bgc': 'var(--brand)' }}>...</Box>
|
|
339
|
-
```
|
|
305
|
+
**`<Lism>` の `hov` prop:** 文字列指定(`hov="-c"` → `-hov:-c`。自動変換なし、カンマ区切りで複数可)とオブジェクト指定(`hov={{ c: 'red' }}` → `-hov:-c` + `--hov-c: var(--red)`。値 `true` でクラスのみ出力)が可能。
|
|
340
306
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
`set--hov` がセットする `--_isHov` / `--_notHov` 変数を利用して動作します。`set--hov` と `set--transition` の併用が必要です。
|
|
344
|
-
|
|
345
|
-
| クラス | 効果 | 仕組み |
|
|
346
|
-
|--------|------|--------|
|
|
347
|
-
| `-hov:to:hide` | ホバー時にフェードアウト | `opacity: var(--_isHov, 0)` |
|
|
348
|
-
| `-hov:to:show` | ホバー時にフェードイン | `opacity: var(--_notHov, 0)` |
|
|
349
|
-
| `-hov:to:zoom` | ホバー時にズーム | `scale: var(--_isHov, 1.1)` |
|
|
350
|
-
|
|
351
|
-
```jsx
|
|
352
|
-
// set--hov + set--transition が必要
|
|
353
|
-
<Box set="hov transition">
|
|
354
|
-
<Box hov={{ to: 'show' }}>ホバーで表示</Box>
|
|
355
|
-
</Box>
|
|
356
|
-
```
|
|
307
|
+
→ 詳細は [property-class/hov.md](./property-class/hov.md) 参照
|
|
357
308
|
|
|
358
309
|
## その他
|
|
359
310
|
|
|
360
311
|
| Prop | CSS プロパティ | プリセット値クラス | BP クラス |
|
|
361
312
|
|------|--------------|-------------|-----|
|
|
362
|
-
| `
|
|
363
|
-
| `
|
|
313
|
+
| `ovw` | `overflow-wrap` | `-ovw:anywhere` | — |
|
|
314
|
+
| `whs` | `white-space` | `-whs:nowrap` | — |
|
|
364
315
|
| `float` | `float` | `-float:left`, `-float:right` | — |
|
|
365
316
|
| `clear` | `clear` | `-clear:both` | — |
|
|
366
|
-
| `
|
|
317
|
+
| `iso` | `isolation` | `-iso:isolate` | — |
|
|
318
|
+
| `wm` | `writing-mode` | `-wm:vertical-rl` | `-wm_sm`, `-wm_md` |
|
|
367
319
|
|
|
368
320
|
|
|
369
321
|
## 値の省略形(例外一覧)
|
|
@@ -383,8 +335,22 @@ Property Class の値名は基本的に CSS の実値と同じですが、以下
|
|
|
383
335
|
|
|
384
336
|
### `alwaysVar` タイプ
|
|
385
337
|
|
|
386
|
-
`
|
|
387
|
-
|
|
338
|
+
`c`, `bgc`, `p`, `m`, `bdrs` の 5 つ。
|
|
339
|
+
|
|
340
|
+
例えば`-p`の場合、プリセット値クラス(`-p:20`)でも常に CSS 変数(`--p`)経由で値が適用されます。
|
|
341
|
+
さらに BP クラスでも `padding:var(--p);--p:var(--p_sm) !important;` の形で出力されるため、`--p` は常に現在適用中の値を指します。
|
|
342
|
+
|
|
343
|
+
これにより、子要素や疑似要素から `var(--p)` で親の値を参照できます。
|
|
344
|
+
|
|
345
|
+
**CSS 出力例:**
|
|
346
|
+
|
|
347
|
+
```css
|
|
348
|
+
.-p, [class*="-p:"] { padding: var(--p) }
|
|
349
|
+
.-p\:20 { --p: var(--s20) }
|
|
350
|
+
@container (min-width: 480px) {
|
|
351
|
+
.-p_sm { padding: var(--p); --p: var(--p_sm) !important }
|
|
352
|
+
}
|
|
353
|
+
```
|
|
388
354
|
|
|
389
355
|
|
|
390
356
|
## Property Class の検索・一括修正
|