@lism-css/mcp 0.22.0 → 0.24.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/README.ja.md +15 -15
- package/README.md +5 -5
- package/dist/data/docs-index.json +232 -96
- package/dist/data/guides/SKILL.md +162 -224
- package/dist/data/guides/antipatterns-layout.md +268 -0
- package/dist/data/guides/antipatterns.md +118 -196
- package/dist/data/guides/base-styles.md +14 -12
- package/dist/data/guides/components-core.md +26 -8
- package/dist/data/guides/components-ui.md +28 -24
- package/dist/data/guides/css-rules.md +40 -57
- package/dist/data/guides/customize.md +121 -37
- package/dist/data/guides/naming.md +23 -42
- package/dist/data/guides/primitive-class.md +5 -5
- package/dist/data/guides/primitives/a--decorator.md +2 -28
- package/dist/data/guides/primitives/a--divider.md +1 -52
- package/dist/data/guides/primitives/a--icon.md +2 -76
- package/dist/data/guides/primitives/a--spacer.md +1 -49
- package/dist/data/guides/primitives/l--autoColumns.md +7 -54
- package/dist/data/guides/primitives/l--box.md +1 -21
- package/dist/data/guides/primitives/l--center.md +6 -39
- package/dist/data/guides/primitives/l--cluster.md +6 -26
- package/dist/data/guides/primitives/l--columns.md +7 -56
- package/dist/data/guides/primitives/l--flex.md +5 -62
- package/dist/data/guides/primitives/l--flow.md +11 -72
- package/dist/data/guides/primitives/l--frame.md +7 -78
- package/dist/data/guides/primitives/l--grid.md +5 -56
- package/dist/data/guides/primitives/l--stack.md +5 -44
- package/dist/data/guides/primitives/l--switchColumns.md +8 -53
- package/dist/data/guides/primitives/l--tileGrid.md +7 -44
- package/dist/data/guides/primitives/l--withSide.md +9 -79
- package/dist/data/guides/property-class/all-props.md +244 -0
- package/dist/data/guides/property-class/bd.md +5 -70
- package/dist/data/guides/property-class/hov.md +14 -73
- package/dist/data/guides/property-class/max-sz.md +3 -39
- package/dist/data/guides/property-class.md +31 -249
- package/dist/data/guides/references/authoring.md +246 -0
- package/dist/data/guides/references/page-sections.md +99 -0
- package/dist/data/guides/references/verification.md +73 -0
- package/dist/data/guides/responsive.md +68 -20
- package/dist/data/guides/set-class.md +2 -12
- package/dist/data/guides/tokens.md +31 -31
- package/dist/data/guides/trait-class/has--gutter.md +3 -31
- package/dist/data/guides/trait-class/has--mask.md +3 -36
- package/dist/data/guides/trait-class/has--snap.md +3 -34
- package/dist/data/guides/trait-class/has--transition.md +3 -41
- package/dist/data/guides/trait-class/is--boxLink.md +2 -63
- package/dist/data/guides/trait-class/is--container.md +2 -29
- package/dist/data/guides/trait-class/is--layer.md +1 -57
- package/dist/data/guides/trait-class/is--wrapper.md +11 -60
- package/dist/data/guides/trait-class.md +8 -8
- package/dist/data/guides/utility-class.md +1 -1
- package/dist/data/meta.js +4 -3
- package/dist/index.js +4 -1
- package/dist/lib/load-markdown.d.ts +4 -0
- package/dist/lib/load-markdown.js +10 -0
- package/dist/lib/markdown-utils.d.ts +1 -1
- package/dist/lib/response.d.ts +5 -0
- package/dist/lib/response.js +15 -2
- package/dist/lib/schemas.d.ts +35 -0
- package/dist/lib/schemas.js +13 -0
- package/dist/lib/search.d.ts +2 -0
- package/dist/lib/search.js +45 -2
- package/dist/lib/types.d.ts +5 -21
- package/dist/lib/version.d.ts +2 -0
- package/dist/lib/version.js +8 -0
- package/dist/tools/convert-css.js +38 -15
- package/dist/tools/get-component.js +2 -2
- package/dist/tools/get-guide.d.ts +2 -0
- package/dist/tools/get-guide.js +40 -17
- package/dist/tools/get-overview.js +2 -2
- package/dist/tools/get-props-system.js +8 -6
- package/dist/tools/get-tokens.js +2 -2
- package/dist/tools/search-docs.js +13 -7
- package/package.json +17 -2
|
@@ -9,7 +9,13 @@
|
|
|
9
9
|
- [`lism.config.js` でのカスタマイズ](#lismconfigjs-でのカスタマイズ)
|
|
10
10
|
- [追加スタイルを読み込ませる方法](#追加スタイルを読み込ませる方法)
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
詳細(公式ドキュメント):
|
|
13
|
+
|
|
14
|
+
- 概要: [https://lism-css.com/docs/customize/](https://lism-css.com/docs/customize/)
|
|
15
|
+
- CSSビルドの選択(`@layer` / `full.css` / `isFullMode`): [https://lism-css.com/docs/customize/build/](https://lism-css.com/docs/customize/build/)
|
|
16
|
+
- `lism.config.js`(props / tokens / traits・breakpoints・追加スタイル): [https://lism-css.com/docs/customize/config/](https://lism-css.com/docs/customize/config/)
|
|
17
|
+
- SCSS(`$setting` / `$props`・BP上書き): [https://lism-css.com/docs/customize/scss/](https://lism-css.com/docs/customize/scss/)
|
|
18
|
+
- CSS Purge: [https://lism-css.com/docs/customize/purge/](https://lism-css.com/docs/customize/purge/)
|
|
13
19
|
|
|
14
20
|
---
|
|
15
21
|
|
|
@@ -38,9 +44,8 @@ import 'lism-css/main_no_layer.css';
|
|
|
38
44
|
### 上書き可能な変数
|
|
39
45
|
|
|
40
46
|
| 変数 | 用途 | デフォルト |
|
|
41
|
-
|
|
42
|
-
| `$breakpoints` |
|
|
43
|
-
| `$common_support_bp` | 主要な Property Class が共通サポートするブレイクポイント上限 | `'md'` |
|
|
47
|
+
| --- | --- | --- |
|
|
48
|
+
| `$breakpoints` | ブレイクポイント数値の定義(`0` は無効=クエリを出力しない) | `('xs': 0, 'sm': '480px', 'md': '800px', 'lg': '1120px', 'xl': 0)` |
|
|
44
49
|
| `$is_container_query` | コンテナクエリで出力するか(`1` = container query, `0` = media query) | `1` |
|
|
45
50
|
| `$default_important` | Property Class にデフォルトで `!important` を付与するか | `0` |
|
|
46
51
|
| `$props` | Property Class ごとの個別出力設定 | `prop-config` のデフォルト |
|
|
@@ -53,7 +58,6 @@ import 'lism-css/main_no_layer.css';
|
|
|
53
58
|
$breakpoints: (
|
|
54
59
|
'sm': '400px', // 個別キーの上書き可
|
|
55
60
|
),
|
|
56
|
-
$common_support_bp: 'lg',
|
|
57
61
|
$is_container_query: 0,
|
|
58
62
|
$default_important: 1,
|
|
59
63
|
$props: (
|
|
@@ -69,7 +73,7 @@ import 'lism-css/main_no_layer.css';
|
|
|
69
73
|
|
|
70
74
|
### `$props` の個別カスタマイズ
|
|
71
75
|
|
|
72
|
-
各 Property Class
|
|
76
|
+
各 Property Class について、出力するブレイクポイントを絞ったり、ユーティリティクラスを追加したりできます。
|
|
73
77
|
|
|
74
78
|
```scss
|
|
75
79
|
@use '../path-to/node_modules/lism-css/scss/setting' with (
|
|
@@ -81,7 +85,7 @@ import 'lism-css/main_no_layer.css';
|
|
|
81
85
|
bp: 0, // .-h_sm 等のブレイクポイント版を出力しない
|
|
82
86
|
),
|
|
83
87
|
'p': (
|
|
84
|
-
bp: '
|
|
88
|
+
bp: ('sm', 'md'), // BP対応クラスを .-p_sm / .-p_md だけに限定(bp は 0 / 1 / BPキーのリストのみ)
|
|
85
89
|
utilities: (
|
|
86
90
|
'box': '2em', // .-p:box { --p: 2em } を追加
|
|
87
91
|
),
|
|
@@ -98,32 +102,90 @@ SCSS を直接読み込む構成では、コンパイル時に `lism-css` 本体
|
|
|
98
102
|
|
|
99
103
|
## `lism.config.js` でのカスタマイズ
|
|
100
104
|
|
|
101
|
-
プロジェクトのルート直下に `lism.config.js`(または `lism.config.mjs`)を置くことで、**コンポーネントの挙動**(受け付ける props の値や、出力されるクラス名)をカスタマイズできます。
|
|
105
|
+
プロジェクトのルート直下に `lism.config.js`(または `lism.config.ts` / `lism.config.mjs`)を置くことで、**コンポーネントの挙動**(受け付ける props の値や、出力されるクラス名)をカスタマイズできます。
|
|
106
|
+
|
|
107
|
+
設定ファイルの型チェック・補完には `lism-css/config-types` の `LismConfig` 型を使います。`.ts` は `export default { ... } satisfies LismConfig`、`.js` は `/** @type {import('lism-css/config-types').LismConfig} */` を付けると、キー名の typo や値の形をエディタが検出します(コンポーネント側の prop/trait を解禁する生成物 `lism-env.d.ts` とは別物)。
|
|
102
108
|
|
|
103
|
-
|
|
109
|
+
### Vite / Astro プラグインの登録(推奨セットアップ)
|
|
104
110
|
|
|
105
|
-
|
|
111
|
+
`lism.config.js` を読み込ませるには、Vite(または Astro)の設定ファイルで `@lism-css/plugin` の統合プラグインを登録します。**未登録の場合、ファイルを置いてもデフォルト設定のまま**になります。
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
pnpm add -D @lism-css/plugin
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```js
|
|
118
|
+
// vite.config.js
|
|
119
|
+
import { defineConfig } from 'vite';
|
|
120
|
+
import { lismCss } from '@lism-css/plugin/vite';
|
|
106
121
|
|
|
107
|
-
|
|
122
|
+
export default defineConfig({
|
|
123
|
+
plugins: [lismCss()],
|
|
124
|
+
});
|
|
125
|
+
```
|
|
108
126
|
|
|
109
127
|
```js
|
|
110
128
|
// astro.config.mjs
|
|
111
129
|
import { defineConfig } from 'astro/config';
|
|
112
|
-
import lismCss from 'lism-css/
|
|
130
|
+
import { lismCss } from '@lism-css/plugin/astro';
|
|
113
131
|
|
|
114
132
|
export default defineConfig({
|
|
115
|
-
|
|
116
|
-
plugins: [lismCss()],
|
|
117
|
-
},
|
|
133
|
+
integrations: [lismCss()],
|
|
118
134
|
});
|
|
119
135
|
```
|
|
120
136
|
|
|
121
|
-
|
|
137
|
+
この統合プラグイン1つで、以下がまとめて有効になります。
|
|
138
|
+
|
|
139
|
+
- **config alias**: コンポーネント(JS ランタイム)が `lism.config.js` を読み込めるようになる
|
|
140
|
+
- **動的CSSビルド**: `import 'lism-css/main.css'` 等を捕捉し、`lism.config.js` を反映済みの CSS をその場で生成する(props / tokens を追加すると CSS に自動反映される)
|
|
141
|
+
- **型の自動生成**: 有効化したブレイクポイント・追加した props / traits を反映した `lism-env.d.ts` を起動時に自動生成する
|
|
142
|
+
|
|
143
|
+
設定ファイルはプロジェクトルートから `lism.config.ts` → `lism.config.mjs` → `lism.config.js` の順で自動検出します。別の場所に置く場合は `configPath` で指定できます。
|
|
122
144
|
|
|
123
145
|
```js
|
|
146
|
+
// Vite
|
|
124
147
|
plugins: [lismCss({ configPath: './config/lism.config.js' })],
|
|
148
|
+
// Astro
|
|
149
|
+
integrations: [lismCss({ configPath: './config/lism.config.js' })],
|
|
125
150
|
```
|
|
126
151
|
|
|
152
|
+
### Next.js(16 以降)での導入
|
|
153
|
+
|
|
154
|
+
Next.js には Vite / Astro のような「import をその場で変換する仕組み」が無いため、`@lism-css/plugin/next` の `withLism()` で `next.config.mjs` をラップします。`lism.config.js` を反映した CSS を `.lism-css/css/` へ事前生成し、`lism-css/main.css` 等の import をその生成物へ alias します(型生成・dev 中の config 変更追従も含む)。
|
|
155
|
+
|
|
156
|
+
```js
|
|
157
|
+
// next.config.mjs
|
|
158
|
+
import { withLism } from '@lism-css/plugin/next';
|
|
159
|
+
|
|
160
|
+
export default withLism({ /* nextConfig */ });
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
- `app/layout.tsx` などで `import 'lism-css/main.css'` をグローバル読み込みする。
|
|
164
|
+
- `.lism-css/` は `.gitignore`、`lism-env.d.ts` は `tsconfig.json` の `include` に追加してコミットする。
|
|
165
|
+
- CSS purge は現状 Vite / Astro のみ対応(Next.js は未対応)。
|
|
166
|
+
|
|
167
|
+
### ブレイクポイントの有効化(xs / xl)
|
|
168
|
+
|
|
169
|
+
デフォルトのブレイクポイントは **`xs: 0`(無効) / `sm: 480px` / `md: 800px` / `lg: 1120px` / `xl: 0`(無効)** です。値 `0` は「無効=CSSクエリを出力しない」を表します。
|
|
170
|
+
|
|
171
|
+
`xs` / `xl` を有効にするには、`lism.config.js` の `breakpoints` にサイズを差分指定するだけで済みます。
|
|
172
|
+
|
|
173
|
+
```js
|
|
174
|
+
// lism.config.js
|
|
175
|
+
export default {
|
|
176
|
+
breakpoints: {
|
|
177
|
+
xs: '360px', // xs を有効化
|
|
178
|
+
xl: '1400px', // xl を有効化
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
これだけで、ブレイクポイント対応の全 Property Class が `xs` / `xl` のレスポンシブクラス(`-p_xs` / `-p_xl` 等)も出力するようになります。prop ごとの個別指定は不要です。
|
|
184
|
+
|
|
185
|
+
統合プラグイン(型自動生成が有効)を使っている場合、有効化したブレイクポイントを反映した `lism-env.d.ts` がプロジェクト直下に**自動生成**されます。型補完も有効化したブレイクポイントのキーを自動で提示するため、`BreakpointRegistry` をプロジェクト側の `.d.ts` で手書き拡張する必要はありません。`lism-env.d.ts` は git にコミットしてください(`astro check` 等の型チェックがこのファイルを拠り所にします)。
|
|
186
|
+
|
|
187
|
+
> SCSS を直接利用する構成では、`@use 'lism-css/scss/setting' with ($breakpoints: ...)` で有効化する方法も引き続き利用できます([SCSS でのカスタマイズ](#scss-でのカスタマイズ) を参照)。
|
|
188
|
+
|
|
127
189
|
### フォーマット
|
|
128
190
|
|
|
129
191
|
```js
|
|
@@ -133,7 +195,7 @@ export default {
|
|
|
133
195
|
// Property Class の出力をカスタマイズ
|
|
134
196
|
},
|
|
135
197
|
tokens: {
|
|
136
|
-
//
|
|
198
|
+
// トークンを { key: value } の値マップで定義(CSS変数の値出力・ユーティリティ生成・props受理を一括)
|
|
137
199
|
},
|
|
138
200
|
traits: {
|
|
139
201
|
// Trait(is--* / has--*)用の props を追加
|
|
@@ -152,7 +214,7 @@ export default {
|
|
|
152
214
|
```js
|
|
153
215
|
// lism.config.js
|
|
154
216
|
import DEFAULT_CONFIG from 'lism-css/default-config';
|
|
155
|
-
const { props
|
|
217
|
+
const { props } = DEFAULT_CONFIG;
|
|
156
218
|
|
|
157
219
|
export default {
|
|
158
220
|
props: {
|
|
@@ -164,8 +226,12 @@ export default {
|
|
|
164
226
|
filter: { utils: { blur: 'blur(3px)' } },
|
|
165
227
|
},
|
|
166
228
|
tokens: {
|
|
167
|
-
//
|
|
168
|
-
lts:
|
|
229
|
+
// トークンは { key: value } の値マップで定義(既定に deep-merge される)
|
|
230
|
+
// → :root { --lts--2xl: .5em } を出力し、tokenClass:1 の lts は -lts:2xl も自動生成される
|
|
231
|
+
lts: { '2xl': '.5em' },
|
|
232
|
+
// space は --s{key}、color は --{key} の変数名で出力される
|
|
233
|
+
space: { '90': '6rem' }, // → --s90: 6rem
|
|
234
|
+
color: { success: 'oklch(0.6 0.15 150)' }, // → --success: ...
|
|
169
235
|
},
|
|
170
236
|
traits: {
|
|
171
237
|
isHoge: 'is--hoge',
|
|
@@ -176,7 +242,7 @@ export default {
|
|
|
176
242
|
これによってコンポーネント側で次のような挙動が追加されます:
|
|
177
243
|
|
|
178
244
|
| 入力 | 出力されるクラス |
|
|
179
|
-
|
|
245
|
+
| --- | --- |
|
|
180
246
|
| `ta="justify"` | `-ta:justify` |
|
|
181
247
|
| `p="box"` | `-p:box` |
|
|
182
248
|
| `filter="blur"` | `-filter:blur` |
|
|
@@ -188,23 +254,37 @@ export default {
|
|
|
188
254
|
// → <div class="l--box is--hoge -p:box -ta:justify -filter:blur -lts:2xl">Box</div>
|
|
189
255
|
```
|
|
190
256
|
|
|
257
|
+
### 追加した prop / trait の型解禁
|
|
258
|
+
|
|
259
|
+
統合プラグイン(型自動生成が有効)を使っている場合、`lism.config.js` で追加した **prop / trait も `lism-env.d.ts` 経由で型側に自動解禁**されます(`CustomPropRegistry` / `CustomTraitRegistry` の拡張として出力)。そのため上記の `<Box filter="blur" ... isHoge>` のような新規 prop / trait も、エディタや `astro check` で型エラーになりません。手書きの型拡張は不要です。
|
|
260
|
+
|
|
261
|
+
なお、既存 prop への値追加(`ta="justify"` 等)はもともと任意の文字列を受け付けるため、型エラーにはなりません(ただし補完候補には出ません)。
|
|
262
|
+
|
|
191
263
|
|
|
192
264
|
## 追加スタイルを読み込ませる方法
|
|
193
265
|
|
|
194
|
-
`lism.config.js` で props
|
|
266
|
+
`lism.config.js` で props を増やしただけでは、対応するユーティリティクラスのスタイルが必要になります。構成によって反映方法が異なります。
|
|
195
267
|
|
|
196
|
-
###
|
|
268
|
+
### Vite / Astro(統合プラグイン使用時)は自動反映(手動ビルド不要)
|
|
197
269
|
|
|
198
|
-
|
|
270
|
+
`@lism-css/plugin` の統合プラグインを登録している場合、`lism.config.js` に props / tokens を追加すると、**dev サーバ / ビルドの CSS に自動反映されます**。追加クラス分の CSS を手動で追記したり `npx lism-css build` を回したりする必要はありません。dev 中に `lism.config.js` を変更すると HMR で CSS が再生成され、型 `.d.ts` も追従します。
|
|
199
271
|
|
|
200
|
-
|
|
201
|
-
/* global.css */
|
|
202
|
-
@layer lism-base {
|
|
203
|
-
:root {
|
|
204
|
-
--lts--2xl: 0.15em;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
272
|
+
参照先の **CSS 変数の値そのもの**(`:root { --lts--2xl: .5em }` のような定義)も、`tokens` に値を書けば自動生成されます。値の定義・ユーティリティ生成・props 受理がまとめて反映されるため、`global.css` への手書きは不要です(既定値の上書きも可能)。
|
|
207
273
|
|
|
274
|
+
```js
|
|
275
|
+
// lism.config.js — 値そのものも config に集約できる
|
|
276
|
+
export default {
|
|
277
|
+
tokens: {
|
|
278
|
+
lts: { '2xl': '.5em' }, // :root { --lts--2xl: .5em } + .-lts:2xl を自動生成
|
|
279
|
+
},
|
|
280
|
+
};
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
> `is--*` クラスのスタイルは `traits` ではクラス名のみを追加するため、対応するスタイルは別途必要です(後述の手動追記 / SCSS を参照)。
|
|
284
|
+
|
|
285
|
+
軽微な追加であれば、props を増やさず Lism Props の `:value` 記法(→ [property-class.md](./property-class.md))と `global.css` への手書きだけで済ませることもできます。
|
|
286
|
+
|
|
287
|
+
```css
|
|
208
288
|
/* Property Class は @layer を付けない */
|
|
209
289
|
.-lts\:2xl {
|
|
210
290
|
letter-spacing: var(--lts--2xl);
|
|
@@ -215,12 +295,15 @@ export default {
|
|
|
215
295
|
<Text lts=":2xl">...</Text>
|
|
216
296
|
```
|
|
217
297
|
|
|
218
|
-
|
|
298
|
+
### CLI コマンドで CSS を再ビルド(Vite / Astro を使わない構成)
|
|
299
|
+
|
|
300
|
+
純 SCSS 構成や他バンドラなど、Vite / Astro の統合プラグインを使わない構成では、`@lism-css/plugin` が提供する `npx lism-css build` が `lism.config.js` を CSS に反映するための正規の手段です。
|
|
219
301
|
|
|
220
|
-
|
|
302
|
+
webpack 主導のバンドラ(`@wordpress/scripts` 等)では `@lism-css/plugin/webpack` の `withLismWebpack()` で webpack config をラップできます。自前の SCSS ビルドで config 適用済みの `setting` を `@use` したい構成では、`@lism-css/plugin/builder` の `generateLismScss()` が bridge SCSS(`@use 'lism-setting'`)を生成します。
|
|
221
303
|
|
|
222
304
|
```bash
|
|
223
|
-
npx lism-css build
|
|
305
|
+
npx lism-css build # lism.config.js 反映の CSS を再生成
|
|
306
|
+
npx lism-css build --full # full.css / full_no_layer.css も生成
|
|
224
307
|
```
|
|
225
308
|
|
|
226
309
|
`lism.config.js` の内容に基づいて `lism-css/main.css` を再生成します。上記カスタマイズ例だと、以下のスタイルが自動生成されます:
|
|
@@ -233,10 +316,11 @@ npx lism-css build
|
|
|
233
316
|
```
|
|
234
317
|
|
|
235
318
|
> **注意**:
|
|
236
|
-
> -
|
|
319
|
+
> - `tokens` に値を書けば、`-lts:2xl` の **ユーティリティクラス**と、参照先の CSS 変数(`:root { --lts--2xl: .5em }` のような **値そのもの**)の両方が CLI ビルドでも出力されます。値が `'-'` のキーはカタログ登録のみで `:root` 宣言を出力しません(実値は手書きSCSS側)。
|
|
320
|
+
> - `is--*` クラスのスタイルは自動生成されないため、手動で追加してください。
|
|
237
321
|
> - `lism-css` パッケージ自体を上書きする処理のため、**パッケージ更新ごとに再実行**が必要です。
|
|
238
322
|
|
|
239
|
-
###
|
|
323
|
+
### 手動で CSS を追記
|
|
240
324
|
|
|
241
325
|
CLI を使わず、追加クラス分の CSS をプロジェクト側で書いて読み込ませる方法でも問題ありません。
|
|
242
326
|
|
|
@@ -252,7 +336,7 @@ CLI を使わず、追加クラス分の CSS をプロジェクト側で書い
|
|
|
252
336
|
}
|
|
253
337
|
```
|
|
254
338
|
|
|
255
|
-
###
|
|
339
|
+
### SCSS で `lism.config.js` と整合させる
|
|
256
340
|
|
|
257
341
|
SCSS 経由で読み込む構成なら、`lism.config.js` と同じ追加分を `$props` の `utilities` 設定として書いておけば、ビルドコマンドなしで反映できます。
|
|
258
342
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
### トークン変数
|
|
19
19
|
|
|
20
20
|
| 種類 | 形式 | 例 |
|
|
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` |
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
トークンのバリエーション:
|
|
27
27
|
|
|
28
28
|
| 表記 | 条件 | 例 |
|
|
29
|
-
|
|
29
|
+
| --- | --- | --- |
|
|
30
30
|
| `s`, `m`, `l`, `xl`... | ベース値を中心に大小の段階を示す | `--fz--s`, `--fz--l` |
|
|
31
31
|
| `base` | `:root`/`body` の初期値にセットされるもの | `--fz--base`, `--lh--base` |
|
|
32
32
|
| `10`, `20`, `30`... | `0`(`none`)基準で段階的に増加 | `--bdrs--20`, `--bxsh--30` |
|
|
@@ -38,45 +38,28 @@
|
|
|
38
38
|
### Property Class 用の変数
|
|
39
39
|
|
|
40
40
|
| 形式 | 説明 | 例 |
|
|
41
|
-
|
|
42
|
-
| `--{prop}` | クラスの `{prop}` 部分と同じ省略名 | `--p`, `--bgc`, `--bdrs`, `--
|
|
41
|
+
| --- | --- | --- |
|
|
42
|
+
| `--{prop}` | クラスの `{prop}` 部分と同じ省略名 | `--p`, `--bgc`, `--bdrs`, `--m` |
|
|
43
43
|
| `--{prop}_{bp}` | ブレークポイント値 | `--p_sm`, `--mx_md` |
|
|
44
44
|
|
|
45
45
|
### その他の変数
|
|
46
46
|
|
|
47
47
|
| 形式 | 用途 | 例 |
|
|
48
|
-
|
|
48
|
+
| --- | --- | --- |
|
|
49
49
|
| `--{target}-{prop}` | 要素・クラスに対するプロパティ(`:root`で上書き可) | `--link-td`, `--headings-ff` |
|
|
50
50
|
| `--{propName}` | クラス自身の主要機能を制御する変数。要素側で値が初期化され、`:root` からは初期値の定義ができないもの | `--sideW`, `--mainW` |
|
|
51
51
|
| `--_{item}-{propName}` | `c--` の子要素プロパティ | `--_icon-size` |
|
|
52
52
|
| `--_{varName}` | 状態管理用の内部変数 | `--_isHov`, `--_notHov` |
|
|
53
53
|
|
|
54
|
-
|
|
55
54
|
## クラスの命名規則
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
- Component: `c--`
|
|
60
|
-
- Atomic Primitives: `a--`
|
|
61
|
-
- Layout Primitives: `l--`
|
|
62
|
-
- Trait(役割宣言): `is--`
|
|
63
|
-
- Trait(機能付与): `has--`
|
|
64
|
-
- Set Class: `set--`
|
|
65
|
-
- Utility Class: `u--`
|
|
66
|
-
|
|
67
|
-
プレフィックスに続く名称は camelCase(例: `c--myComponent`)。
|
|
56
|
+
クラス分類ごとのプレフィックス(`c--`/`a--`/`l--`/`is--`/`has--`/`set--`/`u--`)と各分類の責務・所属レイヤーは、[css-rules.md](./css-rules.md#クラス分類とプレフィックス)の分類表を正本とします。
|
|
68
57
|
|
|
69
|
-
|
|
58
|
+
プレフィックスに続く名称は camelCase(例: `c--myComponent`)。`is--`/`has--`/`set--`/`u--`にも同じ規則が適用されます。
|
|
70
59
|
|
|
71
|
-
|
|
72
|
-
|---|---|---|
|
|
73
|
-
| `set--` | HTML 要素の基礎スタイリング / 変数セット | `set--plain`, `set--revert`, `set--hov`, `set--bxsh` |
|
|
74
|
-
| `is--` | 〜である(役割・存在の宣言)。CSS 変数は必須ではない | `is--container`, `is--wrapper`, `is--layer` |
|
|
75
|
-
| `has--` | 〜を持つ(単一機能 trait の付与)。CSS 変数でカスタマイズ可 | `has--transition`, `has--gutter`, `has--snap`, `has--mask` |
|
|
76
|
-
| `u--` | 装飾的効果(単独 or 子要素の装飾) | `u--trim`, `u--cbox`, `u--divide`, `u--enclose` |
|
|
60
|
+
### `c--*`の命名
|
|
77
61
|
|
|
78
|
-
-
|
|
79
|
-
- `is--` / `has--` は `lism-trait` 層に属する。
|
|
62
|
+
Block/Element/Modifierの形式(Block=`c--{name}`、Element=`_`ひとつ、Modifier=`--`ふたつ)は[css-rules.md](./css-rules.md#component-classc--)を参照。Block名はcamelCaseを第一候補にし、既存コードがアンダースコア区切りならそれに合わせます。単語区切りのハイフン(`c--feature-card`)とBEM風の`__`は使いません(NG→OK例は[antipatterns-layout.md](./antipatterns-layout.md#クラス名の命名ミス)を参照)。
|
|
80
63
|
|
|
81
64
|
Property Class の形式:
|
|
82
65
|
|
|
@@ -85,7 +68,6 @@ Property Class の形式:
|
|
|
85
68
|
- ブレークポイント値を受け取る: `-{prop}_{bp}`
|
|
86
69
|
- 修飾子 + Property Class 合成: `-{modifier}:-{prop}`(例: `-hov:-c` は `-c` の hover バリアント)
|
|
87
70
|
|
|
88
|
-
|
|
89
71
|
## `{prop}` の省略ルール
|
|
90
72
|
|
|
91
73
|
基本は [Emmet](https://docs.emmet.io/cheat-sheet/) 準拠。
|
|
@@ -97,15 +79,15 @@ Property Class の形式:
|
|
|
97
79
|
1文字に省略する主要プロパティは以下の通り(このリストが全て)。
|
|
98
80
|
|
|
99
81
|
| 省略 | プロパティ | 省略 | プロパティ |
|
|
100
|
-
|
|
101
|
-
| `p` | `padding`
|
|
102
|
-
| `m` | `margin`
|
|
103
|
-
| `g` | `gap`
|
|
104
|
-
| `c` | `color`
|
|
105
|
-
| `f` | `font`
|
|
106
|
-
| `w` | `width`
|
|
107
|
-
| `h` | `height`
|
|
108
|
-
| `d` | `display`
|
|
82
|
+
| --- | --- | --- | --- |
|
|
83
|
+
| `p` | `padding` | `i` | `inset` |
|
|
84
|
+
| `m` | `margin` | `t` | `top` |
|
|
85
|
+
| `g` | `gap` | `b` | `bottom` |
|
|
86
|
+
| `c` | `color` | `l` | `left` |
|
|
87
|
+
| `f` | `font` | `r` | `right` |
|
|
88
|
+
| `w` | `width` | `o` | `opacity` |
|
|
89
|
+
| `h` | `height` | `v` | `visibility` |
|
|
90
|
+
| `d` | `display` | `z` | `z-index` |
|
|
109
91
|
|
|
110
92
|
Emmet と異なるのは `o` (`opacity`) のみ。
|
|
111
93
|
|
|
@@ -114,7 +96,7 @@ Emmet と異なるのは `o` (`opacity`) のみ。
|
|
|
114
96
|
#### 基本形式: 「グループ略称」+「サブプロパティ名の省略形」
|
|
115
97
|
|
|
116
98
|
| CSS プロパティ | Prop |
|
|
117
|
-
|
|
99
|
+
| --- | --- |
|
|
118
100
|
| font-size | `fz` |
|
|
119
101
|
| font-weight | `fw` |
|
|
120
102
|
| background-color | `bgc` |
|
|
@@ -130,7 +112,7 @@ Emmet と異なるのは `o` (`opacity`) のみ。
|
|
|
130
112
|
`inline-start`/`inline-end`は`is`/`ie`ではなく、すでに普及しているCSSフレームワークの慣習に沿って`s`/`e`とする。
|
|
131
113
|
|
|
132
114
|
| 方向 | サフィックス | 例 |
|
|
133
|
-
|
|
115
|
+
| --- | --- | --- |
|
|
134
116
|
| physical | `-t` / `-b` / `-l` / `-r` | `bd-t`, `bd-b`, `bd-l`, `bd-r` |
|
|
135
117
|
| inline / block | `-x` / `-y` | `bd-x`, `bd-y` |
|
|
136
118
|
| inline-start / end | `-s` / `-e` | `bd-s`, `bd-e`, `ps`, `pe`, `ms`, `me`, `i-s`, `i-e` |
|
|
@@ -154,7 +136,7 @@ NG例: `flex` → `fx` としたうえで `flex-shrink` を `fsh` にする(`f
|
|
|
154
136
|
2. ハイフン繋がり、または6文字以上: Emmet形式または認識しやすい範囲で省略
|
|
155
137
|
|
|
156
138
|
| CSS プロパティ | Prop | 分類 |
|
|
157
|
-
|
|
139
|
+
| --- | --- | --- |
|
|
158
140
|
| float | `float` | そのまま |
|
|
159
141
|
| order | `order` | そのまま |
|
|
160
142
|
| position | `pos` | 省略 |
|
|
@@ -170,13 +152,12 @@ NG例: `flex` → `fx` としたうえで `flex-shrink` を `fsh` にする(`f
|
|
|
170
152
|
グループを持たない1文字プロパティや、方向プロパティのみをサブプロパティに持つ場合は、衝突しない範囲で再利用可。
|
|
171
153
|
|
|
172
154
|
| 1文字 Prop | 再利用先 | 展開例 |
|
|
173
|
-
|
|
155
|
+
| --- | --- | --- |
|
|
174
156
|
| `t`(`top`) | `text-*` | `ta`(`text-align`) |
|
|
175
157
|
| `l`(`left`) | `line-*` | `lh`(`line-height`) |
|
|
176
158
|
| `w`(`width`) | `writing-*` | `wm`(`writing-mode`) |
|
|
177
159
|
| `p`(`padding`) | `place-*` | `pi`(`place-items`) |
|
|
178
160
|
|
|
179
|
-
|
|
180
161
|
## `{value}` の省略ルール
|
|
181
162
|
|
|
182
163
|
### 基本: CSS の実値をそのまま使う
|
|
@@ -218,7 +199,7 @@ opacity トークンは音楽記号に由来する例外的な命名で、その
|
|
|
218
199
|
6文字以上かつ省略しても意味が通るものは省略可:
|
|
219
200
|
|
|
220
201
|
| 実際の値 | 省略名 | クラスの例 |
|
|
221
|
-
|
|
202
|
+
| --- | --- | --- |
|
|
222
203
|
| `uppercase` | `upper` | `-tt:upper` |
|
|
223
204
|
| `lowercase` | `lower` | `-tt:lower` |
|
|
224
205
|
| `fit-content` | `fit` | `-w:fit`, `-h:fit` |
|
|
@@ -18,11 +18,11 @@ Lism CSS では、レイアウトを組み立てる小さな積み木として *
|
|
|
18
18
|
## プレフィックス一覧
|
|
19
19
|
|
|
20
20
|
| プレフィックス | 種類 | サブレイヤー | 役割 |
|
|
21
|
-
|
|
21
|
+
| --- | --- | --- | --- |
|
|
22
22
|
| `l--` | Layout Primitive | `lism-primitive.layout` | レイアウトの構成単位となる Primitive |
|
|
23
23
|
| `a--` | Atomic Primitive | `lism-primitive.atomic` | レイアウトの最小単位(アイコン・区切り線等) |
|
|
24
24
|
|
|
25
|
-
併用ルールは [css-rules.md](./css-rules.md
|
|
25
|
+
併用ルールは [css-rules.md](./css-rules.md#クラス分類とプレフィックス) を参照してください。
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
## Layout Primitive(`l--`)
|
|
@@ -30,7 +30,7 @@ Lism CSS では、レイアウトを組み立てる小さな積み木として *
|
|
|
30
30
|
レイアウト構造を定義するメインの Primitive 群です。
|
|
31
31
|
|
|
32
32
|
| クラス | 用途 |
|
|
33
|
-
|
|
33
|
+
| --- | --- |
|
|
34
34
|
| `l--box` | 汎用ボックス |
|
|
35
35
|
| `l--flex` | 横方向の基本的なFlexboxレイアウト |
|
|
36
36
|
| `l--stack` | 縦方向の縦積みFlexboxレイアウト(`flex-direction: column`)。 |
|
|
@@ -57,7 +57,7 @@ Lism CSS では、レイアウトを組み立てる小さな積み木として *
|
|
|
57
57
|
各 Primitive がどの用途に向いているか:
|
|
58
58
|
|
|
59
59
|
| やりたいこと | `l--columns` | `l--autoColumns` | `l--switchColumns` | `l--withSide` | `l--grid` |
|
|
60
|
-
|
|
60
|
+
| --- | --- | --- | --- | --- | --- |
|
|
61
61
|
| 等幅 N 列 | ◯ | ◯ | ✗ | ✗ | △ |
|
|
62
62
|
| 横並び ↔ 1 列の一括切替 | ◯ | ✗ | ◯ | ✗ | △ |
|
|
63
63
|
| カラム最小幅で自動折返し | ✗ | ◯ | ✗ | ✗ | △ |
|
|
@@ -127,7 +127,7 @@ Lism CSS では、レイアウトを組み立てる小さな積み木として *
|
|
|
127
127
|
レイアウト構成物の最小単位となる Primitive です。
|
|
128
128
|
|
|
129
129
|
| クラス | 用途 |
|
|
130
|
-
|
|
130
|
+
| --- | --- |
|
|
131
131
|
| `a--icon` | SVG アイコン。`flex-shrink: 0`, デフォルトサイズ `1em` |
|
|
132
132
|
| `a--divider` | 区切り線。`--bdc`, `--bds`, `--bdw` 変数でカスタマイズ |
|
|
133
133
|
| `a--spacer` | 空白要素(`min-height: 1px; min-width: 1px`) |
|
|
@@ -2,40 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
コンテンツを装飾するための空要素として使うクラス。`<Decorator>` は `<Lism atomic="decorator" aria-hidden="true" />` のエイリアスとして用意されています。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- クラス名: `a--decorator`
|
|
8
|
-
- コンポーネント: `<Decorator>`
|
|
9
|
-
- 公式ドキュメント: https://lism-css.com/docs/primitives/a--decorator.md
|
|
5
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/primitives/a--decorator.md
|
|
10
6
|
|
|
11
7
|
## 専用Props
|
|
12
8
|
|
|
13
9
|
| Prop | 説明 |
|
|
14
|
-
|
|
10
|
+
| --- | --- |
|
|
15
11
|
| `size` | デコレーターのサイズを一括指定。この指定があると `w`(`width`)に値が渡され、自動で `ar="1/1"`(`aspect-ratio:1/1`)が付与される |
|
|
16
12
|
|
|
17
|
-
## Usage
|
|
18
|
-
|
|
19
|
-
### 装飾に使用する例(コーナー装飾)
|
|
20
|
-
|
|
21
|
-
`pos="absolute"` と組み合わせて、親の四隅にコーナー枠を配置する例です。`bdc="current"` で文字色に追随します。
|
|
22
|
-
|
|
23
|
-
```jsx
|
|
24
|
-
<Box p="30" pos="relative">
|
|
25
|
-
<p>本文テキスト...</p>
|
|
26
|
-
<Decorator size="1.25em" pos="absolute" t="0" l="0" bd-s bd-bs bdc="current" />
|
|
27
|
-
<Decorator size="1.25em" pos="absolute" r="0" b="0" bd-e bd-be bdc="current" />
|
|
28
|
-
</Box>
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
```html
|
|
32
|
-
<div class="l--box -p:30 -pos:relative">
|
|
33
|
-
<p>本文テキスト...</p>
|
|
34
|
-
<div class="a--decorator -pos:absolute -t:0 -l:0 -bd-s -bd-bs -bdc:current -ar:1/1 -w" style="--w:1.25em" aria-hidden="true"></div>
|
|
35
|
-
<div class="a--decorator -pos:absolute -r:0 -b:0 -bd-e -bd-be -bdc:current -ar:1/1 -w" style="--w:1.25em" aria-hidden="true"></div>
|
|
36
|
-
</div>
|
|
37
|
-
```
|
|
38
|
-
|
|
39
13
|
## 関連プリミティブ
|
|
40
14
|
|
|
41
15
|
- [a--spacer](./a--spacer.md) — 要素間スペース
|
|
@@ -2,58 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
コンテンツ間に区切り線を描画するクラス。`--bdc` は `var(--divider)` が初期セットされます。`<Divider>` は `<Lism atomic="divider" aria-hidden="true" />` のエイリアスとして用意されています。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- クラス名: `a--divider`
|
|
8
|
-
- コンポーネント: `<Divider>`
|
|
9
|
-
- SCSSソース: https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/primitives/atomic/_divider.scss
|
|
10
|
-
- 公式ドキュメント: https://lism-css.com/docs/primitives/a--divider.md
|
|
11
|
-
|
|
12
|
-
## Usage
|
|
13
|
-
|
|
14
|
-
### 基本的な使い方
|
|
15
|
-
|
|
16
|
-
```jsx
|
|
17
|
-
<Box bgc="base-2" py="40" ta="center">...Contents...</Box>
|
|
18
|
-
<Divider />
|
|
19
|
-
<Box bgc="base-2" py="40" ta="center">...Contents...</Box>
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
```html
|
|
23
|
-
<div class="l--box -bgc:base-2 -py:40 -ta:center">...Contents...</div>
|
|
24
|
-
<div class="a--divider" aria-hidden="true"></div>
|
|
25
|
-
<div class="l--box -bgc:base-2 -py:40 -ta:center">...Contents...</div>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### スタイルの変更
|
|
29
|
-
|
|
30
|
-
```jsx
|
|
31
|
-
<Divider bds="dotted" bdw="4px" bdc="blue" />
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
```html
|
|
35
|
-
<div class="a--divider" aria-hidden="true" style="--bds: dotted; --bdw: 4px; --bdc: var(--blue)"></div>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### 縦方向の区切り線
|
|
39
|
-
|
|
40
|
-
Property Class `-wm:vertical-rl`(または `<Divider wm="vertical-rl">`)を指定すると縦方向の区切り線になります。Flex 子要素として使うなら `aslf="stretch"` で高さいっぱいに伸ばせます。
|
|
41
|
-
|
|
42
|
-
```jsx
|
|
43
|
-
<Flex ai="center" g="20">
|
|
44
|
-
<Box fx="1" bgc="base-2" py="40">...Contents...</Box>
|
|
45
|
-
<Divider wm="vertical-rl" bds="dashed" bdw="2px" aslf="stretch" />
|
|
46
|
-
<Box fx="1" bgc="base-2" py="40">...Contents...</Box>
|
|
47
|
-
</Flex>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
```html
|
|
51
|
-
<div class="l--flex -g:20 -ai:center">
|
|
52
|
-
<div class="-fx:1 -bgc:base-2 -py:40">...Contents...</div>
|
|
53
|
-
<div class="a--divider -wm:vertical-rl -aslf:stretch" style="--bds: dashed; --bdw: 2px" aria-hidden="true"></div>
|
|
54
|
-
<div class="-fx:1 -bgc:base-2 -py:40">...Contents...</div>
|
|
55
|
-
</div>
|
|
56
|
-
```
|
|
5
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/primitives/a--divider.md
|
|
57
6
|
|
|
58
7
|
## 関連プリミティブ
|
|
59
8
|
|