@lism-css/mcp 0.15.1 → 0.18.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 +16 -10
- package/dist/data/guides/SKILL.md +121 -19
- package/dist/data/guides/antipatterns.md +300 -2
- package/dist/data/guides/base-styles.md +2 -4
- package/dist/data/guides/components-core.md +4 -6
- package/dist/data/guides/components-ui.md +10 -2
- package/dist/data/guides/css-rules.md +3 -3
- package/dist/data/guides/customize.md +79 -25
- package/dist/data/guides/naming.md +1 -1
- package/dist/data/guides/primitive-class.md +1 -1
- package/dist/data/guides/primitives/a--spacer.md +2 -2
- package/dist/data/guides/property-class/max-sz.md +17 -13
- package/dist/data/guides/property-class.md +26 -16
- package/dist/data/guides/{prop-responsive.md → responsive.md} +40 -4
- package/dist/data/guides/set-class.md +21 -2
- package/dist/data/guides/tokens.md +34 -16
- package/dist/data/guides/trait-class/is--container.md +4 -2
- package/dist/data/guides/trait-class/is--wrapper.md +15 -0
- package/dist/data/meta.js +2 -2
- package/dist/tools/get-guide.js +1 -1
- package/dist/tools/get-overview.js +3 -3
- package/package.json +1 -1
|
@@ -51,8 +51,6 @@ import { Lism, Box, Flex, Stack, Grid, Text, Media } from 'lism-css/astro';
|
|
|
51
51
|
| Prop | 説明 | 例 |
|
|
52
52
|
|------|------|-----|
|
|
53
53
|
| `as` | レンダリングする HTML 要素または外部コンポーネントを指定(デフォルト: `"div"`) | `as="section"`, `as={Image}` |
|
|
54
|
-
| `lismClass` | コンポーネント基底となる `c--*` クラスを指定。`variant` による BEM 展開の対象 | `lismClass="c--myComponent"` |
|
|
55
|
-
| `variant` | `lismClass` 先頭クラスに対する BEM Modifier を付与(`c--` 専用。`a--` / `l--` には展開されない) | `variant="secondary"` |
|
|
56
54
|
| `layout` | レイアウトプリミティブ(`l--{layout}`)を指定 | `layout="flow"` |
|
|
57
55
|
| `atomic` | アトミックプリミティブ(`a--{atomic}`)を指定。`'divider'` / `'spacer'` / `'decorator'` が利用可能(`'icon'` は内部用) | `atomic="divider"` |
|
|
58
56
|
| `set` | セットクラス(`set--{value}`)を指定。スペース区切りで複数指定可。値の先頭に `-` を付けると除外 | `set="plain"`, `set="var:hov var:bxsh"`, `set="-plain"` |
|
|
@@ -68,12 +66,12 @@ import { Lism, Box, Flex, Stack, Grid, Text, Media } from 'lism-css/astro';
|
|
|
68
66
|
<Media as={Image} src="..." p="20" bd />
|
|
69
67
|
// → Image コンポーネントに { className: '-p:20 -bd' } が渡される
|
|
70
68
|
|
|
71
|
-
//
|
|
72
|
-
<Lism
|
|
69
|
+
// className でコンポーネントクラスを付与(c--* も className に直接書く)
|
|
70
|
+
<Lism className="c--myComponent" p="10">...</Lism>
|
|
73
71
|
// → <div class="c--myComponent -p:10">...</div>
|
|
74
72
|
|
|
75
|
-
//
|
|
76
|
-
<Lism
|
|
73
|
+
// BEM Modifier も className にそのまま列挙する
|
|
74
|
+
<Lism className="c--myComponent c--myComponent--secondary">...</Lism>
|
|
77
75
|
// → <div class="c--myComponent c--myComponent--secondary">...</div>
|
|
78
76
|
|
|
79
77
|
// exProps で外部コンポーネント用プロパティを明示的に分離
|
|
@@ -2,12 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
`@lism-css/ui` パッケージには、Lism CSS の上に構築されたインタラクティブな UI コンポーネントが含まれます。
|
|
4
4
|
|
|
5
|
+
import は **コンポーネント単位の deep path** (`@lism-css/ui/{react,astro}/<Component>`)から行うこと。`@lism-css/ui/react` / `@lism-css/ui/astro` からの一括 import は使わない。
|
|
6
|
+
|
|
5
7
|
```jsx
|
|
6
8
|
// React
|
|
7
|
-
import { Accordion
|
|
9
|
+
import { Accordion } from '@lism-css/ui/react/Accordion';
|
|
10
|
+
import { Tabs } from '@lism-css/ui/react/Tabs';
|
|
11
|
+
import { Modal } from '@lism-css/ui/react/Modal';
|
|
12
|
+
import { Button } from '@lism-css/ui/react/Button';
|
|
8
13
|
|
|
9
14
|
// Astro
|
|
10
|
-
import { Accordion
|
|
15
|
+
import { Accordion } from '@lism-css/ui/astro/Accordion';
|
|
16
|
+
import { Tabs } from '@lism-css/ui/astro/Tabs';
|
|
17
|
+
import { Modal } from '@lism-css/ui/astro/Modal';
|
|
18
|
+
import { Button } from '@lism-css/ui/astro/Button';
|
|
11
19
|
```
|
|
12
20
|
|
|
13
21
|
## TOC
|
|
@@ -114,9 +114,9 @@ class 属性にクラスを直接記述する場合は、以下の順序で並
|
|
|
114
114
|
- Modifier は Block と併記して使用: `.c--button.c--button--outline`
|
|
115
115
|
- Element は `_`(アンダースコア)一つ区切り
|
|
116
116
|
- Block 同士の併用(`.c--xxx.c--yyy`)は基本 NG。ただし次は許容される:
|
|
117
|
-
- Block と自身の Modifier: `.c--xxx.c--xxx--
|
|
117
|
+
- Block と自身の Modifier: `.c--xxx.c--xxx--modifier`
|
|
118
118
|
- Block と他 Block の Element: `.c--xxx.c--yyy_elem`
|
|
119
|
-
- `a--` / `l--`
|
|
119
|
+
- BEM の Modifier / Element 構造を持つのは `c--` のみ。`a--` / `l--` には適用しない
|
|
120
120
|
|
|
121
121
|
`c--` を使った独自コンポーネントを使う場合でも、他の Primitive クラス(`l--`, `is--`)や Property Class(`-{prop}:{value}`)との組み合わせを前提とした設計にすることで CSS の記述量を削減できます。`c--` クラスにスタイルが全くなく、HTML 側での可視性を高める名前付けのためだけに利用しても構いません。
|
|
122
122
|
|
|
@@ -148,7 +148,7 @@ class 属性にクラスを直接記述する場合は、以下の順序で並
|
|
|
148
148
|
|
|
149
149
|
```jsx
|
|
150
150
|
export default function MyCard(props) {
|
|
151
|
-
return <Stack
|
|
151
|
+
return <Stack className="c--myCard" g="20" p="30" bdrs="20" bxsh="20" bd {...props} />;
|
|
152
152
|
}
|
|
153
153
|
```
|
|
154
154
|
|
|
@@ -98,10 +98,32 @@ SCSS を直接読み込む構成では、コンパイル時に `lism-css` 本体
|
|
|
98
98
|
|
|
99
99
|
## `lism.config.js` でのカスタマイズ
|
|
100
100
|
|
|
101
|
-
プロジェクトのルート直下に `lism.config.js`
|
|
101
|
+
プロジェクトのルート直下に `lism.config.js`(または `lism.config.mjs`)を置くことで、**コンポーネントの挙動**(受け付ける props の値や、出力されるクラス名)をカスタマイズできます。
|
|
102
102
|
|
|
103
103
|
> **注意**: `lism.config.js` は HTML 出力(クラス名)を変えるだけで、追加されたクラスに対する CSS は別途読み込ませる必要があります([追加スタイルを読み込ませる方法](#追加スタイルを読み込ませる方法) を参照)。
|
|
104
104
|
|
|
105
|
+
### Vite プラグインの登録(必須)
|
|
106
|
+
|
|
107
|
+
`lism.config.js` を読み込ませるには、Vite(または Astro)の設定ファイルで `lism-css/vite-plugin` を登録する必要があります。**未登録の場合、ファイルを置いてもデフォルト設定のまま**になります。
|
|
108
|
+
|
|
109
|
+
```js
|
|
110
|
+
// astro.config.mjs
|
|
111
|
+
import { defineConfig } from 'astro/config';
|
|
112
|
+
import lismCss from 'lism-css/vite-plugin';
|
|
113
|
+
|
|
114
|
+
export default defineConfig({
|
|
115
|
+
vite: {
|
|
116
|
+
plugins: [lismCss()],
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
プラグインはプロジェクトルートから `lism.config.js` → `lism.config.mjs` の順で自動検出します。別の場所に置く場合は `configPath` で指定できます。
|
|
122
|
+
|
|
123
|
+
```js
|
|
124
|
+
plugins: [lismCss({ configPath: './config/lism.config.js' })],
|
|
125
|
+
```
|
|
126
|
+
|
|
105
127
|
### フォーマット
|
|
106
128
|
|
|
107
129
|
```js
|
|
@@ -134,11 +156,16 @@ const { props, tokens } = DEFAULT_CONFIG;
|
|
|
134
156
|
|
|
135
157
|
export default {
|
|
136
158
|
props: {
|
|
137
|
-
|
|
159
|
+
// 既存propにpresetsを追加
|
|
160
|
+
ta: { presets: [...(props.ta.presets || []), 'justify'] },
|
|
161
|
+
// 既存propにutility値を追加
|
|
138
162
|
p: { utils: { box: '2em' } },
|
|
163
|
+
// 新しいpropの追加(filterはデフォルトに含まれない)
|
|
164
|
+
filter: { utils: { blur: 'blur(3px)' } },
|
|
139
165
|
},
|
|
140
166
|
tokens: {
|
|
141
|
-
|
|
167
|
+
// tokenClass:1 のpropは、tokens を追加するだけで自動でユーティリティ化される
|
|
168
|
+
lts: [...(tokens.lts || []), '2xl'],
|
|
142
169
|
},
|
|
143
170
|
traits: {
|
|
144
171
|
isHoge: 'is--hoge',
|
|
@@ -150,15 +177,15 @@ export default {
|
|
|
150
177
|
|
|
151
178
|
| 入力 | 出力されるクラス |
|
|
152
179
|
|------|----------------|
|
|
153
|
-
| `
|
|
154
|
-
| `d="grid"` | `-d:grid` |
|
|
180
|
+
| `ta="justify"` | `-ta:justify` |
|
|
155
181
|
| `p="box"` | `-p:box` |
|
|
156
|
-
| `
|
|
182
|
+
| `filter="blur"` | `-filter:blur` |
|
|
183
|
+
| `lts="2xl"` | `-lts:2xl` |
|
|
157
184
|
| `isHoge` | `is--hoge` |
|
|
158
185
|
|
|
159
186
|
```jsx
|
|
160
|
-
<Box p="box"
|
|
161
|
-
// → <div class="l--box is--hoge -p:box -
|
|
187
|
+
<Box p="box" ta="justify" filter="blur" lts="2xl" isHoge>Box</Box>
|
|
188
|
+
// → <div class="l--box is--hoge -p:box -ta:justify -filter:blur -lts:2xl">Box</div>
|
|
162
189
|
```
|
|
163
190
|
|
|
164
191
|
|
|
@@ -166,7 +193,31 @@ export default {
|
|
|
166
193
|
|
|
167
194
|
`lism.config.js` で props を増やしただけでは、対応するユーティリティクラスのスタイルは存在しません。次のいずれかでスタイルを追加してください。
|
|
168
195
|
|
|
169
|
-
### 1.
|
|
196
|
+
### 1. 軽微な追加であれば手書きで済ませる(推奨ライト)
|
|
197
|
+
|
|
198
|
+
カスタムトークンが少数で済むなら、CLI 再ビルドや SCSS 構成変更まで踏み込まず、Lism Props の `:value` 記法(→ [property-class.md](./property-class.md))と `global.css` への手書きで十分。
|
|
199
|
+
|
|
200
|
+
```css
|
|
201
|
+
/* global.css */
|
|
202
|
+
@layer lism-base {
|
|
203
|
+
:root {
|
|
204
|
+
--lts--2xl: 0.15em;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/* Property Class は @layer を付けない */
|
|
209
|
+
.-lts\:2xl {
|
|
210
|
+
letter-spacing: var(--lts--2xl);
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
```jsx
|
|
215
|
+
<Text lts=":2xl">...</Text>
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
トークンを体系的に拡張したい場合のみ、後述の CLI / SCSS 経由に切り替える。
|
|
219
|
+
|
|
220
|
+
### 2. CLI コマンドで CSS を再ビルド
|
|
170
221
|
|
|
171
222
|
```bash
|
|
172
223
|
npx lism-css build
|
|
@@ -175,46 +226,49 @@ npx lism-css build
|
|
|
175
226
|
`lism.config.js` の内容に基づいて `lism-css/main.css` を再生成します。上記カスタマイズ例だと、以下のスタイルが自動生成されます:
|
|
176
227
|
|
|
177
228
|
```css
|
|
178
|
-
.-
|
|
179
|
-
.-d\:grid { display: grid; }
|
|
229
|
+
.-ta\:justify { text-align: justify; }
|
|
180
230
|
.-p\:box { padding: 2em; }
|
|
181
|
-
.-
|
|
231
|
+
.-filter\:blur { filter: blur(3px); }
|
|
232
|
+
.-lts\:2xl { letter-spacing: var(--lts--2xl); }
|
|
182
233
|
```
|
|
183
234
|
|
|
184
235
|
> **注意**:
|
|
185
|
-
> -
|
|
236
|
+
> - 生成されるのはあくまで `var(--lts--2xl)` を参照する **ユーティリティクラスまで**。参照先の CSS 変数(`:root { --lts--2xl: ... }` のような **値そのもの** の定義)と `is--*` クラスのスタイルは自動生成されないため、手動で追加してください。
|
|
186
237
|
> - `lism-css` パッケージ自体を上書きする処理のため、**パッケージ更新ごとに再実行**が必要です。
|
|
187
238
|
|
|
188
|
-
###
|
|
239
|
+
### 3. 手動で CSS を追記
|
|
189
240
|
|
|
190
241
|
CLI を使わず、追加クラス分の CSS をプロジェクト側で書いて読み込ませる方法でも問題ありません。
|
|
191
242
|
|
|
192
243
|
```css
|
|
193
|
-
|
|
194
|
-
|
|
244
|
+
@layer lism-base {
|
|
245
|
+
:root {
|
|
246
|
+
--lts--2xl: 0.15em;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
@layer lism-trait {
|
|
251
|
+
.is--hoge { /* ... */ }
|
|
252
|
+
}
|
|
195
253
|
```
|
|
196
254
|
|
|
197
|
-
###
|
|
255
|
+
### 4. SCSS で `lism.config.js` と整合させる
|
|
198
256
|
|
|
199
257
|
SCSS 経由で読み込む構成なら、`lism.config.js` と同じ追加分を `$props` の `utilities` 設定として書いておけば、ビルドコマンドなしで反映できます。
|
|
200
258
|
|
|
201
259
|
```scss
|
|
202
260
|
@use '../path-to/node_modules/lism-css/scss/setting' with (
|
|
203
261
|
$props: (
|
|
204
|
-
'
|
|
205
|
-
utilities: (
|
|
206
|
-
'flex': 'flex',
|
|
207
|
-
'grid': 'grid',
|
|
208
|
-
),
|
|
209
|
-
),
|
|
262
|
+
'ta': ( utilities: ( 'justify': 'justify' ) ),
|
|
210
263
|
'p': ( utilities: ( 'box': '2em' ) ),
|
|
211
|
-
'
|
|
264
|
+
'filter': ( utilities: ( 'blur': 'blur(3px)' ) ),
|
|
265
|
+
'lts': ( utilities: ( '2xl': 'var(--lts--2xl)' ) ),
|
|
212
266
|
)
|
|
213
267
|
);
|
|
214
268
|
@use '../path-to/node_modules/lism-css/scss/main';
|
|
215
269
|
|
|
216
270
|
// トークン追記
|
|
217
271
|
@layer lism-base {
|
|
218
|
-
:root { --
|
|
272
|
+
:root { --lts--2xl: 0.15em; }
|
|
219
273
|
}
|
|
220
274
|
```
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|------|------|-----|
|
|
22
22
|
| 基本 | `--{prop}--{token}` | `--fz--l`, `--bdrs--20`, `--bxsh--10`, `--sz--s` |
|
|
23
23
|
| カラー | `--{color}` | `--brand`, `--text`, `--text-2`, `--red` |
|
|
24
|
-
|
|
|
24
|
+
| 余白 | `--s{Token}` | `--s10`, `--s40` |
|
|
25
25
|
|
|
26
26
|
トークンのバリエーション:
|
|
27
27
|
|
|
@@ -119,7 +119,7 @@ Lism CSS では、レイアウトを組み立てる小さな積み木として *
|
|
|
119
119
|
#### 補足
|
|
120
120
|
|
|
121
121
|
- 各 Primitive の詳細・使用例は [primitives/](./primitives/) 配下の個別ファイルを参照
|
|
122
|
-
- レスポンシブな値(配列指定)を使う場合は祖先要素に `is--container` が必須([
|
|
122
|
+
- レスポンシブな値(配列指定)を使う場合は祖先要素に `is--container` が必須([responsive.md](./responsive.md))
|
|
123
123
|
|
|
124
124
|
|
|
125
125
|
## Atomic Primitive(`a--`)
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
## 専用Props
|
|
13
13
|
|
|
14
|
-
`<Spacer
|
|
14
|
+
`<Spacer>`では **`w` / `h` に対してSPACEトークンの値**が使えます(他のコンポーネントではSIZEトークンが優先されるため、スペースサイズを直感的に指定できる特殊対応)。
|
|
15
15
|
|
|
16
16
|
## Usage
|
|
17
17
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<p>Content...</p>
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
### SPACE
|
|
32
|
+
### SPACEトークンを使う
|
|
33
33
|
|
|
34
34
|
```jsx
|
|
35
35
|
<p>Content...</p>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# -max-sz(最大幅)
|
|
2
2
|
|
|
3
|
-
コンテンツの最大幅(`max-inline-size`)を制御する Property Class。標準のコンテンツサイズトークン(`xs`〜`xl`)に加え、特殊挙動の `full` / `
|
|
3
|
+
コンテンツの最大幅(`max-inline-size`)を制御する Property Class。標準のコンテンツサイズトークン(`xs`〜`xl`)に加え、特殊挙動の `full` / `bleed` を持つ。
|
|
4
4
|
|
|
5
5
|
## 基本情報
|
|
6
6
|
|
|
7
|
-
- クラス名: `-max-sz:{xs|s|m|l|xl|full|
|
|
7
|
+
- クラス名: `-max-sz:{xs|s|m|l|xl|full|bleed}`
|
|
8
8
|
- Lism props: `max-sz`(`<Lism max-sz="m">` 等)
|
|
9
9
|
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/props/_size.scss
|
|
10
10
|
- 公式ドキュメント: https://lism-css.com/docs/property-class/max-sz.md
|
|
@@ -32,26 +32,30 @@
|
|
|
32
32
|
max-inline-size: 100%;
|
|
33
33
|
|
|
34
34
|
:where(.has--gutter) > & {
|
|
35
|
+
inline-size: auto;
|
|
35
36
|
max-inline-size: calc(100% + var(--gutter-size) * 2);
|
|
36
37
|
margin-inline: calc(var(--gutter-size) * -1);
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
```
|
|
40
41
|
|
|
41
|
-
`has--gutter`
|
|
42
|
+
`has--gutter` の内側で全幅画像・全幅バナーなどを配置したい時に使う。`inline-size: auto` は、親が `is--wrapper` の場合に当たる `inline-size: 100%` を打ち消し、負 margin による hang を効かせるためのリセット。
|
|
42
43
|
|
|
43
|
-
### `-max-sz:
|
|
44
|
+
### `-max-sz:bleed`
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
**最外側の `is--container` 幅**まで広がる。本文幅やネストされた container を突き抜け、ページ全体の full-bleed 表現を実現する。`is--container` が祖先に存在しない場合は、ビューポート幅(`100svi`)まで広がる fallback として動作する。
|
|
46
47
|
|
|
47
48
|
```scss
|
|
48
|
-
.-max-sz\:
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
.-max-sz\:bleed {
|
|
50
|
+
inline-size: auto;
|
|
51
|
+
max-inline-size: var(--sz--bleed, 100svi);
|
|
52
|
+
margin-inline: calc(50% - var(--sz--bleed, 100svi) / 2);
|
|
51
53
|
}
|
|
52
54
|
```
|
|
53
55
|
|
|
54
|
-
`
|
|
56
|
+
`--sz--bleed` は最外側の `is--container` 直下の子要素でだけ `100cqi` に上書きされ、ネストされた `is--container` は再度上書きしないため、内側の子要素は外側の値を inherit で参照する。
|
|
57
|
+
|
|
58
|
+
`margin-inline` で中央配置されるので、`is--wrapper` の内側にあっても最外側 container 基準の幅に広げつつ中央に揃う。`inline-size: auto` も同じく、`is--wrapper > *` で当たる `inline-size: 100%` を打ち消すためのリセット。
|
|
55
59
|
|
|
56
60
|
## Usage
|
|
57
61
|
|
|
@@ -74,14 +78,14 @@
|
|
|
74
78
|
</div>
|
|
75
79
|
```
|
|
76
80
|
|
|
77
|
-
### container
|
|
81
|
+
### 最外側 container 基準のサイズ(full-bleed)
|
|
78
82
|
|
|
79
83
|
```html
|
|
80
84
|
<div class="is--container">
|
|
81
85
|
<div class="is--wrapper -contentSize:s">
|
|
82
86
|
<p>狭めのコンテンツ</p>
|
|
83
|
-
<div class="-max-sz:
|
|
84
|
-
container
|
|
87
|
+
<div class="-max-sz:bleed">
|
|
88
|
+
最外側 container 幅まで広がる要素(ネストされた is--container も突き抜ける)
|
|
85
89
|
</div>
|
|
86
90
|
</div>
|
|
87
91
|
</div>
|
|
@@ -94,6 +98,6 @@
|
|
|
94
98
|
|
|
95
99
|
## 関連
|
|
96
100
|
|
|
97
|
-
- [`is--container`](../trait-class/is--container.md) — `-max-sz:
|
|
101
|
+
- [`is--container`](../trait-class/is--container.md) — `-max-sz:bleed` の基準となるコンテナ
|
|
98
102
|
- [`is--wrapper`](../trait-class/is--wrapper.md) — コンテンツ幅の制限
|
|
99
103
|
- [`has--gutter`](../trait-class/has--gutter.md) — `-max-sz:full` と組み合わせる左右余白
|
|
@@ -6,6 +6,7 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
6
6
|
## TOC
|
|
7
7
|
|
|
8
8
|
- [基本書式](#基本書式)
|
|
9
|
+
- [プリセット外の値をクラス化する(`:value` 記法、Lism Props 限定)](#プリセット外の値をクラス化するvalue-記法lism-props-限定)
|
|
9
10
|
- [表の読み方](#表の読み方)
|
|
10
11
|
- [全 Prop 一覧](#全-prop-一覧)
|
|
11
12
|
- [特殊な Property Class](#特殊な-property-class)
|
|
@@ -22,7 +23,7 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
22
23
|
|
|
23
24
|
- [property-class/bd.md](./property-class/bd.md) — ボーダー(`-bd` / `-bd-{side}` 系)
|
|
24
25
|
- [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:
|
|
26
|
+
- [property-class/max-sz.md](./property-class/max-sz.md) — 最大幅(`-max-sz:full` / `-max-sz:bleed` 等)
|
|
26
27
|
|
|
27
28
|
---
|
|
28
29
|
|
|
@@ -47,6 +48,16 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
|
|
51
|
+
### プリセット外の値をクラス化する(`:value` 記法、Lism Props 限定)
|
|
52
|
+
|
|
53
|
+
Lism コンポーネントの Propsに渡す値の頭に `:` を付けると、 **強制的に Property Class を出力**できる。cssを追記してトークン値を独自に増やした場合などに活用できる。
|
|
54
|
+
|
|
55
|
+
```jsx
|
|
56
|
+
<Text lts=":2xl">...</Text>
|
|
57
|
+
// → <p class="-lts:2xl">...</Text>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
|
|
50
61
|
## 表の読み方
|
|
51
62
|
|
|
52
63
|
| カラム | 説明 |
|
|
@@ -72,7 +83,7 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
72
83
|
| `fs` | `font-style` | `-fs:italic` | — |
|
|
73
84
|
| `lh` | `line-height`(`--hl` 経由) | `-lh:base`, `-lh:xs`, `-lh:s`, `-lh:l`, `-lh:1` | — |
|
|
74
85
|
| `hl` | `--hl` 変数のみ | — | `-hl_sm`, `-hl_md` |
|
|
75
|
-
| `lts` | `letter-spacing` | `-lts:base`, `-lts:s`, `-lts:l` | — |
|
|
86
|
+
| `lts` | `letter-spacing` | `-lts:base`, `-lts:s`, `-lts:l`, `-lts:xl` | — |
|
|
76
87
|
| `ta` | `text-align` | `-ta:center`, `-ta:left`, `-ta:right` | — |
|
|
77
88
|
| `td` | `text-decoration` | `-td:none` | — |
|
|
78
89
|
| `tt` | `text-transform` | `-tt:upper`, `-tt:lower` | — |
|
|
@@ -103,14 +114,14 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
103
114
|
| `max-h` | `max-height` | `-max-h:100%` | `-max-h_sm`, `-max-h_md` |
|
|
104
115
|
| `sz` | `inline-size` | — | — |
|
|
105
116
|
| `min-sz` | `min-inline-size` | — | — |
|
|
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:
|
|
117
|
+
| `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:bleed` | — |
|
|
107
118
|
| `bsz` | `block-size` | — | — |
|
|
108
119
|
| `min-bsz` | `min-block-size` | — | — |
|
|
109
120
|
| `max-bsz` | `max-block-size` | — | — |
|
|
110
121
|
|
|
111
122
|
**`max-sz` の特殊クラス:**
|
|
112
123
|
- `-max-sz:full` — `has--gutter` 内では gutter 分を含めた全幅に拡張
|
|
113
|
-
- `-max-sz:
|
|
124
|
+
- `-max-sz:bleed` — 最外側の `is--container` 幅まで広がる(`margin-inline` で中央配置、`is--container` 祖先がなければ `100svi` まで広がる)
|
|
114
125
|
|
|
115
126
|
→ 詳細は [property-class/max-sz.md](./property-class/max-sz.md) 参照
|
|
116
127
|
|
|
@@ -176,13 +187,13 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
176
187
|
| `i-y-s` | `inset-block-start` | — | — |
|
|
177
188
|
| `i-y-e` | `inset-block-end` | — | — |
|
|
178
189
|
|
|
179
|
-
###
|
|
190
|
+
### 余白 — Padding
|
|
180
191
|
|
|
181
192
|
| Prop | CSS プロパティ | プリセット値クラス | BP クラス |
|
|
182
193
|
|------|--------------|-------------|-----|
|
|
183
|
-
| `p` | `padding` | `-p:0`, `-p:5`, `-p:10`, `-p:20`, ... (SPACE
|
|
184
|
-
| `px` | `padding-inline` | `-px:0`, `-px:5`, `-px:10`, `-px:20`, ... (SPACE
|
|
185
|
-
| `py` | `padding-block` | `-py:0`, `-py:5`, `-py:10`, `-py:20`, ... (SPACE
|
|
194
|
+
| `p` | `padding` | `-p:0`, `-p:5`, `-p:10`, `-p:20`, ... (SPACEトークン) | `-p_sm`, `-p_md` |
|
|
195
|
+
| `px` | `padding-inline` | `-px:0`, `-px:5`, `-px:10`, `-px:20`, ... (SPACEトークン) | `-px_sm`, `-px_md` |
|
|
196
|
+
| `py` | `padding-block` | `-py:0`, `-py:5`, `-py:10`, `-py:20`, ... (SPACEトークン) | `-py_sm`, `-py_md` |
|
|
186
197
|
| `px-s` | `padding-inline-start` | — | `-px-s_sm`, `-px-s_md` |
|
|
187
198
|
| `px-e` | `padding-inline-end` | — | `-px-e_sm`, `-px-e_md` |
|
|
188
199
|
| `py-s` | `padding-block-start` | — | `-py-s_sm`, `-py-s_md` |
|
|
@@ -192,18 +203,18 @@ CSS Layer の外(最も高い詳細度)に配置され、`-{prop}(:{value})`
|
|
|
192
203
|
| `pt` | `padding-top` | — | `-pt_sm`, `-pt_md` |
|
|
193
204
|
| `pb` | `padding-bottom` | — | `-pb_sm`, `-pb_md` |
|
|
194
205
|
|
|
195
|
-
SPACE
|
|
206
|
+
SPACEトークン(全値): `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `50`, `60`, `70`, `80`
|
|
196
207
|
|
|
197
|
-
###
|
|
208
|
+
### 余白 — Margin
|
|
198
209
|
|
|
199
210
|
| Prop | CSS プロパティ | プリセット値クラス | BP クラス |
|
|
200
211
|
|------|--------------|-------------|-----|
|
|
201
|
-
| `m` | `margin` | `-m:auto`, `-m:0`, `-m:5`, `-m:10`, `-m:20`, ... (SPACE
|
|
202
|
-
| `mx` | `margin-inline` | `-mx:auto`, `-mx:0`, `-mx:5`, `-mx:10`, `-mx:20`, ... (SPACE
|
|
203
|
-
| `my` | `margin-block` | `-my:auto`, `-my:0`, `-my:5`, `-my:10`, `-my:20`, ... (SPACE
|
|
212
|
+
| `m` | `margin` | `-m:auto`, `-m:0`, `-m:5`, `-m:10`, `-m:20`, ... (SPACEトークン) | `-m_sm`, `-m_md` |
|
|
213
|
+
| `mx` | `margin-inline` | `-mx:auto`, `-mx:0`, `-mx:5`, `-mx:10`, `-mx:20`, ... (SPACEトークン) | `-mx_sm`, `-mx_md` |
|
|
214
|
+
| `my` | `margin-block` | `-my:auto`, `-my:0`, `-my:5`, `-my:10`, `-my:20`, ... (SPACEトークン) | `-my_sm`, `-my_md` |
|
|
204
215
|
| `mx-s` | `margin-inline-start` | `-mx-s:auto` | `-mx-s_sm`, `-mx-s_md` |
|
|
205
216
|
| `mx-e` | `margin-inline-end` | `-mx-e:auto` | `-mx-e_sm`, `-mx-e_md` |
|
|
206
|
-
| `my-s` | `margin-block-start` | `-my-s:auto`, `-my-s:0`, `-my-s:5`, `-my-s:10`, `-my-s:20`, ... (SPACE
|
|
217
|
+
| `my-s` | `margin-block-start` | `-my-s:auto`, `-my-s:0`, `-my-s:5`, `-my-s:10`, `-my-s:20`, ... (SPACEトークン) | `-my-s_sm`, `-my-s_md` |
|
|
207
218
|
| `my-e` | `margin-block-end` | `-my-e:auto` | `-my-e_sm`, `-my-e_md` |
|
|
208
219
|
| `ml` | `margin-left` | — | `-ml_sm`, `-ml_md` |
|
|
209
220
|
| `mr` | `margin-right` | — | `-mr_sm`, `-mr_md` |
|
|
@@ -214,7 +225,7 @@ SPACE トークン(全値): `5`, `10`, `15`, `20`, `30`, `40`, `50`, `60`, `
|
|
|
214
225
|
|
|
215
226
|
| Prop | CSS プロパティ | プリセット値クラス | BP クラス |
|
|
216
227
|
|------|--------------|-------------|-----|
|
|
217
|
-
| `g` | `gap` | `-g:0`, `-g:inherit`, `-g:5`, `-g:10`, `-g:20`, ... (SPACE
|
|
228
|
+
| `g` | `gap` | `-g:0`, `-g:inherit`, `-g:5`, `-g:10`, `-g:20`, ... (SPACEトークン) | `-g_sm`, `-g_md` |
|
|
218
229
|
| `cg` | `column-gap` | — | `-cg_sm`, `-cg_md` |
|
|
219
230
|
| `rg` | `row-gap` | — | `-rg_sm`, `-rg_md` |
|
|
220
231
|
|
|
@@ -364,4 +375,3 @@ Property Class をコードベース全体で一括修正する場合、同じ P
|
|
|
364
375
|
| JSX Props | `p="20"` / `p={20}` / `p={[20, 30]}` |
|
|
365
376
|
| getLismProps オブジェクト | `{ p: '20' }` / `{ p: 20 }` |
|
|
366
377
|
|
|
367
|
-
|
|
@@ -1,20 +1,55 @@
|
|
|
1
1
|
# レスポンシブ対応
|
|
2
2
|
|
|
3
|
-
Lism CSS
|
|
4
|
-
ブレークポイント: `sm: 480px`, `md: 800px`(`lg: 1120px` はカスタマイズにより利用可能)
|
|
3
|
+
Lism CSS は**コンテナクエリ**をデフォルトで採用しています(メディアクエリへの切り替えは customize.md を参照)。
|
|
5
4
|
|
|
6
5
|
## TOC
|
|
7
6
|
|
|
7
|
+
- [ブレイクポイント](#ブレイクポイント)
|
|
8
8
|
- [HTML / Property Class での指定](#html--property-class-での指定)
|
|
9
9
|
- [Lism コンポーネントでの指定](#lism-コンポーネントでの指定)
|
|
10
10
|
|
|
11
|
-
[詳細](https://lism-css.com/docs/responsive
|
|
11
|
+
[詳細](https://lism-css.com/docs/responsive/)
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
+
## ブレイクポイント
|
|
16
|
+
|
|
17
|
+
**モバイルファースト**で定義。各ラベルは「**そのサイズを超えた時から効く**」セマンティクスです(`sm` は「スマホ専用」ではなく「`sm` を超えたサイズで効く」ラベル)。**特定デバイスサイズに依存しないシンプルな閾値**を採用しています。
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Smartphone ──┬── Tablet (Portrait) ──┬── Tablet (Landscape) ──┬── Laptop and up
|
|
21
|
+
│ │ │
|
|
22
|
+
sm:480px md:800px (lg:1120px)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
| BP | 値 | 効くタイミング |
|
|
26
|
+
|----|-----|----------------|
|
|
27
|
+
| `sm` | 480px | sm 以上 |
|
|
28
|
+
| `md` | 800px | md 以上 |
|
|
29
|
+
| (`lg`) | 1120px | lg 以上 |
|
|
30
|
+
|
|
31
|
+
**標準サポートは `sm` / `md` のみ。** `lg` 以降を使う場合は customize.md 参照の SCSS カスタマイズが必要です。
|
|
32
|
+
|
|
33
|
+
例: `-d:none -d_sm:block` → デフォルト非表示、`sm` 以上で表示。
|
|
34
|
+
|
|
35
|
+
### SCSS から利用する
|
|
36
|
+
|
|
37
|
+
ブレイクポイント自体を SCSS で参照する場合は `query` モジュール経由:
|
|
38
|
+
|
|
39
|
+
```scss
|
|
40
|
+
@use 'lism-css/scss/query' as query;
|
|
41
|
+
|
|
42
|
+
@include query.bp-up('sm') {
|
|
43
|
+
// sm 以上で効くスタイル(width >= 480px)
|
|
44
|
+
}
|
|
45
|
+
@include query.bp-up('md') {
|
|
46
|
+
// md 以上で効くスタイル(width >= 800px)
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
15
50
|
## HTML / Property Class での指定
|
|
16
51
|
|
|
17
|
-
|
|
52
|
+
ブレイクポイント用のクラス `-{prop}_{bp}` と CSS変数 `--{prop}_{bp}` を組み合わせます。
|
|
18
53
|
|
|
19
54
|
```html
|
|
20
55
|
<!-- sm 以上で p:30, md 以上で p:40 に切り替え -->
|
|
@@ -30,6 +65,7 @@ Lism CSS はコンテナクエリをデフォルトで採用しています。
|
|
|
30
65
|
|
|
31
66
|
**仕組み:**
|
|
32
67
|
- BPクラス `-{prop}_{bp}` は `@container (min-width: ...)` 内で発火し、`--{prop}_{bp}` 変数で切り替え先の値を指定
|
|
68
|
+
- コンテナクエリ採用のため、レスポンシブ値を使うには祖先要素に `is--container` などコンテナ宣言が必要
|
|
33
69
|
- 出力形式はプロパティによって 2 パターン(基本 / 例外)
|
|
34
70
|
|
|
35
71
|
**基本パターン** — BP 用変数を直接読む:
|
|
@@ -10,9 +10,9 @@ set-- は目的別に 2 カテゴリに分かれます。
|
|
|
10
10
|
| カテゴリ | 用途 | クラス |
|
|
11
11
|
|---------|------|--------|
|
|
12
12
|
| 基礎スタイリング | HTML 要素のリセット/リバート | `set--plain` / `set--revert` |
|
|
13
|
-
| 変数のセット | CSS 変数のセットアップのみを行う | `set--var:bxsh` / `set--var:hov` / `set--var:bdrsInner` |
|
|
13
|
+
| 変数のセット | CSS 変数のセットアップのみを行う | `set--var:bxsh` / `set--var:hov` / `set--var:bdrsInner` / `set--var:s` |
|
|
14
14
|
|
|
15
|
-
`set--var:{name}` の `{name}` は、そのクラスがセットアップする CSS 変数の名称に対応します(例: `--bxsh--*` → `var:bxsh`、`--_isHov` / `--_notHov` → `var:hov`、`--bdrs--inner` → `var:bdrsInner`)。
|
|
15
|
+
`set--var:{name}` の `{name}` は、そのクラスがセットアップする CSS 変数の名称に対応します(例: `--bxsh--*` → `var:bxsh`、`--_isHov` / `--_notHov` → `var:hov`、`--bdrs--inner` → `var:bdrsInner`、`--s*` → `var:s`)。
|
|
16
16
|
|
|
17
17
|
## TOC
|
|
18
18
|
|
|
@@ -21,6 +21,7 @@ set-- は目的別に 2 カテゴリに分かれます。
|
|
|
21
21
|
- [`set--var:bxsh`](#set--varbxsh)
|
|
22
22
|
- [`set--var:hov`](#set--varhov)
|
|
23
23
|
- [`set--var:bdrsInner`](#set--varbdrsinner)
|
|
24
|
+
- [`set--var:s`](#set--vars)
|
|
24
25
|
|
|
25
26
|
[詳細](https://lism-css.com/docs/set-class.md)
|
|
26
27
|
|
|
@@ -37,6 +38,7 @@ set-- は目的別に 2 カテゴリに分かれます。
|
|
|
37
38
|
| `set--var:bxsh` | [`_shadow.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_shadow.scss) |
|
|
38
39
|
| `set--var:hov` | [`_hov.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_hov.scss) |
|
|
39
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) |
|
|
40
42
|
|
|
41
43
|
---
|
|
42
44
|
|
|
@@ -158,3 +160,20 @@ Lism CSSでは、クラスを持つリスト(`ul` / `ol`)ではスタイル
|
|
|
158
160
|
<Lism bdrs="inner">...</Lism>
|
|
159
161
|
</Lism>
|
|
160
162
|
```
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
## `set--var:s`
|
|
166
|
+
|
|
167
|
+
余白トークン(`--s5`〜`--s80`)を現在のフォントサイズ基準で再計算するためのクラスです。ButtonやBadgeなど、内部余白を要素自身のfont-sizeに追従させたい時に利用します。
|
|
168
|
+
|
|
169
|
+
詳細なスケールと使い方は[tokens.mdの`set--var:s`ユーティリティ](./tokens.md#set--vars-ユーティリティ)を参照してください。
|
|
170
|
+
|
|
171
|
+
使用例:
|
|
172
|
+
|
|
173
|
+
```html
|
|
174
|
+
<button class="set--var:s -fz:s -py:10 -px:20">...</button>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
```jsx
|
|
178
|
+
<Button set="var:s" fz="s" py="10" px="20">...</Button>
|
|
179
|
+
```
|