ksk-design-system 2.6.4 → 2.7.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/MIGRATION.md +16 -0
- package/README.md +27 -1
- package/UPDATING.md +5 -0
- package/bin/lint.js +1 -1
- package/bin/product-theme-override.js +1 -1
- package/contracts/components.json +1 -1
- package/contracts/consumer-requests.json +20 -0
- package/contracts/token-hex-cache.json +1 -1
- package/dist/native/ui.js +530 -509
- package/dist/types/native/components/Alert.d.ts +4 -1
- package/dist/types/native/components/StatCard.d.ts +8 -1
- package/dist/types/native/components/index.d.ts +1 -1
- package/dist/types/native/sheet-snap-gesture.d.ts +2 -0
- package/package.json +10 -1
- package/src/preset-core.css +252 -0
- package/src/preset.css +7 -232
package/MIGRATION.md
CHANGED
|
@@ -63,6 +63,22 @@ React 18 では `ref` が無言で無視されていた)。詳細は下の
|
|
|
63
63
|
**v2.0.0 では削除していません**。削除は「全消費リポで `check-migration` の
|
|
64
64
|
残件が 0」を条件に v3.0.0 で行います。
|
|
65
65
|
|
|
66
|
+
## v2 系内の追加(参考)
|
|
67
|
+
|
|
68
|
+
### v2.7.0 — CSS の入口 `preset-core` / `safelist` を追加(追加のみ・破壊的変更なし)
|
|
69
|
+
|
|
70
|
+
`ksk-design-system/preset` から DS 部品用の safelist(`src/styles/source-safelist.css`)だけを
|
|
71
|
+
除いた `ksk-design-system/preset-core` と、safelist 単体の `ksk-design-system/safelist` を
|
|
72
|
+
exports に足した。
|
|
73
|
+
|
|
74
|
+
- **既存 consumer: 対応不要**。`preset` は `preset-core` + `safelist` を読み込む形に組み替えたが、
|
|
75
|
+
生成される CSS は従来と同じ
|
|
76
|
+
- DS 部品を 1 つも使わない consumer は `preset` を `preset-core` に置き換えると、
|
|
77
|
+
部品用の utility(safelist 約 1,150 クラス分)が出力から消える。部品を使うルートが 1 つでもある
|
|
78
|
+
ビルドでは `preset` のままにする(詳細は README の「DS 部品を使わない consumer は `preset-core`」節)
|
|
79
|
+
- DS 本体の CSS を編集するときは、トークン・base layer 等は `src/preset-core.css` に書く
|
|
80
|
+
(`src/preset.css` は 2 つを読み込むだけの入口)
|
|
81
|
+
|
|
66
82
|
## v3.0 (未リリース)
|
|
67
83
|
|
|
68
84
|
破壊変更を入れる際にはここに以下を書く:
|
package/README.md
CHANGED
|
@@ -112,6 +112,32 @@ consumer 側の Tailwind と DS を同じビルドで処理するため、上記
|
|
|
112
112
|
DS のクラス CSS は生成されます(issue #258)。ただし consumer 自身のコードは
|
|
113
113
|
consumer 側の走査対象なので、`@source` は引き続き推奨構成です。
|
|
114
114
|
|
|
115
|
+
#### DS 部品を使わない consumer は `preset-core`
|
|
116
|
+
|
|
117
|
+
safelist は DS 部品(`Button` 等)が内部で使う Tailwind クラスを、consumer が 1 つも
|
|
118
|
+
部品を使っていなくても生成します(safelist は約 1,150 クラス。consumer のクラスが無い状態の
|
|
119
|
+
実測で、出力 CSS が `preset` 179KB → `preset-core` 54KB、gzip 25.8KB → 9.8KB)。**DS 部品を import しない
|
|
120
|
+
consumer**(`ksk-design-system/class-names` とトークンだけで UI を組む公開ページ等)は、
|
|
121
|
+
safelist だけを除いた `preset-core` を使えます。トークン・shadcn 互換の変数・アニメーション・
|
|
122
|
+
container 幅・`scrollbar-hide`・base layer のボーダー色の保険は `preset` と同じです。
|
|
123
|
+
|
|
124
|
+
```css
|
|
125
|
+
@import "tailwindcss";
|
|
126
|
+
@import "ksk-design-system/preset-core";
|
|
127
|
+
@import "ksk-design-system/themes/default";
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
| consumer | 使う入口 |
|
|
131
|
+
|---|---|
|
|
132
|
+
| DS 部品を 1 つでも使う(どこか 1 ルートでも) | `ksk-design-system/preset`(従来どおり。`preset-core` + `safelist` と同じ) |
|
|
133
|
+
| DS 部品を使わない(トークン・`class-names` だけ) | `ksk-design-system/preset-core` |
|
|
134
|
+
|
|
135
|
+
Tailwind は CSS を 1 本にまとめるため、DS 部品を使うルートが 1 つでもあるビルドでは
|
|
136
|
+
`preset` を使ってください(`preset-core` を選ぶと、そのルートで部品の見た目が崩れます)。
|
|
137
|
+
`preset-core` と safelist を分けて読みたい場合は
|
|
138
|
+
`@import "ksk-design-system/preset-core"; @import "ksk-design-system/safelist";` が
|
|
139
|
+
`preset` と同じ結果になります。
|
|
140
|
+
|
|
115
141
|
<!-- consumer-example:tsx:start -->
|
|
116
142
|
```tsx
|
|
117
143
|
import { Button, Input, Label } from "ksk-design-system"
|
|
@@ -334,7 +360,7 @@ module.exports = {
|
|
|
334
360
|
],
|
|
335
361
|
moduleNameMapper: {
|
|
336
362
|
"\\.(css|less|sass|scss)$": "<rootDir>/test/style-mock.cjs",
|
|
337
|
-
"^ksk-design-system/(preset|styles(?:\\.css)?|glass|tokens/(?:primitive|semantic|typography|categorical|motion)|themes/(?:default|blue|orange|green|violet|cobalt))$":
|
|
363
|
+
"^ksk-design-system/(preset(?:-core)?|safelist|styles(?:\\.css)?|glass|tokens/(?:primitive|semantic|typography|categorical|motion)|themes/(?:default|blue|orange|green|violet|cobalt))$":
|
|
338
364
|
"<rootDir>/test/style-mock.cjs",
|
|
339
365
|
},
|
|
340
366
|
}
|
package/UPDATING.md
CHANGED
|
@@ -103,6 +103,11 @@ consumer側Tailwindを重ねる二重ビルド方式にも切り替えないこ
|
|
|
103
103
|
DS 内部だけで使われるクラス(`pointer-events-auto` 等)については、preset に safelist
|
|
104
104
|
(`src/styles/source-safelist.css`・自動生成)が同梱されているため `@source` の有無に依存しない(issue #258)。
|
|
105
105
|
|
|
106
|
+
DS 部品を 1 つも使わない consumer(トークンと `ksk-design-system/class-names` だけで UI を組む構成)は、
|
|
107
|
+
`ksk-design-system/preset` の代わりに safelist だけを除いた `ksk-design-system/preset-core` を使える
|
|
108
|
+
(追加のみ・破壊的変更なし。`preset` の中身は `preset-core` + `safelist` で従来と同じ)。
|
|
109
|
+
使い分けは README の「DS 部品を使わない consumer は `preset-core`」節を参照。
|
|
110
|
+
|
|
106
111
|
> **必要な Tailwind バージョン**: この safelist は Tailwind 4.1 で導入された `@source inline()` を使う。
|
|
107
112
|
> このため次のリリース以降、peerDependencies は `tailwindcss@^4.1.0` となる。
|
|
108
113
|
> 4.0.x を使っている場合は、DS を上げる前に `npm install -D tailwindcss@^4.1` で Tailwind を先に上げること。
|
package/bin/lint.js
CHANGED
|
@@ -103,7 +103,7 @@ export function isAutoGeneratedSource(source) {
|
|
|
103
103
|
* トークンを**定義している側**の DS 自身の CSS に当ててはいけない。
|
|
104
104
|
*/
|
|
105
105
|
const DS_CSS_DIRS = ["src/styles", "src/themes"]
|
|
106
|
-
const DS_CSS_FILES = ["src/preset.css"]
|
|
106
|
+
const DS_CSS_FILES = ["src/preset.css", "src/preset-core.css"]
|
|
107
107
|
|
|
108
108
|
/** DS 配布物のヘッダコメントに必ず入る署名(ベンダリングされたコピーにも残る) */
|
|
109
109
|
const DS_CSS_SIGNATURE = /KSK Design System/
|
|
@@ -30,7 +30,7 @@ const DECLARATION = /(^|[;{}\s])(--[A-Za-z0-9_-]+)\s*:/g
|
|
|
30
30
|
* 生成ファイルを増やさずに実行時へ集めるので、DS 側の CSS を足してもドリフトしない。
|
|
31
31
|
*/
|
|
32
32
|
const DS_CSS_DIRS = ["src/styles", "src/themes"]
|
|
33
|
-
const DS_CSS_FILES = ["src/preset.css"]
|
|
33
|
+
const DS_CSS_FILES = ["src/preset.css", "src/preset-core.css"]
|
|
34
34
|
|
|
35
35
|
/** CSS コメントを、行数を保ったまま空白に置き換える */
|
|
36
36
|
function stripCssComments(source) {
|
|
@@ -20,6 +20,26 @@
|
|
|
20
20
|
"dsIssue": 573,
|
|
21
21
|
"consumerIssue": "https://github.com/ekusiek716/exam-kit/issues/1089",
|
|
22
22
|
"fixPr": 574
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"dsIssue": 580,
|
|
26
|
+
"consumerIssue": "https://github.com/ekusiek716/camera-app/issues/239",
|
|
27
|
+
"fixPr": 581
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"dsIssue": 582,
|
|
31
|
+
"consumerIssue": "https://github.com/ekusiek716/camera-app/issues/241",
|
|
32
|
+
"fixPr": 583
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"dsIssue": 584,
|
|
36
|
+
"consumerIssue": "https://github.com/ekusiek716/camera-app/issues/242",
|
|
37
|
+
"fixPr": 585
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"dsIssue": 586,
|
|
41
|
+
"consumerIssue": "https://github.com/ekusiek716/camera-app/issues/248",
|
|
42
|
+
"fixPr": 587
|
|
23
43
|
}
|
|
24
44
|
]
|
|
25
45
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
3
|
"name": "KSK Design System — Semantic Token Hex Cache",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.7.0",
|
|
5
5
|
"description": "semantic / semanticDark トークン(var(--Primitive-*) 参照)を実 hex に解決したサイドカー生成物。hex はデフォルト(Blue)テーマでの解決値であり、Brand 系(meta.themeDependentKeys に列挙)はテーマ差し替え(orange/green/violet 等)で実色が変わる。テーマ別の完全解決値は `ksk-design-system/native` エクスポート(バンドル済み native トークンモジュール)の themes を参照。tokens.json 本体のスキーマは変更せず、AI がこのファイルだけで実色を把握できるようにし、primitive 値の変更による semantic 実色のドリフトを --check で機械検出する。",
|
|
6
6
|
"generatedBy": "scripts/generate-token-hex-cache.mjs",
|
|
7
7
|
"theme": "default",
|