@lism-css/mcp 0.15.1 → 0.18.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 +16 -10
- package/dist/data/guides/SKILL.md +121 -19
- package/dist/data/guides/antipatterns.md +300 -2
- package/dist/data/guides/base-styles.md +2 -4
- package/dist/data/guides/components-core.md +4 -6
- package/dist/data/guides/components-ui.md +10 -2
- package/dist/data/guides/css-rules.md +3 -3
- package/dist/data/guides/customize.md +79 -25
- package/dist/data/guides/naming.md +1 -1
- package/dist/data/guides/primitive-class.md +1 -1
- package/dist/data/guides/primitives/a--spacer.md +2 -2
- package/dist/data/guides/property-class/max-sz.md +17 -13
- package/dist/data/guides/property-class.md +26 -16
- package/dist/data/guides/{prop-responsive.md → responsive.md} +40 -4
- package/dist/data/guides/set-class.md +21 -2
- package/dist/data/guides/tokens.md +34 -16
- package/dist/data/guides/trait-class/is--container.md +4 -2
- package/dist/data/guides/trait-class/is--wrapper.md +15 -0
- package/dist/data/meta.js +2 -2
- package/dist/tools/get-guide.js +1 -1
- package/dist/tools/get-overview.js +3 -3
- package/package.json +1 -1
|
@@ -28,16 +28,16 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
28
28
|
|
|
29
29
|
| カテゴリ | トークン値 | CSS変数パターン | 例 |
|
|
30
30
|
|---|---|---|---|
|
|
31
|
-
| 余白 (space) | `5`, `10`, `15`, `20`, `30`, `40`, `50`, `60`, `70`, `80` | `--s{N}` | `--s20` |
|
|
31
|
+
| 余白 (space) | `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `50`, `60`, `70`, `80` | `--s{N}` | `--s20` |
|
|
32
32
|
| フォントサイズ (fz) | `root`, `base`, `2xs`, `xs`, `s`, `m`, `l`, `xl`, `2xl`, `3xl`, `4xl`, `5xl` | `--fz--{key}` | `--fz--l` |
|
|
33
33
|
| ハーフレディング・行間 (lh/hl) | `base`, `xs`, `s`, `l` | `--hl--{key}` | `--hl--s` |
|
|
34
|
-
| 字間 (lts) | `base`, `s`, `l` | `--lts--{key}` | `--lts--s` |
|
|
34
|
+
| 字間 (lts) | `base`, `s`, `l`, `xl` | `--lts--{key}` | `--lts--s` |
|
|
35
35
|
| フォント (ff) | `base`, `accent`, `mono` | `--ff--{key}` | `--ff--mono` |
|
|
36
36
|
| ウェイト (fw) | `light`, `normal`, `bold` | `--fw--{key}` | `--fw--bold` |
|
|
37
37
|
| 透明度 (o) | `mp`, `p`, `pp`, `ppp` | `--o--{key}` | `--o--p` |
|
|
38
38
|
| 角丸 (bdrs) | `10`, `20`, `30`, `40`, `99`, `inner` | `--bdrs--{key}` | `--bdrs--20` |
|
|
39
39
|
| 影 (bxsh) | `10`, `20`, `30`, `40`, `50` | `--bxsh--{N}` | `--bxsh--20` |
|
|
40
|
-
| サイズ (sz) | `xs`, `s`, `m`, `l`, `xl`, `
|
|
40
|
+
| サイズ (sz) | `xs`, `s`, `m`, `l`, `xl`, `bleed` | `--sz--{key}` | `--sz--l` |
|
|
41
41
|
| アスペクト比 (ar) | `og` | `--ar--{key}` | `--ar--og` |
|
|
42
42
|
| フロー余白 (flow) | `s`, `l` | `--flow--{key}` | `--flow--s` |
|
|
43
43
|
| セマンティックカラー (c) | `base`, `base-2`, `text`, `text-2`, `divider`, `link`, `brand`, `accent` | `--{name}` | `--brand` |
|
|
@@ -49,22 +49,39 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
49
49
|
|
|
50
50
|
## 余白 (space)
|
|
51
51
|
|
|
52
|
-
フィボナッチ数列ベースのスケーリング。`--s-unit
|
|
52
|
+
フィボナッチ数列ベースのスケーリング。`--s-unit`(デフォルト `calc(var(--fz--base) * 0.5)` = ≒ 8px)を基準単位とする。
|
|
53
53
|
|
|
54
54
|
| CSS変数 | 値 | 実サイズ目安 |
|
|
55
55
|
|---------|-----|------------|
|
|
56
|
-
| `--s5` | `calc(
|
|
56
|
+
| `--s5` | `calc(var(--s-unit) * 0.5)` | ≒ 4px |
|
|
57
57
|
| `--s10` | `var(--s-unit)` | ≒ 8px |
|
|
58
|
-
| `--s15` | `calc(
|
|
59
|
-
| `--s20` | `calc(
|
|
60
|
-
| `--
|
|
61
|
-
| `--
|
|
62
|
-
| `--
|
|
63
|
-
| `--
|
|
64
|
-
| `--
|
|
65
|
-
| `--
|
|
58
|
+
| `--s15` | `calc(var(--s-unit) * 1.5)` | ≒ 12px |
|
|
59
|
+
| `--s20` | `calc(var(--s-unit) * 2)` | ≒ 16px |
|
|
60
|
+
| `--s25` | `calc(var(--s-unit) * 2.5)` | ≒ 20px |
|
|
61
|
+
| `--s30` | `calc(var(--s-unit) * 3)` | ≒ 24px |
|
|
62
|
+
| `--s35` | `calc(var(--s-unit) * 4)` | ≒ 32px |
|
|
63
|
+
| `--s40` | `calc(var(--s-unit) * 5)` | ≒ 40px |
|
|
64
|
+
| `--s50` | `calc(var(--s-unit) * 8)` | ≒ 64px |
|
|
65
|
+
| `--s60` | `calc(var(--s-unit) * 13)` | ≒ 104px |
|
|
66
|
+
| `--s70` | `calc(var(--s-unit) * 21)` | ≒ 168px |
|
|
67
|
+
| `--s80` | `calc(var(--s-unit) * 34)` | ≒ 272px |
|
|
66
68
|
|
|
67
|
-
|
|
69
|
+
`--s40` 以降の主軸は係数 `1, 2, 3, 5, 8, 13, 21, 34`(フィボナッチ数列)に基づく。`--s5`〜`--s35` の前半部分は、主軸トークン間を補う中間値(4px / 12px / 20px / 32px 相当)として配置している。`--s-unit` を上書きするとスケール全体を比例的に調整できる。
|
|
70
|
+
|
|
71
|
+
### `set--var:s` ユーティリティ
|
|
72
|
+
|
|
73
|
+
`set--var:s` クラスを当てた要素のスコープ内では `--s-unit` が `0.5em` に切り替わり、`--s10`〜`--s80` が現在のフォントサイズ基準で再計算される。Button / Badge / インライン要素など、内部余白をフォントサイズに追従させたい部品で使う。
|
|
74
|
+
|
|
75
|
+
```html
|
|
76
|
+
<!-- ボタンの padding が button 自身の font-size に追従する -->
|
|
77
|
+
<button class="set--var:s -fz:s -py:10 -px:20">...</button>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
`--s-unit` を任意値で上書きすれば、別の基準にも切り替えられる。
|
|
81
|
+
|
|
82
|
+
```html
|
|
83
|
+
<button class="set--var:s -p:10" style="--s-unit: .4375em">...</button>
|
|
84
|
+
```
|
|
68
85
|
|
|
69
86
|
|
|
70
87
|
## フォントサイズ (fz)
|
|
@@ -83,7 +100,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
83
100
|
| `--fz--s` | `calc(1em * var(--fz-mol) / (var(--fz-mol) + 1))` | S(mol/(mol+1)) |
|
|
84
101
|
| `--fz--xs` | `calc(1em * var(--fz-mol) / (var(--fz-mol) + 2))` | XS(mol/(mol+2)) |
|
|
85
102
|
| `--fz--2xs` | `calc(1em * var(--fz-mol) / (var(--fz-mol) + 3))` | 最小(mol/(mol+3)) |
|
|
86
|
-
| `--fz--base` | `
|
|
103
|
+
| `--fz--base` | `1rem` | 本文の基本フォントサイズ |
|
|
87
104
|
| `--fz--root` | — | `:root` のフォントサイズ |
|
|
88
105
|
|
|
89
106
|
`--fz-mol` を上書きすることでスケール全体を調整可能(7以上の値に対応)。
|
|
@@ -106,8 +123,9 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
106
123
|
| CSS変数 | 値 | 説明 |
|
|
107
124
|
|---------|-----|------|
|
|
108
125
|
| `--lts--base` | `normal` | 基本の文字間隔 |
|
|
109
|
-
| `--lts--s` | `-0.
|
|
126
|
+
| `--lts--s` | `-0.025em` | 狭めの文字間隔 |
|
|
110
127
|
| `--lts--l` | `0.05em` | 広めの文字間隔 |
|
|
128
|
+
| `--lts--xl` | `0.1em` | より広い文字間隔 |
|
|
111
129
|
|
|
112
130
|
|
|
113
131
|
## フォント (ff)
|
|
@@ -39,12 +39,14 @@
|
|
|
39
39
|
|
|
40
40
|
子要素側は `p={['10', '30']}` のようなブレイクポイント配列指定にすることで、親の `is--container` を基準としたコンテナクエリで値が切り替わります。
|
|
41
41
|
|
|
42
|
-
## `--sz--
|
|
42
|
+
## `--sz--bleed` の提供
|
|
43
43
|
|
|
44
|
-
`is--container` は直下の子要素に `--sz--
|
|
44
|
+
最外側の `is--container` は直下の子要素に `--sz--bleed: 100cqi` をセットします。`-max-sz:bleed` はこの値を参照しており、最外側の `is--container` 基準の幅まで広がります(ネストされた `is--container` は `--sz--bleed` を再上書きしないため、内側の子要素は外側の値を inherit で参照します)。
|
|
45
45
|
|
|
46
46
|
`has--gutter` と併用した場合は `calc(100cqi + var(--gutter-size) * 2)` に自動調整され、gutter 分を含めた端〜端の幅になります。
|
|
47
47
|
|
|
48
|
+
`@property --sz--bleed` の `initial-value` は `100svi` のため、`is--container` が祖先に存在しない場合はビューポート幅まで広がる fallback として動作します。
|
|
49
|
+
|
|
48
50
|
## 関連プリミティブ
|
|
49
51
|
|
|
50
52
|
- [is--wrapper](./is--wrapper.md) — コンテンツ幅ラッパー(`isContainer` と併用可)
|
|
@@ -80,6 +80,21 @@
|
|
|
80
80
|
</div>
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
+
## 直下の子要素の挙動
|
|
84
|
+
|
|
85
|
+
`is--wrapper` 直下の子要素には次のスタイルが当たる:
|
|
86
|
+
|
|
87
|
+
```scss
|
|
88
|
+
.is--wrapper > * {
|
|
89
|
+
inline-size: 100%;
|
|
90
|
+
max-inline-size: min(100%, var(--contentSize));
|
|
91
|
+
margin-inline: auto;
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
- `inline-size: 100%` により、自然幅が `--contentSize` 未満の要素(短い段落、`<table>` など)も常に親幅まで広げてから `max-inline-size` で制限される。これにより `l--stack` などの flex 縦並び配下でも横幅が揃い、ガタつきが起きない
|
|
96
|
+
- `<table>` を直下に置くと内容依存の自然幅にはならず、常に wrapper 幅まで広がる。テーブルの自然幅を保ちたい場合は `is--wrapper` を直接の親にしないように、間に別の要素を挟む
|
|
97
|
+
|
|
83
98
|
## 関連プリミティブ
|
|
84
99
|
|
|
85
100
|
- [is--container](./is--container.md) — コンテナクエリ基準(`isContainer` と併用可)
|
package/dist/data/meta.js
CHANGED
package/dist/tools/get-guide.js
CHANGED
|
@@ -21,7 +21,7 @@ const GUIDE_TOPICS = {
|
|
|
21
21
|
},
|
|
22
22
|
'utility-class': { file: 'utility-class.md', label: 'Utility classes (u--trim, u--cbox, etc.)' },
|
|
23
23
|
'css-rules': { file: 'css-rules.md', label: 'CSS methodology, layer structure, naming conventions' },
|
|
24
|
-
responsive: { file: '
|
|
24
|
+
responsive: { file: 'responsive.md', label: 'Responsive design, breakpoints, container queries' },
|
|
25
25
|
antipatterns: {
|
|
26
26
|
file: 'antipatterns.md',
|
|
27
27
|
label: 'AI code-generation antipatterns: token typos, prop type mistakes, layout choice errors, responsive omissions',
|
|
@@ -3,14 +3,14 @@ import { extractSection } from '../lib/markdown-utils.js';
|
|
|
3
3
|
import { markdownResponse, error, READ_ONLY_ANNOTATIONS } from '../lib/response.js';
|
|
4
4
|
/**
|
|
5
5
|
* SKILL.md を中核に、css-rules.md の Layer 構造セクションと
|
|
6
|
-
*
|
|
6
|
+
* responsive.md のブレイクポイントセクションを付加して返す。
|
|
7
7
|
*/
|
|
8
8
|
function buildOverviewMarkdown() {
|
|
9
9
|
const skill = loadMarkdown('SKILL.md');
|
|
10
10
|
const cssRules = loadMarkdown('css-rules.md');
|
|
11
|
-
const responsive = loadMarkdown('
|
|
11
|
+
const responsive = loadMarkdown('responsive.md');
|
|
12
12
|
const layerSection = extractSection(cssRules, 'CSS Layer 構造');
|
|
13
|
-
const bpSection = extractSection(responsive, '
|
|
13
|
+
const bpSection = extractSection(responsive, 'ブレイクポイント');
|
|
14
14
|
const parts = [skill];
|
|
15
15
|
if (layerSection) {
|
|
16
16
|
parts.push('\n---\n');
|