@ubie/vitals-ui-business 0.4.0 → 0.6.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/CHANGELOG.md +152 -0
- package/DESIGN.md +47 -34
- package/dist/index.cjs +307 -9
- package/dist/index.d.cts +73 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +74 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +276 -10
- package/dist/index.mjs.map +1 -1
- package/docs/components/drawer.md +2 -1
- package/docs/components/layout.md +2 -0
- package/docs/components/statistic.md +38 -0
- package/docs/components/table.md +50 -11
- package/docs/patterns/chart.md +84 -0
- package/docs/patterns/disclosure.md +15 -2
- package/docs/patterns/empty-state.md +37 -0
- package/docs/patterns/link.md +53 -0
- package/docs/patterns/list-detail.md +7 -6
- package/docs/patterns/print.md +44 -0
- package/docs/patterns/region-state.md +38 -0
- package/docs/patterns/skeleton.md +41 -6
- package/docs/principles/README.md +6 -5
- package/docs/principles/runtime-environment.md +53 -0
- package/docs/tokens.md +13 -1
- package/package.json +12 -3
- package/src/UbieConfigProvider.tsx +97 -3
- package/src/components/Table/index.tsx +65 -14
- package/src/index.ts +14 -0
- package/src/ownedStyle.ts +20 -0
- package/src/stories/business/Table.stories.tsx +110 -0
- package/src/stories/patterns/Chart.stories.tsx +367 -0
- package/src/stories/patterns/Link.stories.tsx +91 -0
- package/src/stories/patterns/Section.stories.tsx +251 -0
- package/src/theme/businessLinkInteraction.ts +28 -0
- package/src/theme/businessTheme.ts +12 -0
- package/src/theme/chartSeriesColors.ts +71 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,157 @@
|
|
|
1
1
|
# @ubie/vitals-ui-business
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- a1a7302: リンクの hover とフォーカスを、色の薄化ではなく下線で示すようにした。
|
|
8
|
+
|
|
9
|
+
`<a>`・`Typography.Link`・`Typography` の操作(コピー・編集・展開)・`Button variant="link"` の
|
|
10
|
+
4 つが同じ体裁で揃う。hover の色は平常時と同じリンク色を保ち、押下中だけ濃い色になる。
|
|
11
|
+
|
|
12
|
+
変更前は antd の既定で hover に自動生成の明色(`#8aa4e6`)が当たり、白背景でのコントラストが
|
|
13
|
+
2.46:1 と WCAG AA の 4.5:1 どころか非テキストの 3:1 も割っていた。変更後はどの状態でも 6.04:1 を保つ。
|
|
14
|
+
|
|
15
|
+
**テーマのトークン**(`businessTheme` に含まれる。個別の指定は不要)
|
|
16
|
+
|
|
17
|
+
- `colorLinkHover`: 自動生成の明色 → `colorLink` と同値
|
|
18
|
+
- `linkHoverDecoration`: `none` → `underline`
|
|
19
|
+
- `linkFocusDecoration`: `none` → `underline`
|
|
20
|
+
- `linkDecoration`(平常時): `none` のまま
|
|
21
|
+
|
|
22
|
+
**配る CSS が増える**
|
|
23
|
+
|
|
24
|
+
`Button variant="link"` は text-decoration 系のトークンを読まないため、`UbieConfigProvider` が
|
|
25
|
+
hover / focus / 押下中の下線を CSS で配る。あわせて、無効なリンク(`Typography.Link disabled` と
|
|
26
|
+
`href` 付きの無効な Button link。どちらも `<a>` として描かれ `disabled` 属性を持たない)からは
|
|
27
|
+
下線を戻すルールも配る。antd の無効時のルールは色しか戻さないため、これが無いと押せないリンクにも
|
|
28
|
+
下線が出る。
|
|
29
|
+
|
|
30
|
+
`UbieConfigProvider` を使わず `ConfigProvider` に `businessTheme` を直接渡す構成では当たらない。
|
|
31
|
+
|
|
32
|
+
**利用側で要る対応**
|
|
33
|
+
|
|
34
|
+
画面側の CSS で `:hover { text-decoration: ... }` や hover の色を個別に指定している箇所は、
|
|
35
|
+
specificity でこの既定より勝つため体裁が揃わない。削除して既定に寄せる。
|
|
36
|
+
規約は `docs/patterns/link.md`、判断の背景は ADR 0007。
|
|
37
|
+
|
|
38
|
+
トークンの追加・削除・リネームは無し。
|
|
39
|
+
|
|
40
|
+
- 5824e7e: `Table` のセルの中に置いた `Typography` にセルの文字サイズ(`cellFontSize` = 14px)を継がせる
|
|
41
|
+
|
|
42
|
+
- **修正**: これまでセルの中の `Typography.Text` / `Paragraph` / `Link` は、セル(14px)ではなく
|
|
43
|
+
グローバルの本文サイズ(`businessTypography` の 16px)で描かれていた。表のセルはほぼ必ず中身を
|
|
44
|
+
`Typography` で包むため、`cellFontSize` の存在意義(一覧の密度、日時列を折り返させない)が
|
|
45
|
+
既定では成立していなかった。`Table` が「セルの中の `Typography`(見出し以外)は `font-size: inherit`」
|
|
46
|
+
という 1 本の CSS ルールを配るようにした。**利用側の変更は不要**
|
|
47
|
+
- **挙動の変化**: セルの中の `Typography.Text` / `Paragraph` / `Link` が 16px → 14px になる。
|
|
48
|
+
既に `style={{ fontSize: "inherit" }}` を当てていた箇所はそのままでよい(inline が勝ち、値は同じ)。
|
|
49
|
+
セルの中で本文サイズを保ちたい箇所があれば `style={{ fontSize: token.fontSize }}` を明示する
|
|
50
|
+
- **対象外**: `Typography.Title`(見出しトークンが正)、`Tag`(`fontSizeSM` を自前で持つ)、
|
|
51
|
+
および `Button` / `Input` / `Select` などのコントロール。コントロールは文字サイズが高さ・余白の算出に
|
|
52
|
+
噛んでいるため `Table` 側では触らない。表の文字サイズに合わせたいときは従来どおり
|
|
53
|
+
`style={{ fontSize: "inherit" }}` を当てる(`size="small"` にしても文字は縮まない)
|
|
54
|
+
- **追加**: `Table` が描く表の `rootClassName` に `ubie-vitals-table` が付く。上のルールを
|
|
55
|
+
この `Table` が描いた表だけに閉じるための目印で、同じページの他の antd Table には影響しない。
|
|
56
|
+
利用側が渡した `rootClassName` はそのまま残る
|
|
57
|
+
- **文書**: `docs/components/table.md` に「セルの中の文字サイズ」を新設し、継ぐもの・継がないものと
|
|
58
|
+
上書きの仕方を書いた。旧記述(`cellFontSize` が効かないのは `Button` だけ)は不正確だったので訂正した。
|
|
59
|
+
機構・代替案・実測は
|
|
60
|
+
https://github.com/ubie-inc/ubie-vitals/blob/main/docs/adr/0005-cell-font-size-inheritance-in-table.md
|
|
61
|
+
- **古いブラウザ**: セレクタを解釈できないブラウザではルールごと捨てられ、この修正前の挙動
|
|
62
|
+
(セルの中身が本文サイズ)に戻るだけ。レイアウトが壊れる方向の失敗は無い
|
|
63
|
+
|
|
64
|
+
- 69add7f: 対応ブラウザの下限(Chrome 85 / Edge 92 / Firefox 109 / Safari 15 / iOS Safari 15.1)を UI Business 側で保証する
|
|
65
|
+
|
|
66
|
+
下限の正本は [aimon-genius-fe の `.browserslistrc`](https://github.com/ubie-inc/aimon-genius-fe/blob/main/.browserslistrc)
|
|
67
|
+
(各病院での利用実績で決まっている)。antd 6 が出す CSS はこの下限を 2 点で割っていたので、
|
|
68
|
+
UI Business 側で引き受けた。**`UbieConfigProvider` をアプリの最上位に置いていれば、利用側の変更は不要。**
|
|
69
|
+
|
|
70
|
+
- **修正**: `UbieConfigProvider` が論理プロパティ(`padding-inline` / `inset-inline-start` …)を
|
|
71
|
+
物理プロパティに落とすようになった。Chrome 85〜88 ではこれらの宣言が丸ごと無視され、
|
|
72
|
+
**余白と位置が崩れていた**。aimon-genius-fe の `AntdCompatProvider` 相当をパッケージ側に移した形で、
|
|
73
|
+
利用側が既に置いている transformer(`px2rem` など)は落とさない
|
|
74
|
+
- **挙動の変化**: `businessTheme` が `hashed: false` を持ち、antd が出すセレクタが
|
|
75
|
+
`:where(.css-<hash>).ant-x{…}` から `.ant-x{…}` になる。**ハッシュクラスが DOM から消える**ので、
|
|
76
|
+
これを選択子にしているコードや E2E があれば直す。specificity(0-1-0)と挿入順は変わらないため、
|
|
77
|
+
CSS module のクラスや `style` での上書きの効き方はこれまでと同じ
|
|
78
|
+
- **追加**: `StyleProvider` / `legacyLogicalPropertiesTransformer` / `px2remTransformer` / `extractStyle` を
|
|
79
|
+
再 export した。antd は `@ant-design/cssinjs` を再エクスポートしないため、`ConfigProvider` に
|
|
80
|
+
`businessTheme` を直接渡す構成や SSR のスタイル抽出で必要になる
|
|
81
|
+
- **依存**: `@ant-design/cssinjs`(`^2.1.2`、antd 6.5.1 と同じ範囲)を直接依存に足した
|
|
82
|
+
|
|
83
|
+
**注意が 2 つある。**
|
|
84
|
+
|
|
85
|
+
- `ConfigProvider` に `businessTheme` を直接渡す構成では論理プロパティの変換が当たらない。
|
|
86
|
+
その場合は再 export した `StyleProvider` / `legacyLogicalPropertiesTransformer` を利用側で置く:
|
|
87
|
+
`<StyleProvider transformers={[legacyLogicalPropertiesTransformer]}>`
|
|
88
|
+
- cssinjs のスタイルキャッシュは transformer を鍵に含めない。同一ページで変換あり・なしの
|
|
89
|
+
`StyleProvider` が混在すると**先に生成された CSS が両方で使われる**ので、変換はアプリの root で
|
|
90
|
+
一度だけ当てる
|
|
91
|
+
|
|
92
|
+
**残る劣化。** `:has()` と `:focus-visible` が Chrome 85 / Safari 15〜15.3 で効かず、
|
|
93
|
+
フォーカス表示が出ない。`:focus` へのフォールバックは対応ブラウザでマウス操作時にも枠が出る
|
|
94
|
+
別の劣化を招くため入れていない。その他は見た目の劣化にとどまる。
|
|
95
|
+
一覧と理由は `browserSupport.test.tsx` の `KNOWN_GAPS`、判断の経緯は
|
|
96
|
+
https://github.com/ubie-inc/ubie-vitals/blob/main/docs/adr/0006-browser-support-floor-in-ui-business.md
|
|
97
|
+
|
|
98
|
+
### Patch Changes
|
|
99
|
+
|
|
100
|
+
- c4a7179: 参照層に「実行環境の前提(ブラウザのナビゲーションとブックマーク)」(`docs/principles/runtime-environment.md`)を追加する。
|
|
101
|
+
|
|
102
|
+
業務プロダクトは、戻る・進む・リロード・アドレスバー・ブックマークバーが画面に無い状態で使われることがある(基幹システムの起動ボタンから起動オプション付きでブラウザを開く構成、キオスク端末、別アプリへの埋め込み)。実際に報告されている 2 つの事象(ナビゲーションが表示されない / ブックマークが永続しない)を前提として記録し、戻る・再試行・再訪の手段をアプリ内に持たせる帰結を 4 つ挙げた。**導入先すべてではなく、割合も原因も分かっていない**という限定条件は原則の文面に残している。
|
|
103
|
+
|
|
104
|
+
参照層の判断軸そのものは消していない。「URL 共有・ブックマークしたいか」を Drawer と別ページの分岐軸にする判断はそのまま残し、それがブラウザのナビゲーションが使える環境を前提にしていることの注記と読み替えを足した。一方で「直リンクで配信したい」は、外からの入口の要件でナビゲーションの有無とは独立に効くため、URL 共有・ブックマークと同じ扱いから分離した(Drawer は直リンクで開けないので別ページを選ぶ。ただし唯一の入口にしない)。
|
|
105
|
+
|
|
106
|
+
| 文書 | 追記 |
|
|
107
|
+
| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
108
|
+
| `docs/patterns/disclosure.md` | 別ページ遷移の分岐点と「URL 共有・ブックマークしたい」が前提にしていること。「直リンクで配信したい」は環境に依らず効く軸として区別した |
|
|
109
|
+
| `docs/patterns/list-detail.md` | 絞り込みの URL 復元を、戻る操作を唯一の手段にしない形に |
|
|
110
|
+
| `docs/patterns/skeleton.md` | モーダルドロワーの開閉を URL に載せる判断の読み替え |
|
|
111
|
+
| `docs/patterns/region-state.md` | 復帰を「ページを再読み込みしてください」に任せない |
|
|
112
|
+
| `docs/components/drawer.md` | 「URL 共有・ブックマーク → 別ページ」の前提と、直リンク配信を独立の行に分離 |
|
|
113
|
+
| `docs/components/layout.md` | 上位階層へ戻る導線の置き場を骨格の中に決めておく Do |
|
|
114
|
+
|
|
115
|
+
8 原則(`docs/principles/ux-principles.md`)と採点の枠(`docs/principles/scorecard.md`)は変えていない。新しい原則は P3 / P8 に紐づく。
|
|
116
|
+
|
|
117
|
+
## 0.5.0
|
|
118
|
+
|
|
119
|
+
### Minor Changes
|
|
120
|
+
|
|
121
|
+
- dc8d246: グラフの系列色 `chartSeriesColors` と、グラフの規則 docs/patterns/chart.md を追加する。
|
|
122
|
+
|
|
123
|
+
- **追加**: `chartSeriesColors`。`cool`(寒色 4 色。各位置が `base` と 2 値の内訳用の `shade` を持つ)/ `warm`(暖色主体 4 色)/ `neutral`(`unset` / `other` / `total`)/ `printRamp`(モノクロ印刷でグラフの塗りを差し替えるグレーのランプ)。値はすべて `@ubie/vitals-token` の primitive。プライマリ・意味色と同じ段の primitive と hospital accent(sky-500 を除く)は含まず、`cool` の主・`warm`・`unset` は白地で 3:1 以上(テストで固定)
|
|
124
|
+
- **追加**: docs/patterns/chart.md。形の選び方(積み上げ可否は「合計に意味があるか」)/ 表の併置と凡例順 = 表順 / 色相スロットは 4(上位 4 + その他)と全 0 系列の扱い / 色の系統と「同じ系列は常に同じ色」/ 意味色・hospital accent との距離 / 集計中の別塗り + ラベル / `role="img"` と描画アニメーションの停止 / モノクロ印刷はグレーのランプ + 表 / グラフ単位の [画像を保存]
|
|
125
|
+
- **追加**: Storybook `Patterns/Chart`(Stacked / Grouped / AllZero / Palette)。描画は素の SVG で、ライブラリに依存しない
|
|
126
|
+
- docs/tokens.md「選ぶ順」に「グラフの系列色 → `chartSeriesColors`」の分岐を追加
|
|
127
|
+
|
|
128
|
+
- 84ecd94: `jaJP` ロケールを再 export し、docs/tokens.md「選ぶ順」に寸法(余白 / 幅 / 高さ)の分岐を、DESIGN.md の立ち上げに CSS 変数と Storybook decorator の手順を足す。
|
|
129
|
+
|
|
130
|
+
- **追加**: `jaJP`(antd の `ja_JP` ロケール)。`UbieConfigProvider` の `locale` に渡す。これまで `antd/locale/ja_JP` を直接 import する必要があった
|
|
131
|
+
- 寸法: 部品の内側は `size` prop、部品の間は `Flex gap` / `Space size` に `margin*` トークン、面の内側は `padding*`、幅は `Col span` / `controlHeight` / 表の列幅、高さは `controlHeight*`。余白・幅・高さの数値をコードに書くのは表の列幅と印刷の紙寸法を除いて禁止
|
|
132
|
+
- 文字: 補足・注記・脚注・グラフの目盛は `fontSizeSM`。それより小さい文字を作らない。文字サイズの数値をコードに書かない
|
|
133
|
+
- 立ち上げ 2: `locale={jaJP}`。立ち上げ 5: CSS 変数は `UbieConfigProvider` を通した時点で出ているので `cssVar` の指定は不要、`StyleProvider` が要るときだけ `@ant-design/cssinjs` を依存に足して直接 import する。立ち上げ 6: Storybook decorator は `UbieConfigProvider` → `App` → `Layout` > `Layout.Content`
|
|
134
|
+
|
|
135
|
+
### Patch Changes
|
|
136
|
+
|
|
137
|
+
- c2b7b22: 集計画面で自作になりがちな 4 つの規則を docs/ に足し、開示と表のカードに追記する。
|
|
138
|
+
|
|
139
|
+
- **新設** docs/patterns/print.md: 画面と印刷の切り替え(`screenOnly` / `printOnly`)、印刷から外す部品、骨格の高さ制約の解き方、`@page` と改ページ、各頁のフッタ、白黒前提、Storybook での確認法と限界
|
|
140
|
+
- **新設** docs/patterns/region-state.md: 区画をリクエスト単位で切る、`Skeleton` の形を中身に合わせる、失敗は数字を出さず `Alert` に、文言の型、再試行は `Alert` の `action` に
|
|
141
|
+
- **新設** docs/patterns/empty-state.md: 一覧が空 / 集計が 0 / 区画が取得できない の 3 つを見分け、理由と次の行動は数字の隣に置く、閾値は仕様側が持つ
|
|
142
|
+
- **新設** docs/components/statistic.md: 指標名・主数字・補足・推移の 1 枚の構成、1 段の枚数、`gutter` と折り返し、印刷では grid
|
|
143
|
+
- docs/patterns/disclosure.md: パターン表に「脚注」を追加、Tooltip に入れてよい情報の 5 問目「印刷・エクスポートに載らなくてよいか」
|
|
144
|
+
- docs/components/table.md: 「数値の列・合計・比較」(右寄せ・単位は見出し・合計は `summary`・横棒は数値併記・ピボット表の先頭列固定)
|
|
145
|
+
|
|
146
|
+
- 8e6f29f: docs/patterns/skeleton.md に補助型「区画」(Content の中を複数の主題に分ける構造)を追加する。
|
|
147
|
+
|
|
148
|
+
- 見出しのサイズを `Title` の `level` で固定(画面タイトル `level={3}` → 区画 `level={4}` → 面の中の小見出し `level={5}` → 補足は `fontSizeSM`)。区画の見出しを `Card` の `title` で代用しない
|
|
149
|
+
- 区画 = 見出し + 補足 + 白地の面の列。余白はトークン(`marginXL` / `marginMD` / `marginXXS`)。読み込みと失敗は区画単位で、失敗は数字を出さず `Alert` にする
|
|
150
|
+
- 開閉は既定で開いたまま。閉じられるようにするなら `Collapse` で統一し、既定を開にする
|
|
151
|
+
- 区画へのアンカー: 横向き `Anchor` は追従(`affix`)で置く。非追従にすると選択中の項目が変わるたびに自身へスクロールし、ページを下へスクロールできなくなる。`offsetTop` / `targetOffset` は固定ヘッダ + `marginXS`、内側スクロールなら `getContainer`。閉じた区画へ到達したら開く
|
|
152
|
+
- センタリング型の使う条件から「印刷」を外し、印刷は区画の構造をそのまま写す様式とした
|
|
153
|
+
- Storybook `Patterns/Section`(区画 / 区画 + アンカー / 区画 + 開閉)を追加
|
|
154
|
+
|
|
3
155
|
## 0.4.0
|
|
4
156
|
|
|
5
157
|
### Minor Changes
|
package/DESIGN.md
CHANGED
|
@@ -9,55 +9,66 @@ antd と Ant Design X の公開 API をそのまま再 export し、共通のテ
|
|
|
9
9
|
- `antd` から直接ではなく `@ubie/vitals-ui-business` から import する
|
|
10
10
|
- アイコンは `@ant-design/icons` の `*Outlined` から選ぶ。`@ant-design/icons` を直接 import しない。塗りが要るときと、antd に絵柄が無いとき(`@ubie/vitals-icon`)の落とし方は `docs/components/icon.md`
|
|
11
11
|
- 色・寸法の値をプロダクトのコードに書かない。正本はトークンとテーマにある(`docs/tokens.md`)
|
|
12
|
+
- `UbieConfigProvider` はアプリの最上位に置く。antd が対応ブラウザの下限を割るぶんの調整がここに入っている
|
|
12
13
|
- アプリ固有の逸脱は、そのプロダクトのリポジトリに書く
|
|
13
14
|
|
|
14
15
|
## 何をするときに何を読むか
|
|
15
16
|
|
|
16
|
-
| したいこと
|
|
17
|
-
|
|
|
18
|
-
| プロダクトを立ち上げる
|
|
19
|
-
| 画面を 1 枚足す
|
|
20
|
-
| 部品の使い方を確かめる
|
|
21
|
-
| アイコンを選ぶ
|
|
22
|
-
| 色・寸法を決める
|
|
23
|
-
|
|
|
17
|
+
| したいこと | 読むもの |
|
|
18
|
+
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
19
|
+
| プロダクトを立ち上げる | 下の「立ち上げ」 |
|
|
20
|
+
| 画面を 1 枚足す | 骨格と区画は `docs/patterns/skeleton.md` → 一覧と詳細の関係は `docs/patterns/list-detail.md` → 情報の出し方は `docs/patterns/disclosure.md` |
|
|
21
|
+
| 部品の使い方を確かめる | `docs/components/`(Table / Layout / Modal / Drawer / Statistic / チャット / アイコン) |
|
|
22
|
+
| アイコンを選ぶ | `docs/components/icon.md` |
|
|
23
|
+
| 色・寸法を決める | `docs/tokens.md` |
|
|
24
|
+
| グラフを置く | `docs/patterns/chart.md`。系列色は `chartSeriesColors` |
|
|
25
|
+
| 戻る・再試行・再訪の導線を決める | `docs/principles/runtime-environment.md` |
|
|
26
|
+
| 設計や実装を見直す・採点する | `docs/principles/` |
|
|
24
27
|
|
|
25
28
|
## 索引
|
|
26
29
|
|
|
27
30
|
### テーマ
|
|
28
31
|
|
|
29
|
-
| 名前 | 場所 | 役割
|
|
30
|
-
| -------------------- | --------------------------------- |
|
|
31
|
-
| `businessTheme` | `src/theme/businessTheme.ts` | ToB プロダクト共通の antd テーマ。`antdTheme` の token 層(色)+ `businessTypography`(文字)+ Layout / Table の components 既定
|
|
32
|
-
| `businessTypography` | `src/theme/businessTypography.ts` | ToB の文字の正本。書体スタック・本文 16px 基準の見出しスケール・行間。toC の `@ubie/vitals-token-consumer` とは正本が別
|
|
33
|
-
| `UbieConfigProvider` | `src/UbieConfigProvider.tsx` | `businessTheme` を既定で当てる ConfigProvider。利用側の `theme` は差分として重なる
|
|
32
|
+
| 名前 | 場所 | 役割 |
|
|
33
|
+
| -------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
34
|
+
| `businessTheme` | `src/theme/businessTheme.ts` | ToB プロダクト共通の antd テーマ。`antdTheme` の token 層(色)+ `businessTypography`(文字)+ Layout / Table の components 既定 |
|
|
35
|
+
| `businessTypography` | `src/theme/businessTypography.ts` | ToB の文字の正本。書体スタック・本文 16px 基準の見出しスケール・行間。toC の `@ubie/vitals-token-consumer` とは正本が別 |
|
|
36
|
+
| `UbieConfigProvider` | `src/UbieConfigProvider.tsx` | `businessTheme` を既定で当てる ConfigProvider。利用側の `theme` は差分として重なる |
|
|
37
|
+
| `chartSeriesColors` | `src/theme/chartSeriesColors.ts` | グラフの系列色。2 系統(`cool` / `warm`、色相 4 ずつ、`cool` は主・従の 2 段)+ `neutral` + 印刷用 `printRamp`。使い方は `docs/patterns/chart.md` |
|
|
34
38
|
|
|
35
39
|
### コンポーネント
|
|
36
40
|
|
|
37
41
|
antd の同名コンポーネントに既定を足したもの、および antd に対応物がない部品。
|
|
38
42
|
|
|
39
|
-
| 名前 | 場所 | antd との差分
|
|
40
|
-
| ------------------- | -------------------------------------------- |
|
|
41
|
-
| `Table` | `src/components/Table/index.tsx` | `rowActions` / `revealOnHover` / `disableHoverEffect`、`size="small"`
|
|
42
|
-
| `ChatBubble` | `src/components/ChatBubble/index.tsx` | `evidence` / `timestamp` / `timestampFormat` / `onRetry` / `retryLabel` を `footer` / `extra` に合成
|
|
43
|
-
| `ChatConversations` | `src/components/ChatConversations/index.tsx` | `emptyState`(未指定なら antd の `Empty`)
|
|
43
|
+
| 名前 | 場所 | antd との差分 | カード |
|
|
44
|
+
| ------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -------------------------- |
|
|
45
|
+
| `Table` | `src/components/Table/index.tsx` | `rowActions` / `revealOnHover` / `disableHoverEffect`、`size="small"` 既定、セル内 `Typography` の文字サイズ継承 | `docs/components/table.md` |
|
|
46
|
+
| `ChatBubble` | `src/components/ChatBubble/index.tsx` | `evidence` / `timestamp` / `timestampFormat` / `onRetry` / `retryLabel` を `footer` / `extra` に合成 | `docs/components/chat.md` |
|
|
47
|
+
| `ChatConversations` | `src/components/ChatConversations/index.tsx` | `emptyState`(未指定なら antd の `Empty`) | `docs/components/chat.md` |
|
|
44
48
|
|
|
45
49
|
### 文書
|
|
46
50
|
|
|
47
|
-
| 文書
|
|
48
|
-
|
|
|
49
|
-
| 体験設計の 8 原則と採点の枠
|
|
50
|
-
| 情報設計の原則
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
51
|
+
| 文書 | 場所 |
|
|
52
|
+
| ---------------------------- | ---------------------------------------- |
|
|
53
|
+
| 体験設計の 8 原則と採点の枠 | `docs/principles/README.md` |
|
|
54
|
+
| 情報設計の原則 | `docs/principles/information-design.md` |
|
|
55
|
+
| 実行環境の前提 | `docs/principles/runtime-environment.md` |
|
|
56
|
+
| トークンの優先順位 | `docs/tokens.md` |
|
|
57
|
+
| Table カード | `docs/components/table.md` |
|
|
58
|
+
| 画面骨格 5 型と区画 | `docs/patterns/skeleton.md` |
|
|
59
|
+
| 情報の開示パターン | `docs/patterns/disclosure.md` |
|
|
60
|
+
| 一覧と詳細 | `docs/patterns/list-detail.md` |
|
|
61
|
+
| グラフ | `docs/patterns/chart.md` |
|
|
62
|
+
| 区画の状態(読み込み・失敗) | `docs/patterns/region-state.md` |
|
|
63
|
+
| 空状態 | `docs/patterns/empty-state.md` |
|
|
64
|
+
| 印刷様式 | `docs/patterns/print.md` |
|
|
65
|
+
| リンクの体裁 | `docs/patterns/link.md` |
|
|
66
|
+
| Statistic カード | `docs/components/statistic.md` |
|
|
67
|
+
| Layout カード | `docs/components/layout.md` |
|
|
68
|
+
| Modal カード | `docs/components/modal.md` |
|
|
69
|
+
| Drawer カード | `docs/components/drawer.md` |
|
|
70
|
+
| チャット | `docs/components/chat.md` |
|
|
71
|
+
| Icon カード | `docs/components/icon.md` |
|
|
61
72
|
|
|
62
73
|
### 描画カタログ
|
|
63
74
|
|
|
@@ -65,11 +76,13 @@ Storybook: https://ubie-inc.github.io/ubie-vitals/ui-business (main への pus
|
|
|
65
76
|
コンポーネントは Storybook の "Business/" グループ、パターンの実演は "Patterns/" グループにある。
|
|
66
77
|
|
|
67
78
|
- コンポーネント: `src/stories/business/Table.stories.tsx`・`src/stories/business/Chat.stories.tsx`・`src/stories/business/Icon.stories.tsx`
|
|
68
|
-
- パターンの実演: `src/stories/patterns/Skeleton.stories.tsx`・`src/stories/patterns/Disclosure.stories.tsx`・`src/stories/patterns/ListDetail.stories.tsx`
|
|
79
|
+
- パターンの実演: `src/stories/patterns/Skeleton.stories.tsx`・`src/stories/patterns/Section.stories.tsx`・`src/stories/patterns/Disclosure.stories.tsx`・`src/stories/patterns/ListDetail.stories.tsx`・`src/stories/patterns/Chart.stories.tsx`・`src/stories/patterns/Link.stories.tsx`
|
|
69
80
|
|
|
70
81
|
## 立ち上げ
|
|
71
82
|
|
|
72
83
|
1. 依存を入れる: `pnpm add @ubie/vitals-ui-business react react-dom`
|
|
73
|
-
2. アプリの最上位を `UbieConfigProvider`
|
|
84
|
+
2. アプリの最上位を `UbieConfigProvider` で包み、`locale={jaJP}` を渡す。`jaJP` も `UbieConfigProvider` も `@ubie/vitals-ui-business` から import する(`antd/locale/*` を直接 import しない)
|
|
74
85
|
3. アプリ固有のテーマ差分(ヘッダー高さなど)は `UbieConfigProvider` の `theme` に差分だけ渡す。書き方は `docs/tokens.md`
|
|
75
86
|
4. 骨格は `docs/patterns/skeleton.md` の 5 型から選ぶ。一覧と詳細の組み立ては `docs/patterns/list-detail.md`、情報の出し方は `docs/patterns/disclosure.md`、部品の用法は `docs/components/` にある
|
|
87
|
+
5. CSS module から antd の値を参照するときは CSS 変数(`--ant-*`)をそのまま使う。`UbieConfigProvider` を通した時点で出ているので `cssVar` の指定は要らない。スタイルの挿入順や変換を触る `StyleProvider` が要るときは `@ubie/vitals-ui-business` から import する(`@ant-design/cssinjs` を直接依存に足さない)。対応ブラウザのための変換は `UbieConfigProvider` が既に通しているので、アプリの root で 1 度だけ当てる
|
|
88
|
+
6. Storybook で描くときは decorator で `UbieConfigProvider` → `App` → `Layout` > `Layout.Content` の順に包む。`Layout` が無いと `Layout.bodyBg` が当たらず、面の外側が白いまま描かれる(`docs/components/layout.md`)
|