@lism-css/mcp 0.15.0 → 0.17.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 +63 -36
- package/dist/data/guides/SKILL.md +136 -24
- package/dist/data/guides/antipatterns.md +318 -0
- package/dist/data/guides/base-styles.md +3 -5
- package/dist/data/guides/components-core.md +8 -10
- package/dist/data/guides/components-ui.md +12 -4
- package/dist/data/guides/css-rules.md +29 -29
- package/dist/data/guides/customize.md +80 -26
- package/dist/data/guides/naming.md +13 -8
- package/dist/data/guides/primitive-class.md +79 -4
- package/dist/data/guides/primitives/a--decorator.md +1 -1
- package/dist/data/guides/primitives/a--divider.md +1 -1
- package/dist/data/guides/primitives/a--icon.md +1 -1
- package/dist/data/guides/primitives/a--spacer.md +1 -1
- package/dist/data/guides/primitives/l--autoColumns.md +71 -0
- package/dist/data/guides/primitives/l--box.md +1 -1
- package/dist/data/guides/primitives/l--center.md +1 -1
- package/dist/data/guides/primitives/l--cluster.md +2 -2
- package/dist/data/guides/primitives/l--columns.md +3 -3
- package/dist/data/guides/primitives/l--flex.md +1 -1
- package/dist/data/guides/primitives/l--flow.md +4 -4
- package/dist/data/guides/primitives/l--frame.md +1 -1
- package/dist/data/guides/primitives/l--grid.md +2 -2
- package/dist/data/guides/primitives/l--stack.md +1 -1
- package/dist/data/guides/primitives/{l--switchCols.md → l--switchColumns.md} +18 -18
- package/dist/data/guides/primitives/l--tileGrid.md +2 -2
- package/dist/data/guides/primitives/{l--sideMain.md → l--withSide.md} +41 -19
- package/dist/data/guides/prop-responsive.md +1 -1
- package/dist/data/guides/property-class/bd.md +4 -4
- package/dist/data/guides/property-class/hov.md +18 -18
- package/dist/data/guides/property-class/max-sz.md +20 -16
- package/dist/data/guides/property-class.md +23 -12
- package/dist/data/guides/set-class.md +2 -2
- package/dist/data/guides/tokens.md +13 -9
- package/dist/data/guides/trait-class/has--gutter.md +2 -2
- package/dist/data/guides/trait-class/has--mask.md +2 -2
- package/dist/data/guides/trait-class/has--snap.md +2 -2
- package/dist/data/guides/trait-class/has--transition.md +2 -2
- package/dist/data/guides/trait-class/is--boxLink.md +2 -2
- package/dist/data/guides/trait-class/is--container.md +13 -5
- package/dist/data/guides/trait-class/is--layer.md +5 -5
- package/dist/data/guides/trait-class/is--wrapper.md +23 -8
- package/dist/data/guides/trait-class.md +2 -2
- package/dist/data/guides/utility-class.md +9 -8
- package/dist/data/meta.js +2 -2
- package/dist/tools/get-guide.js +8 -1
- package/package.json +1 -1
- package/dist/data/guides/primitives/l--fluidCols.md +0 -71
|
@@ -230,9 +230,9 @@
|
|
|
230
230
|
"title": "Utility Class",
|
|
231
231
|
"description": "スタイルや装飾をまとめて適用できる Lism CSS のユーティリティクラスについて解説します。",
|
|
232
232
|
"category": "guide",
|
|
233
|
-
"headings": ["u--cbox", "u--trim & u--
|
|
234
|
-
"keywords": ["utility", "ユーティリティ", "class", "クラス", "u--cbox", "u--trim", "u--srOnly", "u--
|
|
235
|
-
"snippet": "用途が明確な装飾・機能をまとめてセットするユーティリティクラス (.u--{style}) の一覧。u--cbox, u--trim, u--
|
|
233
|
+
"headings": ["u--cbox", "u--trim & u--trimAll", "u--srOnly", "u--divide & u--cells", "u--clipText", "Opt-in"],
|
|
234
|
+
"keywords": ["utility", "ユーティリティ", "class", "クラス", "u--cbox", "u--trim", "u--srOnly", "u--divide", "u--cells", "u--clipText"],
|
|
235
|
+
"snippet": "用途が明確な装飾・機能をまとめてセットするユーティリティクラス (.u--{style}) の一覧。u--cbox, u--trim, u--divide, u--cells 等を解説。"
|
|
236
236
|
},
|
|
237
237
|
{
|
|
238
238
|
"sourcePath": "set-class.mdx",
|
|
@@ -249,8 +249,21 @@
|
|
|
249
249
|
"description": "Lism CSS のプリミティブクラス(l--, a--)の分類と使い方について解説します。",
|
|
250
250
|
"category": "guide",
|
|
251
251
|
"headings": ["Layout Primitives", "Atomic Primitives"],
|
|
252
|
-
"keywords": [
|
|
253
|
-
|
|
252
|
+
"keywords": [
|
|
253
|
+
"primitive",
|
|
254
|
+
"プリミティブ",
|
|
255
|
+
"layout",
|
|
256
|
+
"レイアウト",
|
|
257
|
+
"class",
|
|
258
|
+
"l--",
|
|
259
|
+
"a--",
|
|
260
|
+
"比較表",
|
|
261
|
+
"選び方",
|
|
262
|
+
"使い分け",
|
|
263
|
+
"使い分けガイド",
|
|
264
|
+
"カラムレイアウト"
|
|
265
|
+
],
|
|
266
|
+
"snippet": "レイアウトを組み立てる積み木として Primitive クラスを定義。.l--{name} (Layout Primitives) と .a--{name} (Atomic Primitives) の命名規則を説明。Layout Primitives 配下にカラムレイアウト Primitive(Columns / AutoColumns / SwitchColumns / WithSide / Grid / TileGrid)の使い分けガイド(比較表と用途別の選び方)も収録。"
|
|
254
267
|
},
|
|
255
268
|
{
|
|
256
269
|
"sourcePath": "base-styles.mdx",
|
|
@@ -267,12 +280,26 @@
|
|
|
267
280
|
"description": "Lism CSS の各バージョンにおける変更履歴をまとめています。",
|
|
268
281
|
"category": "guide",
|
|
269
282
|
"headings": [
|
|
283
|
+
"lism-css v.0.17.0 (2026.05.09)",
|
|
284
|
+
"-max-sz:bleed の新設 (#360)",
|
|
285
|
+
"--REM 廃止と --fz--base の簡素化",
|
|
286
|
+
"a タグのリンク装飾スタイル廃止",
|
|
287
|
+
"Bug Fixes",
|
|
288
|
+
"lism-css v.0.16.1 (2026.04.29)",
|
|
289
|
+
"lism-css v.0.16.0 (2026.04.21)",
|
|
290
|
+
"`u--trimChildren` のリネームと除外方式の整理 (#324, #326)",
|
|
291
|
+
"`u--collapseGrid` のリネームと `u--divide` の追加 (#323)",
|
|
292
|
+
"opacity トークンの命名変更 (#316)",
|
|
293
|
+
"Layout Primitive の命名整理 (#319)",
|
|
294
|
+
"`@lism-css/ui` v.0.16.0 (2026.04.21)",
|
|
295
|
+
"lism-css v.0.15.0 (2026.04.21)",
|
|
296
|
+
"`@lism-css/ui` v.0.15.0 (2026.04.21)",
|
|
297
|
+
"lism-css v.0.14.0 (2026.04.17)",
|
|
270
298
|
"`@lism-css/ui` v.0.14.0 (2026.04.17)",
|
|
271
|
-
"v.0.
|
|
299
|
+
"lism-css v.0.13.1 (2026.04.15)",
|
|
272
300
|
"`@lism-css/ui` v.0.13.1 (2026.04.15)",
|
|
273
|
-
"v.0.13.
|
|
301
|
+
"lism-css v.0.13.0 (2026.04.14)",
|
|
274
302
|
"`@lism-css/ui` v.0.13.0 (2026.04.14)",
|
|
275
|
-
"v.0.13.0 (2026.04.14)",
|
|
276
303
|
"`@lism-css/ui` v.0.12.0 (2026.04.10)",
|
|
277
304
|
"`@lism-css/ui` v.0.11.0 (2026.04.05)",
|
|
278
305
|
"v.0.12.0 (2026.04.10)",
|
|
@@ -292,14 +319,14 @@
|
|
|
292
319
|
"v.0.8 (大幅な変更)"
|
|
293
320
|
],
|
|
294
321
|
"keywords": ["changelog", "変更履歴", "更新", "バージョン"],
|
|
295
|
-
"snippet": "Lism CSS の各バージョンにおける変更内容を記載。"
|
|
322
|
+
"snippet": "Lism CSS の各バージョンにおける変更内容を記載。v.0.17.0 の破壊的変更として -max-sz:container 廃止と -max-sz:bleed 新設(#360)、--REM 廃止と --fz--base の 1rem 統一、a タグのリンク装飾スタイル廃止など。v.0.16.0 では Layout Primitive 命名整理(l--sideMain → l--withSide, l--fluidCols → l--autoColumns, l--switchCols → l--switchColumns)、u--trimChildren → u--trimAll へのリネームと除外方式整理(#324/#326)、u--collapseGrid → u--cells へのリネームと u--divide の新設(#323)、opacity トークンのセマンティック命名変更(#316)などがある。"
|
|
296
323
|
},
|
|
297
324
|
{
|
|
298
325
|
"sourcePath": "property-class/bd.mdx",
|
|
299
326
|
"title": "-bd",
|
|
300
327
|
"description": "ボーダーを指定する -bd プロパティクラスと関連するCSS変数の使い方について解説します。",
|
|
301
328
|
"category": "property-class",
|
|
302
|
-
"headings": ["方向指定", "bdwをブレイクポイントで切り替える"
|
|
329
|
+
"headings": ["方向指定", "bdwをブレイクポイントで切り替える"],
|
|
303
330
|
"keywords": ["border", "ボーダー", "bd", "bdc", "bdw", "bds", "bdrs", "枠線", "border-color", "border-width", "border-style", "border-radius"],
|
|
304
331
|
"snippet": "ボーダー関連のProp。bd, bdc, bdw, bds, bdrs を使ったボーダースタイルの設定方法。方向指定やブレイクポイントでの切り替えも解説。"
|
|
305
332
|
},
|
|
@@ -308,7 +335,7 @@
|
|
|
308
335
|
"title": "-hov",
|
|
309
336
|
"description": "hover時の挙動をコントロールする -hov プロパティクラスの使い方について解説します。",
|
|
310
337
|
"category": "property-class",
|
|
311
|
-
"headings": ["
|
|
338
|
+
"headings": ["-hov:-{prop} の使い方", "-hov:{preset} の使い方", "-hov:in:{preset} の使い方", "トランジションを設定する方法"],
|
|
312
339
|
"keywords": ["hover", "ホバー", "hov", "インタラクション", "animation", "set--var:hov", "has--transition", "transition"],
|
|
313
340
|
"snippet": "ホバー関連のProp。-hov:-{prop} クラスでホバーエフェクトを設定。has--transition との組み合わせでアニメーション実現。set--var:hov と -hov:in:xxx クラスで親要素ホバー時の子要素スタイル制御も可能。"
|
|
314
341
|
},
|
|
@@ -317,9 +344,9 @@
|
|
|
317
344
|
"title": "-max-sz",
|
|
318
345
|
"description": "コンテンツの最大幅を制御する -max-sz プロパティクラスの使い方について解説します。",
|
|
319
346
|
"category": "property-class",
|
|
320
|
-
"headings": ["
|
|
321
|
-
"keywords": ["max-sz", "max-inline-size", "最大サイズ", "幅", "full", "
|
|
322
|
-
"snippet": "max-sz (max-inline-size) の Prop。xs, s, m, l, xl のサイズトークンで最大幅を指定。-max-sz:full
|
|
347
|
+
"headings": ["full & bleed", "DEMOページ"],
|
|
348
|
+
"keywords": ["max-sz", "max-inline-size", "最大サイズ", "幅", "full", "bleed"],
|
|
349
|
+
"snippet": "max-sz (max-inline-size) の Prop。xs, s, m, l, xl のサイズトークンで最大幅を指定。-max-sz:full(親要素いっぱいに広がる)と -max-sz:bleed(最外側の is--container 幅まで広がる)特殊クラスも解説。"
|
|
323
350
|
},
|
|
324
351
|
{
|
|
325
352
|
"sourcePath": "core-components/Lism.mdx",
|
|
@@ -559,17 +586,17 @@
|
|
|
559
586
|
"snippet": "コンテンツフロー用のレイアウト。子要素間の余白を margin で管理。見出しタグは余白が大きくなる。is--skipFlowで余白打ち消しも可能。"
|
|
560
587
|
},
|
|
561
588
|
{
|
|
562
|
-
"sourcePath": "primitives/l--
|
|
563
|
-
"title": "
|
|
564
|
-
"description": "l--
|
|
589
|
+
"sourcePath": "primitives/l--autoColumns.mdx",
|
|
590
|
+
"title": "AutoColumns / l--autoColumns",
|
|
591
|
+
"description": "l--autoColumns は、カラム要素が指定した幅より小さくならないように自動で折り返す、ブレイクポイント非依存の段組みクラスです。",
|
|
565
592
|
"category": "primitives",
|
|
566
593
|
"headings": ["CSS", "Lismコンポーネント", "Usage"],
|
|
567
594
|
"keywords": [
|
|
568
|
-
"
|
|
595
|
+
"AutoColumns",
|
|
569
596
|
"流動カラム",
|
|
570
597
|
"auto-fill",
|
|
571
598
|
"fluid",
|
|
572
|
-
"l--
|
|
599
|
+
"l--autoColumns",
|
|
573
600
|
"display",
|
|
574
601
|
"display: grid",
|
|
575
602
|
"auto-wrap",
|
|
@@ -590,21 +617,21 @@
|
|
|
590
617
|
"snippet": "直下のメディア要素(img, video, iframe)を自身のサイズにフィットさせて表示するクラス。arでアスペクト比を指定。"
|
|
591
618
|
},
|
|
592
619
|
{
|
|
593
|
-
"sourcePath": "primitives/l--
|
|
594
|
-
"title": "
|
|
595
|
-
"description": "l--
|
|
620
|
+
"sourcePath": "primitives/l--switchColumns.mdx",
|
|
621
|
+
"title": "SwitchColumns / l--switchColumns",
|
|
622
|
+
"description": "l--switchColumns は、複数列と1列の切り替えをコンテナクエリやメディアクエリを使わずに実装するクラスです。",
|
|
596
623
|
"category": "primitives",
|
|
597
624
|
"headings": ["CSS", "Lismコンポーネント", "Usage"],
|
|
598
|
-
"keywords": ["
|
|
625
|
+
"keywords": ["SwitchColumns", "切り替え", "switch", "カラム", "l--switchColumns", "responsive columns", "メディアクエリなし"],
|
|
599
626
|
"snippet": "複数列以上と1列への切り替えをコンテナクエリ・メディアクエリを使わずに実装するクラス。breakSizeで切り替えポイントを指定。"
|
|
600
627
|
},
|
|
601
628
|
{
|
|
602
|
-
"sourcePath": "primitives/l--
|
|
603
|
-
"title": "
|
|
604
|
-
"description": "l--
|
|
629
|
+
"sourcePath": "primitives/l--withSide.mdx",
|
|
630
|
+
"title": "WithSide / l--withSide",
|
|
631
|
+
"description": "l--withSide は、維持したいコンテンツの長さを基準にして、横並び・縦並びが自動で切り替わる2カラムレイアウトのクラスです。",
|
|
605
632
|
"category": "primitives",
|
|
606
633
|
"headings": ["CSS", "Lismコンポーネント", "Usage", "`Grid`を使って似たレイアウトを構成する例"],
|
|
607
|
-
"keywords": ["
|
|
634
|
+
"keywords": ["WithSide", "サイドバー", "sidebar", "メイン", "l--withSide", "2カラム", "is--side", "two column"],
|
|
608
635
|
"snippet": "サイドバー + メインコンテンツの2カラムレイアウト。メイン側が可変幅。sideW, mainWで幅を制御。メディアクエリ・コンテナクエリに依存せず自動で切り替わる。"
|
|
609
636
|
},
|
|
610
637
|
{
|
|
@@ -957,12 +984,12 @@
|
|
|
957
984
|
},
|
|
958
985
|
{
|
|
959
986
|
"sourcePath": "utility-class.mdx",
|
|
960
|
-
"title": "u--trim / u--
|
|
987
|
+
"title": "u--trim / u--trimAll",
|
|
961
988
|
"description": "テキストのハーフレディング分の余白を調整するユーティリティクラス。",
|
|
962
989
|
"category": "guide",
|
|
963
|
-
"headings": ["u--trim", "u--
|
|
964
|
-
"keywords": ["u--trim", "u--
|
|
965
|
-
"snippet": "u--trimは自身のmargin-blockを調整。u--
|
|
990
|
+
"headings": ["u--trim", "u--trimAll"],
|
|
991
|
+
"keywords": ["u--trim", "u--trimAll", "ハーフレディング", "行間調整", "テキスト余白", "margin-block", "トリム"],
|
|
992
|
+
"snippet": "u--trimは自身のmargin-blockを調整。u--trimAllは直下の子要素(:empty・figure・picture・video・button・textarea・table を除く)の上下マージンを一括調整する除外方式のクラス。"
|
|
966
993
|
},
|
|
967
994
|
{
|
|
968
995
|
"sourcePath": "trait-class/is--boxLink.mdx",
|
|
@@ -984,12 +1011,12 @@
|
|
|
984
1011
|
},
|
|
985
1012
|
{
|
|
986
1013
|
"sourcePath": "utility-class.mdx",
|
|
987
|
-
"title": "u--
|
|
988
|
-
"description": "
|
|
1014
|
+
"title": "u--divide & u--cells",
|
|
1015
|
+
"description": "グリッド・フレックス子要素間の区切り線・セル枠を表示するユーティリティクラス。",
|
|
989
1016
|
"category": "guide",
|
|
990
|
-
"headings": ["u--
|
|
991
|
-
"keywords": ["u--
|
|
992
|
-
"snippet": "box-shadow
|
|
1017
|
+
"headings": ["u--divide & u--cells"],
|
|
1018
|
+
"keywords": ["u--divide", "u--cells", "グリッド区切り", "ボーダー", "テーブル風", "カレンダー", "box-shadow"],
|
|
1019
|
+
"snippet": "u--divide は子要素間にのみ区切り線を表示(外周なし)。u--cells は各セルを枠で囲む(table セル/カレンダー風)。どちらも box-shadow で実装。"
|
|
993
1020
|
},
|
|
994
1021
|
{
|
|
995
1022
|
"sourcePath": "trait-class.mdx",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lism-css-guide
|
|
3
|
-
description: "Lism CSS の設計・実装に関するガイド。CSSの編集・追加、UIコンポーネントやレイアウトの実装・編集時に参照。c--*, l--*, a--*, is--*, has--*, set--*, u--* -prop:value 形式のクラス・トークン(CSS変数)・命名規則・Layer規則・レスポンシブ対応について調べる時にも参照。
|
|
3
|
+
description: "Lism CSS の設計・実装に関するガイド。CSSの編集・追加、UIコンポーネントやレイアウトの実装・編集時に参照。c--*, l--*, a--*, is--*, has--*, set--*, u--* -prop:value 形式のクラス・トークン(CSS変数)・命名規則・Layer規則・レスポンシブ対応について調べる時にも参照。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Lism CSS Best Practices
|
|
@@ -9,9 +9,9 @@ description: "Lism CSS の設計・実装に関するガイド。CSSの編集・
|
|
|
9
9
|
|
|
10
10
|
調和と統一感を生み出すデザイントークン設計、`@layer`で管理されるプリミティブ設計、CSS変数を活かした柔軟でレスポンシブなユーティリティ設計が特徴です。
|
|
11
11
|
|
|
12
|
-
> **バージョン情報:** このガイドは `lism-css@0.
|
|
12
|
+
> **バージョン情報:** このガイドは `lism-css@0.17.0` / `@lism-css/ui@0.17.0` 時点の情報に基づいています。プロジェクトで使用中のバージョンを確認し、このガイドのバージョンと異なる場合はユーザーに通知してください。
|
|
13
13
|
|
|
14
|
-
公式ドキュメント: https://lism-css.com/docs/overview
|
|
14
|
+
公式ドキュメント: https://lism-css.com/docs/overview.md
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
## インストール
|
|
@@ -19,7 +19,7 @@ description: "Lism CSS の設計・実装に関するガイド。CSSの編集・
|
|
|
19
19
|
### CDNでCSSファイルのみ読み込む場合
|
|
20
20
|
|
|
21
21
|
```html
|
|
22
|
-
<link href="https://cdn.jsdelivr.net/npm/lism-css@0.
|
|
22
|
+
<link href="https://cdn.jsdelivr.net/npm/lism-css@0.16.0/dist/css/main.css" rel="stylesheet" />
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
### npm パッケージ
|
|
@@ -38,40 +38,115 @@ import 'lism-css/main.css';
|
|
|
38
38
|
```jsx
|
|
39
39
|
// React
|
|
40
40
|
import { Flex, Stack, Grid, Columns } from 'lism-css/react';
|
|
41
|
-
import { Accordion
|
|
41
|
+
import { Accordion } from '@lism-css/ui/react/Accordion';
|
|
42
|
+
import { Tabs } from '@lism-css/ui/react/Tabs';
|
|
43
|
+
import { Button } from '@lism-css/ui/react/Button';
|
|
42
44
|
|
|
43
45
|
// Astro
|
|
44
46
|
import { Flex, Stack, Grid, Columns } from 'lism-css/astro';
|
|
45
|
-
import { Accordion
|
|
47
|
+
import { Accordion } from '@lism-css/ui/astro/Accordion';
|
|
48
|
+
import { Tabs } from '@lism-css/ui/astro/Tabs';
|
|
49
|
+
import { Button } from '@lism-css/ui/astro/Button';
|
|
46
50
|
```
|
|
47
51
|
|
|
48
52
|
|
|
49
53
|
## 実装ルール
|
|
50
54
|
|
|
55
|
+
### コードを書く前に必ず参照
|
|
56
|
+
|
|
57
|
+
レイアウト選択ミスや典型的な記法ミスを避けるため、コード生成の前に以下を確認すること:
|
|
58
|
+
|
|
59
|
+
- **どの Primitive を使うか迷ったら** → [primitive-class.md の「カラムレイアウト Primitive の使い分けガイド」](./primitive-class.md#カラムレイアウト-primitive-の使い分けガイド) — 比較表と用途別の選び方で判断材料を提供
|
|
60
|
+
- **コードを書く前のチェック** → [antipatterns.md](./antipatterns.md) — Token typo / px 直書き / Prop 型ミス / レイアウト選択ミス / レスポンシブ抜けの NG → OK カタログ
|
|
61
|
+
|
|
62
|
+
### プリフライト・プリミティブ選定(必須)
|
|
63
|
+
|
|
64
|
+
実装対象の UI 構造を見て、**まずどのプリミティブ/コンポーネントを使うかを決めること**。ここを飛ばすと `<div>` + Property Class でゴリ押すコードになり、レイアウトの一貫性が失われる。
|
|
65
|
+
|
|
66
|
+
検討順:
|
|
67
|
+
|
|
68
|
+
1. **レイアウトプリミティブ** — `Stack` / `Flex` / `Cluster` / `Grid` / `Columns` / `WithSide` / `Center` / `Frame` / `Flow` / `TileGrid` / `AutoColumns` / `SwitchColumns` / `Box` のいずれかで構造を組めないか?
|
|
69
|
+
2. **Trait クラス** — `Container`(`is--container`) / `Wrapper`(`is--wrapper`) / `Layer`(`is--layer`) / `BoxLink`(`is--boxLink`) で表現すべき役割が無いか?
|
|
70
|
+
3. **Atomic プリミティブ** — `Icon` / `Divider` / `Spacer` / `Decorator` で置き換えられる装飾要素が無いか?
|
|
71
|
+
4. **UI コンポーネント** — `@lism-css/ui` の `Accordion` / `Modal` / `Tabs` / `Button` / `Badge` / `Callout` 等で済む UI が無いか?
|
|
72
|
+
|
|
73
|
+
判断に迷う場合:
|
|
74
|
+
|
|
75
|
+
- カラム系の使い分け → [primitive-class.md の使い分けガイド](./primitive-class.md#カラムレイアウト-primitive-の使い分けガイド)
|
|
76
|
+
- 典型的な選択ミス → [antipatterns.md のレイアウト選択ミス](./antipatterns.md#レイアウト選択ミス)
|
|
77
|
+
|
|
78
|
+
### プリフライト・トークン照合(必須)
|
|
79
|
+
|
|
80
|
+
コードを書き始める前に、**これから使う予定の数値・キー名・カラー名をすべて列挙し、[tokens.md](./tokens.md) の値リストと照合すること**。照合が済むまでコードを書かない。
|
|
81
|
+
|
|
82
|
+
頻出ミス(spacing 中間値・角丸/影の数値外し・fz の他FW混入・存在しないカラー名・`--keycolor` 誤用 など)の NG → OK 例は [antipatterns.md](./antipatterns.md) を参照。
|
|
83
|
+
|
|
84
|
+
照合中に「該当トークンが無い/揺れる」値が見つかった場合は、そのまま実装に進まず [デザインデータ取り込み時のフロー](#デザインデータ取り込み時のフロー) に従ってユーザー確認すること。
|
|
85
|
+
|
|
86
|
+
### プリフライト・c-- 定義時の分解(必須)
|
|
87
|
+
|
|
88
|
+
`c--*` を新規に定義する/既存に追記する前に、書こうとしている各 CSS 宣言を以下の 2 グループに分解する:
|
|
89
|
+
|
|
90
|
+
1. **Property Class / Props で書ける宣言** — マークアップ側に `-{prop}:{value}` または Lism Props として移す。CSS に書かない。
|
|
91
|
+
2. **CSS でしか書けない宣言** — 擬似クラス・擬似要素・状態切替・子孫セレクタなど。これらは `.c--*` の CSS に残す。
|
|
92
|
+
|
|
93
|
+
**CSS が 1 行も残らなくても、`c--*` クラス名はマークアップに付けたまま残してよい。**
|
|
94
|
+
むしろコンポーネントとしての意味づけがソースから読み取れるので、空の `c--*` クラスは付けておくことを推奨する(CSS ファイル側にセレクタを書く必要は無い)。
|
|
95
|
+
|
|
96
|
+
例:
|
|
97
|
+
|
|
98
|
+
NG(全部 CSS に書く)
|
|
99
|
+
|
|
100
|
+
```css
|
|
101
|
+
.c--tag {
|
|
102
|
+
font-size: var(--fz--xs);
|
|
103
|
+
padding: var(--s10);
|
|
104
|
+
background-color: var(--base-2);
|
|
105
|
+
border-radius: var(--bdrs--10);
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
OK(Property Class でマークアップに移し、`c--tag` は意味づけとして残す)
|
|
110
|
+
|
|
111
|
+
```html
|
|
112
|
+
<span class="c--tag -fz:xs -p:10 -bgc:base-2 -bdrs:10">React</span>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
`.c--tag` の CSS には、`:hover` 等の擬似クラスや、Modifier(`.c--tag--solid`)・状態切替(`[data-is-active]` 等)の宣言が出てきた時にだけ書く。そういう宣言が無ければ CSS は空のままで OK(クラス名はマークアップに残す)。
|
|
116
|
+
|
|
117
|
+
> **注意**: `is--*` は「〜である(役割・存在の宣言)」を表す trait 用プレフィックス。ユーザー定義の `is--*` を追加することは可能だが、**状態管理(`is--active` 等)やスタイルバリエーション(`is--solid` 等)への流用は誤用**。状態は `data-*` 属性、バリエーションは BEM Modifier(`c--{name}--{variant}`)で表現する。詳細: [antipatterns.md の `is--` の誤用](./antipatterns.md#is---の誤用状態バリエーション)
|
|
118
|
+
|
|
119
|
+
詳細な NG → OK 例は [antipatterns.md の「Property Class で書けるのに CSS で書く」](./antipatterns.md#property-class-で書けるのに-css-で書く) を参照。
|
|
120
|
+
|
|
51
121
|
### 基本方針: できる限りLism CSSの用意しているクラス・CSS変数・コンポーネントを使って書く
|
|
52
122
|
|
|
53
|
-
|
|
123
|
+
プリフライトでプリミティブとトークンを決めたら、細部を以下のチェックリストで検討する:
|
|
54
124
|
|
|
55
|
-
- `l--`,`a--`,`is--` などの Primitive Class や `c--` などの Component Class を用いることができるか?(React, Astroの場合は `Lism`, `Stack`, `Flex`, `Columns` 等のコンポーネントを利用して構築できるか?)
|
|
56
125
|
- Lism の用意している `set--`系クラス、`u--`系クラスは使えないか?
|
|
57
126
|
- Property Class (`-{prop}:{value}` or `<Lism prop="value">`))を使ってスタイリングできるか?
|
|
58
127
|
- 値をレスポンシブに切り替える時は Lism の Property Class (`-{prop}_{bp}` or `<Lism prop={[...]}>`)を使って実装できるか?
|
|
59
128
|
- カラー・余白・フォントサイズ・タイポグラフィ・行間(ハーフレディング)・サイズ・角丸・シャドウなどはトークン値を流用できないか?
|
|
60
129
|
- その他、Lismが用意するCSS変数を活用できないか?
|
|
61
130
|
|
|
62
|
-
### ネイティブCSS
|
|
131
|
+
### ネイティブCSS で書くかどうか
|
|
132
|
+
|
|
133
|
+
`c--*` クラスを定義する際、Primitive Class / Trait Class / Property Class / Lism Props で書ける宣言は CSS に直接書かない。
|
|
134
|
+
|
|
135
|
+
CSS(`@layer lism-component` 等)に書くのは、以下のいずれかに該当する宣言のみ:
|
|
136
|
+
|
|
137
|
+
- 擬似クラス・擬似要素(`:focus`, `::before`, `::after`, `:nth-child` 等)
|
|
138
|
+
- 状態切替(data属性で管理する`[data-is-active]`等)で複数プロパティを切り替える場合
|
|
139
|
+
- 自分でクラスを付けられない子孫要素のスタイル(MDX/markdown レンダリング配下の `h2` / `p` / `blockquote` 等)
|
|
140
|
+
- その他、Lism の既存クラスで表現できないスタイル。(計算式・特殊なスタイル、アニメーションなど。)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
### コンポーネント化のルール(CSS ではなくマークアップで束ねる)
|
|
63
144
|
|
|
64
|
-
|
|
65
|
-
- 独自コンポーネントの実装に合わせた`c--`クラス(`@layer lism-component`内で定義する)
|
|
66
|
-
- 複雑なセレクタ(`:nth-child`, `::before`, `::after` 等)を使用する必要があるスタイル
|
|
67
|
-
- カスタムプロパティを使った独自の計算式が必要なスタイル
|
|
68
|
-
- その他、Lism のトークンやプリミティブでカバーできない特殊なスタイル
|
|
145
|
+
同じ Property Class の組み合わせが 3 箇所以上で繰り返されるなら、**まず Astro/React コンポーネントとして切り出して Props で共通化** することを検討する。CSS の `c--*` を新設して中にスタイルを書くのはそれができない場合の手段とする。
|
|
69
146
|
|
|
70
|
-
|
|
147
|
+
- コンポーネントはできる限り `<Lism>` 系コアコンポーネントやレイアウトプリミティブ(`Stack`, `Flex`, `Columns` 等)をベースに構築する。
|
|
148
|
+
- カスタムコンポーネントクラスは `c--{name}` の命名規則に従う(CSS が空でも意味づけとして付ける)。
|
|
71
149
|
|
|
72
|
-
- 同じスタイルの組み合わせが3箇所以上で使われる場合は、コンポーネントとして切り出すことを検討する。
|
|
73
|
-
- コンポーネントはできる限り `<Lism>`系コアコンポーネントやレイアウトプリミティブ(`Stack`, `Flex`, `Columns` 等)をベースに構築すること。
|
|
74
|
-
- カスタムクラスが必要な場合は `.c--{name}` の命名規則に従う。
|
|
75
150
|
|
|
76
151
|
### 間違いやすい例
|
|
77
152
|
|
|
@@ -82,10 +157,12 @@ import { Accordion, Tabs, Button } from '@lism-css/ui/astro';
|
|
|
82
157
|
| `bgc="secondary"` | `bgc="base-2"` | カラートークンの間違い |
|
|
83
158
|
| `p="8"`, `g="6"` | `p="20"`, `g="10"` | スペーストークンの間違い |
|
|
84
159
|
|
|
160
|
+
その他の典型的な NG パターンは [antipatterns.md](./antipatterns.md) にカタログ化されているので、コード生成前に確認すること。
|
|
161
|
+
|
|
85
162
|
#### NG: レスポンシブの考慮漏れ・Gridの直書き
|
|
86
163
|
|
|
87
164
|
渡されたPCサイズのデザインだけをみて、カラムレイアウトを`<Grid gtc="repeat(3, 1fr)>`のように固定してしまわないようにすること。
|
|
88
|
-
特に指示がなければ、レスポンシブを意識して実装する。`<Columns>`(`l--columns`)を使ってブレイクポイントで切り替えるか、`l--
|
|
165
|
+
特に指示がなければ、レスポンシブを意識して実装する。`<Columns>`(`l--columns`)を使ってブレイクポイントで切り替えるか、`l--withSide`や`l--autoColumns`で自動レスポンシブを採用することを検討する。
|
|
89
166
|
|
|
90
167
|
また、Lism CSSではコンテナクエリを採用しているため、レスポンシブの値切り替えには先祖要素で `isContainer`(`is--container`クラス) が必要なことに注意。
|
|
91
168
|
|
|
@@ -94,6 +171,40 @@ import { Accordion, Tabs, Button } from '@lism-css/ui/astro';
|
|
|
94
171
|
ページ全体のデザインデータを渡された時、サイト幅やセクションエリアのサイズをpxでハードコーディングする前に、`--sz--`トークンを活用できないかをまずは考えてください。
|
|
95
172
|
`<Lism as="section" max-sz="m"`>(`-max-sz:m`クラス) などの指定でコンテンツ幅を管理することができます。
|
|
96
173
|
|
|
174
|
+
### デザインデータ取り込み時のフロー
|
|
175
|
+
|
|
176
|
+
Figma 等のデザインデータから値を読み取って実装する場合、px / rem / em の固定値が含まれることが多い。**実装に着手する前に**以下の手順でユーザーに方針を確認すること。確認せずに px 直書きで進めない。
|
|
177
|
+
|
|
178
|
+
#### 手順
|
|
179
|
+
|
|
180
|
+
1. **px / rem / em で書かれた値を抽出**(spacing / radius / size / fz / lh / lts / shadow など)
|
|
181
|
+
2. **対応するトークン候補と差分を表で提示**
|
|
182
|
+
|
|
183
|
+
| デザイン値 | 最寄りトークン | 差分 |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| `padding: 12px` | `--s15`(≒12px) | 一致 |
|
|
186
|
+
| `padding: 3px` | `--s5`(≒4px) | +1px |
|
|
187
|
+
| `border-radius: 6px` | `--bdrs--10`(4px)/`--bdrs--20`(8px) | ±2px |
|
|
188
|
+
| `font-size: 13px` | `--fz--xs`(mol/(mol+2)) | スケール基準でズレる |
|
|
189
|
+
|
|
190
|
+
3. **ユーザーに方針を確認**(候補は以下の3択)
|
|
191
|
+
|
|
192
|
+
- **A. デザイン値を優先して px / rem / em で直書きする**
|
|
193
|
+
- 一貫性より忠実度を優先するケース。デザイントークンの恩恵は失う。
|
|
194
|
+
- **B. 最寄りトークンに丸める(推奨)**
|
|
195
|
+
- 一貫性・スケーラビリティを優先。微差は許容する。
|
|
196
|
+
- **C. トークン全体の基準値を上書きする**
|
|
197
|
+
- デザインのスケールに合わせて、`--s-unit` / `--fz-mol` などの基準変数や、 `--s10`, `--fz--xl` , `--bdrs--10` などの**具体的な各トークン変数を `global.css` で再定義**することで、トークン全体をデザインデータに揃える。
|
|
198
|
+
- 既存トークンの上書きで吸収できない場合に限り、`--s25` 等のカスタムトークンを追加する。
|
|
199
|
+
|
|
200
|
+
4. 確認結果に従って実装する。
|
|
201
|
+
|
|
202
|
+
#### 確認不要な例外
|
|
203
|
+
|
|
204
|
+
- 1px / -1px の罫線・視覚補正(border / margin の打ち消し)
|
|
205
|
+
- transform / vertical-align 等の微調整値(数 px 単位)
|
|
206
|
+
- ブラウザ仕様上 px 必須の値(`media query`、`@container` の `min-width` 等)
|
|
207
|
+
|
|
97
208
|
|
|
98
209
|
## 詳細リファレンス
|
|
99
210
|
|
|
@@ -104,7 +215,8 @@ import { Accordion, Tabs, Button } from '@lism-css/ui/astro';
|
|
|
104
215
|
- [naming.md](./naming.md) — 命名規則の詳細。(CSS変数名・クラス名・Property Class の `{prop}` / `{value}` の省略ルール)
|
|
105
216
|
- [base-styles.md](./base-styles.md) — HTML要素のベーススタイリング。(Reset CSSやHTML要素の基本スタイルをカスタマイズできるCSS変数)
|
|
106
217
|
- [set-class.md](./set-class.md) — ベーススタイル・変数セットに使用する`set--` クラスの一覧と用途。
|
|
107
|
-
- [primitive-class.md](./primitive-class.md) — レイアウトを組み立てる Primitive クラス(`l--`/`a
|
|
218
|
+
- [primitive-class.md](./primitive-class.md) — レイアウトを組み立てる Primitive クラス(`l--`/`a--`)の一覧と用途。カラムレイアウト系の使い分けガイドも含む。
|
|
219
|
+
- [antipatterns.md](./antipatterns.md) — AI が生成しがちな NG パターンと OK 対応。Token typo / px 直書き / `--keycolor` 誤用 / Prop 型ミス / レイアウト選択ミス / レスポンシブ抜け。
|
|
108
220
|
- [trait-class.md](./trait-class.md) — 要素に役割・機能を宣言する Trait クラス(`is--`/`has--`)の一覧と用途。
|
|
109
221
|
- [utility-class.md](./utility-class.md) — 具体的な用途・装飾・機能を持つユーティリティクラス(`u--` クラス)の一覧と用途。
|
|
110
222
|
- [property-class.md](./property-class.md) — 単一のCSSプロパティに対応するProperty Class(`-{prop}:{value}`形式のクラス)の一覧・記法。
|
|
@@ -130,9 +242,9 @@ import { Accordion, Tabs, Button } from '@lism-css/ui/astro';
|
|
|
130
242
|
- `l--frame` / `<Frame>`: [primitives/l--frame.md](./primitives/l--frame.md)
|
|
131
243
|
- `l--columns` / `<Columns>`: [primitives/l--columns.md](./primitives/l--columns.md)
|
|
132
244
|
- `l--tileGrid` / `<TileGrid>`: [primitives/l--tileGrid.md](./primitives/l--tileGrid.md)
|
|
133
|
-
- `l--
|
|
134
|
-
- `l--
|
|
135
|
-
- `l--
|
|
245
|
+
- `l--autoColumns` / `<AutoColumns>`: [primitives/l--autoColumns.md](./primitives/l--autoColumns.md)
|
|
246
|
+
- `l--switchColumns` / `<SwitchColumns>`: [primitives/l--switchColumns.md](./primitives/l--switchColumns.md)
|
|
247
|
+
- `l--withSide` / `<WithSide>`: [primitives/l--withSide.md](./primitives/l--withSide.md)
|
|
136
248
|
|
|
137
249
|
**Trait Class (is--)**
|
|
138
250
|
|
|
@@ -159,7 +271,7 @@ import { Accordion, Tabs, Button } from '@lism-css/ui/astro';
|
|
|
159
271
|
|
|
160
272
|
- `-bd` / `-bd-{side}` 系: [property-class/bd.md](./property-class/bd.md)
|
|
161
273
|
- `-hov:*` 系: [property-class/hov.md](./property-class/hov.md)
|
|
162
|
-
- `-max-sz:full` / `-max-sz:
|
|
274
|
+
- `-max-sz:full` / `-max-sz:bleed`: [property-class/max-sz.md](./property-class/max-sz.md)
|
|
163
275
|
|
|
164
276
|
|
|
165
277
|
## このスキルファイル自身のアップデート方法
|