@lism-css/mcp 0.20.0 → 0.23.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.
@@ -1,6 +1,6 @@
1
1
  # -hov(ホバー)
2
2
 
3
- hover 時の挙動を制御する Property Class。`:hover` 擬似クラスで動作する系と、親の `set--var:hov` に連動する系の 2 系統に分かれる。
3
+ hover 時の挙動を制御する Property Class。`:hover` 擬似クラスで動作する系と、親の `set--hov` に連動する系の 2 系統に分かれる。
4
4
 
5
5
  ## 基本情報
6
6
 
@@ -15,10 +15,10 @@ hover 時の挙動を制御する Property Class。`:hover` 擬似クラスで
15
15
  |------|------|
16
16
  | `-hov:-{prop}` | `--hov-{prop}` 変数を受け取り、hover 時に該当プロパティを変化させる |
17
17
  | `-hov:{preset}` | hover 時のスタイルセットをプリセット名でまとめて適用する |
18
- | `-hov:in:{preset}` | 親要素の `set--var:hov` を起点に、子要素のスタイルを変化させる |
18
+ | `-hov:in:{preset}` | 親要素の `set--hov` を起点に、子要素のスタイルを変化させる |
19
19
 
20
20
  `-hov:-{prop}` と `-hov:{preset}` は `@media (any-hover: hover)` 内で定義されるため、タッチデバイスでは無効。
21
- `-hov:in:*` はメディアクエリ外で、親の `set--var:hov` がセットする `--_isHov` / `--_notHov` 変数で動作する。
21
+ `-hov:in:*` はメディアクエリ外で、親の `set--hov` がセットする `--_isHov` / `--_notHov` 変数で動作する。
22
22
 
23
23
  トランジションを付けたい場合は [`has--transition`](../trait-class/has--transition.md) クラスを併用する。
24
24
 
@@ -70,7 +70,7 @@ hover 時のスタイルセットをプリセット名でまとめて適用す
70
70
 
71
71
  ## `-hov:in:{preset}` — 親連動
72
72
 
73
- 親要素に `set--var:hov` を付けると、`--_isHov` / `--_notHov` 変数が hover 状態に応じて切り替わる。`-hov:in:*` はこの変数を参照する仕組み。
73
+ 親要素に `set--hov` を付けると、`--_isHov` / `--_notHov` 変数が hover 状態に応じて切り替わる。`-hov:in:*` はこの変数を参照する仕組み。
74
74
 
75
75
  | クラス | 効果 | 仕組み |
76
76
  |--------|------|--------|
@@ -79,7 +79,7 @@ hover 時のスタイルセットをプリセット名でまとめて適用す
79
79
  | `-hov:in:zoom` | 親 hover 時にズーム | `scale: var(--_isHov, 1.1)` |
80
80
 
81
81
  ```jsx
82
- <Frame set="var:hov" isBoxLink href="#" ar="16/9">
82
+ <Frame set="hov" isBoxLink href="#" ar="16/9">
83
83
  <Media isLayer hasTransition hov="in:zoom" src="..." />
84
84
  <Layer hasTransition hov="in:show" bgc="rgb(0 0 0 / 40%)">...</Layer>
85
85
  </Frame>
@@ -139,5 +139,5 @@ hover 時のスタイルセットをプリセット名でまとめて適用す
139
139
  ## 関連
140
140
 
141
141
  - [`has--transition`](../trait-class/has--transition.md) — hover 時の変化にトランジションを付ける
142
- - [`set--var:hov`](../set-class.md#set--varhov) — 親の hover 状態を子要素に伝播させる仕組み
143
- - [`set--var:bxsh`](../set-class.md) — `-hov:-bxsh` と組み合わせる場合の影色再計算
142
+ - [`set--hov`](../set-class.md#set--hov) — 親の hover 状態を子要素に伝播させる仕組み
143
+ - [`set--bxsh`](../set-class.md) — `-hov:-bxsh` と組み合わせる場合の影色再計算
@@ -33,8 +33,8 @@
33
33
 
34
34
  :where(.has--gutter) > & {
35
35
  inline-size: auto;
36
- max-inline-size: calc(100% + var(--gutter-size) * 2);
37
- margin-inline: calc(var(--gutter-size) * -1);
36
+ max-inline-size: calc(100% + var(--gutter) * 2);
37
+ margin-inline: calc(var(--gutter) * -1);
38
38
  }
39
39
  }
40
40
  ```
@@ -65,7 +65,7 @@ Lism コンポーネントの Propsに渡す値の頭に `:` を付けると、
65
65
  | **Prop** | クラス名に使う省略名(例: `-fz:l` の `fz` 部分)。Lism コンポーネントの Props 名でもある |
66
66
  | **CSS プロパティ** | 実際に制御される CSS プロパティ |
67
67
  | **プリセット値クラス** | そのまま使えるクラス名の一覧(`-{prop}:{value}` 形式)。`—` はカスタム値のみ対応 |
68
- | **BP** | ブレークポイント対応クラス(`-{prop}_{bp}` 形式)のサポート状況。`✔` は `sm`・`md`、`✔ lg` `lg` まで対応、`—` は非対応 |
68
+ | **BP** | ブレークポイント対応クラス(`-{prop}_{bp}` 形式)のサポート状況。`✔` は `sm`・`md`・`lg` に対応、`—` は非対応 |
69
69
 
70
70
 
71
71
  ## 全 Prop 一覧
@@ -77,24 +77,24 @@ Lism コンポーネントの Propsに渡す値の頭に `:` を付けると、
77
77
  | Prop | CSS プロパティ | プリセット値クラス | BP |
78
78
  |------|--------------|-------------|-----|
79
79
  | `f` | `font` | `-f:inherit` | — |
80
- | `fz` | `font-size` | `-fz:root`, `-fz:base`, `-fz:5xl`〜`-fz:2xs` | ✔ |
80
+ | `fz` | `font-size` | `-fz:base`, `-fz:5xl`〜`-fz:2xs` | ✔ |
81
81
  | `fw` | `font-weight` | `-fw:light`, `-fw:normal`, `-fw:bold`, `-fw:100`〜`-fw:900` | — |
82
82
  | `ff` | `font-family` | `-ff:base`, `-ff:accent`, `-ff:mono` | — |
83
83
  | `fs` | `font-style` | `-fs:italic` | — |
84
- | `lh` | `line-height`(`--hl` 経由) | `-lh:base`, `-lh:xs`, `-lh:s`, `-lh:l`, `-lh:1` | |
85
- | `hl` | `--hl` 変数のみ | | — |
84
+ | `hl` | `--hl`(ハーフレディング) | `-hl:base`, `-hl:xs`, `-hl:s`, `-hl:l`, `-hl:0` | |
85
+ | `lh` | `line-height`(`--hl` 経由・互換) | `-lh:base`, `-lh:xs`, `-lh:s`, `-lh:l`, `-lh:1` | — |
86
86
  | `lts` | `letter-spacing` | `-lts:base`, `-lts:s`, `-lts:l`, `-lts:xl` | — |
87
87
  | `ta` | `text-align` | `-ta:center`, `-ta:left`, `-ta:right` | — |
88
88
  | `td` | `text-decoration` | `-td:none` | — |
89
89
  | `tt` | `text-transform` | `-tt:upper`, `-tt:lower` | — |
90
90
 
91
- **注意:** `lh` `--hl`(half-leading)変数を介して `line-height: calc(1em + var(--hl) * 2)` を制御します。`hl` は `--hl` 変数を直接セットするだけの isVar タイプです。
91
+ **注意:** Lism はハーフレディングで `line-height` を管理します(`line-height: calc(1em + var(--hl) * 2)`)。正規のプロパティは `hl` で、`--hl` にトークン値をセットします(`hl="0"` でハーフレディングなし、BP 指定可)。`lh` は互換ショートカットで、トークン値・`1` は `--hl` を制御し、`lh="1.7"` のような任意値はそのまま CSS `line-height` を出力します。新規コードでは `hl` を推奨します。
92
92
 
93
93
  ### 表示・可視性
94
94
 
95
95
  | Prop | CSS プロパティ | プリセット値クラス | BP |
96
96
  |------|--------------|-------------|-----|
97
- | `d` | `display` | `-d:none`, `-d:block`, `-d:flex`, `-d:inline-flex`, `-d:grid`, `-d:inline-grid`, `-d:inline`, `-d:inline-block` | ✔ lg |
97
+ | `d` | `display` | `-d:none`, `-d:block`, `-d:flex`, `-d:inline-flex`, `-d:grid`, `-d:inline-grid`, `-d:inline`, `-d:inline-block` | ✔ |
98
98
  | `o` | `opacity` | `-o:0`, `-o:mp`, `-o:p`, `-o:pp`, `-o:ppp` | — |
99
99
  | `v` | `visibility` | `-v:hidden` | — |
100
100
  | `ov` | `overflow` | `-ov:hidden`, `-ov:auto`, `-ov:clip` | — |
@@ -118,6 +118,7 @@ Lism コンポーネントの Propsに渡す値の頭に `:` を付けると、
118
118
  | `bsz` | `block-size` | — | — |
119
119
  | `min-bsz` | `min-block-size` | — | — |
120
120
  | `max-bsz` | `max-block-size` | — | — |
121
+ | `contentSize` | `--contentSize` 変数のみ | `-contentSize:s`, `-contentSize:m`, `-contentSize:l`, `-contentSize:xl` | — |
121
122
 
122
123
  **`max-sz` の特殊クラス:**
123
124
  - `-max-sz:full` — `has--gutter` 内では gutter 分を含めた全幅に拡張
@@ -125,6 +126,10 @@ Lism コンポーネントの Propsに渡す値の頭に `:` を付けると、
125
126
 
126
127
  → 詳細は [property-class/max-sz.md](./property-class/max-sz.md) 参照
127
128
 
129
+ **`contentSize` について:**
130
+ `--contentSize` 変数をセットする isVar タイプの Prop です。`is--wrapper` と組み合わせるとコンテンツ幅の上限となり、`set--bleed` と組み合わせると `--bleed` の計算基準値として使われます。
131
+ プリセット値(`s`, `m`, `l`, `xl`)は `-contentSize:{value}` クラスを出力し、それ以外の任意値は `--contentSize: {value}` をスタイル属性として出力します。
132
+
128
133
  ### 背景
129
134
 
130
135
  | Prop | CSS プロパティ | プリセット値クラス | BP |
@@ -167,13 +172,13 @@ Lism コンポーネントの Propsに渡す値の頭に `:` を付けると、
167
172
  |------|--------------|-------------|-----|
168
173
  | `bxsh` | `box-shadow` | `-bxsh:0`, `-bxsh:10`, `-bxsh:20`, `-bxsh:30`, `-bxsh:40`, `-bxsh:50` | ✔ |
169
174
 
170
- **補足:** 影色(`--shc`)を要素内で上書きして再計算させたい場合は、`set--var:bxsh` クラスを併用する。
175
+ **補足:** 影色(`--shc`)を要素内で上書きして再計算させたい場合は、`set--bxsh` クラスを併用する。
171
176
 
172
177
  ### ポジション
173
178
 
174
179
  | Prop | CSS プロパティ | プリセット値クラス | BP |
175
180
  |------|--------------|-------------|-----|
176
- | `pos` | `position` | `-pos:static`, `-pos:fixed`, `-pos:sticky`, `-pos:relative`, `-pos:absolute` | |
181
+ | `pos` | `position` | `-pos:static`, `-pos:fixed`, `-pos:sticky`, `-pos:relative`, `-pos:absolute` | |
177
182
  | `z` | `z-index` | `-z:-1`, `-z:0`, `-z:1`, `-z:99` | — |
178
183
  | `t` | `top` | `-t:0`, `-t:50%`, `-t:100%` | — |
179
184
  | `l` | `left` | `-l:0`, `-l:50%`, `-l:100%` | — |
@@ -225,7 +230,7 @@ SPACEトークン(全値): `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `5
225
230
 
226
231
  | Prop | CSS プロパティ | プリセット値クラス | BP |
227
232
  |------|--------------|-------------|-----|
228
- | `g` | `gap` | `-g:0`, `-g:inherit`, `-g:5`, `-g:10`, `-g:20`, ... (SPACEトークン) | ✔ lg |
233
+ | `g` | `gap` | `-g:0`, `-g:inherit`, `-g:5`, `-g:10`, `-g:20`, ... (SPACEトークン) | ✔ |
229
234
  | `cg` | `column-gap` | — | — |
230
235
  | `rg` | `row-gap` | — | — |
231
236
 
@@ -246,22 +251,22 @@ SPACEトークン(全値): `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `5
246
251
  | Prop | CSS プロパティ | プリセット値クラス | BP |
247
252
  |------|--------------|-------------|-----|
248
253
  | `gt` | `grid-template` | — | ✔ |
249
- | `gta` | `grid-template-areas` | — | ✔ lg |
250
- | `gtc` | `grid-template-columns` | `-gtc:subgrid` | ✔ lg |
251
- | `gtr` | `grid-template-rows` | `-gtr:subgrid` | ✔ lg |
254
+ | `gta` | `grid-template-areas` | — | ✔ |
255
+ | `gtc` | `grid-template-columns` | `-gtc:subgrid` | ✔ |
256
+ | `gtr` | `grid-template-rows` | `-gtr:subgrid` | ✔ |
252
257
  | `gaf` | `grid-auto-flow` | `-gaf:row`, `-gaf:column` | ✔ |
253
258
  | `gac` | `grid-auto-columns` | — | — |
254
259
  | `gar` | `grid-auto-rows` | — | — |
255
- | `cols` | `--cols` 変数 | — | ✔ lg |
260
+ | `cols` | `--cols` 変数 | — | ✔ |
256
261
  | `rows` | `--rows` 変数 | — | ✔ |
257
262
 
258
263
  ### Grid アイテム
259
264
 
260
265
  | Prop | CSS プロパティ | プリセット値クラス | BP |
261
266
  |------|--------------|-------------|-----|
262
- | `ga` | `grid-area` | `-ga:1/1` | ✔ lg |
263
- | `gc` | `grid-column` | `-gc:1/-1` | ✔ lg |
264
- | `gr` | `grid-row` | `-gr:1/-1` | ✔ lg |
267
+ | `ga` | `grid-area` | `-ga:1/1` | ✔ |
268
+ | `gc` | `grid-column` | `-gc:1/-1` | ✔ |
269
+ | `gr` | `grid-row` | `-gr:1/-1` | ✔ |
265
270
  | `gcs` | `grid-column-start` | — | — |
266
271
  | `gce` | `grid-column-end` | — | — |
267
272
  | `grs` | `grid-row-start` | — | — |
@@ -280,7 +285,7 @@ SPACEトークン(全値): `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `5
280
285
  | `aslf` | `align-self` | `-aslf:start`, `-aslf:center`, `-aslf:end`, `-aslf:stretch` | — |
281
286
  | `jslf` | `justify-self` | `-jslf:start`, `-jslf:center`, `-jslf:end`, `-jslf:stretch` | — |
282
287
  | `pslf` | `place-self` | `-pslf:start`, `-pslf:center`, `-pslf:end` | — |
283
- | `order` | `order` | `-order:0`, `-order:-1`, `-order:1` | |
288
+ | `order` | `order` | `-order:0`, `-order:-1`, `-order:1` | |
284
289
 
285
290
  **コンポーネント用ショートハンド:** `ai`, `ac`, `ji`, `jc`, `aslf`, `jslf` では `s`→`start`, `e`→`end`, `c`→`center`, `fs`→`flex-start`, `fe`→`flex-end` のショートハンドが使えます。
286
291
 
@@ -309,7 +314,7 @@ Lism CSS のボーダーは CSS 変数(`--bds` / `--bdw` / `--bdc`)で管理
309
314
  |------|------|---------|
310
315
  | `-hov:-{prop}` | `--hov-{prop}` 変数で hover 時の値を変化させる | `:hover`(`@media (any-hover: hover)` 内) |
311
316
  | `-hov:{preset}` | hover 時のスタイルをプリセットで適用 | `:hover`(同上) |
312
- | `-hov:in:{preset}` | 親の `set--var:hov` を起点に子のスタイルを変化させる | 親に `set--var:hov` が必要 |
317
+ | `-hov:in:{preset}` | 親の `set--hov` を起点に子のスタイルを変化させる | 親に `set--hov` が必要 |
313
318
 
314
319
  **標準クラス:** `-hov:-c`, `-hov:-bgc`, `-hov:-bdc`, `-hov:-o`, `-hov:-bxsh`, `-hov:underline`, `-hov:in:hide`, `-hov:in:show`, `-hov:in:zoom`
315
320
 
@@ -19,16 +19,35 @@ Lism CSS は**コンテナクエリ**をデフォルトで採用しています
19
19
  ```
20
20
  Smartphone ──┬── Tablet (Portrait) ──┬── Tablet (Landscape) ──┬── Laptop and up
21
21
  │ │ │
22
- sm:480px md:800px (lg:1120px)
22
+ sm:480px md:800px lg:1120px
23
23
  ```
24
24
 
25
25
  | BP | 値 | 効くタイミング |
26
26
  |----|-----|----------------|
27
+ | `xs` | 0(無効) | (opt-in) |
27
28
  | `sm` | 480px | sm 以上 |
28
29
  | `md` | 800px | md 以上 |
29
- | (`lg`) | 1120px | lg 以上 |
30
+ | `lg` | 1120px | lg 以上 |
31
+ | `xl` | 0(無効) | (opt-in) |
30
32
 
31
- **レスポンシブ対応の Property Class は、基本的に標準では `sm` / `md` まで対応。** ただし `d`(display)/ `g`(gap)/ `cols` / グリッド系(`gta` `gtc` `gtr` `ga` `gc` `gr`)など、大枠のレイアウト構造に関わる一部のプロパティは `lg` まで対応。それ以外のプロパティで `lg` 以降を使う場合は customize.md 参照の SCSS カスタマイズが必要です。
33
+ **レスポンシブ対応の Property Class は、標準で `sm` / `md` / `lg` のすべてに対応。** どの Prop がレスポンシブ対応かは property-class.md BP 列を参照。レスポンシブ非対応の Prop でブレイクポイント指定を使う場合は customize.md 参照の SCSS カスタマイズが必要です。
34
+
35
+ **`xs` / `xl` は opt-in**:
36
+ - デフォルト値は `0`(無効)で、CSS は出力されません。`lism.config.js` の `breakpoints` でサイズを与えると有効化されます(customize.md 参照)。
37
+ - 型(Lism コンポーネント)でも `sm` / `md` / `lg` のみがデフォルトで補完・許可されます。`xs` / `xl` を使う場合は `declare module 'lism-css'` で `BreakpointRegistry` を拡張して解禁します。
38
+
39
+ ```ts
40
+ // src/lism.d.ts など
41
+ import 'lism-css';
42
+ declare module 'lism-css' {
43
+ interface BreakpointRegistry {
44
+ xl: true; // 配列の 5 要素目 [..., xl] と { xl: ... } を解禁
45
+ xs: true; // { xs: ... } を解禁(xs は配列記法では書けない)
46
+ }
47
+ }
48
+ ```
49
+
50
+ - `xs` は配列記法では書けません(配列のインデックス → BP の対応が `[base, sm, md, lg, xl]` で固定のため)。オブジェクト記法(`{ xs: ... }`)でのみ指定します。`xl` は配列記法・オブジェクト記法の両方で利用できます。
32
51
 
33
52
  例: `-d:none -d_sm:block` → デフォルト非表示、`sm` 以上で表示。
34
53
 
@@ -99,10 +118,10 @@ Smartphone ──┬── Tablet (Portrait) ──┬── Tablet (Landscape)
99
118
  配列形式またはオブジェクト形式でレスポンシブ値を指定します。
100
119
 
101
120
  ```jsx
102
- // 配列形式: [デフォルト, sm, md]
121
+ // 配列形式: 位置は [base, sm, md, lg, xl] で固定(xs は配列記法では書けない)
103
122
  <Box p={[20, 30, 40]} fz={['s', 'm', 'l']} />
104
123
 
105
- // オブジェクト形式
124
+ // オブジェクト形式(xs を使う場合はこちら)
106
125
  <Box p={{ base: '20', sm: '30', md: '40' }} />
107
126
  ```
108
127
 
@@ -1,7 +1,7 @@
1
1
  # `set--` クラス
2
2
 
3
3
  `@layer lism-base` に属し、HTML 要素の基礎スタイリングまたは CSS 変数のセットアップだけを行うクラス群です。
4
- HTML では直接クラスを付与し、Lism コンポーネントでは `set` prop(`set="plain"`, `set="revert"`, `set="var:bxsh"` 等)で指定します。
4
+ HTML では直接クラスを付与し、Lism コンポーネントでは `set` prop(`set="plain"`, `set="revert"`, `set="bxsh"` 等)で指定します。
5
5
 
6
6
  `set` prop の記法(複数値指定・`-` prefix による除外)は [components-core.md](./components-core.md#共通-props) を参照してください。
7
7
 
@@ -10,18 +10,19 @@ set-- は目的別に 2 カテゴリに分かれます。
10
10
  | カテゴリ | 用途 | クラス |
11
11
  |---------|------|--------|
12
12
  | 基礎スタイリング | HTML 要素のリセット/リバート | `set--plain` / `set--revert` |
13
- | 変数のセット | CSS 変数のセットアップのみを行う | `set--var:bxsh` / `set--var:hov` / `set--var:bdrsInner` / `set--var:s` |
13
+ | 変数のセット | CSS 変数のセットアップのみを行う | `set--bxsh` / `set--hov` / `set--bdrsInner` / `set--bleed` / `set--s` |
14
14
 
15
- `set--var:{name}` の `{name}` は、そのクラスがセットアップする CSS 変数の名称に対応します(例: `--bxsh--*` → `var:bxsh`、`--_isHov` / `--_notHov` → `var:hov`、`--bdrs--inner` → `var:bdrsInner`、`--s*` → `var:s`)。
15
+ `set--{name}` の `{name}` は、そのクラスがセットアップする CSS 変数の名称に対応します(例: `--bxsh--*` → `bxsh`、`--_isHov` / `--_notHov` → `hov`、`--bdrs--inner` → `bdrsInner`、`--s*` → `s`)。
16
16
 
17
17
  ## TOC
18
18
 
19
19
  - [`set--plain`](#set--plain)
20
20
  - [`set--revert`](#set--revert)
21
- - [`set--var:bxsh`](#set--varbxsh)
22
- - [`set--var:hov`](#set--varhov)
23
- - [`set--var:bdrsInner`](#set--varbdrsinner)
24
- - [`set--var:s`](#set--vars)
21
+ - [`set--bxsh`](#set--bxsh)
22
+ - [`set--hov`](#set--hov)
23
+ - [`set--bdrsInner`](#set--bdrsinner)
24
+ - [`set--bleed`](#set--bleed)
25
+ - [`set--s`](#set--s)
25
26
 
26
27
  [詳細](https://lism-css.com/docs/set-class.md)
27
28
 
@@ -35,10 +36,11 @@ set-- は目的別に 2 カテゴリに分かれます。
35
36
  |--------|---------------|
36
37
  | `set--plain` | [`_plain.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_plain.scss) |
37
38
  | `set--revert` | [`_revert.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_revert.scss) |
38
- | `set--var:bxsh` | [`_shadow.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_shadow.scss) |
39
- | `set--var:hov` | [`_hov.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_hov.scss) |
40
- | `set--var:bdrsInner` | [`_bdrsInner.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_bdrsInner.scss) |
41
- | `set--var:s` | [`_space.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_space.scss) |
39
+ | `set--bxsh` | [`_tokens.gen.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_tokens.gen.scss) |
40
+ | `set--hov` | [`_hov.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_hov.scss) |
41
+ | `set--bdrsInner` | [`_bdrsInner.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_bdrsInner.scss) |
42
+ | `set--bleed` | [`_bleed.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_bleed.scss) |
43
+ | `set--s` | [`_tokens.gen.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_tokens.gen.scss) |
42
44
 
43
45
  ---
44
46
 
@@ -80,24 +82,24 @@ Lism CSSでは、クラスを持つリスト(`ul` / `ol`)ではスタイル
80
82
  </Lism>
81
83
  ```
82
84
 
83
- ## `set--var:bxsh`
85
+ ## `set--bxsh`
84
86
 
85
87
  `SHADOW` トークン変数(`--bxsh--{N}`)を再計算するためのクラスです。`:root` で定義される `--shc`(影の色)を特定要素で上書きしたい時に利用します。
86
88
 
87
89
  使用例:
88
90
  ```html
89
- <div class="l--box set--var:bxsh -bxsh:20" style="--shc: hsl(200 50% 50% / 20%)">...</div>
91
+ <div class="l--box set--bxsh -bxsh:20" style="--shc: hsl(200 50% 50% / 20%)">...</div>
90
92
  ```
91
93
  ```jsx
92
- <Box set="var:bxsh" bxsh='20' style={{ '--shc': 'hsl(200 50% 50% / 20%)' }}>...</Box>
94
+ <Box set="bxsh" bxsh='20' style={{ '--shc': 'hsl(200 50% 50% / 20%)' }}>...</Box>
93
95
  ```
94
96
 
95
97
 
96
- ## `set--var:hov`
98
+ ## `set--hov`
97
99
 
98
100
  ホバー状態の判定変数(`--_notHov`, `--_isHov`)を次のようにセットします。主に**子要素のホバースタイルを制御する**時に活用します。
99
101
 
100
- - `--_isHov`は非hover時(かつ非focus-within時)にのみ空白定義さます。
102
+ - `--_isHov`は非hover時(かつ非focus-within時)にのみ空白定義さます。
101
103
  - `--_notHov`は逆に、hover時またはfocus-within時に空白定義されます。
102
104
 
103
105
  この空変数トリックにより、次のような書き方ができます。
@@ -120,12 +122,12 @@ Lism CSSでは、クラスを持つリスト(`ul` / `ol`)ではスタイル
120
122
  }
121
123
  ```
122
124
 
123
- さらに、親要素に`set--var:hov`を付与してその子要素で`--_isHov`変数と`--_notHov`変数を使うことで、親要素のhoverをトリガーとして子要素のスタイルを変化させることも可能になります。
125
+ さらに、親要素に`set--hov`を付与してその子要素で`--_isHov`変数と`--_notHov`変数を使うことで、親要素のhoverをトリガーとして子要素のスタイルを変化させることも可能になります。
124
126
 
125
127
  例えば、親のボックスがhoverされたら、その内部の画像をズームするようなケースで活用でき、`-hov:in:zoom`クラスが標準で用意されています。
126
128
 
127
129
  ```html
128
- <a href="###" class="l--frame set--var:hov is--boxLink -ar:21/9 -ov:hidden">
130
+ <a href="###" class="l--frame set--hov is--boxLink -ar:21/9 -ov:hidden">
129
131
  <img class="has--transition -hov:in:zoom" src="https://cdn.lism-css.com/img/a-2.jpg" width="960" height="640" loading="lazy" />
130
132
  <div class="is--layer -bgc" style="--c: #fff; --bgc: rgb(0 0 0 / 50%)"></div>
131
133
  <div class="l--center is--layer -c" style="--c: #fff;">
@@ -142,38 +144,73 @@ Lism CSSでは、クラスを持つリスト(`ul` / `ol`)ではスタイル
142
144
  ```
143
145
 
144
146
 
145
- ## `set--var:bdrsInner`
147
+ ## `set--bdrsInner`
146
148
 
147
149
  親要素の角丸(`--bdrs`)とPadding(`--p`)の値から、その内側の角丸(`--bdrs--inner`)を自動計算するためのクラスです。
148
- 親要素に`set--var:bdrsInner`をクラスをセットし、子要素では`-bdrs:inner`をセットすることで、計算された`--bdrs--inner`をセットすることができます。
150
+ 親要素に`set--bdrsInner`をクラスをセットし、子要素では`-bdrs:inner`をセットすることで、計算された`--bdrs--inner`をセットすることができます。
149
151
 
150
152
  (親要素では`bdrs`と`p`の指定が必須となります。)
151
153
 
152
154
  使用例:
153
- ```html "set--var:bdrsInner" "-bdrs:inner"
154
- <div class="set--var:bdrsInner -p:15 -bdrs:40 -bd">
155
+ ```html "set--bdrsInner" "-bdrs:inner"
156
+ <div class="set--bdrsInner -p:15 -bdrs:40 -bd">
155
157
  <div class="-bdrs:inner">...</div>
156
158
  </div>
157
159
  ```
158
160
  ```jsx
159
- <Lism set="var:bdrsInner" p="15" bdrs="40" bd>
161
+ <Lism set="bdrsInner" p="15" bdrs="40" bd>
160
162
  <Lism bdrs="inner">...</Lism>
161
163
  </Lism>
162
164
  ```
163
165
 
164
166
 
165
- ## `set--var:s`
167
+ ## `set--bleed`
168
+
169
+ 片側ブリードレイアウトを組むのに便利な `--bleed` 変数を生成するクラスです。コンテンツ幅(`--contentSize`)の外側の余白量がセットされます。ただし、ガター幅(`--gutter` / `--gutter--base`)を下限とし、これより狭くなる場合はガター幅を返します。
170
+
171
+ `--contentSize` が未指定の場合は `--sz--m` を基準値として使用します。
172
+
173
+ `padding-inline: var(--bleed)` を子要素に当てれば、その要素だけコンテンツ幅の外側ガターまで広げられるため、画像とテキストを並べた片側ブリードの 2 カラムなどに活用できます。
174
+
175
+ 使用例(`Columns` の片側だけブリードさせる):
176
+ ```html
177
+ <div class="is--container">
178
+ <div class="l--columns set--bleed -contentSize:s -cols_sm -g:0 -g_sm -ai:center" style="--cols:1;--cols_sm:2;--g_sm:var(--s10)">
179
+ <div class="l--box has--gutter -ps -py:30 -py_sm" style="--ps:var(--bleed);--py_sm:0">
180
+ <p>...</p>
181
+ </div>
182
+ <div class="l--frame -bdrs:inner -ar:3/2">
183
+ <img src="..." alt="" />
184
+ </div>
185
+ </div>
186
+ </div>
187
+ ```
188
+ ```jsx
189
+ <Container>
190
+ <Columns set="bleed" contentSize="s" cols={[1, 2]} g={['0', '10']} ai="center">
191
+ <Box hasGutter ps="var(--bleed)" py={["30", "0"]}>
192
+ <p>...</p>
193
+ </Box>
194
+ <Frame bdrs="inner" ar="3/2">
195
+ <img src="..." alt="" />
196
+ </Frame>
197
+ </Columns>
198
+ </Container>
199
+ ```
200
+
201
+
202
+ ## `set--s`
166
203
 
167
204
  余白トークン(`--s5`〜`--s80`)を現在のフォントサイズ基準で再計算するためのクラスです。ButtonやBadgeなど、内部余白を要素自身のfont-sizeに追従させたい時に利用します。
168
205
 
169
- 詳細なスケールと使い方は[tokens.mdの`set--var:s`ユーティリティ](./tokens.md#set--vars-ユーティリティ)を参照してください。
206
+ 詳細なスケールと使い方は[tokens.mdの`set--s`ユーティリティ](./tokens.md#set--s-ユーティリティ)を参照してください。
170
207
 
171
208
  使用例:
172
209
 
173
210
  ```html
174
- <button class="set--var:s -fz:s -py:10 -px:20">...</button>
211
+ <button class="set--s -fz:s -py:10 -px:20">...</button>
175
212
  ```
176
213
 
177
214
  ```jsx
178
- <Button set="var:s" fz="s" py="10" px="20">...</Button>
215
+ <Button set="s" fz="s" py="10" px="20">...</Button>
179
216
  ```
@@ -10,7 +10,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
10
10
  - [トークン概要テーブル](#トークン概要テーブル)
11
11
  - [余白 (space)](#余白-space)
12
12
  - [フォントサイズ (fz)](#フォントサイズ-fz)
13
- - [行間 (lh/hl)](#行間-lhhl)
13
+ - [行間 (hl/lh)](#行間-hllh)
14
14
  - [字間 (lts)](#字間-lts)
15
15
  - [フォント (ff)](#フォント-ff)
16
16
  - [ウェイト (fw)](#ウェイト-fw)
@@ -18,7 +18,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
18
18
  - [角丸 (bdrs)](#角丸-bdrs)
19
19
  - [影 (bxsh)](#影-bxsh)
20
20
  - [フロー余白 (flow)](#フロー余白-flow)
21
- - [ガターサイズ (gutter-size)](#ガターサイズ-gutter-size)
21
+ - [ガター (gutter)](#ガター-gutter)
22
22
  - [カラー](#カラー)
23
23
  - [トークン値の命名規則](#トークン値の命名規則)
24
24
 
@@ -31,18 +31,18 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
31
31
  | カテゴリ | トークン値 | CSS変数パターン | 例 |
32
32
  |---|---|---|---|
33
33
  | 余白 (space) | `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `50`, `60`, `70`, `80` | `--s{N}` | `--s20` |
34
- | フォントサイズ (fz) | `root`, `base`, `2xs`, `xs`, `s`, `m`, `l`, `xl`, `2xl`, `3xl`, `4xl`, `5xl` | `--fz--{key}` | `--fz--l` |
35
- | ハーフレディング・行間 (lh/hl) | `base`, `xs`, `s`, `l` | `--hl--{key}` | `--hl--s` |
34
+ | フォントサイズ (fz) | `base`, `2xs`, `xs`, `s`, `m`, `l`, `xl`, `2xl`, `3xl`, `4xl`, `5xl` | `--fz--{key}` | `--fz--l` |
35
+ | ハーフレディング・行間 (hl/lh) | `base`, `xs`, `s`, `l` | `--hl--{key}` | `--hl--s` |
36
36
  | 字間 (lts) | `base`, `s`, `l`, `xl` | `--lts--{key}` | `--lts--s` |
37
37
  | フォント (ff) | `base`, `accent`, `mono` | `--ff--{key}` | `--ff--mono` |
38
38
  | ウェイト (fw) | `light`, `normal`, `bold` | `--fw--{key}` | `--fw--bold` |
39
39
  | 透明度 (o) | `mp`, `p`, `pp`, `ppp` | `--o--{key}` | `--o--p` |
40
40
  | 角丸 (bdrs) | `10`, `20`, `30`, `40`, `99`, `inner` | `--bdrs--{key}` | `--bdrs--20` |
41
41
  | 影 (bxsh) | `10`, `20`, `30`, `40`, `50` | `--bxsh--{N}` | `--bxsh--20` |
42
- | サイズ (sz) | `xs`, `s`, `m`, `l`, `xl`, `bleed` | `--sz--{key}` | `--sz--l` |
42
+ | サイズ (sz) | `xs`, `s`, `m`, `l`, `xl` | `--sz--{key}` | `--sz--l` |
43
43
  | アスペクト比 (ar) | `og` | `--ar--{key}` | `--ar--og` |
44
44
  | フロー余白 (flow) | `base`, `s` | `--flow--{key}` | `--flow--base` |
45
- | セマンティックカラー (c) | `base`, `base-2`, `text`, `text-2`, `divider`, `link`, `brand`, `accent`, `neutral` | `--{name}` | `--brand` |
45
+ | セマンティックカラー (color) | `base`, `base-2`, `text`, `text-2`, `divider`, `link`, `brand`, `accent`, `neutral` | `--{name}` | `--brand` |
46
46
  | パレットカラー (palette) | `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `gray`, `white`, `black` | `--{name}` | `--red` |
47
47
 
48
48
 
@@ -70,19 +70,19 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
70
70
 
71
71
  `--s40` 以降の主軸は係数 `1, 2, 3, 5, 8, 13, 21, 34`(フィボナッチ数列)に基づく。`--s5`〜`--s35` の前半部分は、主軸トークン間を補う中間値(4px / 12px / 20px / 32px 相当)として配置している。`--s-unit` を上書きするとスケール全体を比例的に調整できる。
72
72
 
73
- ### `set--var:s` ユーティリティ
73
+ ### `set--s` ユーティリティ
74
74
 
75
- `set--var:s` クラスを当てた要素のスコープ内では `--s-unit` が `0.5em` に切り替わり、`--s10`〜`--s80` が現在のフォントサイズ基準で再計算される。Button / Badge / インライン要素など、内部余白をフォントサイズに追従させたい部品で使う。
75
+ `set--s` クラスを当てた要素のスコープ内では `--s-unit` が `0.5em` に切り替わり、`--s10`〜`--s80` が現在のフォントサイズ基準で再計算される。Button / Badge / インライン要素など、内部余白をフォントサイズに追従させたい部品で使う。
76
76
 
77
77
  ```html
78
78
  <!-- ボタンの padding が button 自身の font-size に追従する -->
79
- <button class="set--var:s -fz:s -py:10 -px:20">...</button>
79
+ <button class="set--s -fz:s -py:10 -px:20">...</button>
80
80
  ```
81
81
 
82
82
  `--s-unit` を任意値で上書きすれば、別の基準にも切り替えられる。
83
83
 
84
84
  ```html
85
- <button class="set--var:s -p:10" style="--s-unit: .4375em">...</button>
85
+ <button class="set--s -p:10" style="--s-unit: .4375em">...</button>
86
86
  ```
87
87
 
88
88
 
@@ -103,12 +103,11 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
103
103
  | `--fz--xs` | `calc(1em * var(--fz-mol) / (var(--fz-mol) + 2))` | XS(mol/(mol+2)) |
104
104
  | `--fz--2xs` | `calc(1em * var(--fz-mol) / (var(--fz-mol) + 3))` | 最小(mol/(mol+3)) |
105
105
  | `--fz--base` | `1rem` | 本文の基本フォントサイズ |
106
- | `--fz--root` | — | `:root` のフォントサイズ |
107
106
 
108
107
  `--fz-mol` を上書きすることでスケール全体を調整可能(7以上の値に対応)。
109
108
 
110
109
 
111
- ## 行間 (lh/hl)
110
+ ## 行間 (hl/lh)
112
111
 
113
112
  ハーフレディングの大きさ。Lism CSSでは、`line-height` は `calc(1em + var(--hl) * 2)` で算出される。`--hl-unit`(≒ 2px)を基準単位とする。
114
113
 
@@ -134,8 +133,8 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
134
133
 
135
134
  | CSS変数 | 値 |
136
135
  |---------|-----|
137
- | `--ff--base` | `-apple-system, 'BlinkMacSystemFont', 'Hiragino Sans', sans-serif, 'Segoe UI Emoji'` |
138
- | `--ff--accent` | `'Garamond', 'Baskerville', 'Times New Roman', serif` |
136
+ | `--ff--base` | `-apple-system, 'BlinkMacSystemFont', 'Hiragino Sans', sans-serif` |
137
+ | `--ff--accent` | `Georgia, serif` |
139
138
  | `--ff--mono` | `ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace` |
140
139
 
141
140
 
@@ -176,7 +175,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
176
175
 
177
176
  ## 影 (bxsh)
178
177
 
179
- `--shc`(シャドウカラー)と `--shsz--{N}`(シャドウサイズ)を組み合わせて構成される。要素ごとに `--shc` を上書きして再計算したい場合は、`set--var:bxsh` クラスを併用する。
178
+ `--shc`(シャドウカラー)と `--shsz--{N}`(シャドウサイズ)を組み合わせて構成される。要素ごとに `--shc` を上書きして再計算したい場合は、`set--bxsh` クラスを併用する。
180
179
 
181
180
  | CSS変数 | 値 |
182
181
  |---------|-----|
@@ -188,7 +187,8 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
188
187
 
189
188
  | CSS変数 | 初期値 |
190
189
  |---------|-----|
191
- | `--shc` | `hsl(220 4% 8% / 15%)` |
190
+ | `--shadow` | `hsl(220 4% 8% / 12%)` |
191
+ | `--shc` | `var(--shadow)` |
192
192
  | `--shsz--10` | `0px 1px 3px` |
193
193
  | `--shsz--20` | `0px 2px 6px` |
194
194
  | `--shsz--30` | `0px 4px 12px` |
@@ -206,19 +206,20 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
206
206
  | `--flow--s` | `var(--s20)` | `-flow:s` で適用される小さめの余白 |
207
207
 
208
208
 
209
- ## ガターサイズ (gutter-size)
209
+ ## ガター (gutter)
210
210
 
211
- サイト全体のガター(左右余白)量を定義するルート変数。トークン体系ではなく単一の設定値で、上書きするとガター関連の挙動が一括で変わる。
211
+ サイト全体のガター(左右余白)量を扱う変数群。`--flow--base` / `--flow` と同じく「基準値(`:root`)+ 要素ローカル機能変数」の2層構造を採る。
212
212
 
213
- | CSS変数 | | 説明 |
214
- |---------|-----|------|
215
- | `--gutter-size` | `var(--s30)` | ガターの基準量 |
213
+ | CSS変数 | 初期値 | 説明 |
214
+ |---------|--------|------|
215
+ | `--gutter--base` | `var(--s30)` | サイトコンテンツの左右余白の基準値(`:root` で定義) |
216
+ | `--gutter` | `var(--gutter--base)` | `.has--gutter` で要素ローカルに初期化される機能変数。要素単位で `style="--gutter: 20px"` のように上書き可能 |
216
217
 
217
218
  参照される主な箇所:
218
219
 
219
- - `has--gutter` の `padding-inline`
220
- - `is--container` の `--sz--bleed` 計算(`100cqi + var(--gutter-size) * 2`)
221
- - `-max-sz:full` の負 margin による hang 拡張
220
+ - `has--gutter` の `padding-inline: var(--gutter)`
221
+ - `is--container` の `--sz--bleed` 計算(`100cqi + var(--gutter) * 2`)
222
+ - `-max-sz:full` の負 margin による hang 拡張(`var(--gutter)` を参照)
222
223
 
223
224
 
224
225
  ## カラー
@@ -229,11 +230,11 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
229
230
 
230
231
  | CSS変数 | デフォルト値 | 説明 |
231
232
  |---------|------------|------|
232
- | `--base` | `hsl(224 4% 99%)` | ベース背景色 |
233
- | `--base-2` | `hsl(224 8% 95%)` | 代替背景色 |
234
- | `--text` | `hsl(224 4% 8%)` | 基本テキスト色 |
235
- | `--text-2` | `hsl(224 6% 32%)` | 補助テキスト色 |
236
- | `--divider` | `hsl(224 8% 88%)` | 区切り線色 |
233
+ | `--base` | `hsl(220 0% 99%)` | ベース背景色 |
234
+ | `--base-2` | `hsl(220 4% 95%)` | 代替背景色 |
235
+ | `--text` | `hsl(220 0% 8%)` | 基本テキスト色 |
236
+ | `--text-2` | `hsl(220 4% 32%)` | 補助テキスト色 |
237
+ | `--divider` | `hsl(220 4% 88%)` | 区切り線色 |
237
238
  | `--link` | `oklch(50% 0.3 240)` | リンク色 |
238
239
  | `--brand` | `#1e5f8c` | ブランド色 |
239
240
  | `--accent` | `#d94a6a` | アクセント色 |
@@ -248,7 +249,7 @@ OKLCH で定義されたカラーパレット。`--L`(明度)と `--C`(彩
248
249
  | `--red` | `oklch(var(--L) var(--C) 20)` |
249
250
  | `--orange` | `oklch(calc(var(--L) + 6%) calc(var(--C) - 0.01) 48)` |
250
251
  | `--yellow` | `oklch(calc(var(--L) + 12%) calc(var(--C) - 0.02) 80)` |
251
- | `--green` | `oklch(calc(var(--L) + 4%) calc(var(--C) - 0.01) 152)` |
252
+ | `--green` | `oklch(calc(var(--L) + 4%) calc(var(--C) - 0.02) 152)` |
252
253
  | `--blue` | `oklch(calc(var(--L) - 4%) calc(var(--C) + 0.01) 264)` |
253
254
  | `--purple` | `oklch(calc(var(--L) - 4%) calc(var(--C) + 0.01) 288)` |
254
255
  | `--pink` | `oklch(calc(var(--L) + 2%) calc(var(--C) + 0.01) 352)` |
@@ -13,19 +13,25 @@
13
13
 
14
14
  ```scss
15
15
  .has--gutter {
16
- padding-inline: var(--gutter-size);
16
+ --gutter: var(--gutter--base);
17
+ padding-inline: var(--gutter);
17
18
  }
18
19
  ```
19
20
 
20
- `--gutter-size` はトークン (`:root`) `var(--s30)` がデフォルト定義されている。
21
+ ガター変数は `--flow--base` / `--flow` と同じ「基準値 + 要素ローカル機能変数」の2層構造を採る。
22
+
23
+ - `--gutter--base`: `:root` で `var(--s30)` をデフォルトに持つサイト全体の基準値
24
+ - `--gutter`: `.has--gutter` で `var(--gutter--base)` に初期化される要素ローカルの機能変数
21
25
 
22
26
  ## CSS 変数
23
27
 
24
28
  | 変数 | 役割 | デフォルト |
25
29
  |------|------|-----------|
26
- | `--gutter-size` | 左右の padding | `var(--s30)` |
30
+ | `--gutter--base` | サイト全体のガター基準値(`:root` 定義) | `var(--s30)` |
31
+ | `--gutter` | `.has--gutter` 要素ローカルの機能変数 | `var(--gutter--base)` |
27
32
 
28
- 個別要素で `--gutter-size` を上書きすれば、その要素のみ gutter 量を変更できる。
33
+ - サイト全体の基準を変えたい場合は `:root` 等で `--gutter--base` を上書きする
34
+ - 個別要素のみガター量を変えたい場合は、その要素で `style="--gutter: 20px"` のように `--gutter` を直接上書きする
29
35
 
30
36
  ## Usage
31
37
 
@@ -34,12 +40,22 @@
34
40
  <p>Lorem ipsum content...</p>
35
41
  <p>Lorem ipsum content...</p>
36
42
  </div>
43
+
44
+ <!-- 個別要素でガター量を上書きする例 -->
45
+ <div class="has--gutter" style="--gutter: 20px">
46
+ <p>Lorem ipsum content...</p>
47
+ </div>
37
48
  ```
38
49
  ```jsx
39
50
  <Lism hasGutter>
40
51
  <p>Lorem ipsum content...</p>
41
52
  <p>Lorem ipsum content...</p>
42
53
  </Lism>
54
+
55
+ {/* 個別要素でガター量を上書きする例 */}
56
+ <Lism hasGutter style={{ '--gutter': '20px' }}>
57
+ <p>Lorem ipsum content...</p>
58
+ </Lism>
43
59
  ```
44
60
 
45
61
  ## 関連