@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.
Files changed (42) hide show
  1. package/dist/data/docs-index.json +176 -85
  2. package/dist/data/guides/SKILL.md +29 -15
  3. package/dist/data/guides/base-styles.md +2 -0
  4. package/dist/data/guides/components-core.md +25 -20
  5. package/dist/data/guides/components-ui.md +16 -23
  6. package/dist/data/guides/css-rules.md +101 -26
  7. package/dist/data/guides/customize.md +220 -0
  8. package/dist/data/guides/naming.md +218 -0
  9. package/dist/data/guides/primitive-class.md +3 -90
  10. package/dist/data/guides/primitives/a--decorator.md +3 -5
  11. package/dist/data/guides/primitives/a--divider.md +4 -11
  12. package/dist/data/guides/primitives/a--spacer.md +1 -1
  13. package/dist/data/guides/primitives/l--box.md +1 -1
  14. package/dist/data/guides/primitives/l--flex.md +1 -1
  15. package/dist/data/guides/primitives/l--flow.md +1 -1
  16. package/dist/data/guides/primitives/l--fluidCols.md +31 -28
  17. package/dist/data/guides/primitives/l--frame.md +1 -1
  18. package/dist/data/guides/primitives/l--sideMain.md +1 -1
  19. package/dist/data/guides/prop-responsive.md +28 -3
  20. package/dist/data/guides/property-class/bd.md +127 -0
  21. package/dist/data/guides/property-class/hov.md +140 -0
  22. package/dist/data/guides/property-class/max-sz.md +99 -0
  23. package/dist/data/guides/property-class.md +52 -86
  24. package/dist/data/guides/set-class.md +62 -94
  25. package/dist/data/guides/tokens.md +24 -15
  26. package/dist/data/guides/trait-class/has--gutter.md +48 -0
  27. package/dist/data/guides/trait-class/has--mask.md +66 -0
  28. package/dist/data/guides/trait-class/has--snap.md +68 -0
  29. package/dist/data/guides/trait-class/has--transition.md +73 -0
  30. package/dist/data/guides/{primitives → trait-class}/is--boxLink.md +8 -8
  31. package/dist/data/guides/{primitives → trait-class}/is--container.md +2 -2
  32. package/dist/data/guides/{primitives → trait-class}/is--layer.md +2 -2
  33. package/dist/data/guides/{primitives → trait-class}/is--wrapper.md +2 -2
  34. package/dist/data/guides/trait-class.md +77 -0
  35. package/dist/data/guides/utility-class.md +0 -1
  36. package/dist/data/meta.js +2 -2
  37. package/dist/lib/load-markdown.js +1 -1
  38. package/dist/lib/search.js +8 -5
  39. package/dist/tools/get-component.js +7 -6
  40. package/dist/tools/get-guide.js +1 -1
  41. package/package.json +2 -2
  42. package/dist/data/guides/primitives/is--vertical.md +0 -52
@@ -1,19 +1,26 @@
1
1
  # `set--` クラス
2
2
 
3
- `@layer lism-base` に属し、特定の機能を有効にするために CSS変数やベーススタイルをセットアップするクラス群です。
4
- HTML では直接クラスを付与し、Lism コンポーネントでは `set` prop(`set="plain"`, `set="shadow"` 等)で指定します。
3
+ `@layer lism-base` に属し、HTML 要素の基礎スタイリングまたは CSS 変数のセットアップだけを行うクラス群です。
4
+ HTML では直接クラスを付与し、Lism コンポーネントでは `set` prop(`set="plain"`, `set="revert"`, `set="var:bxsh"` 等)で指定します。
5
5
 
6
6
  `set` prop の記法(複数値指定・`-` prefix による除外)は [components-core.md](./components-core.md#共通-props) を参照してください。
7
7
 
8
+ set-- は目的別に 2 カテゴリに分かれます。
9
+
10
+ | カテゴリ | 用途 | クラス |
11
+ |---------|------|--------|
12
+ | 基礎スタイリング | HTML 要素のリセット/リバート | `set--plain` / `set--revert` |
13
+ | 変数のセット | CSS 変数のセットアップのみを行う | `set--var:bxsh` / `set--var:hov` / `set--var:bdrsInner` |
14
+
15
+ `set--var:{name}` の `{name}` は、そのクラスがセットアップする CSS 変数の名称に対応します(例: `--bxsh--*` → `var:bxsh`、`--_isHov` / `--_notHov` → `var:hov`、`--bdrs--inner` → `var:bdrsInner`)。
16
+
8
17
  ## TOC
9
18
 
10
19
  - [`set--plain`](#set--plain)
11
- - [`set--shadow`](#set--shadow)
12
- - [`set--hov`](#set--hov)
13
- - [`set--transition`](#set--transition)
14
- - [`set--gutter`](#set--gutter)
15
- - [`set--innerRs`](#set--innerrs)
16
- - [`set--bp`](#set--bp)
20
+ - [`set--revert`](#set--revert)
21
+ - [`set--var:bxsh`](#set--varbxsh)
22
+ - [`set--var:hov`](#set--varhov)
23
+ - [`set--var:bdrsInner`](#set--varbdrsinner)
17
24
 
18
25
  [詳細](https://lism-css.com/docs/set-class/)
19
26
 
@@ -26,18 +33,16 @@ HTML では直接クラスを付与し、Lism コンポーネントでは `set`
26
33
  | クラス | ソースファイル |
27
34
  |--------|---------------|
28
35
  | `set--plain` | [`_plain.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_plain.scss) |
29
- | `set--shadow` | [`_shadow.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_shadow.scss) |
30
- | `set--hov` | [`_hov.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_hov.scss) |
31
- | `set--transition` | [`_transition.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_transition.scss) |
32
- | `set--gutter` | [`_gutter.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_gutter.scss) |
33
- | `set--innerRs` | [`_innerRs.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_innerRs.scss) |
34
- | `set--bp` | [`_bp.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_bp.scss) |
36
+ | `set--revert` | [`_revert.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_revert.scss) |
37
+ | `set--var:bxsh` | [`_shadow.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_shadow.scss) |
38
+ | `set--var:hov` | [`_hov.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_hov.scss) |
39
+ | `set--var:bdrsInner` | [`_bdrsInner.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_bdrsInner.scss) |
35
40
 
36
41
  ---
37
42
 
38
43
  ## `set--plain`
39
44
 
40
- `width`, `color`, `font`, `pading`, `border`など、ブラウザデフォルトスタイルを完全にリセットします。
45
+ `width`, `color`, `font`, `padding`, `border` など、ブラウザデフォルトスタイルを完全にリセットします。
41
46
  ボタン・リンク等のスタイリング時に活用します。
42
47
 
43
48
  使用例:
@@ -48,22 +53,45 @@ HTML では直接クラスを付与し、Lism コンポーネントでは `set`
48
53
  <Lism as="button" set="plain">...</Lism>
49
54
  ```
50
55
 
51
- ## `set--shadow`
56
+ ## `set--revert`
52
57
 
53
- `SHADOW`トークン変数(`--bxsh--{token}`)を再計算するためのクラスです。`:root` で定義される `--shc`(影の色)を特定要素で上書きしたい時に利用します。
58
+ ブラウザデフォルトの見た目を明示的に復活させるためのクラスです。
59
+ これ単体ではスタイルは持ちません(全プロパティをrevertするというようなものではない)。
60
+
61
+ 特定のHTML要素と組み合わせてスタイルを定義して使うものであり、現状は `ul` / `ol` のみ対象です。
62
+
63
+ Lism CSSでは、クラスを持つリスト(`ul` / `ol`)ではスタイルがリセットされます。
64
+ クラスを持ちつつ、箇条書き表示を維持したい場合(Property Class しか持たないリストなど)に `set--revert` を付与します。
54
65
 
55
- 使用例:
56
66
 
67
+ 使用例:
57
68
  ```html
58
- <div class="l--box set--shadow -bxsh:20" style="--shc: hsl(200 50% 50% / 20%)">...</div>
69
+ <ul class="-fz:l set--revert">
70
+ <li>item 1</li>
71
+ <li>item 2</li>
72
+ </ul>
59
73
  ```
60
74
  ```jsx
61
- <Box set="shadow" bxsh='20' style={{ '--shc': 'hsl(200 50% 50% / 20%)' }}>...</Box>
75
+ <Lism as="ul" fz="l" set="revert">
76
+ <li>item 1</li>
77
+ <li>item 2</li>
78
+ </Lism>
62
79
  ```
63
80
 
81
+ ## `set--var:bxsh`
82
+
83
+ `SHADOW` トークン変数(`--bxsh--{N}`)を再計算するためのクラスです。`:root` で定義される `--shc`(影の色)を特定要素で上書きしたい時に利用します。
84
+
85
+ 使用例:
86
+ ```html
87
+ <div class="l--box set--var:bxsh -bxsh:20" style="--shc: hsl(200 50% 50% / 20%)">...</div>
88
+ ```
89
+ ```jsx
90
+ <Box set="var:bxsh" bxsh='20' style={{ '--shc': 'hsl(200 50% 50% / 20%)' }}>...</Box>
91
+ ```
64
92
 
65
93
 
66
- ## `set--hov`
94
+ ## `set--var:hov`
67
95
 
68
96
  ホバー状態の判定変数(`--_notHov`, `--_isHov`)を次のようにセットします。主に**子要素のホバースタイルを制御する**時に活用します。
69
97
 
@@ -86,17 +114,17 @@ HTML では直接クラスを付与し、Lism コンポーネントでは `set`
86
114
  .-hov\:test {
87
115
  color: var(--_isHov, green) var(--_notHov, red); /* hover時はgreen, 非hover時はred*/
88
116
  box-shadow: var(--_isHov, var(--bxsh--30)); /* hover時はshadowをつける(非hover時は無効な値) */
89
- opacity: var(--_notHov, var(--o--n20)); /* 非hover時は不透明度を下げる(hover時は無効な値) */
117
+ opacity: var(--_notHov, var(--o---20)); /* 非hover時は不透明度を下げる(hover時は無効な値) */
90
118
  }
91
119
  ```
92
120
 
93
- さらに、親要素に`set--hov`を付与してその子要素で`--_isHov`変数と`--_notHov`変数を使うことで、親要素のhoverをトリガーとして子要素のスタイルを変化させることも可能になります。
121
+ さらに、親要素に`set--var:hov`を付与してその子要素で`--_isHov`変数と`--_notHov`変数を使うことで、親要素のhoverをトリガーとして子要素のスタイルを変化させることも可能になります。
94
122
 
95
- 例えば、親のボックスがhoverされたら、その内部の画像をズームするようなケースで活用でき、`-hov:to:zoom`クラスが標準で用意されています。
123
+ 例えば、親のボックスがhoverされたら、その内部の画像をズームするようなケースで活用でき、`-hov:in:zoom`クラスが標準で用意されています。
96
124
 
97
125
  ```html
98
- <a href="###" class="l--frame is--boxLink set--hov -ar:21/9 -ov:hidden">
99
- <img class="set--transition -hov:to:zoom" src="https://cdn.lism-css.com/img/a-2.jpg" width="960" height="640" loading="lazy" />
126
+ <a href="###" class="l--frame set--var:hov is--boxLink -ar:21/9 -ov:hidden">
127
+ <img class="has--transition -hov:in:zoom" src="https://cdn.lism-css.com/img/a-2.jpg" width="960" height="640" loading="lazy" />
100
128
  <div class="is--layer -bgc" style="--c: #fff; --bgc: rgb(0 0 0 / 50%)"></div>
101
129
  <div class="l--center is--layer -c" style="--c: #fff;">
102
130
  <span class="-fz:xl">バナーリンク</span>
@@ -105,88 +133,28 @@ HTML では直接クラスを付与し、Lism コンポーネントでは `set`
105
133
  ```
106
134
 
107
135
  ```css
108
- .-hov\:to\:zoom {
109
- --transProp: scale;
136
+ .-hov\:in\:zoom {
137
+ --transitionProps: scale;
110
138
  scale: var(--_isHov, 1.1);
111
139
  }
112
140
  ```
113
141
 
114
142
 
115
- ## `set--transition`
116
-
117
- トランジション用の CSS をセットアップします。
118
-
119
- ```scss
120
- .set--transition {
121
- transition: var(--hov-duration, 0.25s) var(--hov-ease, linear) var(--hov-delay, 0s);
122
- transition-property: var(--hov-prop, all);
123
- }
124
- ```
125
-
126
- | カスタム変数 | デフォルト |
127
- |-------------|-----------|
128
- | `--hov-prop` | `all` |
129
- | `--hov-duration` | `0.25s` |
130
- | `--hov-ease` | `linear` |
131
- | `--hov-delay` | `0s` |
132
-
133
- ```html
134
- <div class="set--transition -hov:c" style="--hov-prop: color; --hov-c: var(--red);">...</div>
135
- ```
136
- ```jsx
137
- <Lism set="transition" hov={{c: 'red'}} style={{ '--hov-prop': 'color'}}>...</Lism>
138
- ```
139
-
140
-
141
-
142
- ## `set--gutter`
143
-
144
- 要素に左右パディングを適用します。`--gutter-size` のデフォルトは `var(--s30)` です。
145
-
146
- ```scss
147
- .set--gutter {
148
- padding-inline: var(--gutter-size);
149
- }
150
- ```
151
-
152
- ```html
153
- <div class="set--gutter">...</div>
154
- ```
155
- ```jsx
156
- <Lism set="gutter">...</Lism>
157
- ```
158
-
159
-
160
- ## `set--innerRs`
143
+ ## `set--var:bdrsInner`
161
144
 
162
- 親要素の角丸(`--bdrs`)とPadding(`--p`)の値から、その内側の角丸(`--bdrs--inner`)を自動計算するためのクラスです。
163
- 親要素に`set--innerRs`をクラスをセットし、子要素では`-bdrs:inner`をセットすることで、計算された`--bdrs--inner`をセットすることができます。
145
+ 親要素の角丸(`--bdrs`)とPadding(`--p`)の値から、その内側の角丸(`--bdrs--inner`)を自動計算するためのクラスです。
146
+ 親要素に`set--var:bdrsInner`をクラスをセットし、子要素では`-bdrs:inner`をセットすることで、計算された`--bdrs--inner`をセットすることができます。
164
147
 
165
148
  (親要素では`bdrs`と`p`の指定が必須となります。)
166
149
 
167
150
  使用例:
168
- ```html "set--innerRs" "-bdrs:inner"
169
- <div class="set--innerRs -p:15 -bdrs:40 -bd">
151
+ ```html "set--var:bdrsInner" "-bdrs:inner"
152
+ <div class="set--var:bdrsInner -p:15 -bdrs:40 -bd">
170
153
  <div class="-bdrs:inner">...</div>
171
154
  </div>
172
155
  ```
173
156
  ```jsx
174
- <Lism set="innerRs" p="15" bdrs="40" bd>
157
+ <Lism set="var:bdrsInner" p="15" bdrs="40" bd>
175
158
  <Lism bdrs="inner">...</Lism>
176
159
  </Lism>
177
160
  ```
178
-
179
-
180
- ## `set--bp`
181
-
182
- ブレークポイント判定用の hack 変数をセットします。コンテナクエリで各ブレークポイントを超えた時に空変数がセットされ、CSS の空変数トリックで条件分岐に使えます。
183
- `sm`, `md`にのみ対応しています。(`--_is_sm`, `--_is_md`が定義されます。)
184
-
185
- smサイズ以上でテキストカラーを赤に変える例:
186
-
187
- ```html
188
- <div class="set--bp -p:20" style="color: var(--_is_sm) red">...</div>
189
- ```
190
- ```jsx
191
- <Lism set="bp" p="20" style={{ color: 'var(--_is_sm) red;' }}>...</Lism>
192
- ```
@@ -28,18 +28,17 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
28
28
 
29
29
  | カテゴリ | トークン値 | CSS変数パターン | 例 |
30
30
  |---|---|---|---|
31
- | 余白 (space) | `5`, `10`, `15`, `20`, `30`, `40`, `50`, `60`, `70`, `80` | `--s{n}` | `--s20` |
31
+ | 余白 (space) | `5`, `10`, `15`, `20`, `30`, `40`, `50`, `60`, `70`, `80` | `--s{N}` | `--s20` |
32
32
  | フォントサイズ (fz) | `root`, `base`, `2xs`, `xs`, `s`, `m`, `l`, `xl`, `2xl`, `3xl`, `4xl`, `5xl` | `--fz--{key}` | `--fz--l` |
33
33
  | ハーフレディング・行間 (lh/hl) | `base`, `xs`, `s`, `l` | `--hl--{key}` | `--hl--s` |
34
34
  | 字間 (lts) | `base`, `s`, `l` | `--lts--{key}` | `--lts--s` |
35
35
  | フォント (ff) | `base`, `accent`, `mono` | `--ff--{key}` | `--ff--mono` |
36
36
  | ウェイト (fw) | `light`, `normal`, `bold` | `--fw--{key}` | `--fw--bold` |
37
- | 透明度 (o) | `-10`, `-20`, `-30` | `--o--n{n}` | `--o--n10` |
37
+ | 透明度 (o) | `-10`, `-20`, `-30` | `--o--{-N}` | `--o---10` |
38
38
  | 角丸 (bdrs) | `10`, `20`, `30`, `40`, `99`, `inner` | `--bdrs--{key}` | `--bdrs--20` |
39
- | 影 (bxsh) | `10`, `20`, `30`, `40` | `--bxsh--{n}` | `--bxsh--20` |
40
- | サイズ (sz) | `xs`, `s`, `m`, `l`, `xl`, `min`, `full`, `container` | `--sz--{key}` | `--sz--l` |
39
+ | 影 (bxsh) | `10`, `20`, `30`, `40`, `50` | `--bxsh--{N}` | `--bxsh--20` |
40
+ | サイズ (sz) | `xs`, `s`, `m`, `l`, `xl`, `container` | `--sz--{key}` | `--sz--l` |
41
41
  | アスペクト比 (ar) | `og` | `--ar--{key}` | `--ar--og` |
42
- | 書字方向 (writing) | `vertical` | `--writing--{key}` | `--writing--vertical` |
43
42
  | フロー余白 (flow) | `s`, `l` | `--flow--{key}` | `--flow--s` |
44
43
  | セマンティックカラー (c) | `base`, `base-2`, `text`, `text-2`, `divider`, `link`, `brand`, `accent` | `--{name}` | `--brand` |
45
44
  | パレットカラー (palette) | `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `gray`, `white`, `black` | `--{name}` | `--red` |
@@ -135,9 +134,9 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
135
134
 
136
135
  | CSS変数 | 値 | 説明 |
137
136
  |---------|-----|------|
138
- | `--o--n10` | `0.75` | 75%の不透明度 |
139
- | `--o--n20` | `0.5` | 50%の不透明度 |
140
- | `--o--n30` | `0.25` | 25%の不透明度 |
137
+ | `--o---10` | `0.75` | 75%の不透明度 |
138
+ | `--o---20` | `0.5` | 50%の不透明度 |
139
+ | `--o---30` | `0.25` | 25%の不透明度 |
141
140
 
142
141
 
143
142
  ## 角丸 (bdrs)
@@ -154,14 +153,24 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
154
153
 
155
154
  ## 影 (bxsh)
156
155
 
157
- `--shc`(シャドウカラー: `hsl(220 4% 8% / 5%)`)と `--shsz--{n}`(シャドウサイズ)を組み合わせた複合シャドウ。使用時は `set--shadow` クラスの併用が必要(影色 `--shc` の再計算のため)。
156
+ `--shc`(シャドウカラー)と `--shsz--{N}`(シャドウサイズ)を組み合わせて構成される。要素ごとに `--shc` を上書きして再計算したい場合は、`set--var:bxsh` クラスを併用する。
158
157
 
159
- | CSS変数 | 値 | 説明 |
160
- |---------|-----|------|
161
- | `--bxsh--10` | `var(--sh--5), var(--sh--10)` | step 10 |
162
- | `--bxsh--20` | `var(--sh--10), var(--sh--20)` | step 20 |
163
- | `--bxsh--30` | `var(--sh--20), var(--sh--30)` | step 30 |
164
- | `--bxsh--40` | `var(--sh--30), var(--sh--40)` | step 40(最も濃い) |
158
+ | CSS変数 | 値 |
159
+ |---------|-----|
160
+ | `--bxsh--10` | `var(--shsz--10) var(--shc)` |
161
+ | `--bxsh--20` | `var(--shsz--20) var(--shc)` |
162
+ | `--bxsh--30` | `var(--shsz--30) var(--shc)` |
163
+ | `--bxsh--40` | `var(--shsz--40) var(--shc)` |
164
+ | `--bxsh--50` | `var(--shsz--50) var(--shc)` |
165
+
166
+ | CSS変数 | 初期値 |
167
+ |---------|-----|
168
+ | `--shc` | `hsl(220 4% 8% / 15%)` |
169
+ | `--shsz--10` | `0px 1px 3px` |
170
+ | `--shsz--20` | `0px 2px 6px` |
171
+ | `--shsz--30` | `0px 4px 12px` |
172
+ | `--shsz--40` | `0px 8px 24px` |
173
+ | `--shsz--50` | `0px 16px 48px` |
165
174
 
166
175
 
167
176
  ## カラー
@@ -0,0 +1,48 @@
1
+ # has--gutter
2
+
3
+ 要素の左右に、サイト共通の gutter(余白)を適用する Trait クラス。`padding` 系ユーティリティとは別に、「サイト全体で統一した左右余白」を確保したい時に使う。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `has--gutter`
8
+ - Lism props: `hasGutter`(`<Lism hasGutter>` 等)
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/trait/_hasGutter.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/trait-class/#has--gutter
11
+
12
+ ## SCSS 定義
13
+
14
+ ```scss
15
+ .has--gutter {
16
+ padding-inline: var(--gutter-size);
17
+ }
18
+ ```
19
+
20
+ `--gutter-size` はトークン (`:root`) で `var(--s30)` がデフォルト定義されている。
21
+
22
+ ## CSS 変数
23
+
24
+ | 変数 | 役割 | デフォルト |
25
+ |------|------|-----------|
26
+ | `--gutter-size` | 左右の padding 量 | `var(--s30)` |
27
+
28
+ 個別要素で `--gutter-size` を上書きすれば、その要素のみ gutter 量を変更できる。
29
+
30
+ ## Usage
31
+
32
+ ```html
33
+ <div class="has--gutter">
34
+ <p>Lorem ipsum content...</p>
35
+ <p>Lorem ipsum content...</p>
36
+ </div>
37
+ ```
38
+ ```jsx
39
+ <Lism hasGutter>
40
+ <p>Lorem ipsum content...</p>
41
+ <p>Lorem ipsum content...</p>
42
+ </Lism>
43
+ ```
44
+
45
+ ## 関連
46
+
47
+ - `-px:*` プロパティクラス — その要素ごとに任意の左右 padding を付けたい場合はこちら
48
+ - `is--wrapper` — コンテンツ幅制御。gutter と組み合わせてセクションラッパーを構成することが多い
@@ -0,0 +1,66 @@
1
+ # has--mask
2
+
3
+ `--maskImg` 変数と組み合わせて、要素自身にマスク画像を適用する Trait クラス。SVG を使った異形シェイプ表示などに使う。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `has--mask`
8
+ - Lism props: `hasMask`(`<Lism hasMask>` 等)
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/trait/_hasMask.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/trait-class/#has--mask
11
+
12
+ ## SCSS 定義
13
+
14
+ ```scss
15
+ .has--mask {
16
+ --maskPos: 50%;
17
+ --maskSize: contain;
18
+ --maskRepeat: no-repeat;
19
+ mask: var(--maskImg) var(--maskRepeat) var(--maskPos) / var(--maskSize);
20
+ }
21
+ ```
22
+
23
+ `--maskImg` は定義されていないため、利用側で必ず指定すること。
24
+
25
+ ## CSS 変数
26
+
27
+ | 変数 | 役割 | デフォルト |
28
+ |------|------|-----------|
29
+ | `--maskImg` | マスク画像(`url(...)` で指定。SVG data URI が多い) | **未定義(必須)** |
30
+ | `--maskPos` | マスクの位置 | `50%` |
31
+ | `--maskSize` | マスクのサイズ | `contain` |
32
+ | `--maskRepeat` | マスクの繰り返し | `no-repeat` |
33
+
34
+ ## Usage
35
+
36
+ `Frame` コンポーネント(または任意の要素)に `has--mask` を付与し、`--maskImg` に SVG の data URI をセットする。
37
+
38
+ ```html
39
+ <div
40
+ class="l--frame has--mask -ar:og"
41
+ style="--maskImg: url('data:image/svg+xml,<svg viewBox=&quot;0 0 200 200&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;><path fill=&quot;%23000000&quot; d=&quot;M170.4,25.7...Z&quot; /></svg>')"
42
+ >
43
+ <img src="..." width="960" height="640" alt="" />
44
+ </div>
45
+ ```
46
+ ```jsx
47
+ <Frame
48
+ hasMask
49
+ ar="og"
50
+ style={{
51
+ '--maskImg': `url('data:image/svg+xml,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><path fill="%23000000" d="M170.4,25.7...Z" /></svg>')`
52
+ }}
53
+ >
54
+ <img src="..." width="960" height="640" alt="" />
55
+ </Frame>
56
+ ```
57
+
58
+ ### 実装メモ
59
+
60
+ - HTML 属性内で SVG data URI を使う場合、`<` / `>` / `"` をエンティティ化する必要がある
61
+ - JSX の `style` オブジェクトで渡す場合はテンプレートリテラルでそのまま書ける
62
+ - マスクの位置や繰り返しを変えたい場合は `--maskPos` / `--maskSize` / `--maskRepeat` を個別に上書き
63
+
64
+ ## 関連
65
+
66
+ - `l--frame` — アスペクト比制御。マスク画像をフィットさせるラッパーとして併用することが多い
@@ -0,0 +1,68 @@
1
+ # has--snap
2
+
3
+ `scroll-snap-*` 系のプロパティを CSS 変数経由でセットする Trait クラス。横スクロールカルーセルなどで子要素のスナップ位置を制御したい時に使う。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `has--snap`
8
+ - Lism props: `hasSnap`(`<Lism hasSnap>` 等)
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/trait/_hasSnap.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/trait-class/#has--snap
11
+
12
+ ## SCSS 定義
13
+
14
+ ```scss
15
+ .has--snap {
16
+ --snapType: both mandatory;
17
+ --snapAlign: start;
18
+ --snapStop: normal;
19
+ scroll-snap-type: var(--snapType);
20
+
21
+ & > * {
22
+ scroll-snap-align: var(--snapAlign);
23
+ scroll-snap-stop: var(--snapStop);
24
+ }
25
+ }
26
+ ```
27
+
28
+ 自身に `scroll-snap-type` を、**直下の子要素**に `scroll-snap-align` / `scroll-snap-stop` を適用する構造。
29
+
30
+ ## CSS 変数
31
+
32
+ | 変数 | 役割 | デフォルト |
33
+ |------|------|-----------|
34
+ | `--snapType` | `scroll-snap-type` | `both mandatory` |
35
+ | `--snapAlign` | 子要素の `scroll-snap-align` | `start` |
36
+ | `--snapStop` | 子要素の `scroll-snap-stop` | `normal` |
37
+
38
+ ## Usage
39
+
40
+ `ov="auto"`(または `overflow: auto`)と一緒に使い、スクロールコンテナとして成立させる必要がある。
41
+
42
+ ```html
43
+ <div class="has--snap -ov:auto -ar:16/9 -bd">
44
+ <div class="l--frame -ar:16/9 -p:15"><img src="..." /></div>
45
+ <div class="l--frame -ar:16/9 -p:15"><img src="..." /></div>
46
+ <div class="l--frame -ar:16/9 -p:15"><img src="..." /></div>
47
+ </div>
48
+ ```
49
+ ```jsx
50
+ <Box hasSnap ov="auto" ar="16/9" bd>
51
+ <Frame ar="16/9" p="15"><img src="..." /></Frame>
52
+ <Frame ar="16/9" p="15"><img src="..." /></Frame>
53
+ <Frame ar="16/9" p="15"><img src="..." /></Frame>
54
+ </Box>
55
+ ```
56
+
57
+ ### スナップ方向を水平だけに限定する例
58
+
59
+ ```html
60
+ <div class="has--snap -ov:auto" style="--snapType: x mandatory">...</div>
61
+ ```
62
+ ```jsx
63
+ <Box hasSnap ov="auto" style={{ '--snapType': 'x mandatory' }}>...</Box>
64
+ ```
65
+
66
+ ## 関連
67
+
68
+ - `-ov:*` プロパティクラス — スクロールコンテナ化に必須
@@ -0,0 +1,73 @@
1
+ # has--transition
2
+
3
+ `transition` 系のプロパティを CSS 変数経由でセットする Trait クラス。主に `-hov:*` クラスと組み合わせて、ホバー時のスムーズな変化に使う。
4
+
5
+ ## 基本情報
6
+
7
+ - クラス名: `has--transition`
8
+ - Lism props: `hasTransition`(`<Lism hasTransition>` / `<Box hasTransition>` 等)
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/trait/_hasTransition.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/trait-class/#has--transition
11
+
12
+ ## SCSS 定義
13
+
14
+ ```scss
15
+ .has--transition {
16
+ --duration: var(--transition-duration, 0.25s);
17
+ --ease: ease;
18
+ --delay: 0s;
19
+ --transitionProps: all;
20
+ transition: var(--duration) var(--ease) var(--delay);
21
+ transition-property: var(--transitionProps);
22
+ }
23
+ ```
24
+
25
+ ## CSS 変数
26
+
27
+ | 変数 | 役割 | デフォルト |
28
+ |------|------|-----------|
29
+ | `--transitionProps` | transition 対象プロパティ | `all` |
30
+ | `--duration` | トランジションの長さ | `var(--transition-duration, 0.25s)` |
31
+ | `--ease` | イージング関数 | `ease` |
32
+ | `--delay` | ディレイ | `0s` |
33
+ | `--transition-duration` | 全体のデフォルト duration を `:root` などから上書きするためのグローバル変数 | `0.25s` |
34
+
35
+ ## Usage
36
+
37
+ ### 基本:`-hov:*` と組み合わせる
38
+
39
+ ```html
40
+ <div class="has--transition -hov:-c" style="--transitionProps: color; --hov-c: var(--red);">Example</div>
41
+ ```
42
+ ```jsx
43
+ <Lism hasTransition hov={{c: 'red'}} style={{ '--transitionProps': 'color'}}>Example</Lism>
44
+ ```
45
+
46
+ ### `duration` を個別に上書き
47
+
48
+ ```html
49
+ <a class="is--boxLink has--transition -hov:-bdc -bd -p:20" style="--hov-bdc: var(--red); --duration: 0.5s">
50
+ ...
51
+ </a>
52
+ ```
53
+ ```jsx
54
+ <BoxLink href="###" hasTransition hov={{ bdc: 'red' }} bd p="20" style={{ '--duration': '.5s' }}>
55
+ ...
56
+ </BoxLink>
57
+ ```
58
+
59
+ ### `box-shadow` を変化させる例
60
+
61
+ ```html
62
+ <a href="###" class="is--boxLink has--transition -bxsh:10 -hov:-bxsh -bd -p:20" style="--hov-bxsh: var(--bxsh--40)">
63
+ ...
64
+ </a>
65
+ ```
66
+ ```jsx
67
+ <BoxLink href="###" hasTransition bxsh="10" hov={{ bxsh: '40' }} bd p="20">...</BoxLink>
68
+ ```
69
+
70
+ ## 関連
71
+
72
+ - [`-hov:*` プロパティクラス](../property-class.md) — ホバー時の変化を定義
73
+ - [`set--var:hov`](../set-class.md#set--varhov) — 親のホバー状態を子要素に伝播させる仕組み
@@ -6,8 +6,8 @@
6
6
 
7
7
  - クラス名: `is--boxLink`
8
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/
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/trait/_boxLink.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/trait-class/is--boxLink/
11
11
 
12
12
  ## 専用Props
13
13
 
@@ -26,7 +26,7 @@ BoxLink には主に2通りの使い方があります。
26
26
  `href` を指定すると `<BoxLink>` 自体が `<a>` タグとして出力されます。シンプルなカード全体リンクに最適。
27
27
 
28
28
  ```jsx
29
- <BoxLink href="/article/1" p="30" bgc="base" bd bdrs="30" hov="o">
29
+ <BoxLink href="/article/1" p="30" bgc="base" bd bdrs="30" hov="-o">
30
30
  <Group fz="xl" fw="bold">Heading text</Group>
31
31
  <Text lh="s" my-s="15">記事の抜粋テキスト...</Text>
32
32
  <Group fz="s" c="text-2" ta="right" lh="1" my-s="10">
@@ -36,7 +36,7 @@ BoxLink には主に2通りの使い方があります。
36
36
  ```
37
37
 
38
38
  ```html
39
- <a class="is--boxLink -hov:o -p:30 -bgc:base -bd -bdrs:30" href="/article/1">
39
+ <a class="is--boxLink -hov:-o -p:30 -bgc:base -bd -bdrs:30" href="/article/1">
40
40
  <p class="-fz:xl -fw:bold">Heading text</p>
41
41
  <p class="-c:text-2 -lh:s -my-s:15">記事の抜粋テキスト...</p>
42
42
  <p class="-fz:s -c:text-2 -ta:right -lh:1 -my-s:10">MORE →</p>
@@ -48,7 +48,7 @@ BoxLink には主に2通りの使い方があります。
48
48
  `<BoxLink>` は `<div>` にしたまま、内部のアンカー要素に `is--coverLink` クラスを付けてボックス全体をクリック可能にします。**BoxLink 内部にさらに別のリンクを配置したい場合はこちらを選ぶこと**。
49
49
 
50
50
  ```jsx
51
- <BoxLink as="section" p="30" bgc="base" bd bdrs="30" set="transition" hov="bxsh">
51
+ <BoxLink as="section" p="30" bgc="base" bd bdrs="30" hasTransition hov="-bxsh">
52
52
  <Group fz="xl" fw="bold">
53
53
  <Link isCoverLink href="/article/1">
54
54
  Heading link text
@@ -56,19 +56,19 @@ BoxLink には主に2通りの使い方があります。
56
56
  </Group>
57
57
  <Text c="text-2" lh="s" my-s="15">記事の抜粋テキスト...</Text>
58
58
  <Group my-s="10">
59
- <a href="/tag/foo" className="-hov:o">Inner Link</a>
59
+ <a href="/tag/foo" className="-hov:-o">Inner Link</a>
60
60
  </Group>
61
61
  </BoxLink>
62
62
  ```
63
63
 
64
64
  ```html
65
- <div class="is--boxLink -hov:bxsh -p:30 -bgc:base -bd -bdrs:30 set--transition">
65
+ <div class="is--boxLink -hov:-bxsh -p:30 -bgc:base -bd -bdrs:30 has--transition">
66
66
  <div class="-fz:xl -fw:bold">
67
67
  <a class="is--coverLink" href="/article/1">Heading link text</a>
68
68
  </div>
69
69
  <p class="-c:text-2 -lh:s -my-s:15">記事の抜粋テキスト...</p>
70
70
  <div class="-my-s:10">
71
- <a href="/tag/foo" class="-hov:o">Inner Link</a>
71
+ <a href="/tag/foo" class="-hov:-o">Inner Link</a>
72
72
  </div>
73
73
  </div>
74
74
  ```
@@ -6,8 +6,8 @@
6
6
 
7
7
  - クラス名: `is--container`
8
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/
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/trait/_container.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/trait-class/is--container/
11
11
 
12
12
  ## 使い方
13
13
 
@@ -6,8 +6,8 @@
6
6
 
7
7
  - クラス名: `is--layer`
8
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/
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/trait/_layer.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/trait-class/is--layer/
11
11
 
12
12
  ## 使い方
13
13
 
@@ -6,8 +6,8 @@
6
6
 
7
7
  - クラス名: `is--wrapper`
8
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/
9
+ - SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/trait/_wrapper.scss
10
+ - ドキュメント(人間向け): https://lism-css.com/docs/trait-class/is--wrapper/
11
11
 
12
12
  ## 使い方
13
13