@lism-css/mcp 0.23.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 +51 -76
- package/dist/data/guides/SKILL.md +162 -229
- package/dist/data/guides/antipatterns-layout.md +268 -0
- package/dist/data/guides/antipatterns.md +118 -196
- package/dist/data/guides/base-styles.md +10 -9
- package/dist/data/guides/components-core.md +26 -8
- package/dist/data/guides/components-ui.md +21 -21
- package/dist/data/guides/css-rules.md +40 -57
- package/dist/data/guides/customize.md +7 -5
- package/dist/data/guides/naming.md +22 -41
- 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 +44 -15
- package/dist/data/guides/set-class.md +2 -12
- package/dist/data/guides/tokens.md +15 -15
- 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 +3 -56
- 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/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 +37 -14
- 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
|
@@ -48,7 +48,7 @@ import { Button } from '@lism-css/ui/astro/Button';
|
|
|
48
48
|
**構造:** `Accordion.Root > Accordion.Item > (Accordion.Heading > Accordion.Button) + Accordion.Panel`(`Accordion.Icon` は自動で含まれる)
|
|
49
49
|
|
|
50
50
|
| Prop | 対象 | 型 | デフォルト | 説明 |
|
|
51
|
-
|
|
51
|
+
| --- | --- | --- | --- | --- |
|
|
52
52
|
| `allowMultiple` | Root | `boolean` | — | 複数アイテムの同時展開を許可 |
|
|
53
53
|
| `isOpen` | Item / Button / Panel | `boolean` | `false` | アイテムを初期展開。Item・Button・Panel の3つ揃えて指定(Item=`data-opened` 付与、Button=`aria-expanded`、Panel=`hidden` 解除) |
|
|
54
54
|
| `as` | Heading | `string` | `div` | 見出しのHTMLタグ。`div` 時は `role='heading'` が自動付与。`h2`〜`h6` 指定時は role なし |
|
|
@@ -74,7 +74,7 @@ import { Button } from '@lism-css/ui/astro/Button';
|
|
|
74
74
|
プリセット: `alert`=alert/red, `point`=lightbulb/orange(`tip`も同じ), `warning`=warning/yellow, `check`=check-circle/green, `help`=question/purple, `info`=info/blue, `note`=note/gray。
|
|
75
75
|
|
|
76
76
|
| Prop | 型 | デフォルト | 説明 |
|
|
77
|
-
|
|
77
|
+
| --- | --- | --- | --- |
|
|
78
78
|
| `type` | `'alert' \| 'point' \| 'tip' \| 'warning' \| 'check' \| 'help' \| 'info' \| 'note'` | `'alert'` | アラートタイプ。keycolor と icon の組み合わせプリセット |
|
|
79
79
|
| `keycolor` | `string` | — | キーカラー |
|
|
80
80
|
| `icon` | `ReactNode \| string` | — | カスタムアイコン |
|
|
@@ -93,7 +93,7 @@ import { Button } from '@lism-css/ui/astro/Button';
|
|
|
93
93
|
アバター(プロフィール画像)コンポーネント。Frame ベースの円形画像表示。`c--avatar` クラスが付与される。
|
|
94
94
|
|
|
95
95
|
| Prop | 型 | デフォルト | 説明 |
|
|
96
|
-
|
|
96
|
+
| --- | --- | --- | --- |
|
|
97
97
|
| `src` | `string` | — | 画像URL |
|
|
98
98
|
| `alt` | `string` | — | 代替テキスト |
|
|
99
99
|
| `size` | `string` | `'1.5em'` | アバターのサイズ |
|
|
@@ -110,7 +110,7 @@ import { Button } from '@lism-css/ui/astro/Button';
|
|
|
110
110
|
バッジ(ラベル)コンポーネント。`span` 要素としてインライン表示。`c--badge` クラスが付与される。
|
|
111
111
|
|
|
112
112
|
| Prop | 型 | デフォルト | 説明 |
|
|
113
|
-
|
|
113
|
+
| --- | --- | --- | --- |
|
|
114
114
|
| `variant` | `string` | — | バリエーション(`'outline'` 等)。`c--badge--{variant}` クラスが出力 |
|
|
115
115
|
| `keycolor` | `string` | — | キーカラー |
|
|
116
116
|
|
|
@@ -126,7 +126,7 @@ import { Button } from '@lism-css/ui/astro/Button';
|
|
|
126
126
|
ボタン型リンクコンポーネント。デフォルトで `a` 要素として出力。`c--button` クラスが付与される。
|
|
127
127
|
|
|
128
128
|
| Prop | 型 | デフォルト | 説明 |
|
|
129
|
-
|
|
129
|
+
| --- | --- | --- | --- |
|
|
130
130
|
| `variant` | `string` | — | バリエーション(`'fill'`, `'outline'` 等)。`c--button--{variant}` クラスが出力 |
|
|
131
131
|
| `keycolor` | `string` | — | キーカラー |
|
|
132
132
|
| `href` | `string` | — | リンク先URL |
|
|
@@ -140,11 +140,10 @@ import { Button } from '@lism-css/ui/astro/Button';
|
|
|
140
140
|
|
|
141
141
|
ソース: [Callout/](https://github.com/lism-css/lism-css/tree/main/packages/lism-ui/src/components/Callout)
|
|
142
142
|
|
|
143
|
-
記事中の重要ポイントを示すコンポーネント。タイトルとアイコン付きの強調ボックス。`type`
|
|
144
|
-
プリセット: `alert`=alert/red, `point`=lightbulb/orange(`tip`も同じ), `warning`=warning/yellow, `check`=check-circle/green, `help`=question/purple, `info`=info/blue, `note`=note/gray。
|
|
143
|
+
記事中の重要ポイントを示すコンポーネント。タイトルとアイコン付きの強調ボックス。`type` プリセットによりアイコンとカラーが自動設定される(プリセット内容は [Alert](#alert) と同一)。
|
|
145
144
|
|
|
146
145
|
| Prop | 型 | デフォルト | 説明 |
|
|
147
|
-
|
|
146
|
+
| --- | --- | --- | --- |
|
|
148
147
|
| `type` | `'alert' \| 'point' \| 'tip' \| 'warning' \| 'check' \| 'help' \| 'info' \| 'note'` | `'note'` | コールアウトタイプ |
|
|
149
148
|
| `keycolor` | `string` | — | キーカラー |
|
|
150
149
|
| `icon` | `ReactNode \| string` | — | カスタムアイコン |
|
|
@@ -163,7 +162,7 @@ import { Button } from '@lism-css/ui/astro/Button';
|
|
|
163
162
|
チャット風の吹き出しコンポーネント。Grid ベースの会話形式 UI。`c--chat` クラスが付与される。
|
|
164
163
|
|
|
165
164
|
| Prop | 型 | デフォルト | 説明 |
|
|
166
|
-
|
|
165
|
+
| --- | --- | --- | --- |
|
|
167
166
|
| `name` | `string` | — | 発言者の名前 |
|
|
168
167
|
| `avatar` | `string` | — | アバター画像の src |
|
|
169
168
|
| `variant` | `'speak' \| 'think'` | `'speak'` | チャットタイプ |
|
|
@@ -185,8 +184,9 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
185
184
|
**構造:** `Details.Root > Details.Summary > (Details.Title + Details.Icon) + Details.Content`
|
|
186
185
|
|
|
187
186
|
| Prop | 対象 | 型 | デフォルト | 説明 |
|
|
188
|
-
|
|
187
|
+
| --- | --- | --- | --- | --- |
|
|
189
188
|
| `as` | Title | `string` | `'span'` | Title の HTML タグ |
|
|
189
|
+
| `open` | Root | `boolean` | — | 初期展開状態(`details` 要素の `open` 属性) |
|
|
190
190
|
| `--duration` | Root | `string` | — | 展開アニメーションの秒数(style 経由で指定) |
|
|
191
191
|
|
|
192
192
|
```jsx
|
|
@@ -209,7 +209,7 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
209
209
|
**構造:** `Modal.OpenBtn + Modal.Root > Modal.Inner > Modal.Body + Modal.CloseBtn`
|
|
210
210
|
|
|
211
211
|
| Prop | 対象 | 型 | デフォルト | 説明 |
|
|
212
|
-
|
|
212
|
+
| --- | --- | --- | --- | --- |
|
|
213
213
|
| `id` | Root | `string` | — | モーダルの ID(必須) |
|
|
214
214
|
| `modalId` | OpenBtn / CloseBtn | `string` | — | 対象モーダルの ID |
|
|
215
215
|
| `duration` | Root | `string` | — | アニメーション持続時間。`--duration` 変数として出力 |
|
|
@@ -236,7 +236,7 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
236
236
|
**構造:** `NavMenu.Root > NavMenu.Item > NavMenu.Link`(`NavMenu.Nest` でネスト可能)
|
|
237
237
|
|
|
238
238
|
| Prop | 対象 | 型 | デフォルト | 説明 |
|
|
239
|
-
|
|
239
|
+
| --- | --- | --- | --- | --- |
|
|
240
240
|
| `hovBgc` | Root | `string` | — | ホバー時の背景カラー。`--hov-bgc` 変数として出力 |
|
|
241
241
|
| `hovC` | Root | `string` | — | ホバー時のテキストカラー。`--hov-c` 変数として出力 |
|
|
242
242
|
| `itemP` | Root | `string` | — | 各アイテムのパディング。`--_item-p` 変数として出力 |
|
|
@@ -264,10 +264,11 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
264
264
|
**構造:** `Tabs.Root > Tabs.Item > (Tabs.Tab + Tabs.Panel)`(`Tabs.List` も利用可能)
|
|
265
265
|
|
|
266
266
|
| Prop | 対象 | 型 | デフォルト | 説明 |
|
|
267
|
-
|
|
267
|
+
| --- | --- | --- | --- | --- |
|
|
268
268
|
| `tabId` | Root | `string` | — | タブを特定するための ID 文字列 |
|
|
269
269
|
| `defaultIndex` | Root | `number` | `1` | 初期アクティブタブ(1始まり) |
|
|
270
270
|
| `listProps` | Root | `object` | — | タブボタンリスト要素へ渡す props |
|
|
271
|
+
| `variant` | Root | `string` | — | バリエーション。`c--tabs--{variant}` クラスが出力 |
|
|
271
272
|
|
|
272
273
|
```jsx
|
|
273
274
|
<Tabs.Root>
|
|
@@ -290,7 +291,7 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
290
291
|
セクション間の波型などの装飾的な区切り要素。SVG ベースの形状で区切りを表現。
|
|
291
292
|
|
|
292
293
|
| Prop | 型 | デフォルト | 説明 |
|
|
293
|
-
|
|
294
|
+
| --- | --- | --- | --- |
|
|
294
295
|
| `viewBox` | `string` | — | SVG の viewBox |
|
|
295
296
|
| `level` | `number` | `5` | シェイプの高さレベル。`0` で非表示 |
|
|
296
297
|
| `flip` | `'X' \| 'Y' \| 'XY'` | — | 反転方向。`data-flip` 属性として出力 |
|
|
@@ -313,7 +314,7 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
313
314
|
ダミーテキストを生成するコンポーネント。プレビューやテスト用。複数の言語とテキスト長に対応。
|
|
314
315
|
|
|
315
316
|
| Prop | 型 | デフォルト | 説明 |
|
|
316
|
-
|
|
317
|
+
| --- | --- | --- | --- |
|
|
317
318
|
| `lang` | `'ja' \| 'en' \| 'ar'` | `'en'` | テキストの言語 |
|
|
318
319
|
| `length` | `'xs' \| 's' \| 'm' \| 'l' \| 'xl' \| 'codes'` | `'m'` | テキストの長さ。`'codes'` は `b`, `i`, `a`, `code` 要素を含むテキスト |
|
|
319
320
|
| `pre` | `string` | — | テキストの前に表示する文字列 |
|
|
@@ -331,8 +332,8 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
331
332
|
コンポーネント名は `import` するときと同じ PascalCase で指定します。
|
|
332
333
|
|
|
333
334
|
```bash
|
|
334
|
-
# 初期設定(framework
|
|
335
|
-
npx lism-cli
|
|
335
|
+
# 初期設定(lism.config.js が無い場合に新規生成。framework 等を対話的に設定)
|
|
336
|
+
npx lism-cli init
|
|
336
337
|
|
|
337
338
|
# コンポーネントを追加
|
|
338
339
|
npx lism-cli ui add Button Modal
|
|
@@ -343,14 +344,13 @@ npx lism-cli ui add --all # 全コンポーネントを追加
|
|
|
343
344
|
npx lism-cli ui list
|
|
344
345
|
```
|
|
345
346
|
|
|
346
|
-
`
|
|
347
|
+
`init` で生成される `lism.config.js` の `ui` セクション:
|
|
347
348
|
|
|
348
349
|
```js
|
|
349
350
|
export default {
|
|
350
|
-
|
|
351
|
+
ui: {
|
|
351
352
|
framework: 'react',
|
|
352
|
-
|
|
353
|
-
helperDir: 'src/components/ui/_helper',
|
|
353
|
+
dir: 'src/components/ui', // helper は常に {dir}/_helper に配置される
|
|
354
354
|
},
|
|
355
355
|
};
|
|
356
356
|
```
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## TOC
|
|
4
4
|
|
|
5
5
|
- [CSS Layer 構造](#css-layer-構造)
|
|
6
|
-
- [
|
|
6
|
+
- [クラス分類とプレフィックス](#クラス分類とプレフィックス)
|
|
7
7
|
- [Component Class(`c--`)](#component-classc--)
|
|
8
8
|
- [カスタムCSS を追加する場合](#カスタムcss-を追加する場合)
|
|
9
9
|
- [独自プレフィックス](#独自プレフィックス)
|
|
@@ -34,7 +34,6 @@ Settings(トークン定義)
|
|
|
34
34
|
→ Property Class(レイヤー外 — 最も詳細度が高い)
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
|
|
38
37
|
## クラス分類とプレフィックス
|
|
39
38
|
|
|
40
39
|
[詳細](https://lism-css.com/docs/naming.md)
|
|
@@ -42,7 +41,7 @@ Settings(トークン定義)
|
|
|
42
41
|
Lism CSSで定義されるクラスは、その役割とレイヤーの所属が決まっており、その分類によってプレフィックスが定められています。
|
|
43
42
|
|
|
44
43
|
| 分類 | 役割 | プレフィックス | 例 |
|
|
45
|
-
|
|
44
|
+
| --- | --- | --- | --- |
|
|
46
45
|
| Set Class | ベーススタイル上書き・変数提供 | `set--` | `set--plain`, `set--revert`, `set--hov`, `set--bxsh` |
|
|
47
46
|
| Layout Primitive | レイアウトの構成単位となる Primitive | `l--` | `l--grid`, `l--flex`, `l--stack` |
|
|
48
47
|
| Atomic Primitive | レイアウトの最小単位となる Primitive | `a--` | `a--icon`, `a--divider` |
|
|
@@ -53,20 +52,18 @@ Lism CSSで定義されるクラスは、その役割とレイヤーの所属が
|
|
|
53
52
|
| Property Class | 単一プロパティの制御 | `-` | `-fz:l`, `-p:20`, `-d:none` |
|
|
54
53
|
|
|
55
54
|
**併用ルール:**
|
|
55
|
+
|
|
56
56
|
- `l--` と `c--` は併用OK(例: `<div class="l--flex c--nav">`)
|
|
57
57
|
- 同カテゴリ内の Primitive 併用は不可(例: `l--flex` と `l--grid`、`a--icon` と `a--divider` は同要素に付けない)
|
|
58
58
|
- `l--` × `a--` は非推奨(役割的に同居しない想定)
|
|
59
59
|
- `is--` / `has--` 同士は併用OK(Trait は複数併用できる)
|
|
60
60
|
- `is--` / `has--` × `l--` / `a--` も併用OK
|
|
61
|
-
- `c--`
|
|
62
|
-
- Block と自身の Modifier: `.c--button.c--button--outline`
|
|
63
|
-
- Block と他 Block の Element: `.c--xxx.c--yyy_elem`
|
|
64
|
-
- 子要素: `c--card_header`, `c--card_body`(`c--` のみ Element を持つ。`_` 一つ区切り)
|
|
61
|
+
- `c--` 同士の併用ルールとBEM構造は[Component Class(`c--`)](#component-classc--)を参照
|
|
65
62
|
|
|
66
63
|
**`is--` と `has--` の判定軸:**
|
|
67
64
|
|
|
68
65
|
| | `is--` | `has--` |
|
|
69
|
-
|
|
66
|
+
| --- | --- | --- |
|
|
70
67
|
| 意味 | 〜である(役割・存在の宣言) | 〜を持つ(機能の付与) |
|
|
71
68
|
| CSS 変数 | 必須ではない | 必須(カスタマイズポイントを提供) |
|
|
72
69
|
|
|
@@ -78,7 +75,7 @@ class 属性にクラスを直接記述する場合は、以下の順序で並
|
|
|
78
75
|
```
|
|
79
76
|
|
|
80
77
|
| # | 区分 | 例 |
|
|
81
|
-
|
|
78
|
+
| --- | --- | --- |
|
|
82
79
|
| 1 | 独自クラス(`customClass`) | `z--header`, `hoge` |
|
|
83
80
|
| 2 | Component(`c--`) | `c--box`, `c--box--primary` |
|
|
84
81
|
| 3 | Atomic Primitive(`a--`) | `a--icon`, `a--divider` |
|
|
@@ -99,7 +96,6 @@ class 属性にクラスを直接記述する場合は、以下の順序で並
|
|
|
99
96
|
|
|
100
97
|
なお、`class` 属性内の並び順は CSS の適用結果(詳細度・カスケード順)には影響しません。この順序はあくまで可読性と一貫性のための整理です。
|
|
101
98
|
|
|
102
|
-
|
|
103
99
|
## Component Class(`c--`)
|
|
104
100
|
|
|
105
101
|
`c--` プレフィックスで定義する **Component クラス** は、Primitive を組み合わせて作られた具体的な UI 部品です。`@layer lism-component` に配置され、コアの `lism-css` には含まれず、`@lism-css/ui` パッケージやユーザー定義として提供されます。
|
|
@@ -107,7 +103,7 @@ class 属性にクラスを直接記述する場合は、以下の順序で並
|
|
|
107
103
|
`c--` クラスは BEM 構造(Block / Modifier / Element)を持つことができ、それぞれ次の形式で定義します。
|
|
108
104
|
|
|
109
105
|
| 分類 | 形式 | 例 |
|
|
110
|
-
|
|
106
|
+
| --- | --- | --- |
|
|
111
107
|
| Block | `c--{name}` | `c--button`, `c--card` |
|
|
112
108
|
| Modifier | `c--{name}--{modifier}` | `c--button--outline` |
|
|
113
109
|
| Element | `c--{name}_{element}` | `c--card_header`, `c--card_body` |
|
|
@@ -121,33 +117,17 @@ class 属性にクラスを直接記述する場合は、以下の順序で並
|
|
|
121
117
|
|
|
122
118
|
`c--` を使った独自コンポーネントを使う場合でも、他の Primitive クラス(`l--`, `is--`)や Property Class(`-{prop}:{value}`)との組み合わせを前提とした設計にすることで CSS の記述量を削減できます。`c--` クラスにスタイルが全くなく、HTML 側での可視性を高める名前付けのためだけに利用しても構いません。
|
|
123
119
|
|
|
124
|
-
|
|
125
120
|
### 作成例
|
|
126
121
|
|
|
127
|
-
`
|
|
128
|
-
|
|
129
|
-
```css
|
|
130
|
-
@layer lism-component {
|
|
131
|
-
.c--myCard {
|
|
132
|
-
gap: var(--s20);
|
|
133
|
-
padding: var(--s30);
|
|
134
|
-
border-radius: var(--bdrs--20);
|
|
135
|
-
box-shadow: var(--bxsh--20);
|
|
136
|
-
border: 1px solid currentColor;
|
|
137
|
-
/* ... */
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
```
|
|
122
|
+
`c--*`は意味名として残し、レイアウトと単一プロパティ値はPrimitive/Property Classへ寄せます。CSSへ残すのは、擬似要素・子孫セレクタ・状態セレクタなど、Props/Property Classで表現できないものだけです。
|
|
141
123
|
|
|
142
124
|
```html
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
</div>
|
|
125
|
+
<!-- HTMLで書く場合も、意味名 + Primitive + Property Class を優先 -->
|
|
126
|
+
<div class="c--myCard l--stack -g:20 -p:30 -bdrs:20 -bxsh:20 -bd">...</div>
|
|
146
127
|
```
|
|
147
128
|
|
|
148
|
-
素の HTML サイトではこのように `c--` クラスに CSS を書いてスタイリングしても問題ありませんが、React などでコンポーネントを作成できる場合は、特別な理由がない限り Property Class を活用してください。
|
|
149
|
-
|
|
150
129
|
```jsx
|
|
130
|
+
// React/AstroコンポーネントではPropsを優先
|
|
151
131
|
export default function MyCard(props) {
|
|
152
132
|
return <Stack className="c--myCard" g="20" p="30" bdrs="20" bxsh="20" bd {...props} />;
|
|
153
133
|
}
|
|
@@ -155,12 +135,13 @@ export default function MyCard(props) {
|
|
|
155
135
|
|
|
156
136
|
```css
|
|
157
137
|
@layer lism-component {
|
|
158
|
-
.c--myCard {
|
|
159
|
-
/*
|
|
138
|
+
.c--myCard::before {
|
|
139
|
+
/* 擬似要素など、Props/Property Classで表せないものだけを書く */
|
|
160
140
|
}
|
|
161
141
|
}
|
|
162
142
|
```
|
|
163
143
|
|
|
144
|
+
CSSが空になる場合は、CSSファイル側に`.c--myCard {}`を書かず、マークアップ上の意味名として`c--myCard`だけ残して構いません。
|
|
164
145
|
|
|
165
146
|
## カスタムCSS を追加する場合
|
|
166
147
|
|
|
@@ -169,53 +150,39 @@ export default function MyCard(props) {
|
|
|
169
150
|
```css
|
|
170
151
|
/* カスタムコンポーネント → lism-component に追加 */
|
|
171
152
|
@layer lism-component {
|
|
172
|
-
.c--
|
|
173
|
-
border:
|
|
174
|
-
border-radius: var(--bdrs--20);
|
|
175
|
-
padding: var(--s30);
|
|
153
|
+
.c--myCard[data-is-active]::before {
|
|
154
|
+
border-color: var(--brand);
|
|
176
155
|
}
|
|
177
156
|
}
|
|
178
157
|
|
|
179
158
|
/* ベーススタイルの拡張 → lism-base に追加 */
|
|
180
159
|
@layer lism-base {
|
|
181
|
-
.set--
|
|
160
|
+
.set--myTheme {
|
|
182
161
|
--brand: #c00;
|
|
183
162
|
}
|
|
184
163
|
}
|
|
185
164
|
```
|
|
186
165
|
|
|
187
|
-
カスタムCSS内でも、できる限り Lism のCSS
|
|
166
|
+
カスタムCSS内でも、できる限り Lism のCSS変数(トークン)を使ってください。ただし、`padding`/`border-radius`/`font-size`/`color`などProperty Class/Propsへ移せる宣言は、CSSに書く前にマークアップ側へ移します(NG→OK例は[antipatterns.md](./antipatterns.md#property-class-で書けるのに-css-で書く)を参照)。
|
|
188
167
|
|
|
189
|
-
|
|
190
|
-
/* NG */
|
|
191
|
-
.c--my-card { padding: 24px; border-radius: 8px; }
|
|
192
|
-
|
|
193
|
-
/* OK */
|
|
194
|
-
.c--my-card { padding: var(--s30); border-radius: var(--bdrs--20); }
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
ただし、明確にその数値に意図がある場合は、生のCSS値を使用しても構いません。
|
|
168
|
+
明確にその数値に意図があり、トークン化・丸め・Property Class化ができない場合だけ、生のCSS値を例外として使用できます。その場合は実装プランに理由を残します。
|
|
198
169
|
|
|
199
170
|
**レイヤー外に書く場合:**
|
|
200
171
|
`@layer` の外(レイヤーなし)でカスタムCSSを書くのは、**Property Class(`-{prop}:{value}`)を拡張する場合のみ**としてください。それ以外のカスタムスタイルは必ずいずれかの `@layer` 内に記述します。
|
|
201
172
|
|
|
202
173
|
```css
|
|
203
|
-
/*
|
|
174
|
+
/* Property Class の拡張のみレイヤー外に書ける */
|
|
204
175
|
.-myProp\:myValue { ... }
|
|
205
|
-
|
|
206
|
-
/* NG: コンポーネントやユーティリティをレイヤー外に書かない */
|
|
207
|
-
.c--my-card { ... }
|
|
208
176
|
```
|
|
209
177
|
|
|
210
|
-
|
|
211
|
-
### 独自プレフィックス
|
|
178
|
+
## 独自プレフィックス
|
|
212
179
|
|
|
213
180
|
Lism CSS の既存プレフィックス(`set--` / `is--` / `has--` / `l--` / `a--` / `c--` / `u--` / `-`)のどれにも該当しないクラスは、独自プレフィックスを付けても、プレフィックスなしで命名しても構いません。
|
|
214
181
|
|
|
215
182
|
代表的な例:
|
|
216
183
|
|
|
217
184
|
| 分類 | 形式 | 例 |
|
|
218
|
-
|
|
185
|
+
| --- | --- | --- |
|
|
219
186
|
| ゾーニング(サイトの大まかな領域) | `z--{zoneName}` または `{zoneName}` | `z--header`, `z--main`, `z--sidebar`, `z--footer` |
|
|
220
187
|
| ページ分類 | `p--{type}-{id\|slug}` または `{slug}Page` | `p--front`, `p--page--{slug}` |
|
|
221
188
|
|
|
@@ -223,11 +190,27 @@ Lism CSS の既存プレフィックス(`set--` / `is--` / `has--` / `l--` / `
|
|
|
223
190
|
|
|
224
191
|
```css
|
|
225
192
|
@layer lism-custom {
|
|
226
|
-
.z--header {
|
|
227
|
-
|
|
193
|
+
.z--header {
|
|
194
|
+
/* ... */
|
|
195
|
+
}
|
|
196
|
+
.p--front {
|
|
197
|
+
/* ... */
|
|
198
|
+
}
|
|
228
199
|
}
|
|
229
200
|
```
|
|
230
201
|
|
|
202
|
+
### `z--`/`p--`/`c--`の使い分け
|
|
203
|
+
|
|
204
|
+
| 用途 | 推奨 | 理由 |
|
|
205
|
+
| --- | --- | --- |
|
|
206
|
+
| 再利用可能なUI部品 | `c--featureCard` | componentとして再利用され、Block/Element/Modifier構造を持てる |
|
|
207
|
+
| サイトの大まかな領域 | `z--header`/`z--main`/`z--footer` | 再利用UIではなくゾーニングなので`c--`にしない |
|
|
208
|
+
| ページ固有の領域 | `p--frontHero`/`p--postBody` | ページ依存の見た目をcomponent命名から分離する |
|
|
209
|
+
| 外部JS・CMS・E2Eが参照するclass | 既存名を維持、または⏸ | 外部契約なのでrenameはユーザー確認が必要 |
|
|
210
|
+
|
|
211
|
+
`c--header`や`c--sidebar`のような命名は、UI部品として再利用する意図がある場合だけ使います。サイト構造の領域名なら`z--header`、ページ限定なら`p--*`を優先してください。
|
|
212
|
+
|
|
213
|
+
公開API、CMS出力、外部JS、E2Eセレクタ、ドキュメントで案内済みのclass名を変える場合は、内部参照を全更新できる場合でも⏸としてユーザー確認します。CSSだけrenameしてJS/テスト/HTML生成側を漏らさないでください。
|
|
231
214
|
|
|
232
215
|
## CSS の配置場所
|
|
233
216
|
|
|
@@ -44,7 +44,7 @@ import 'lism-css/main_no_layer.css';
|
|
|
44
44
|
### 上書き可能な変数
|
|
45
45
|
|
|
46
46
|
| 変数 | 用途 | デフォルト |
|
|
47
|
-
|
|
47
|
+
| --- | --- | --- |
|
|
48
48
|
| `$breakpoints` | ブレイクポイント数値の定義(`0` は無効=クエリを出力しない) | `('xs': 0, 'sm': '480px', 'md': '800px', 'lg': '1120px', 'xl': 0)` |
|
|
49
49
|
| `$is_container_query` | コンテナクエリで出力するか(`1` = container query, `0` = media query) | `1` |
|
|
50
50
|
| `$default_important` | Property Class にデフォルトで `!important` を付与するか | `0` |
|
|
@@ -102,7 +102,9 @@ SCSS を直接読み込む構成では、コンパイル時に `lism-css` 本体
|
|
|
102
102
|
|
|
103
103
|
## `lism.config.js` でのカスタマイズ
|
|
104
104
|
|
|
105
|
-
プロジェクトのルート直下に `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` とは別物)。
|
|
106
108
|
|
|
107
109
|
### Vite / Astro プラグインの登録(推奨セットアップ)
|
|
108
110
|
|
|
@@ -138,7 +140,7 @@ export default defineConfig({
|
|
|
138
140
|
- **動的CSSビルド**: `import 'lism-css/main.css'` 等を捕捉し、`lism.config.js` を反映済みの CSS をその場で生成する(props / tokens を追加すると CSS に自動反映される)
|
|
139
141
|
- **型の自動生成**: 有効化したブレイクポイント・追加した props / traits を反映した `lism-env.d.ts` を起動時に自動生成する
|
|
140
142
|
|
|
141
|
-
`lism.config.
|
|
143
|
+
設定ファイルはプロジェクトルートから `lism.config.ts` → `lism.config.mjs` → `lism.config.js` の順で自動検出します。別の場所に置く場合は `configPath` で指定できます。
|
|
142
144
|
|
|
143
145
|
```js
|
|
144
146
|
// Vite
|
|
@@ -240,7 +242,7 @@ export default {
|
|
|
240
242
|
これによってコンポーネント側で次のような挙動が追加されます:
|
|
241
243
|
|
|
242
244
|
| 入力 | 出力されるクラス |
|
|
243
|
-
|
|
245
|
+
| --- | --- |
|
|
244
246
|
| `ta="justify"` | `-ta:justify` |
|
|
245
247
|
| `p="box"` | `-p:box` |
|
|
246
248
|
| `filter="blur"` | `-filter:blur` |
|
|
@@ -254,7 +256,7 @@ export default {
|
|
|
254
256
|
|
|
255
257
|
### 追加した prop / trait の型解禁
|
|
256
258
|
|
|
257
|
-
統合プラグイン(型自動生成が有効)を使っている場合、`lism.config.js` で追加した **prop / trait も `lism-env.d.ts` 経由で型側に自動解禁**されます(`CustomPropRegistry` / `CustomTraitRegistry` の拡張として出力)。そのため上記の `<Box filter="blur" ... isHoge>` のような新規 prop / trait も、エディタや `astro check`
|
|
259
|
+
統合プラグイン(型自動生成が有効)を使っている場合、`lism.config.js` で追加した **prop / trait も `lism-env.d.ts` 経由で型側に自動解禁**されます(`CustomPropRegistry` / `CustomTraitRegistry` の拡張として出力)。そのため上記の `<Box filter="blur" ... isHoge>` のような新規 prop / trait も、エディタや `astro check` で型エラーになりません。手書きの型拡張は不要です。
|
|
258
260
|
|
|
259
261
|
なお、既存 prop への値追加(`ta="justify"` 等)はもともと任意の文字列を受け付けるため、型エラーにはなりません(ただし補完候補には出ません)。
|
|
260
262
|
|
|
@@ -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
|
-
|
|
41
|
+
| --- | --- | --- |
|
|
42
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) — 要素間スペース
|