@lism-css/mcp 0.20.0 → 0.22.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.
@@ -9,7 +9,7 @@ description: "Lism CSS の設計・実装に関するガイド。CSSの編集・
9
9
 
10
10
  調和と統一感を生み出すデザイントークン設計、`@layer`で管理されるプリミティブ設計、CSS変数を活かした柔軟でレスポンシブなユーティリティ設計が特徴です。
11
11
 
12
- > **バージョン情報:** このガイドは `lism-css@0.20.0` / `@lism-css/ui@0.20.0` 時点の情報に基づいています。プロジェクトで使用中のバージョンを確認し、このガイドのバージョンと異なる場合はユーザーに通知してください。
12
+ > **バージョン情報:** このガイドは `lism-css@0.22.0` / `@lism-css/ui@0.22.0` 時点の情報に基づいています。プロジェクトで使用中のバージョンを確認し、このガイドのバージョンと異なる場合はユーザーに通知してください。
13
13
 
14
14
  公式ドキュメント: https://lism-css.com/docs/overview.md
15
15
 
@@ -49,7 +49,8 @@ Reset CSS に加え、`@layer lism-base` 内で HTML タグに基本スタイル
49
49
  | `--lts--base` | ベース字間 |
50
50
  | `--text` | テキスト色 |
51
51
  | `--base` | 背景色 |
52
- | `--under-offset` | `text-underline-offset`(デフォルト: `0.125em`) |
52
+
53
+ 加えて `text-underline-offset: 0.125em`(リンク下線位置)と `tab-size: 4`(タブ文字の表示幅)が直接指定されている。
53
54
 
54
55
  ### 見出し(h1〜h6)
55
56
 
@@ -75,20 +76,13 @@ class を持たない `ul` / `ol` のみブラウザ標準スタイルが自動
75
76
  |------|------------|------|
76
77
  | `--list-ps` | `1.75em` | リストの `padding-inline-start` |
77
78
 
78
- ### テーブル(table, td, th)
79
+ ### テーブル(td, th)
79
80
 
80
81
  | 変数 | フォールバック | 用途 |
81
82
  |------|------------|------|
82
- | `--td-c` | `inherit` | セルのテキスト色 |
83
- | `--td-bgc` | `transparent` | セルの背景色 |
84
- | `--td-p` | `var(--s10) var(--s15)` | セルのパディング |
85
- | `--td-min-sz` | `initial` | セルの最小幅 |
86
- | `--th-c` | `var(--td-c)` | 見出しセルのテキスト色 |
87
- | `--th-bgc` | `var(--td-bgc)` | 見出しセルの背景色 |
88
- | `--th-p` | `var(--td-p)` | 見出しセルのパディング |
89
- | `--th-min-sz` | `var(--td-min-sz)` | 見出しセルの最小幅 |
83
+ | `--cells-p` | `0.625em 0.875em` | セルのパディング |
90
84
 
91
- `th` `td` の変数をフォールバックとして参照するため、`--td-*` だけで両方に反映される。
85
+ `td` `th` の両方に `--cells-p` が適用される。色や最小幅などのカスタマイズは必要な要素にスタイルを直接当てる。
92
86
 
93
87
  ### フォーム要素
94
88
 
@@ -96,8 +90,9 @@ class を持たない `ul` / `ol` のみブラウザ標準スタイルが自動
96
90
  |------|------------|------|
97
91
  | `--controls-bgc` | `var(--base-2)` | 背景色 |
98
92
  | `--controls-bdc` | `var(--divider)` | ボーダー色 |
99
- | `--controls-p` | `var(--s5) var(--s10)` | パディング |
100
- | `--controls-bdrs` | `var(--bdrs--10)` | 角丸 |
93
+ | `--controls-p` | `0.25em 0.5em` | パディング |
94
+
95
+ 角丸はブラウザのデフォルトに委ねている。テーマで丸めたい場合は各セレクタに `border-radius` を直接指定する。
101
96
 
102
97
  ### その他
103
98
 
@@ -53,7 +53,7 @@ import { Lism, Box, Flex, Stack, Grid, Text, Media } from 'lism-css/astro';
53
53
  | `as` | レンダリングする HTML 要素または外部コンポーネントを指定(デフォルト: `"div"`) | `as="section"`, `as={Image}` |
54
54
  | `layout` | レイアウトプリミティブ(`l--{layout}`)を指定 | `layout="flow"` |
55
55
  | `atomic` | アトミックプリミティブ(`a--{atomic}`)を指定。`'divider'` / `'spacer'` / `'decorator'` が利用可能(`'icon'` は内部用) | `atomic="divider"` |
56
- | `set` | セットクラス(`set--{value}`)を指定。スペース区切りで複数指定可。値の先頭に `-` を付けると除外 | `set="plain"`, `set="var:hov var:bxsh"`, `set="-plain"` |
56
+ | `set` | セットクラス(`set--{value}`)を指定。スペース区切りで複数指定可。値の先頭に `-` を付けると除外 | `set="plain"`, `set="hov bxsh"`, `set="-plain"` |
57
57
  | `util` | ユーティリティクラス(`u--{value}`)を指定。`set` と同様に複数指定・`-` prefix 除外が可能 | `util="cbox"`, `util="cbox trim"`, `util="-trim"` |
58
58
  | `exProps` | Lism Propsの処理をスキップして外部コンポーネントに直接渡すpropsオブジェクト | `exProps={{ size: '1em' }}` |
59
59
 
@@ -79,12 +79,12 @@ import { Lism, Box, Flex, Stack, Grid, Text, Media } from 'lism-css/astro';
79
79
  // → p, fz は Lism が処理、size は HogeIcon に直接渡される
80
80
 
81
81
  // set でセットクラスを付与(layout と同じ要領)
82
- <Box set="var:bxsh" p="30">...</Box>
83
- // → <div class="l--box set--var:bxsh -p:30">...</div>
82
+ <Box set="bxsh" p="30">...</Box>
83
+ // → <div class="l--box set--bxsh -p:30">...</div>
84
84
 
85
85
  // set を複数指定(スペース区切り)
86
- <Stack set="var:bxsh var:hov" p="30">...</Stack>
87
- // → <div class="l--stack set--var:bxsh set--var:hov -p:30">...</div>
86
+ <Stack set="bxsh hov" p="30">...</Stack>
87
+ // → <div class="l--stack set--bxsh set--hov -p:30">...</div>
88
88
 
89
89
  // `-` prefix で除外(コンポーネント内部で適用済みの set を打ち消す用途)
90
90
  <AccordionButton set="-plain">...</AccordionButton>
@@ -180,7 +180,7 @@ Trait クラス(`is--*` / `has--*`)を出力するためのプロパティ
180
180
  | Prop | 出力クラス |
181
181
  |------|-----------|
182
182
  | `isWrapper` | `is--wrapper` |
183
- | `isWrapper="{s\|l}"` | `is--wrapper` + `-contentSize:{s\|l}` |
183
+ | `isWrapper="{s\|m\|l\|xl}"` | `is--wrapper` + `-contentSize:{s\|m\|l\|xl}` |
184
184
  | `isWrapper="{value}"` | `is--wrapper` + `-contentSize` + `--contentSize:{value}` |
185
185
  | `isLayer` | `is--layer` |
186
186
  | `isBoxLink` | `is--boxLink` |
@@ -211,7 +211,7 @@ Trait クラス(`is--*` / `has--*`)を出力するためのプロパティ
211
211
  |-------------|-------------|---------|
212
212
  | `<Text>` | `<p>` | `p`, `div`, `blockquote`, `address`, `figcaption`, `pre` |
213
213
  | `<Heading>` | `<h2>` | `h1`〜`h6`(`level` prop で指定) |
214
- | `<Inline>` | `<span>` | `span`, `em`, `strong`, `small`, `code`, `time`, `i`, `b`, `mark`, `abbr`, `cite`, `kbd` |
214
+ | `<Inline>` | `<span>` | `span`, `em`, `strong`, `small`, `code`, `time`, `i`, `b`, `mark`, `abbr`, `cite`, `kbd`, `label` |
215
215
  | `<Group>` | `<div>` | `div`, `section`, `article`, `figure`, `nav`, `aside`, `header`, `footer`, `main`, `fieldset`, `hgroup` |
216
216
  | `<List>` | `<ul>` | `ul`, `ol`, `dl` |
217
217
  | `<Link>` | `<a>`(固定) | — |
@@ -43,13 +43,13 @@ Lism CSSで定義されるクラスは、その役割とレイヤーの所属が
43
43
 
44
44
  | 分類 | 役割 | プレフィックス | 例 |
45
45
  |---|---|---|---|
46
- | Set Class | ベーススタイル上書き・変数提供 | `set--` | `set--plain`, `set--revert`, `set--var:hov`, `set--var:bxsh` |
46
+ | Set Class | ベーススタイル上書き・変数提供 | `set--` | `set--plain`, `set--revert`, `set--hov`, `set--bxsh` |
47
47
  | Layout Primitive | レイアウトの構成単位となる Primitive | `l--` | `l--grid`, `l--flex`, `l--stack` |
48
48
  | Atomic Primitive | レイアウトの最小単位となる Primitive | `a--` | `a--icon`, `a--divider` |
49
49
  | Component Class | BEM 構造を持つ UI 部品 | `c--` | `c--button`, `c--accordion` |
50
50
  | `is--` Trait | 要素に役割(〜である)を宣言 | `is--` | `is--container`, `is--wrapper`, `is--layer`, `is--boxLink` |
51
51
  | `has--` Trait | 要素に機能(〜を持つ)を付与 | `has--` | `has--transition`, `has--gutter`, `has--snap`, `has--mask` |
52
- | Utility Class | 用途が明確な装飾系ユーティリティ | `u--` | `u--cbox`, `u--trim`, `u--divide`, `u--cells` |
52
+ | Utility Class | 用途が明確な装飾系ユーティリティ | `u--` | `u--cbox`, `u--trim`, `u--divide`, `u--enclose` |
53
53
  | Property Class | 単一プロパティの制御 | `-` | `-fz:l`, `-p:20`, `-d:none` |
54
54
 
55
55
  **併用ルール:**
@@ -83,7 +83,7 @@ class 属性にクラスを直接記述する場合は、以下の順序で並
83
83
  | 2 | Component(`c--`) | `c--box`, `c--box--primary` |
84
84
  | 3 | Atomic Primitive(`a--`) | `a--icon`, `a--divider` |
85
85
  | 4 | Layout Primitive(`l--`) | `l--flex`, `l--columns` |
86
- | 5 | Set Class(`set--`) | `set--var:hov`, `set--var:bxsh` |
86
+ | 5 | Set Class(`set--`) | `set--hov`, `set--bxsh` |
87
87
  | 6 | Trait Class 役割宣言(`is--`) | `is--wrapper`, `is--layer` |
88
88
  | 7 | Trait Class 機能付与(`has--`) | `has--transition`, `has--gutter` |
89
89
  | 8 | Utility Class(`u--`) | `u--cbox`, `u--trim` |
@@ -70,10 +70,10 @@
70
70
 
71
71
  | プレフィックス | 責務 | 代表例 |
72
72
  |---|---|---|
73
- | `set--` | HTML 要素の基礎スタイリング / 変数セット | `set--plain`, `set--revert`, `set--var:hov`, `set--var:bxsh` |
73
+ | `set--` | HTML 要素の基礎スタイリング / 変数セット | `set--plain`, `set--revert`, `set--hov`, `set--bxsh` |
74
74
  | `is--` | 〜である(役割・存在の宣言)。CSS 変数は必須ではない | `is--container`, `is--wrapper`, `is--layer` |
75
75
  | `has--` | 〜を持つ(単一機能 trait の付与)。CSS 変数でカスタマイズ可 | `has--transition`, `has--gutter`, `has--snap`, `has--mask` |
76
- | `u--` | 装飾的効果(単独 or 子要素の装飾) | `u--trim`, `u--cbox`, `u--divide`, `u--cells` |
76
+ | `u--` | 装飾的効果(単独 or 子要素の装飾) | `u--trim`, `u--cbox`, `u--divide`, `u--enclose` |
77
77
 
78
78
  - `set--` は `lism-base` 層で HTML 要素の基礎スタイル・変数を提供するもの。
79
79
  - `is--` / `has--` は `lism-trait` 層に属する。
@@ -81,10 +81,10 @@ Lism CSS では、レイアウトを組み立てる小さな積み木として *
81
81
  ##### 2. カラム幅が指定値を下回ったら自動で折り返したい
82
82
 
83
83
  - **推奨**: `l--autoColumns` (`<AutoColumns cols="20rem" />`)
84
- - **理由**: BP に依存せず、カラム最小幅基準で `auto-fit` / `auto-fill` の挙動を簡潔に書ける
84
+ - **理由**: BP に依存せず、カラム最小幅基準で `auto-fill` / `auto-fit` の挙動を簡潔に書ける
85
85
  - **典型例**: カード一覧、商品リスト、ロゴ並び等
86
86
  - **代替**:
87
- - `l--grid`: `gtc="repeat(auto-fit, minmax(20rem, 1fr))"` を直書きできるが冗長
87
+ - `l--grid`: `gtc="repeat(auto-fill, minmax(20rem, 1fr))"` を直書きできるが冗長
88
88
 
89
89
  ##### 3. 「横並び」と「縦 1 列」を一括で切り替えたい(多段階の列数変化が不要)
90
90
 
@@ -1,6 +1,6 @@
1
1
  # l--autoColumns / `<AutoColumns>`
2
2
 
3
- カラム要素が指定した幅より小さくならないように自動で折り返す、**ブレイクポイント非依存の段組みクラス**。`auto-fit` / `auto-fill` を使った流動カラムを簡潔に記述できます。
3
+ カラム要素が指定した幅より小さくならないように自動で折り返す、**ブレイクポイント非依存の段組みクラス**。`auto-fill` / `auto-fit` を使った流動カラムを簡潔に記述できます。
4
4
 
5
5
  ## 基本情報
6
6
 
@@ -14,7 +14,7 @@
14
14
  | Prop | CSS変数 | デフォルト | 説明 |
15
15
  |------|--------|-----------|------|
16
16
  | `cols` | `--cols` | `20rem` | カラムが維持する最小幅を指定(`16em`, `320px` など) |
17
- | `autoFill` | `--autoMode` | `auto-fit` | `auto-fill` モードに切り替え |
17
+ | `autoFit` | `--autoMode` | `auto-fill` | `auto-fit` モードに切り替え |
18
18
 
19
19
  ## Usage
20
20
 
@@ -38,27 +38,27 @@
38
38
  </div>
39
39
  ```
40
40
 
41
- ### `auto-fill`を使用する
41
+ ### `auto-fit`を使用する
42
42
 
43
- `l--autoColumns` では、`grid-template-columns` の `repeat()` 関数の第一引数を `--autoMode` で指定できます(デフォルトは `auto-fit`)。`--autoMode:auto-fill`(`autoFill`)を指定することで、要素数が少ない時の挙動が変わります。
43
+ `l--autoColumns` では、`grid-template-columns` の `repeat()` 関数の第一引数を `--autoMode` で指定できます(デフォルトは `auto-fill`)。`--autoMode:auto-fit`(`autoFit`)を指定することで、要素数が少ない時の挙動が変わります。
44
44
 
45
45
  ```jsx
46
- <AutoColumns cols="12em" autoFill g="20" fz="s">
46
+ <AutoColumns cols="12em" g="20" fz="s">
47
47
  <Lism as="div" p="20" bd>auto-fill</Lism>
48
48
  <Lism as="div" p="20" bd>auto-fill</Lism>
49
49
  </AutoColumns>
50
- <AutoColumns cols="12em" g="20" fz="s">
50
+ <AutoColumns cols="12em" autoFit g="20" fz="s">
51
51
  <Lism as="div" p="20" bd>auto-fit</Lism>
52
52
  <Lism as="div" p="20" bd>auto-fit</Lism>
53
53
  </AutoColumns>
54
54
  ```
55
55
 
56
56
  ```html
57
- <div class="l--autoColumns -g:20 -fz:s" style="--cols:12em; --autoMode:auto-fill">
57
+ <div class="l--autoColumns -g:20 -fz:s" style="--cols:12em">
58
58
  <div class="-p:20 -bd">auto-fill</div>
59
59
  <div class="-p:20 -bd">auto-fill</div>
60
60
  </div>
61
- <div class="l--autoColumns -g:20 -fz:s" style="--cols:12em">
61
+ <div class="l--autoColumns -g:20 -fz:s" style="--cols:12em; --autoMode:auto-fit">
62
62
  <div class="-p:20 -bd">auto-fit</div>
63
63
  <div class="-p:20 -bd">auto-fit</div>
64
64
  </div>
@@ -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
  ```
@@ -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%` | — |
@@ -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
 
@@ -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` | [`_shadow.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_shadow.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` | [`_space.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_space.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
  ```
@@ -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
 
@@ -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
 
@@ -176,7 +176,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
176
176
 
177
177
  ## 影 (bxsh)
178
178
 
179
- `--shc`(シャドウカラー)と `--shsz--{N}`(シャドウサイズ)を組み合わせて構成される。要素ごとに `--shc` を上書きして再計算したい場合は、`set--var:bxsh` クラスを併用する。
179
+ `--shc`(シャドウカラー)と `--shsz--{N}`(シャドウサイズ)を組み合わせて構成される。要素ごとに `--shc` を上書きして再計算したい場合は、`set--bxsh` クラスを併用する。
180
180
 
181
181
  | CSS変数 | 値 |
182
182
  |---------|-----|
@@ -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
  ## カラー
@@ -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
  ## 関連
@@ -70,4 +70,4 @@
70
70
  ## 関連
71
71
 
72
72
  - [`-hov:*` プロパティクラス](../property-class.md) — ホバー時の変化を定義
73
- - [`set--var:hov`](../set-class.md#set--varhov) — 親のホバー状態を子要素に伝播させる仕組み
73
+ - [`set--hov`](../set-class.md#set--hov) — 親のホバー状態を子要素に伝播させる仕組み