@lism-css/mcp 0.26.0 → 0.28.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 +160 -71
- package/dist/data/guides/SKILL.md +80 -110
- package/dist/data/guides/antipatterns-layout.md +19 -23
- package/dist/data/guides/antipatterns.md +6 -5
- package/dist/data/guides/base-styles.md +1 -1
- package/dist/data/guides/components-core.md +8 -7
- package/dist/data/guides/components-ui.md +74 -6
- package/dist/data/guides/css-rules.md +9 -17
- package/dist/data/guides/customize.md +11 -26
- package/dist/data/guides/naming.md +11 -23
- package/dist/data/guides/property-class/all-props.md +5 -5
- package/dist/data/guides/property-class/bd.md +3 -0
- package/dist/data/guides/property-class/hov.md +1 -0
- package/dist/data/guides/property-class.md +1 -1
- package/dist/data/guides/references/authoring.md +32 -44
- package/dist/data/guides/references/page-sections.md +1 -1
- package/dist/data/guides/references/verification.md +4 -4
- package/dist/data/guides/responsive.md +4 -24
- package/dist/data/guides/set-class.md +2 -2
- package/dist/data/guides/tokens.md +48 -24
- package/dist/data/guides/trait-class/has--transition.md +17 -2
- package/dist/data/guides/trait-class.md +2 -13
- package/dist/data/guides/utility-class.md +1 -9
- package/dist/data/meta.js +2 -2
- package/dist/lib/markdown-utils.d.ts +3 -22
- package/dist/lib/markdown-utils.js +7 -30
- package/dist/lib/search.d.ts +1 -4
- package/dist/lib/search.js +6 -34
- package/dist/tools/convert-css.js +8 -25
- package/package.json +1 -1
|
@@ -29,7 +29,9 @@ import { Button } from '@lism-css/ui/astro/Button';
|
|
|
29
29
|
- [Details](#details)
|
|
30
30
|
- [Modal](#modal)
|
|
31
31
|
- [NavMenu](#navmenu)
|
|
32
|
+
- [Popover](#popover)
|
|
32
33
|
- [Tabs](#tabs)
|
|
34
|
+
- [Tooltip](#tooltip)
|
|
33
35
|
- [ShapeDivider](#shapedivider)
|
|
34
36
|
- [DummyText](#dummytext)
|
|
35
37
|
- [CLI でプロジェクトにコピーして使う](#cli-でプロジェクトにコピーして使う)
|
|
@@ -89,16 +91,19 @@ import { Button } from '@lism-css/ui/astro/Button';
|
|
|
89
91
|
|
|
90
92
|
ソース: [Avatar/](https://github.com/lism-css/lism-css/tree/main/packages/lism-ui/src/components/Avatar)
|
|
91
93
|
|
|
92
|
-
|
|
94
|
+
アバター(プロフィール画像)コンポーネント。円形の画像表示で、`b--avatar` クラスが付与される。`src` ありは `l--frame`、`src` 未指定時は `l--center` に切り替わり、ルートに `b--avatar--initial`(背景色 `--base-2`)が付いて `name` の先頭1文字をイニシャルとして `span` で表示する(画像ロード失敗時の自動切替は無い)。
|
|
93
95
|
|
|
94
96
|
| Prop | 型 | デフォルト | 説明 |
|
|
95
97
|
| --- | --- | --- | --- |
|
|
96
|
-
| `src` | `string` | — | 画像URL |
|
|
97
|
-
| `
|
|
98
|
+
| `src` | `string` | — | 画像URL。未指定なら `name` のイニシャルを表示 |
|
|
99
|
+
| `name` | `string` | — | ユーザー名。イニシャルの生成元。`alt` 未指定時は代替テキストにも使う |
|
|
100
|
+
| `alt` | `string` | — | 代替テキスト。指定時は `name` より優先。`alt=''` で装飾扱い(イニシャル表示時は `aria-hidden`) |
|
|
98
101
|
| `size` | `string` | `'2em'` | アバターのサイズ |
|
|
99
102
|
|
|
100
103
|
```jsx
|
|
101
104
|
<Avatar src='/avatar.jpg' alt='User' size='48px' />
|
|
105
|
+
<Avatar name='Yamada Taro' size='48px' /> {/* イニシャル "Y" を表示 */}
|
|
106
|
+
<Avatar name='Yamada Taro' bgc='brand' c='base' /> {/* 背景色はルートの Prop で上書き可 */}
|
|
102
107
|
```
|
|
103
108
|
|
|
104
109
|
|
|
@@ -218,7 +223,7 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
218
223
|
| --- | --- | --- | --- | --- |
|
|
219
224
|
| `hovBgc` | Root | `string` | — | ホバー時の背景カラー。`--hov-bgc` 変数として出力 |
|
|
220
225
|
| `hovC` | Root | `string` | — | ホバー時のテキストカラー。`--hov-c` 変数として出力 |
|
|
221
|
-
| `itemP` | Root | `string` | — | 各アイテムのパディング。`--
|
|
226
|
+
| `itemP` | Root | `string` | — | 各アイテムのパディング。`--item-p` 変数として出力 |
|
|
222
227
|
| `href` | Link | `string` | — | リンク先URL(Link は常に `a` 要素として出力) |
|
|
223
228
|
| `hov` | Link | `string` | `-bgc` | ホバー時のスタイル。デフォルトで背景色が変化 |
|
|
224
229
|
|
|
@@ -234,6 +239,40 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
234
239
|
```
|
|
235
240
|
|
|
236
241
|
|
|
242
|
+
## Popover
|
|
243
|
+
|
|
244
|
+
ソース: [Popover/](https://github.com/lism-css/lism-css/tree/main/packages/lism-ui/src/components/Popover)
|
|
245
|
+
|
|
246
|
+
クリックで開くインタラクティブなパネル。ネイティブ Popover API(`popover` 属性)で開閉し、CSS Anchor Positioning でトリガーの隣に配置する。クライアント JS なし。開閉・外側クリック/Esc での light dismiss・フォーカス復帰・`aria-expanded` はブラウザに任せる。Anchor Positioning 非対応ブラウザでは画面中央のカードとして開く。ホバーで出す補足テキストは `Tooltip` を使う。
|
|
247
|
+
|
|
248
|
+
**構造:** `Popover.Root > Popover.Trigger + Popover.Popup > (Content + Popover.Close)`
|
|
249
|
+
|
|
250
|
+
| Prop | 対象 | 型 | デフォルト | 説明 |
|
|
251
|
+
| --- | --- | --- | --- | --- |
|
|
252
|
+
| `popoverId` | Root | `string` | 自動生成 | Trigger の `popovertarget`・Popup の `id`・Close の `popovertarget` に配布する ID。Root 配下では子に ID を指定しない |
|
|
253
|
+
| `popoverId` | Trigger / Close | `string` | — | Root 外で単体利用するときだけ指定(Popup の `id` と揃える) |
|
|
254
|
+
| `offset` | Root | `string` | `var(--s5)` | トリガーとの距離。`--popover-offset` 変数として出力 |
|
|
255
|
+
| `side` | Popup | `'top' \| 'bottom' \| 'start' \| 'end'` | `'bottom'` | 表示位置。`data-side` として出力。`start`/`end` は横方向で、書字方向に追従する inline 軸の論理方向(LTR では `start`=左)。viewport 端で自動反転 |
|
|
256
|
+
| `align` | Popup | `'start' \| 'center' \| 'end'` | `'center'` | トリガーに対する揃え。`data-align` として出力。`side` が `top`/`bottom` のとき書字方向、横方向のとき `start`=上・`end`=下 |
|
|
257
|
+
| `type` | Popup | `'auto' \| 'manual'` | `'auto'` | `popover` 属性の値。`manual` は light dismiss と Esc が無効になるので `Close` を必ず置く |
|
|
258
|
+
| `icon` / `srText` | Close | `string` | `'x'` / `'Close'` | 子要素が無いときのアイコンとスクリーンリーダー向けテキスト |
|
|
259
|
+
|
|
260
|
+
- CSS 変数(`--popover-offset`・`--popover-duration`)は Root(`.b--popover`)で受け取る。Root かその祖先に指定する。Popup に書いても効かない。
|
|
261
|
+
- Trigger / Close は `button` 要素でなければ `popovertarget` が効かない。
|
|
262
|
+
- 色・余白・角丸・影は Lism props(`bgc`・`p`・`bdrs`・`bxsh` 等)で上書きする。開閉フェードの時間は `--popover-duration`。
|
|
263
|
+
- フォームを含む場合は Popup に `role='dialog'` と `aria-label` を付ける。
|
|
264
|
+
|
|
265
|
+
```jsx
|
|
266
|
+
<Popover.Root>
|
|
267
|
+
<Popover.Trigger>Open</Popover.Trigger>
|
|
268
|
+
<Popover.Popup side='bottom' align='start'>
|
|
269
|
+
Content
|
|
270
|
+
<Popover.Close srText='閉じる' />
|
|
271
|
+
</Popover.Popup>
|
|
272
|
+
</Popover.Root>
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
|
|
237
276
|
## Tabs
|
|
238
277
|
|
|
239
278
|
ソース: [Tabs/](https://github.com/lism-css/lism-css/tree/main/packages/lism-ui/src/components/Tabs)
|
|
@@ -263,6 +302,35 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
263
302
|
```
|
|
264
303
|
|
|
265
304
|
|
|
305
|
+
## Tooltip
|
|
306
|
+
|
|
307
|
+
ソース: [Tooltip/](https://github.com/lism-css/lism-css/tree/main/packages/lism-ui/src/components/Tooltip)
|
|
308
|
+
|
|
309
|
+
ホバー / キーボードフォーカスで出る補足テキスト。表示制御は CSS のみで、JS は「Esc で閉じる」だけ(`scripts/tooltip.js`)。CSS Anchor Positioning でトリガーの隣に配置し、非対応ブラウザではトリガー基準の絶対配置にフォールバックする。中にリンク・ボタンを置かない(それは `Popover`)。重要な情報をツールチップだけに入れない(タッチでは見えない)。
|
|
310
|
+
|
|
311
|
+
**構造:** `Tooltip.Root > Tooltip.Trigger + Tooltip.Popup`(Popup は Root 直下に置く)
|
|
312
|
+
|
|
313
|
+
| Prop | 対象 | 型 | デフォルト | 説明 |
|
|
314
|
+
| --- | --- | --- | --- | --- |
|
|
315
|
+
| `tooltipId` | Root | `string` | 自動生成 | Trigger の `aria-describedby` と Popup の `id` に配布する ID。Root 配下では子に ID を指定しない |
|
|
316
|
+
| `tooltipId` | Trigger | `string` | — | Root 外で単体利用するときだけ指定(Popup の `id` と揃える) |
|
|
317
|
+
| `delay` | Root | `string` | `0.4s` | 表示までのディレイ。`--tooltip-delay` 変数として出力(退場猶予は `--tooltip-delay--close`、既定 `0.15s`) |
|
|
318
|
+
| `offset` | Root | `string` | `var(--s5)` | トリガーとの距離。`--tooltip-offset` 変数として出力 |
|
|
319
|
+
| `side` | Popup | `'top' \| 'bottom' \| 'start' \| 'end'` | `'top'` | 表示位置。`data-side` として出力。`start`/`end` は横方向で、書字方向に追従する inline 軸の論理方向(LTR では `start`=左)。viewport 端で自動反転 |
|
|
320
|
+
| `align` | Popup | `'start' \| 'center' \| 'end'` | `'center'` | `side` と直交する方向の揃え。`data-align` として出力。`side` が `top`/`bottom` のとき `start`/`end` は書字方向に追従 |
|
|
321
|
+
|
|
322
|
+
- CSS 変数(`--tooltip-offset`・`--tooltip-delay`・`--tooltip-delay--close`・`--tooltip-duration`)は Root(`.b--tooltip`)で受け取る。Root かその祖先に指定する。Popup に書いても効かない。
|
|
323
|
+
- Trigger の既定は `button`。`as='span'` 等にするなら `tabindex='0'` でフォーカス可能にする。
|
|
324
|
+
- 既定は反転配色(`--text` 背景・`--base` 文字)。色・余白・角丸は Lism props(`bgc`・`c`・`p`・`bdrs` 等)で上書きする。フェード時間は `--tooltip-duration`。
|
|
325
|
+
|
|
326
|
+
```jsx
|
|
327
|
+
<Tooltip.Root>
|
|
328
|
+
<Tooltip.Trigger>Save</Tooltip.Trigger>
|
|
329
|
+
<Tooltip.Popup side='top'>Shortcut: ⌘S</Tooltip.Popup>
|
|
330
|
+
</Tooltip.Root>
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
|
|
266
334
|
## ShapeDivider
|
|
267
335
|
|
|
268
336
|
ソース: [ShapeDivider/](https://github.com/lism-css/lism-css/tree/main/packages/lism-ui/src/components/ShapeDivider)
|
|
@@ -274,8 +342,8 @@ HTML の `details/summary` 要素をラップしたコンポーネント。Accor
|
|
|
274
342
|
| `viewBox` | `string` | — | SVG の viewBox |
|
|
275
343
|
| `level` | `number` | `5` | シェイプの高さレベル。`0` で非表示 |
|
|
276
344
|
| `flip` | `'X' \| 'Y' \| 'XY'` | — | 反転方向。`data-flip` 属性として出力 |
|
|
277
|
-
| `stretch` | `string` | — | 水平方向の引き伸ばし量。`--
|
|
278
|
-
| `offset` | `string` | — | 水平方向のオフセット。`--
|
|
345
|
+
| `stretch` | `string` | — | 水平方向の引き伸ばし量。`--inner-stretch` 変数として出力 |
|
|
346
|
+
| `offset` | `string` | — | 水平方向のオフセット。`--inner-offset` 変数として出力 |
|
|
279
347
|
| `isEmpty` | `boolean` | — | シェイプを非表示にしてスペーサーとして使用 |
|
|
280
348
|
| `isAnimation` | `boolean` | — | アニメーションを有効化。`data-has-animation` 属性として出力 |
|
|
281
349
|
|
|
@@ -37,10 +37,9 @@ Settings(トークン定義)
|
|
|
37
37
|
|
|
38
38
|
`lism-block` は `lism-trait` / `lism-primitive` より弱い位置にあるため、`b--` のベーススタイルには、明示的に付与したクラス(`is--` / `has--` / `l--` など)が勝ちます。
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
なお、レイヤーによるこの優先関係が保証されるのは標準ビルド(`main.css` / `full.css`)だけです。`main_no_layer.css` / `full_no_layer.css` では、Property Class は常に `!important`、`u--` クラスはセレクタ二重化(`.u--trim.u--trim` = 0-2-0)で「Property Class > Utility Class > 単一クラス」の序列だけを再現し、それ以外は読み込み順と詳細度に依存します。
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
例えば、トークンやベーススタイルの上書きは `@layer lism-base`、`b--` のベーススタイルは `@layer lism-block`、それ以外の独自クラス(`c--`)は `@layer lism-custom` に置きます。
|
|
42
|
+
独自クラス・上書きスタイルも対応するレイヤーに置きます。トークン・ベーススタイルの上書きは `@layer lism-base`、`b--` のベーススタイルは `@layer lism-block`、それ以外の独自クラス(`c--`)は `@layer lism-custom`(書き方は「カスタムCSS を追加する場合」)。
|
|
44
43
|
|
|
45
44
|
## クラス分類とプレフィックス
|
|
46
45
|
|
|
@@ -57,7 +56,7 @@ Lism CSSで定義されるクラスは、その役割とレイヤーの所属が
|
|
|
57
56
|
| Custom Class | Lism 本体に含まれない、ユーザーが自由に定義するカスタムクラス | `c--` | `c--featureList`, `c--header` |
|
|
58
57
|
| `is--` Trait | 要素に役割(〜である)を宣言 | `is--` | `is--container`, `is--wrapper`, `is--layer`, `is--boxLink` |
|
|
59
58
|
| `has--` Trait | 要素に機能(〜を持つ)を付与 | `has--` | `has--transition`, `has--gutter`, `has--snap`, `has--mask` |
|
|
60
|
-
| Utility Class | 用途が明確な装飾系ユーティリティ | `u--` | `u--cbox`, `u--trim`, `u--
|
|
59
|
+
| Utility Class | 用途が明確な装飾系ユーティリティ | `u--` | `u--cbox`, `u--trim`, `u--trimAll`, `u--clipText` |
|
|
61
60
|
| Property Class | 単一プロパティの制御 | `-` | `-fz:l`, `-p:20`, `-d:none` |
|
|
62
61
|
|
|
63
62
|
**併用ルール:**
|
|
@@ -130,7 +129,7 @@ BEM 構造(本体クラス / Modifier / Element)を持つのは `b--` と `c
|
|
|
130
129
|
| Element | `b--{name}_{element}` / `c--{name}_{element}` | `b--card_header`, `c--pricing_body` |
|
|
131
130
|
|
|
132
131
|
- Modifier は本体クラスと併記して使用: `.b--btn.b--btn--outline` / `.c--pricing.c--pricing--featured`
|
|
133
|
-
- Element は `_
|
|
132
|
+
- Element は `_`(アンダースコア)一つ区切り。CSS で参照する子要素にだけ付ける([Custom Class(`c--`)](#custom-classc--))
|
|
134
133
|
- 同じプレフィックスの本体クラス同士の併用(`.b--xxx.b--yyy` / `.c--xxx.c--yyy`)は基本 NG。ただし次は許容される:
|
|
135
134
|
- 本体クラスと自身の Modifier: `.c--xxx.c--xxx--modifier`
|
|
136
135
|
- 本体クラスと他の本体クラスの Element: `.c--xxx.c--yyy_elem`
|
|
@@ -171,7 +170,7 @@ BEM 構造(本体クラス / Modifier / Element)を持つのは `b--` と `c
|
|
|
171
170
|
|
|
172
171
|
他のLismクラス(Trait, Primitive, Property Class等)との組み合わせを前提に設計し、CSSへ残すのは、擬似要素・子孫セレクタ・状態セレクタなど、Props/Property Classで表現できないものだけです。(明確な意図があればCSSに一般的なスタイルを書くことも可)
|
|
173
172
|
|
|
174
|
-
|
|
173
|
+
スタイルが全くなく、何のパーツかを示す名前付けのためだけに使っても構いません。ただし名前付けだけで残すのは本体クラス(`c--{name}`)だけです。Element(`c--{name}_{element}`)は、子孫セレクタ・擬似要素・状態切替など CSS でその子要素を参照する時だけ付けます(NG→OK 例は [antipatterns-layout.md](./antipatterns-layout.md#css-の無い-element-クラスを付ける))。
|
|
175
174
|
|
|
176
175
|
```html
|
|
177
176
|
<!-- HTMLで書く場合も、何のパーツかを示す名前 + Primitive + Property Class を優先 -->
|
|
@@ -214,9 +213,9 @@ CSSが空になる場合は、CSSファイル側に`.c--myCard {}`を書かず
|
|
|
214
213
|
}
|
|
215
214
|
```
|
|
216
215
|
|
|
217
|
-
カスタムCSS内でも、できる限り Lism のCSS
|
|
216
|
+
カスタムCSS内でも、できる限り Lism のCSS変数(トークン)を使ってください。`c--` でCSSに残す宣言の基準は [Custom Class(`c--`)](#custom-classc--)、`b--` は [Block Class(`b--`)](#block-classb--) を参照。
|
|
218
217
|
|
|
219
|
-
|
|
218
|
+
トークン外の生のCSS値は、[antipatterns.md の「直書きしてよい例外」](./antipatterns.md#px--固定値の直書き)に該当する場合だけ使い、実装プランに理由を残します。
|
|
220
219
|
|
|
221
220
|
**レイヤー外に書く場合:**
|
|
222
221
|
`@layer` の外(レイヤーなし)でカスタムCSSを書くのは、**Property Class(`-{prop}:{value}`)を拡張する場合のみ**としてください。それ以外のカスタムスタイルは必ずいずれかの `@layer` 内に記述します。
|
|
@@ -248,13 +247,6 @@ Lism のトークン変数のカスタマイズやベーススタイルの上書
|
|
|
248
247
|
コンポーネント固有のスタイルは、そのコンポーネントを定義しているファイルに紐づけます。
|
|
249
248
|
|
|
250
249
|
- `.jsx` / `.tsx` ファイル: CSS ファイルを `import` する
|
|
251
|
-
- `.astro` ファイル: `import` するか、コンポーネントファイル内の `<style>`
|
|
250
|
+
- `.astro` ファイル: `import` するか、コンポーネントファイル内の `<style>` タグに記述(`<style>` 内でも `@layer` で囲む)
|
|
252
251
|
|
|
253
|
-
|
|
254
|
-
/* 独自クラスの CSS は lism-custom 内に定義する(b-- のベーススタイルだけ lism-block) */
|
|
255
|
-
@layer lism-custom {
|
|
256
|
-
.c--yourComponent {
|
|
257
|
-
...
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
```
|
|
252
|
+
置くレイヤーは「カスタムCSS を追加する場合」と同じです。
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
詳細(公式ドキュメント):
|
|
13
13
|
|
|
14
14
|
- 概要: [https://lism-css.com/docs/customize/](https://lism-css.com/docs/customize/)
|
|
15
|
-
- CSS
|
|
16
|
-
- `lism.config.js`(props / tokens / traits・breakpoints
|
|
15
|
+
- CSSファイルの種類(`@layer` なし版 / `full.css`): [https://lism-css.com/docs/css-files/](https://lism-css.com/docs/css-files/)
|
|
16
|
+
- `lism.config.js`(props / tokens / traits・breakpoints・`isFullMode`・追加スタイル): [https://lism-css.com/docs/customize/config/](https://lism-css.com/docs/customize/config/)
|
|
17
17
|
- SCSS(`$setting` / `$props`・BP上書き): [https://lism-css.com/docs/customize/scss/](https://lism-css.com/docs/customize/scss/)
|
|
18
18
|
- CSS Purge: [https://lism-css.com/docs/customize/purge/](https://lism-css.com/docs/customize/purge/)
|
|
19
19
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
## `@layer` をオフにする
|
|
23
23
|
|
|
24
24
|
`lism-css/main.css` の代わりに `lism-css/main_no_layer.css` を読み込むだけで、`@layer` を使わない CSS に切り替えられます。
|
|
25
|
-
|
|
25
|
+
no-layer版は既存サイトや WordPress テーマなど、カスケードを制御できない環境向けです。レイヤーの代わりに、Property Class は常に `!important` 付き、`u--trim` / `u--trimAll` / `u--cbox` はセレクタ二重化(`.u--trim.u--trim` = 0-2-0)で出力され、「Property Class > Utility Class > 単一クラス」の序列を再現します。`lism.config.js` の `defaultImportant: false`・`$default_important: 0`・`props` の個別 `important: 0` を指定しても `!important` は外れません。`b--` など上記以外のクラス同士の優先度は読み込み順・詳細度に依存します。
|
|
26
26
|
|
|
27
27
|
```js
|
|
28
28
|
// 通常
|
|
@@ -48,7 +48,7 @@ import 'lism-css/main_no_layer.css';
|
|
|
48
48
|
| --- | --- | --- |
|
|
49
49
|
| `$breakpoints` | ブレイクポイント数値の定義(`0` は無効=クエリを出力しない) | `('xs': 0, 'sm': '480px', 'md': '800px', 'lg': '1120px', 'xl': 0)` |
|
|
50
50
|
| `$is_container_query` | コンテナクエリで出力するか(`1` = container query, `0` = media query) | `1` |
|
|
51
|
-
| `$default_important` | Property Class にデフォルトで `!important`
|
|
51
|
+
| `$default_important` | Property Class にデフォルトで `!important` を付与するか(no-layer版では無視され、常に付与) | `0` |
|
|
52
52
|
| `$props` | Property Class ごとの個別出力設定 | `prop-config` のデフォルト |
|
|
53
53
|
|
|
54
54
|
### 基本フォーマット
|
|
@@ -183,7 +183,7 @@ export default {
|
|
|
183
183
|
|
|
184
184
|
これだけで、ブレイクポイント対応の全 Property Class が `xs` / `xl` のレスポンシブクラス(`-p_xs` / `-p_xl` 等)も出力するようになります。prop ごとの個別指定は不要です。
|
|
185
185
|
|
|
186
|
-
|
|
186
|
+
統合プラグイン使用時は有効化したブレイクポイントがプロジェクト直下の `lism-env.d.ts` に自動反映され、`BreakpointRegistry` の手書き拡張は不要です。`lism-env.d.ts` は git にコミットしてください(`astro check` 等の型チェックがこのファイルを拠り所にします)。
|
|
187
187
|
|
|
188
188
|
> SCSS を直接利用する構成では、`@use 'lism-css/scss/setting' with ($breakpoints: ...)` で有効化する方法も利用できます([SCSS でのカスタマイズ](#scss-でのカスタマイズ) を参照)。
|
|
189
189
|
|
|
@@ -257,31 +257,18 @@ export default {
|
|
|
257
257
|
|
|
258
258
|
### 追加した prop / trait の型解禁
|
|
259
259
|
|
|
260
|
-
|
|
260
|
+
統合プラグイン使用時は、追加した prop / trait も `lism-env.d.ts`(`CustomPropRegistry` / `CustomTraitRegistry` の拡張)で自動解禁され、手書きの型拡張は不要です。
|
|
261
261
|
|
|
262
262
|
なお、既存 prop への値追加(`ta="justify"` 等)はもともと任意の文字列を受け付けるため、型エラーにはなりません(ただし補完候補には出ません)。
|
|
263
263
|
|
|
264
264
|
|
|
265
265
|
## 追加スタイルを読み込ませる方法
|
|
266
266
|
|
|
267
|
-
`lism.config.js` で props
|
|
267
|
+
`lism.config.js` で props を増やしただけでは、対応するユーティリティクラスのスタイルが必要になります。構成によって反映方法が異なります。`traits` はクラス名だけを追加するため、`is--*` のスタイルはどの構成でも手動追記 / SCSS で用意します。
|
|
268
268
|
|
|
269
269
|
### Vite / Astro(統合プラグイン使用時)は自動反映(手動ビルド不要)
|
|
270
270
|
|
|
271
|
-
`@lism-css/plugin` の統合プラグインを登録している場合、`lism.config.js` に props / tokens を追加すると、**dev サーバ / ビルドの CSS
|
|
272
|
-
|
|
273
|
-
参照先の **CSS 変数の値そのもの**(`:root { --lts--2xl: .5em }` のような定義)も、`tokens` に値を書けば自動生成されます。値の定義・ユーティリティ生成・props 受理がまとめて反映されるため、`global.css` への手書きは不要です(既定値の上書きも可能)。
|
|
274
|
-
|
|
275
|
-
```js
|
|
276
|
-
// lism.config.js — 値そのものも config に集約できる
|
|
277
|
-
export default {
|
|
278
|
-
tokens: {
|
|
279
|
-
lts: { '2xl': '.5em' }, // :root { --lts--2xl: .5em } + .-lts:2xl を自動生成
|
|
280
|
-
},
|
|
281
|
-
};
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
> `is--*` クラスのスタイルは `traits` ではクラス名のみを追加するため、対応するスタイルは別途必要です(後述の手動追記 / SCSS を参照)。
|
|
271
|
+
`@lism-css/plugin` の統合プラグインを登録している場合、`lism.config.js` に props / tokens を追加すると、**dev サーバ / ビルドの CSS に自動反映されます**。手動追記や `npx lism-css build` は不要で、dev 中の変更は HMR で CSS と型 `.d.ts` が追従します。`tokens` に書いた値は CSS 変数の定義(`:root { --lts--2xl: .5em }`)・ユーティリティクラス・props 受理がまとめて反映されるため、`global.css` への手書きも不要です(既定値の上書きも可)。
|
|
285
272
|
|
|
286
273
|
軽微な追加であれば、props を増やさず Lism Props の `:value` 記法(→ [property-class.md](./property-class.md))と `global.css` への手書きだけで済ませることもできます。
|
|
287
274
|
|
|
@@ -317,8 +304,7 @@ npx lism-css build --full # full.css / full_no_layer.css も生成
|
|
|
317
304
|
```
|
|
318
305
|
|
|
319
306
|
> **注意**:
|
|
320
|
-
> - `tokens`
|
|
321
|
-
> - `is--*` クラスのスタイルは自動生成されないため、手動で追加してください。
|
|
307
|
+
> - `tokens` の値は CLI ビルドでも CSS 変数とユーティリティクラスの両方が出力されます。値が `'-'` のキーはカタログ登録のみで `:root` 宣言を出力しません(`flow` や `bdrs.inner` のように実値を手書きSCSS側へ置くもの)。
|
|
322
308
|
> - `lism-css` パッケージ自体を上書きする処理のため、**パッケージ更新ごとに再実行**が必要です。
|
|
323
309
|
|
|
324
310
|
### 手動で CSS を追記
|
|
@@ -337,16 +323,15 @@ CLI を使わず、追加クラス分の CSS をプロジェクト側で書い
|
|
|
337
323
|
}
|
|
338
324
|
```
|
|
339
325
|
|
|
340
|
-
### SCSS
|
|
326
|
+
### SCSS だけで値を追加する(`lism.config.js` を使わない構成)
|
|
341
327
|
|
|
342
|
-
|
|
328
|
+
`@lism-css/plugin` を使わない構成では `lism.config.js` は読み込まれない。SCSS の `$props` の `utilities` で値を追加し、コンポーネントからは `:value` 記法(`p=":box"`)で強制クラス化するか、HTML に直接クラスを書いて使う。
|
|
343
329
|
|
|
344
330
|
```scss
|
|
345
331
|
@use '../path-to/node_modules/lism-css/scss/setting' with (
|
|
346
332
|
$props: (
|
|
347
333
|
'ta': ( utilities: ( 'justify': 'justify' ) ),
|
|
348
334
|
'p': ( utilities: ( 'box': '2em' ) ),
|
|
349
|
-
'filter': ( utilities: ( 'blur': 'blur(3px)' ) ),
|
|
350
335
|
'lts': ( utilities: ( '2xl': 'var(--lts--2xl)' ) ),
|
|
351
336
|
)
|
|
352
337
|
);
|
|
@@ -28,12 +28,11 @@
|
|
|
28
28
|
| 表記 | 条件 | 例 |
|
|
29
29
|
| --- | --- | --- |
|
|
30
30
|
| `s`, `m`, `l`, `xl`... | ベース値を中心に大小の段階を示す | `--fz--s`, `--fz--l` |
|
|
31
|
-
| `base` | `:root`/`body` の初期値にセットされるもの | `--fz--base`, `--
|
|
31
|
+
| `base` | `:root`/`body` の初期値にセットされるもの | `--fz--base`, `--hl--base` |
|
|
32
32
|
| `10`, `20`, `30`... | `0`(`none`)基準で段階的に増加 | `--bdrs--20`, `--bxsh--30` |
|
|
33
33
|
| セマンティック名 | 上記に当てはまらない場合 | `--ar--og` |
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
> opacity(`--o--mp` / `--o--p` / `--o--pp` / `--o--ppp`)は、音楽の強弱記号(piano 系列)に由来するセマンティック命名を採用している。`p`(piano / 弱く)の反復回数が多いほど透明度が増す構造で、「文字の反復回数で段階を表す」命名は Lism 内で opacity のみの例外。
|
|
35
|
+
例外: opacity トークン(`--o--mp` / `--o--p` / `--o--pp` / `--o--ppp`)は文字の反復回数で段階を表す(由来は [tokens.md](./tokens.md#透明度-o))。
|
|
37
36
|
|
|
38
37
|
### Property Class 用の変数
|
|
39
38
|
|
|
@@ -46,10 +45,14 @@
|
|
|
46
45
|
|
|
47
46
|
| 形式 | 用途 | 例 |
|
|
48
47
|
| --- | --- | --- |
|
|
49
|
-
| `--{target}-{prop}` |
|
|
48
|
+
| `--{target}-{prop}` | 特定のセレクタを起点に、子要素へ設定するプロパティ | `--link-td`, `--headings-ff`, `--icon-size` |
|
|
50
49
|
| `--{propName}` | クラス自身の主要機能を制御する変数。要素側で値が初期化され、`:root` からは初期値の定義ができないもの | `--sideW`, `--mainW` |
|
|
51
|
-
| `--_{
|
|
52
|
-
|
|
50
|
+
| `--_{varName}` | 上書きを想定しない内部処理用の変数・状態判定用の変数 | `--_panelH`、`--_flipX`、`--_isHov` |
|
|
51
|
+
|
|
52
|
+
`--{target}-{prop}`は、`:root`を起点にする場合も、`.b--*`や`.c--*`を起点にする場合も同じ形式です。`:root`以外を起点にする変数は、次のルールで外部からの影響を閉じます。
|
|
53
|
+
|
|
54
|
+
- 起点のセレクタで必ず初期値をセットする(例: `.b--list { --icon-size: 1em; }`)。祖先や他のコンポーネントから同名の値を継承しないため。
|
|
55
|
+
- 値を変えるときは`:root`ではなく、起点の要素にインラインstyleやpropsで指定する。
|
|
53
56
|
|
|
54
57
|
## クラスの命名規則
|
|
55
58
|
|
|
@@ -185,23 +188,8 @@ NG例: `flex` → `fx` としたうえで `flex-shrink` を `fsh` にする(`f
|
|
|
185
188
|
.-bdrs:20 → border-radius: var(--bdrs--20);
|
|
186
189
|
```
|
|
187
190
|
|
|
188
|
-
opacity
|
|
189
|
-
|
|
190
|
-
```
|
|
191
|
-
.-o:mp → opacity: var(--o--mp);
|
|
192
|
-
.-o:p → opacity: var(--o--p);
|
|
193
|
-
.-o:pp → opacity: var(--o--pp);
|
|
194
|
-
.-o:ppp → opacity: var(--o--ppp);
|
|
195
|
-
```
|
|
191
|
+
opacity トークンもそのままクラス化される(`.-o:p` → `opacity: var(--o--p)`)。
|
|
196
192
|
|
|
197
193
|
### 長いキーワード値の省略
|
|
198
194
|
|
|
199
|
-
6
|
|
200
|
-
|
|
201
|
-
| 実際の値 | 省略名 | クラスの例 |
|
|
202
|
-
| --- | --- | --- |
|
|
203
|
-
| `uppercase` | `upper` | `-tt:upper` |
|
|
204
|
-
| `lowercase` | `lower` | `-tt:lower` |
|
|
205
|
-
| `fit-content` | `fit` | `-w:fit`, `-h:fit` |
|
|
206
|
-
| `space-between` | `between` | `-ac:between`, `-jc:between` |
|
|
207
|
-
| `currentColor` | `current` | `-bdc:current` |
|
|
195
|
+
6文字以上かつ省略しても意味が通るものは省略可(`uppercase` → `-tt:upper` 等)。一覧は [property-class.md](./property-class.md#値の省略形例外一覧) を参照。
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
| `fw` | `font-weight` | `-fw:light`, `-fw:normal`, `-fw:bold`, `-fw:100`〜`-fw:900` | — |
|
|
26
26
|
| `ff` | `font-family` | `-ff:base`, `-ff:accent`, `-ff:mono` | — |
|
|
27
27
|
| `fs` | `font-style` | `-fs:italic` | — |
|
|
28
|
-
| `hl` | `--hl`(ハーフレディング) | `-hl:base`, `-hl:xs`, `-hl:s`, `-hl:l`, `-hl:0` | ✔ |
|
|
29
|
-
| `lh` | `line-height
|
|
28
|
+
| `hl` | `--hl`(ハーフレディング) | `-hl:base`, `-hl:xs`, `-hl:s`, `-hl:l`, `-hl:xl`, `-hl:0` | ✔ |
|
|
29
|
+
| `lh` | `line-height`(倍率・`--lh` 経由) | `-lh:xs`, `-lh:s`, `-lh:m`, `-lh:l`, `-lh:xl`, `-lh:1` | — |
|
|
30
30
|
| `lts` | `letter-spacing` | `-lts:base`, `-lts:s`, `-lts:l`, `-lts:xl` | — |
|
|
31
31
|
| `ta` | `text-align` | `-ta:center`, `-ta:left`, `-ta:right` | — |
|
|
32
32
|
| `td` | `text-decoration` | `-td:none` | — |
|
|
33
33
|
| `tt` | `text-transform` | `-tt:upper`, `-tt:lower` | — |
|
|
34
34
|
|
|
35
|
-
**注意:**
|
|
35
|
+
**注意:** `line-height` は全要素で `var(--lh, calc(1em + var(--hl) * 2))` として管理されます。基本は `hl`(fz 非依存の固定量)を使い、fz に比例した行送りを保ちたい場合だけ `lh`(倍率)を使います。`lh` を指定した要素の子孫では `hl` は効きません。
|
|
36
36
|
|
|
37
37
|
### 表示・可視性
|
|
38
38
|
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
|
|
102
102
|
| Prop | CSS プロパティ | プリセット値クラス | BP |
|
|
103
103
|
| --- | --- | --- | --- |
|
|
104
|
-
| `bdrs` | `border-radius` | `-bdrs:0`, `-bdrs:10`, `-bdrs:20`, `-bdrs:30`, `-bdrs:40`, `-bdrs:99`, `-bdrs:inner` | ✔ |
|
|
104
|
+
| `bdrs` | `border-radius` | `-bdrs:0`, `-bdrs:10`, `-bdrs:20`, `-bdrs:30`, `-bdrs:40`, `-bdrs:50`, `-bdrs:99`, `-bdrs:inner` | ✔ |
|
|
105
105
|
| `bdrs-tl` | `border-top-left-radius` | — | — |
|
|
106
106
|
| `bdrs-tr` | `border-top-right-radius` | — | — |
|
|
107
107
|
| `bdrs-br` | `border-bottom-right-radius` | — | — |
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
| `pt` | `padding-top` | `-pt:5`, `-pt:10`, `-pt:20`, ... (SPACEトークン) | ✔ |
|
|
154
154
|
| `pb` | `padding-bottom` | `-pb:5`, `-pb:10`, `-pb:20`, ... (SPACEトークン) | ✔ |
|
|
155
155
|
|
|
156
|
-
SPACEトークンの全値(`5`〜`
|
|
156
|
+
SPACEトークンの全値(`5`〜`70`の離散値)は [tokens.md の余白 (space)](../tokens.md#余白-space) を参照。
|
|
157
157
|
|
|
158
158
|
### 余白 — Margin
|
|
159
159
|
|
|
@@ -12,10 +12,13 @@ Lism CSS のボーダーは、CSS 変数(`--bds` / `--bdw` / `--bdc`)で管
|
|
|
12
12
|
`-bd` または `-bd-{side}` クラスが付くと、以下の初期値がセットされる。
|
|
13
13
|
|
|
14
14
|
```scss
|
|
15
|
+
/* 変数の初期値だけ弱い位置に置く(@layer ビルドでは @layer lism-base、no_layer ビルドでは :where()) */
|
|
15
16
|
:where(.-bd, [class*=" -bd-"], [class^="-bd-"]) {
|
|
16
17
|
--bds: solid;
|
|
17
18
|
--bdw: 1px;
|
|
18
19
|
--bdc: var(--divider);
|
|
20
|
+
}
|
|
21
|
+
.-bd, [class*=" -bd-"], [class^="-bd-"] {
|
|
19
22
|
border-width: var(--bdw);
|
|
20
23
|
border-color: var(--bdc);
|
|
21
24
|
}
|
|
@@ -31,6 +31,7 @@ hover 時の挙動を制御する Property Class。`:hover` 擬似クラスで
|
|
|
31
31
|
| `-hov:-bgc` | `background-color` | `var(--hov-bgc, var(--hov-bgc--default, color-mix(in srgb, var(--bgc, var(--base)), var(--neutral) 25%)))` |
|
|
32
32
|
| `-hov:-o` | `opacity` | `var(--hov-o, var(--o--p))` |
|
|
33
33
|
| `-hov:-bxsh` | `box-shadow` | `var(--hov-bxsh, var(--bxsh--50))` |
|
|
34
|
+
| `-hov:-transform` | `transform` | `var(--hov-transform, translate(0, -4px))` |
|
|
34
35
|
|
|
35
36
|
任意の値へ変化させたい場合は、`--hov-{prop}` 変数で値を指定する。
|
|
36
37
|
|
|
@@ -107,7 +107,7 @@ Lism CSS のボーダーは CSS 変数(`--bds` / `--bdw` / `--bdc`)で管理
|
|
|
107
107
|
| `-hov:{preset}` | hover 時のスタイルをプリセットで適用 | `:hover`(同上) |
|
|
108
108
|
| `-hov:in:{preset}` | 親の `set--hov` を起点に子のスタイルを変化させる | 親に `set--hov` が必要 |
|
|
109
109
|
|
|
110
|
-
**標準クラス:** `-hov:-c`, `-hov:-bgc`, `-hov:-bdc`, `-hov:-o`, `-hov:-bxsh`, `-hov:underline`, `-hov:in:hide`, `-hov:in:show`, `-hov:in:zoom`
|
|
110
|
+
**標準クラス:** `-hov:-c`, `-hov:-bgc`, `-hov:-bdc`, `-hov:-o`, `-hov:-bxsh`, `-hov:-transform`, `-hov:underline`, `-hov:in:hide`, `-hov:in:show`, `-hov:in:zoom`
|
|
111
111
|
|
|
112
112
|
**`<Lism>` の `hov` prop:** 文字列指定(`hov="-c"` → `-hov:-c`。自動変換なし、カンマ区切りで複数可)とオブジェクト指定(`hov={{ c: 'red' }}` → `-hov:-c` + `--hov-c: var(--red)`。値 `true` でクラスのみ出力)が可能。
|
|
113
113
|
|