@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
|
@@ -1,52 +1,48 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lism-css-guide
|
|
3
|
-
description: 'Lism CSSでUIやページを実装・修正する時に使う実装ガイド。Primitive選定・トークン照合・Property Class/Lism Props
|
|
3
|
+
description: 'Lism CSSでUIやページを実装・修正する時に使う実装ガイド。Primitive選定・トークン照合・Property Class/Lism Props活用・レスポンシブ設計・アンチパターン照合を変更規模に応じて行う。b--*, c--*, l--*, a--*, is--*, has--*, set--*, u--*, -prop:value形式のクラスやトークンの逆引きにも使う。'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Lism CSS 実装ガイド
|
|
7
7
|
|
|
8
|
-
Lism CSSでUI
|
|
8
|
+
Lism CSSでUI・ページ・コンポーネントを実装する時の判断の起点。変更規模から実行レベルを判定し、実装前チェック→実装→提出前セルフチェックを通す。
|
|
9
9
|
|
|
10
10
|
公式ドキュメント: https://lism-css.com/docs/overview.md
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**バージョン:** `lism-css@0.28.0`/`@lism-css/ui@0.28.0`時点の情報。プロジェクトのバージョンが異なる場合はユーザーに伝え、パッケージ更新またはこのスキルの更新を案内する。
|
|
13
13
|
|
|
14
14
|
## 実装フロー(厳守)
|
|
15
15
|
|
|
16
16
|
資料確認は、コード上の操作の直前に行う。どの操作の手前で何を読むかは「資料確認トリガー」に従う。
|
|
17
17
|
|
|
18
|
-
0. **実行レベル判定**:
|
|
19
|
-
1. **初期確認**: SKILL.md
|
|
20
|
-
2.
|
|
21
|
-
3. 実装前チェック(C0–C8
|
|
18
|
+
0. **実行レベル判定**: 「事前チェック実行レベル」で不要/軽量/通常/値照合付きを決める。
|
|
19
|
+
1. **初期確認**: SKILL.mdだけで実装しない。実装対象に明らかに関係する最小限の詳細ファイルを先に開き、実装プランに「初期確認した資料」を列挙する。リンク表を眺めただけは確認済みにしない。
|
|
20
|
+
2. 「目的別実装ガイド」でPrimitive/コンポーネントの候補を選ぶ。
|
|
21
|
+
3. 実装前チェック(C0–C8)を行い、初期確認した資料・使うPrimitive・コンポーネント・トークン・レスポンシブ方針を列挙した**実装プラン**を出す。未読のまま採用できない判断は🔁を付け、「読む資料」を判断行に紐づける。
|
|
22
22
|
4. 「資料確認トリガー」に従い、各操作をコードに書く手前で対応資料を読み、🔁を✅または⏸へ解消する。
|
|
23
|
-
5. ⏸が残る項目(px
|
|
23
|
+
5. ⏸が残る項目(px丸め・任意色・挙動変更・公開クラス変更など)は、その部分を実装する前にユーザー確認する。確認が取れない場合は「判定記号」の⏸の項に従う。
|
|
24
24
|
6. 実装する。
|
|
25
|
-
7.
|
|
25
|
+
7. (通常・値照合付きのみ)「提出前セルフチェック」で実装プランと実装を照合する。
|
|
26
26
|
|
|
27
|
-
C0–C8
|
|
27
|
+
C0–C8の詳細と実装プランの書式は[`references/authoring.md`](./references/authoring.md)。
|
|
28
28
|
|
|
29
29
|
## 判定記号
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
実装プランの各行に付ける。使えるのは次の3記号と、✅への注記`✅新規`・`✅例外`・`✅前提`だけ。注記の組み合わせ(`✅例外/前提`等)や新しい記号・注記は作らない。該当する行は🔁として扱う。
|
|
32
32
|
|
|
33
33
|
| 記号 | 意味 |
|
|
34
34
|
| --- | --- |
|
|
35
|
-
| ✅ |
|
|
35
|
+
| ✅ | 確定。新規定義(コンポーネント/トークン/クラス)や合意済みの直書き例外は行内に注記する(例: `✅新規`、`✅例外(1px罫線)`) |
|
|
36
36
|
| 🔁 | 資料確認トリガーに該当する未通過項目。対応操作をコードに書く手前で指定資料を読み、✅または⏸へ解消する。🔁のまま実装しない |
|
|
37
37
|
| ⏸ | 要ユーザー確認。確認まで実装しない |
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
**`✅例外`の条件**: `antipatterns.md`の「直書きしてよい例外」に該当する場合だけ。行にはその項目の引用を添え、引用を書けない行は⏸。それ以外の例外化・丸め・新規トークンは⏸。許可リストに例外カテゴリを自作しない。「正確に再現して」等のユーザー指示や実測値であることは根拠にならない。デザイン値の既定の扱いは[`references/authoring.md`](./references/authoring.md)の「デザインデータ取り込みフロー」に従う。
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
**⏸の確認が取れない場合**(自律実行など): 原則準拠側の選択肢(すり合わせ済みの方針があればそれ、無ければ入力種別ごとの既定動作。例: 最寄りトークンへの丸め)を選び、その行を`✅前提(p="30"へ丸め)`のように更新して進め、完了報告で論点と代替案を列挙する。px直書き・例外カテゴリの新設・公開クラス変更・破壊的変更など逸脱側の選択肢は選べず、⏸のまま実装しない。
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
`lism-css-refactor`スキルは同じ記号を別の意味(✅=触らない、⬜=意図的に残す等)で使う。リファクタ時はrefactor側の定義に従い、どちらの意味かを表の見出し等で明示する。
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
## 実装プランのC一覧(実装前チェック項目)
|
|
48
|
-
|
|
49
|
-
このガイドでは、実装前に確認する項目を`C0`〜`C8`の番号で表します。`C`はCheck(確認)の略で、短く参照するためのラベルです。
|
|
45
|
+
## 実装前チェック項目(C0–C8)
|
|
50
46
|
|
|
51
47
|
| C | 見ること | 主な参照先 |
|
|
52
48
|
| --- | --- | --- |
|
|
@@ -56,7 +52,7 @@ C0–C8の詳細と出力形式は[`references/authoring.md`](./references/autho
|
|
|
56
52
|
| C3 | 命名設計 | `naming.md`、`css-rules.md` |
|
|
57
53
|
| C4 | 状態・バリエーション設計 | `trait-class.md`、`antipatterns-layout.md` |
|
|
58
54
|
| C5 | 値・トークン照合 | `tokens.md`、`property-class.md` |
|
|
59
|
-
| C6 | レスポンシブ方針 | `responsive.md`、`is--container.md` |
|
|
55
|
+
| C6 | レスポンシブ方針 | `responsive.md`、`trait-class/is--container.md` |
|
|
60
56
|
| C7 | CSSに書くもの/Propsに移すもの | `property-class.md`、`css-rules.md` |
|
|
61
57
|
| C8 | 既定値の確認 | `primitives/l--*.md` |
|
|
62
58
|
|
|
@@ -64,16 +60,26 @@ C0–C8の詳細と出力形式は[`references/authoring.md`](./references/autho
|
|
|
64
60
|
|
|
65
61
|
| レベル | 条件 | 確認するC | 出力 | 提出前セルフチェック |
|
|
66
62
|
| --- | --- | --- | --- | --- |
|
|
67
|
-
| 不要 |
|
|
68
|
-
| 軽量 |
|
|
69
|
-
| 通常 |
|
|
70
|
-
| 値照合付き | Figma/スクショ等のデザイン再現 | 通常+C5/C7を詳しく確認 |
|
|
63
|
+
| 不要 | 説明のみ/コード変更なし/既存の書き方をなぞるだけの変更(下記の判定基準) | — | なし。手順6(実装)だけ行い、`.lism/`も作らない | 行わない |
|
|
64
|
+
| 軽量 | 数行の小変更・既存パターン内の変更・Props/Property Classだけで完結する小部品の追加 | C1・C5中心 | 3〜5行の箇条書き | 行わない |
|
|
65
|
+
| 通常 | 新規セクション、または新規CSS(`b--*`/`c--*`のスタイル宣言)を伴う新規部品 | 必須=初期確認した資料、C0、C1、C5、C6。該当時だけC2/C3/C4/C7/C8 | 項目別の表 | 実施し、`.lism/review.md`へ保存 |
|
|
66
|
+
| 値照合付き | Figma/スクショ等のデザイン再現 | 通常+C5/C7を詳しく確認 | 項目別の表+トークン差分表(差分列必須)。チャットではなく`.lism/plan.md`へ保存 | 実施し、`.lism/review.md`へ保存 |
|
|
67
|
+
|
|
68
|
+
`.lism/`の規約は[`references/verification.md`](./references/verification.md)。
|
|
71
69
|
|
|
72
|
-
|
|
70
|
+
「不要」の判定基準: 次のいずれも含まなければ「不要」。1つでも含めば「軽量」以上。
|
|
71
|
+
|
|
72
|
+
- 新規の`c--*`/`b--*`クラス
|
|
73
|
+
- 新規のCSS宣言(ファイル・`<style>`)
|
|
74
|
+
- 既存コードで使っていないPrimitive/Trait/コンポーネントの導入
|
|
75
|
+
- 新規のレスポンシブ切替
|
|
76
|
+
- トークン外の数値・色
|
|
77
|
+
|
|
78
|
+
不要/軽量/通常で迷っても上のレベルへ上げない。デザイン再現かどうかで迷う場合だけ「値照合付き」にする。通常でも該当しないCは省略し、表を形だけ埋めず実装に影響する項目だけ列挙する。
|
|
73
79
|
|
|
74
80
|
## 資料確認トリガー
|
|
75
81
|
|
|
76
|
-
|
|
82
|
+
左の操作をコードに書く手前で右の資料を読む。未読ならその判断は🔁にし、読んで✅にするか、判断できなければ⏸にする。**🔁のままコードへ反映しない。**「必要なら参照」で代替しない。
|
|
77
83
|
|
|
78
84
|
| この操作をする手前で | この資料を読む |
|
|
79
85
|
| --- | --- |
|
|
@@ -87,24 +93,22 @@ C0–C8の詳細と出力形式は[`references/authoring.md`](./references/autho
|
|
|
87
93
|
| `b--*`/`c--*`のCSSを書く | `css-rules.md`の`Block Class(b--)`/`Custom Class(c--)`節 |
|
|
88
94
|
| 状態・バリエーションを設計する | `trait-class.md` |
|
|
89
95
|
|
|
90
|
-
「必要なら参照」などの曖昧な表現で代替しない。対象操作の直前に読む。
|
|
91
|
-
|
|
92
96
|
## 最小ゲート
|
|
93
97
|
|
|
94
|
-
|
|
98
|
+
常に守る。迷う・例外にする・既存実装と衝突する場合は該当資料を読み、🔁を✅または⏸へ解消する。
|
|
95
99
|
|
|
96
|
-
- 構造は`<div>`+素のCSSよりPrimitive
|
|
97
|
-
- `c--*`/`b
|
|
98
|
-
- 独自クラスは2
|
|
100
|
+
- 構造は`<div>`+素のCSSよりPrimitiveを優先する。候補は「目的別実装ガイド」から選ぶ。
|
|
101
|
+
- `c--*`/`b--*`はBlockをcamelCase、Elementを`_`ひとつ、Modifierを`--`ふたつで命名する。`c--feature-card`や`__`は使わない。
|
|
102
|
+
- 独自クラスは2分類で命名する: ベーススタイルをCSS側で管理する共通基礎部品→`b--`、それ以外→`c--`。
|
|
99
103
|
- 独自CSSは必ず`@layer lism-custom`内に置く(`b--`のベーススタイルだけ`@layer lism-block`)。
|
|
100
|
-
- トークン外のpx/rem/em
|
|
101
|
-
- `c
|
|
102
|
-
-
|
|
103
|
-
- 状態は`data-*`/ARIA、見た目バリエーションはBlockと同じプレフィックスのModifier(`c
|
|
104
|
+
- トークン外のpx/rem/em値を勝手に丸めたり直書きしたりしない。丸め・新規トークン・直書き例外は⏸(`✅例外`の条件は「判定記号」)。
|
|
105
|
+
- `c--*`では、単一要素にだけ効く宣言はCSSに書かず、まずLism Props/Property Classで表せないか確認する。CSSに残すのは擬似要素・子孫セレクタ・状態切替などProperty Classで書けない宣言だけ。名前として残すのは本体クラス`c--name`だけで、CSSで参照しないElement(`c--name_elem`)は付けない。`b--*`のベーススタイルは対象外で、トークンを使って`@layer lism-block`に書いてよい(BP切替・hover・例外的な調整はProperty Class)。
|
|
106
|
+
- レスポンシブ値は、container query運用なら必要な`isContainer`祖先を確認する。
|
|
107
|
+
- 状態は`data-*`/ARIA、見た目バリエーションはBlockと同じプレフィックスのModifier(`c--name--variant`/`b--name--variant`)で表す。`is--active`のようにTrait Classを状態名に流用しない。
|
|
104
108
|
|
|
105
109
|
## 目的別実装ガイド
|
|
106
110
|
|
|
107
|
-
|
|
111
|
+
やりたいことから候補を引く。複数候補の行は括弧内の基準で使い分ける。
|
|
108
112
|
|
|
109
113
|
| やりたいこと | 使う候補 | 詳細 |
|
|
110
114
|
| --- | --- | --- |
|
|
@@ -114,108 +118,74 @@ C0–C8の詳細と出力形式は[`references/authoring.md`](./references/autho
|
|
|
114
118
|
| 幅制御 | `Container`(コンテナクエリ基準)/`Wrapper`(直下領域の幅制限)/`max-sz`(単体の幅) | `trait-class/is--container.md`、`trait-class/is--wrapper.md`、`property-class/max-sz.md` |
|
|
115
119
|
| 画像・動画・iframeを置く | `Frame`(アスペクト比枠・直下メディアのfit・overflowを任せる) | `primitives/l--frame.md` |
|
|
116
120
|
| ボタン | `@lism-css/ui`の`Button`。素の`<button>`を整えるならreset済みの`set--plain` | `components-ui.md`、`set-class.md` |
|
|
121
|
+
| ツールチップ・ポップオーバー | `@lism-css/ui`の`Tooltip`(ホバー/フォーカスの補足テキスト)/`Popover`(クリックで開くパネル。リンクやフォームを含むならこちら) | `components-ui.md` |
|
|
117
122
|
| hover効果 | `-hov:*`/`hov={{}}`/`set--hov`/`has--transition`(component CSSの`:hover`より先に検討) | `property-class/hov.md`、`trait-class/has--transition.md` |
|
|
118
123
|
| ボックス・カードの全体リンク | `BoxLink`/`is--boxLink`(クリック領域と重なり順を任せる) | `trait-class/is--boxLink.md` |
|
|
119
|
-
| 小さいUI部品 | `c--*`+Property Class(`c--*`は何のパーツかを示す名前に留め、単一要素の見た目はProperty Class/Lism Propsへ)。ベーススタイルを
|
|
124
|
+
| 小さいUI部品 | `c--*`+Property Class(`c--*`は何のパーツかを示す名前に留め、単一要素の見た目はProperty Class/Lism Propsへ)。ベーススタイルをCSS側で管理する共通部品なら`b--*` | `property-class.md`、`css-rules.md#custom-classc--`、`css-rules.md#block-classb--` |
|
|
120
125
|
| ページの定番セクション(ヒーロー・サイトヘッダー・フッター等) | `Group`+`Wrapper`/`Stack`/`Cluster`の定番構成 | `references/page-sections.md` |
|
|
121
126
|
|
|
122
127
|
## 提出前セルフチェック
|
|
123
128
|
|
|
124
|
-
|
|
129
|
+
通常・値照合付きレベルだけ行う。不要・軽量では、チャット内の簡易確認も評価サブエージェントへの委任もしない。
|
|
125
130
|
|
|
126
|
-
|
|
131
|
+
サブエージェント/タスク委任機能が使える環境では、この節の照合を実装した本人ではなく読み取り専用の評価サブエージェントに委任する(指示テンプレ・報告書式・再評価ループは[`references/verification.md`](./references/verification.md))。報告は`.lism/review.md`へ保存し、違反ゼロになるまで修正→再評価を繰り返してから提出し、完了報告で`.lism/review.md`を参照する。委任できない環境では、本人が同じ照合をこの節の順に行う。
|
|
127
132
|
|
|
128
|
-
まず実装プランと実装を1
|
|
133
|
+
まず実装プランと実装を1行ずつ照合し、差分を「計画変更(意図的)/実装漏れ(直す)/要確認(再び確認が必要)」に分類する。その後、次を確認する。
|
|
129
134
|
|
|
130
135
|
**プロセス照合**
|
|
131
136
|
|
|
132
|
-
-
|
|
133
|
-
-
|
|
137
|
+
- 実装プラン内の🔁が✅または⏸へ解消されているか。🔁のままコードに反映した判断がないか。
|
|
138
|
+
- 資料確認ログの各行が実装プランの判断項目と対応しているか。未読のまま採用したPrimitive/トークン/命名/レスポンシブ判断がないか。
|
|
134
139
|
|
|
135
140
|
**ルール照合**
|
|
136
141
|
|
|
137
142
|
- 「最小ゲート」の各項目に違反していないか。
|
|
138
143
|
- [`antipatterns.md`](./antipatterns.md)と[`antipatterns-layout.md`](./antipatterns-layout.md)のTOCを開き、実装コードに該当しうる項目を1つずつ照合する。リンク表を眺めただけは確認済みにしない。
|
|
139
144
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
実装プランの判定自体を再審査します。プラン段階で✅にした逸脱は実装との差分照合では検出できない(差分ゼロ=合格になってしまう)ため、差分照合とは別に行います。
|
|
145
|
+
**プラン再審査**(プラン段階で✅にした逸脱は差分照合では検出できないため、別に行う)
|
|
143
146
|
|
|
144
147
|
- `✅例外`を含む✅判定を、最小ゲート・`antipatterns.md`の「直書きしてよい例外」・すり合わせ済みの値マッピング方針に再照合する。許可リスト外の`✅例外`は⏸へ戻す。
|
|
145
|
-
-
|
|
146
|
-
-
|
|
148
|
+
- 値照合付きでは、`.lism/plan.md`にトークン差分表(差分列付き)があるか確認する。無ければ実装プランは無効。差分表を作って照合をやり直す。スケール前提(画像の書き出し倍率等)が実測・整合チェックで検証済みかも確認する(未検証なら差分表全体が無効)。
|
|
149
|
+
- 実行レベル判定が妥当だったか見直す(デザイン再現なのに「値照合付き」へ上げず、差分表を回避していないか)。
|
|
147
150
|
|
|
148
|
-
|
|
151
|
+
**個別確認**
|
|
149
152
|
|
|
150
153
|
- `@lism-css/ui`の既存コンポーネントで置き換えられないか。
|
|
151
154
|
- 同じProperty Classの組み合わせが3箇所以上ならコンポーネント化を検討したか。
|
|
152
155
|
- 既存の命名・レイヤー・ファイル配置に合っているか。
|
|
153
|
-
-
|
|
156
|
+
- 値照合付きでは、レンダリング結果の確認を完了報告の前提にする。確認できない環境では完了報告にユーザーへの目視確認依頼を含める。HTTPステータスやビルド成功だけで完了扱いにしない。
|
|
154
157
|
|
|
155
158
|
## 詳細リファレンス
|
|
156
159
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
|
160
|
-
|
|
|
161
|
-
| `
|
|
162
|
-
| `
|
|
163
|
-
| `
|
|
164
|
-
| `
|
|
165
|
-
| `
|
|
166
|
-
| `
|
|
167
|
-
| `
|
|
168
|
-
| `
|
|
169
|
-
| `
|
|
170
|
-
| `
|
|
171
|
-
| `
|
|
172
|
-
| `
|
|
173
|
-
| `
|
|
174
|
-
| `
|
|
175
|
-
| `
|
|
176
|
-
| `references/
|
|
177
|
-
| `references/verification.md` | `.lism/`規約・評価サブエージェントへの委任 | プラン保存・提出前チェックの委任 |
|
|
178
|
-
| `references/page-sections.md` | ヒーロー・ヘッダー・フッター等の定番構成例 | ページセクションの実装 |
|
|
160
|
+
| ファイル | 内容・読む時 |
|
|
161
|
+
| --- | --- |
|
|
162
|
+
| `primitive-class.md` | `l--`/`a--` Primitive一覧と使い分け。レイアウト選定(必要なら`primitives/l--*.md`も) |
|
|
163
|
+
| `trait-class.md` | `is--`/`has--` Trait一覧と役割。状態・バリエーション設計 |
|
|
164
|
+
| `property-class.md` | `-{prop}:{value}`形式のProperty Class。CSSをProperty Class/Propsへ移せるか |
|
|
165
|
+
| `utility-class.md` | `u--*`ユーティリティ |
|
|
166
|
+
| `set-class.md` | `set--plain`/`set--hov`等のセットクラス。reset済みボタン等 |
|
|
167
|
+
| `tokens.md` | デザイントークンとCSS変数。余白・色・角丸・影・fzの照合 |
|
|
168
|
+
| `naming.md` | 命名規則とProperty Class省略ルール |
|
|
169
|
+
| `css-rules.md` | CSS設計・Layer構造・`b--*`/`c--*`・独自クラスの分類。カスタムCSS |
|
|
170
|
+
| `responsive.md` | BP・コンテナクエリ・レスポンシブProps |
|
|
171
|
+
| `base-styles.md` | Reset CSSとHTML要素の基本スタイル。素のHTML要素の既定を確認 |
|
|
172
|
+
| `components-core.md` | `lism-css`のReact/Astroコアコンポーネント |
|
|
173
|
+
| `components-ui.md` | `@lism-css/ui`のUIコンポーネント。UIコンポーネント置換 |
|
|
174
|
+
| `customize.md` | SCSS変数・`lism.config.js`によるカスタマイズ |
|
|
175
|
+
| `antipatterns.md` | AIが生成しがちなNG→OK(値・スタイル宣言系)。典型ミス確認 |
|
|
176
|
+
| `antipatterns-layout.md` | NG→OKの分冊(構造・レイアウト・レスポンシブ系) |
|
|
177
|
+
| `references/authoring.md` | 実装プランの作り方(C0–C8詳細・出力フォーマット) |
|
|
178
|
+
| `references/verification.md` | `.lism/`規約・評価サブエージェントへの委任 |
|
|
179
|
+
| `references/page-sections.md` | ヒーロー・ヘッダー・フッター等の定番構成例 |
|
|
179
180
|
|
|
180
181
|
## クラス単位の詳細リファレンス
|
|
181
182
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
- `l--box
|
|
185
|
-
- `
|
|
186
|
-
- `
|
|
187
|
-
- `l--cluster`/`<Cluster>`: `primitives/l--cluster.md`
|
|
188
|
-
- `l--grid`/`<Grid>`: `primitives/l--grid.md`
|
|
189
|
-
- `l--flow`/`<Flow>`: `primitives/l--flow.md`
|
|
190
|
-
- `l--center`/`<Center>`: `primitives/l--center.md`
|
|
191
|
-
- `l--frame`/`<Frame>`: `primitives/l--frame.md`
|
|
192
|
-
- `l--columns`/`<Columns>`: `primitives/l--columns.md`
|
|
193
|
-
- `l--tileGrid`/`<TileGrid>`: `primitives/l--tileGrid.md`
|
|
194
|
-
- `l--autoColumns`/`<AutoColumns>`: `primitives/l--autoColumns.md`
|
|
195
|
-
- `l--switchColumns`/`<SwitchColumns>`: `primitives/l--switchColumns.md`
|
|
196
|
-
- `l--withSide`/`<WithSide>`: `primitives/l--withSide.md`
|
|
197
|
-
|
|
198
|
-
**Trait Class**
|
|
199
|
-
|
|
200
|
-
- `is--container`/`<Container>`: `trait-class/is--container.md`
|
|
201
|
-
- `is--wrapper`/`<Wrapper>`: `trait-class/is--wrapper.md`
|
|
202
|
-
- `is--layer`/`<Layer>`: `trait-class/is--layer.md`
|
|
203
|
-
- `is--boxLink`/`<BoxLink>`: `trait-class/is--boxLink.md`
|
|
204
|
-
- `has--transition`: `trait-class/has--transition.md`
|
|
205
|
-
- `has--gutter`: `trait-class/has--gutter.md`
|
|
206
|
-
- `has--snap`: `trait-class/has--snap.md`
|
|
207
|
-
- `has--mask`: `trait-class/has--mask.md`
|
|
208
|
-
|
|
209
|
-
**Atomic Primitives/Property Class**
|
|
210
|
-
|
|
211
|
-
- `a--icon`/`<Icon>`: `primitives/a--icon.md`
|
|
212
|
-
- `a--divider`/`<Divider>`: `primitives/a--divider.md`
|
|
213
|
-
- `a--spacer`/`<Spacer>`: `primitives/a--spacer.md`
|
|
214
|
-
- `a--decorator`/`<Decorator>`: `primitives/a--decorator.md`
|
|
215
|
-
- `-bd`/`-bd-{side}`系: `property-class/bd.md`
|
|
216
|
-
- `-hov:*`系: `property-class/hov.md`
|
|
217
|
-
- `-max-sz:full`/`-max-sz:bleed`: `property-class/max-sz.md`
|
|
183
|
+
ファイル名はクラス名そのまま(`primitives/l--stack.md`等)。対応コンポーネント名は`components-core.md`。
|
|
184
|
+
|
|
185
|
+
- `primitives/`: `l--box` `l--flex` `l--stack` `l--cluster` `l--grid` `l--flow` `l--center` `l--frame` `l--columns` `l--tileGrid` `l--autoColumns` `l--switchColumns` `l--withSide` `a--icon` `a--divider` `a--spacer` `a--decorator`
|
|
186
|
+
- `trait-class/`: `is--container` `is--wrapper` `is--layer` `is--boxLink` `has--transition` `has--gutter` `has--snap` `has--mask`
|
|
187
|
+
- `property-class/`: `all-props.md`(全Prop表)、`bd.md`(`-bd`/`-bd-{side}`系)、`hov.md`(`-hov:*`系)、`max-sz.md`(`-max-sz:full`/`bleed`)
|
|
218
188
|
|
|
219
189
|
## このスキルファイル自身のアップデート方法
|
|
220
190
|
|
|
221
|
-
|
|
191
|
+
スキル更新の依頼には`lism-cli skill add`または`lism-cli skill update`を案内する。最新はGitHubリポジトリの`skills/lism-css-guide`で確認する。
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
- [レスポンシブ配列の冗長指定](#レスポンシブ配列の冗長指定)
|
|
20
20
|
- [`is--` の誤用(状態・バリエーション)](#is---の誤用状態バリエーション)
|
|
21
21
|
- [クラス名の命名ミス](#クラス名の命名ミス)
|
|
22
|
+
- [CSS の無い Element クラスを付ける](#css-の無い-element-クラスを付ける)
|
|
22
23
|
|
|
23
24
|
---
|
|
24
25
|
|
|
@@ -97,13 +98,14 @@ Astro/Reactで実装しているのに、`lism-css/astro`や`lism-css/react`のP
|
|
|
97
98
|
|
|
98
99
|
## primitive 既定値の重複指定
|
|
99
100
|
|
|
100
|
-
Primitiveが既に持つCSSと同じ値を、Lism Props/Property Classで重ねない。既定の挙動は各`primitives/l--*.md
|
|
101
|
+
Primitiveが既に持つCSSと同じ値を、Lism Props/Property Classで重ねない。既定の挙動は各`primitives/l--*.md`の「既定の挙動」を確認する。セマンティックコンポーネントのデフォルト要素と同じ`as`も足さない。
|
|
101
102
|
|
|
102
103
|
| NG | OK | 理由 |
|
|
103
104
|
| --- | --- | --- |
|
|
104
105
|
| `<Cluster fxw="wrap" ai="center" g="15">` | `<Cluster g="15">` | `Cluster`は`flex-wrap:wrap`/`align-items:center`を既定で持つ。gapは既定ではないので残す |
|
|
105
106
|
| `<Frame ov="hidden" ar="16/9">` | `<Frame ar="16/9">` | `Frame`は`overflow:hidden`を既定で持つ |
|
|
106
107
|
| `<Frame><img className="-w:100% -h:100%" style={{ objectFit: 'cover' }} /></Frame>` | `<Frame><img /></Frame>` | 直下メディアの`width/height/object-fit:cover`は既定 |
|
|
108
|
+
| `<Text as="p">` / `<Inline as="span">` / `<Group as="div">` | `<Text>` / `<Inline>` / `<Group>` | `Text`/`Inline`/`Group`の既定要素は`p`/`span`/`div`(一覧は[components-core.md](./components-core.md#セマンティックコンポーネント)) |
|
|
107
109
|
|
|
108
110
|
プロジェクトCSSでPrimitive既定を上書きしている場合や、既定と違う意図的上書きの場合は例外として残す。
|
|
109
111
|
|
|
@@ -165,33 +167,14 @@ Primitiveが既に持つCSSと同じ値を、Lism Props/Property Classで重ね
|
|
|
165
167
|
</Stack>
|
|
166
168
|
```
|
|
167
169
|
|
|
168
|
-
### BP 専用クラスをベース値なしで使う
|
|
169
|
-
|
|
170
|
-
BP 専用クラス(`-{prop}_{bp}`)やコンポーネントの BP キー(`{ sm: ... }` 等)だけを指定すると、BP 未満では値が空になり意図しないレイアウト崩れを起こす。必ずベース値とセットで指定する。
|
|
171
|
-
|
|
172
|
-
```jsx
|
|
173
|
-
// NG: sm 未満で p が未指定になる
|
|
174
|
-
<Box p={{ sm: 30 }}>...</Box>
|
|
175
|
-
|
|
176
|
-
// OK: ベース値(base / 配列の先頭)を必ず添える
|
|
177
|
-
<Box p={{ base: 20, sm: 30 }}>...</Box>
|
|
178
|
-
<Box p={[20, 30]}>...</Box>
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
生 HTML / クラス指定で書く場合も同様:
|
|
182
|
-
|
|
183
|
-
| NG | OK | 理由 |
|
|
184
|
-
| --- | --- | --- |
|
|
185
|
-
| `<div class="-p_sm" style="--p_sm: var(--s30)">` | `<div class="-p:20 -p_sm" style="--p_sm: var(--s30)">` | BP 未満では値が空になるため、ベースクラス `-{prop}:{value}` も必要 |
|
|
186
|
-
|
|
187
170
|
### ブレイクポイントの誤用
|
|
188
171
|
|
|
189
|
-
Lism CSS の標準出力で有効な BP は `sm: 480px` / `md: 800px` / `lg: 1120px`。`xs` は
|
|
172
|
+
Lism CSS の標準出力で有効な BP は `sm: 480px` / `md: 800px` / `lg: 1120px`。`xs` / `xl` は opt-in で既定では無効(有効化は [responsive.md](./responsive.md#ブレイクポイント) / customize.md)。
|
|
190
173
|
|
|
191
174
|
| NG | OK | 理由 |
|
|
192
175
|
| --- | --- | --- |
|
|
193
|
-
| `<Box p={{ xs: 10, sm: 20 }}>` | `<Box p={{ base: 10, sm: 20 }}>` |
|
|
194
|
-
| `cols={[1, 2, 3, 4, 5]}` | `cols={[1, 2, 3, 4]}` | 標準出力では `[base, sm, md, lg]` までが有効。`xl`
|
|
176
|
+
| `<Box p={{ xs: 10, sm: 20 }}>` | `<Box p={{ base: 10, sm: 20 }}>` | 最小サイズの値は `base` に置く。`xs` は既定で無効で、有効化しても「`xs` 以上」の意味なので `base` の代わりにならない |
|
|
177
|
+
| `cols={[1, 2, 3, 4, 5]}` | `cols={[1, 2, 3, 4]}` | 標準出力では `[base, sm, md, lg]` までが有効。`xl` は `lism.config.js` の `breakpoints` または SCSS 設定で有効化してから使う |
|
|
195
178
|
|
|
196
179
|
## レスポンシブ配列の冗長指定
|
|
197
180
|
|
|
@@ -269,3 +252,16 @@ Lism CSS では、プレフィックス(`c--` / `is--` / `has--` / `u--` / `se
|
|
|
269
252
|
|
|
270
253
|
Modifierだけは`--`ふたつを使う: `c--featureCard--featured`。
|
|
271
254
|
|
|
255
|
+
## CSS の無い Element クラスを付ける
|
|
256
|
+
|
|
257
|
+
Element(`c--{name}_{element}`)を付けるのは、子孫セレクタ・擬似要素・状態切替など CSS でその子要素を参照する時だけ。何のパーツかを示す名前付けのためだけに残すのは本体クラス `c--{name}` で、子要素ごとに CSS の無い Element クラスを配らない。
|
|
258
|
+
|
|
259
|
+
→ 詳細: [css-rules.md](./css-rules.md#custom-classc--)
|
|
260
|
+
|
|
261
|
+
| NG | OK |
|
|
262
|
+
| --- | --- |
|
|
263
|
+
| `<Stack className="c--card"><Heading className="c--card_title" fz="l">…</Heading><Text className="c--card_text">…</Text></Stack>`(Element を参照する CSS なし) | `<Stack className="c--card"><Heading fz="l">…</Heading><Text>…</Text></Stack>` |
|
|
264
|
+
| `.c--card_title { font-size: var(--fz--l) }` + `<Heading className="c--card_title">` | `<Heading fz="l">`(宣言を Props へ移し、空になった Element も外す) |
|
|
265
|
+
|
|
266
|
+
`.c--card_text::before { … }` のように CSS で参照している Element は残す。
|
|
267
|
+
|
|
@@ -34,6 +34,7 @@ AI が Lism CSS のコードを生成する際に間違いやすい記法と、
|
|
|
34
34
|
- [レスポンシブ配列の冗長指定](./antipatterns-layout.md#レスポンシブ配列の冗長指定)
|
|
35
35
|
- [`is--` の誤用(状態・バリエーション)](./antipatterns-layout.md#is---の誤用状態バリエーション)
|
|
36
36
|
- [クラス名の命名ミス](./antipatterns-layout.md#クラス名の命名ミス)
|
|
37
|
+
- [CSS の無い Element クラスを付ける](./antipatterns-layout.md#css-の無い-element-クラスを付ける)
|
|
37
38
|
|
|
38
39
|
---
|
|
39
40
|
|
|
@@ -61,7 +62,7 @@ AI が Lism CSS のコードを生成する際に間違いやすい記法と、
|
|
|
61
62
|
| NG | OK | 理由 |
|
|
62
63
|
| --- | --- | --- |
|
|
63
64
|
| `font-size: 13px` を直書き | `font-size: var(--fz--xs)` または Props で `fz="xs"` | フォントサイズは調和数列スケール。固定値は避ける |
|
|
64
|
-
| `letter-spacing: 0.02 / 0.12 / 0.14 / 0.18 / 0.2 / 0.24em` を散在 | `--lts--s/-l/-xl` を使う、または独自の `--lts--*` を `global.css` で追加 | デフォルトの `lts` トークンは `s/l/xl` のみ。多種混在はデザイントークンとして不健全 |
|
|
65
|
+
| `letter-spacing: 0.02 / 0.12 / 0.14 / 0.18 / 0.2 / 0.24em` を散在 | `--lts--xs/-s/-l/-xl` を使う、または独自の `--lts--*` を `global.css` で追加 | デフォルトの `lts` トークンは `xs/s/l/xl` のみ。多種混在はデザイントークンとして不健全 |
|
|
65
66
|
|
|
66
67
|
### 実測pxの包括例外化(例外の自作)
|
|
67
68
|
|
|
@@ -90,7 +91,7 @@ AI が Lism CSS のコードを生成する際に間違いやすい記法と、
|
|
|
90
91
|
|
|
91
92
|
CSS に残すのは、基本的には `::before` / `> li` などの「Primitive / Trait / Property Class で書けないセレクタ」を伴う宣言。単一要素への装飾束は呼び出し側マークアップに移す。
|
|
92
93
|
|
|
93
|
-
なお、CSS
|
|
94
|
+
なお、CSS が空になっても本体クラス `c--{name}` は何のパーツかを示す名前としてマークアップに残して構わない(→ [css-rules.md の Custom Class](./css-rules.md#custom-classc--))。Element(`c--{name}_{element}`)は CSS で参照しなくなったら外す(→ [CSS の無い Element クラスを付ける](./antipatterns-layout.md#css-の無い-element-クラスを付ける))。
|
|
94
95
|
|
|
95
96
|
ベーススタイルを CSS 側で管理することを前提にする部品(サイト共通で繰り返し使うボタン・バッジ・カード級)は、`c--*` ではなく `b--*` を使い、CSS を `@layer lism-block` に書く(→ [css-rules.md の Block Class](./css-rules.md#block-classb--))。`b--` の3条件を満たさない `c--*` でこの節の規律を外してはいけない。
|
|
96
97
|
|
|
@@ -123,8 +124,8 @@ Lism CSS側が用意しているトークン値と異なるものを書かない
|
|
|
123
124
|
| --- | --- | --- |
|
|
124
125
|
| `p="8"` | `p="10"` | スペーストークンは離散値のみ。tailwindのような4の倍数で連続するスケールではない |
|
|
125
126
|
| `g="6"` | `g="5"` | 同上 |
|
|
126
|
-
| `m="
|
|
127
|
-
| `m="100"` | `m="
|
|
127
|
+
| `m="55"`, `m="65"` | `m="50"` or `m="60"` | `50` 以降の中間値は用意されていない(5 刻みは `45` まで) |
|
|
128
|
+
| `m="100"` | `m="70"` | 上限は `70`(ユーザーが追加定義している可能性はある) |
|
|
128
129
|
|
|
129
130
|
### フォントサイズ(`fz`)
|
|
130
131
|
|
|
@@ -137,7 +138,7 @@ Lism CSS側が用意しているトークン値と異なるものを書かない
|
|
|
137
138
|
|
|
138
139
|
| NG | OK | 理由 |
|
|
139
140
|
| --- | --- | --- |
|
|
140
|
-
| `bdrs="sm"`, `bdrs="round"` | `bdrs="20"`, `bdrs="99"` | 角丸トークンは `10` / `20` / `30` / `40` / `99` / `inner` |
|
|
141
|
+
| `bdrs="sm"`, `bdrs="round"` | `bdrs="20"`, `bdrs="99"` | 角丸トークンは `10` / `20` / `30` / `40` / `50` / `99` / `inner` |
|
|
141
142
|
| `bxsh="xs"`, `bxsh="sm"` | `bxsh="10"`, `bxsh="20"` | shadowトークンは `10` / `20` / `30` / `40` / `50` |
|
|
142
143
|
|
|
143
144
|
### プリセット外の値を Lism Props に渡している
|
|
@@ -39,7 +39,7 @@ Reset CSS に加え、`@layer lism-base` 内で HTML タグに基本スタイル
|
|
|
39
39
|
|
|
40
40
|
| 変数 | 用途 |
|
|
41
41
|
| --- | --- |
|
|
42
|
-
| `--hl` | half-leading(行間の上下余白量)。`line-height: calc(1em + var(--hl) * 2)`
|
|
42
|
+
| `--hl` | half-leading(行間の上下余白量)。`line-height: var(--lh, calc(1em + var(--hl) * 2))` として全要素に適用(`--lh` セット時はそちらが優先) |
|
|
43
43
|
|
|
44
44
|
### body
|
|
45
45
|
|
|
@@ -158,11 +158,10 @@ import { Lism, Box, Flex, Stack, Grid, Text, Media } from 'lism-css/astro';
|
|
|
158
158
|
|
|
159
159
|
#### レスポンシブ指定
|
|
160
160
|
|
|
161
|
-
レスポンシブ対応プロパティは、配列またはオブジェクトでブレイクポイント(`sm
|
|
162
|
-
|
|
161
|
+
レスポンシブ対応プロパティは、配列またはオブジェクトでブレイクポイント(`sm` / `md` / `lg`)ごとの値を指定できます。`xs` / `xl` は opt-in(→ [responsive.md](./responsive.md#ブレイクポイント))。
|
|
163
162
|
|
|
164
163
|
```jsx
|
|
165
|
-
// 配列(base
|
|
164
|
+
// 配列([base, sm, md, lg] の順)
|
|
166
165
|
<Lism p={['20', '30', '40']}>...</Lism>
|
|
167
166
|
// <div class="-p:20 -p_sm -p_md" style="--p_sm:var(--s30);--p_md:var(--s40)">...</div>
|
|
168
167
|
|
|
@@ -190,6 +189,7 @@ Trait クラス(`is--*` / `has--*`)を出力するためのプロパティ
|
|
|
190
189
|
| `isSide` | `is--side` |
|
|
191
190
|
| `isSkipFlow` | `is--skipFlow` |
|
|
192
191
|
| `hasTransition` | `has--transition` |
|
|
192
|
+
| `hasTransition="{props}"` | `has--transition` + `--transitionProps:{props}` |
|
|
193
193
|
| `hasGutter` | `has--gutter` |
|
|
194
194
|
| `hasSnap` | `has--snap` |
|
|
195
195
|
| `hasMask` | `has--mask` |
|
|
@@ -218,6 +218,8 @@ Trait クラス(`is--*` / `has--*`)を出力するためのプロパティ
|
|
|
218
218
|
| `<Link>` | `<a>`(固定) | — |
|
|
219
219
|
| `<Media>` | `<img>` | `img`, `video`, `iframe`, `picture` |
|
|
220
220
|
|
|
221
|
+
デフォルト要素と同じ`as`(`<Text as="p">`、`<Inline as="span">`など)は書かず、要素を変える時だけ`as`を付ける。
|
|
222
|
+
|
|
221
223
|
```jsx
|
|
222
224
|
<Heading level="3" fz="xl">見出し</Heading>
|
|
223
225
|
// → <h3 class="-fz:xl">見出し</h3>
|
|
@@ -239,8 +241,7 @@ Trait クラス(`is--*` / `has--*`)を出力するためのプロパティ
|
|
|
239
241
|
| `<Divider>` | `a--divider` | 区切り線 |
|
|
240
242
|
| `<Decorator>` | `a--decorator` | 装飾要素(SCSS定義なし、クラス名のみ出力) |
|
|
241
243
|
|
|
242
|
-
|
|
243
|
-
各プリミティブの詳細は SKILL.md の「プリミティブ単位の詳細リファレンス」、または `primitives/` 配下の各ファイルを参照。
|
|
244
|
+
各プリミティブの詳細は `primitives/{クラス名}.md`(例: [`primitives/a--icon.md`](./primitives/a--icon.md))を参照。
|
|
244
245
|
|
|
245
246
|
|
|
246
247
|
## Trait Components
|
|
@@ -254,7 +255,7 @@ Trait クラス(`is--*` / `has--*`)を出力するためのプロパティ
|
|
|
254
255
|
| `<Layer>` | `isLayer` | `is--layer` |
|
|
255
256
|
| `<BoxLink>` | `isBoxLink` | `is--boxLink` |
|
|
256
257
|
|
|
257
|
-
各 Trait クラスの詳細は
|
|
258
|
+
各 Trait クラスの詳細は `trait-class/{クラス名}.md`(例: [`trait-class/is--container.md`](./trait-class/is--container.md))を参照。`has--*` については [trait-class.md](./trait-class.md) を参照。
|
|
258
259
|
|
|
259
260
|
|
|
260
261
|
## Layout Primitives
|
|
@@ -277,7 +278,7 @@ Trait クラス(`is--*` / `has--*`)を出力するためのプロパティ
|
|
|
277
278
|
| `<SwitchColumns>` | `l--switchColumns` |
|
|
278
279
|
| `<WithSide>` | `l--withSide` |
|
|
279
280
|
|
|
280
|
-
各プリミティブの詳細は
|
|
281
|
+
各プリミティブの詳細は `primitives/{クラス名}.md`(例: [`primitives/l--stack.md`](./primitives/l--stack.md))を参照。
|
|
281
282
|
|
|
282
283
|
## `getLismProps()` — 外部コンポーネントとの連携
|
|
283
284
|
|