@temboplus/frontend-react-core 0.1.3-beta.15 → 0.1.3-beta.17
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/alerts/index.cjs.js +1 -1
- package/dist/alerts/index.js +1 -1
- package/dist/dialogs/index.cjs.js +1 -1
- package/dist/dialogs/index.js +1 -1
- package/dist/features/notifications/toast-config.js +4 -4
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/notifications/index.cjs.js +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/tembo-notify-BenAoNw-.js +3 -0
- package/dist/tembo-notify-BenAoNw-.js.map +1 -0
- package/dist/tembo-notify-CuJvpJPy.js +3 -0
- package/dist/tembo-notify-CuJvpJPy.js.map +1 -0
- package/dist/theme/index.cjs.js +1 -1
- package/dist/theme/index.js +1 -1
- package/dist/theme/theme-config.d.ts +6 -5
- package/dist/theme/theme-config.js +211 -124
- package/dist/theme/tokens/colors.d.ts +23 -99
- package/dist/theme/tokens/colors.js +217 -228
- package/dist/{theme-provider-D3-cveEd.js → theme-provider-B7KHfeIX.js} +2 -2
- package/dist/{theme-provider-D3-cveEd.js.map → theme-provider-B7KHfeIX.js.map} +1 -1
- package/dist/theme-provider-CfK4hGOK.js +11 -0
- package/dist/theme-provider-CfK4hGOK.js.map +1 -0
- package/dist/{theme-provider-BJjIEVwv.js → theme-provider-DC5n7LPe.js} +2 -2
- package/dist/{theme-provider-BJjIEVwv.js.map → theme-provider-DC5n7LPe.js.map} +1 -1
- package/dist/theme-provider-Dsjd08Jn.js +11 -0
- package/dist/theme-provider-Dsjd08Jn.js.map +1 -0
- package/package.json +1 -1
- package/dist/tembo-notify-60Hk7l5W.js +0 -3
- package/dist/tembo-notify-60Hk7l5W.js.map +0 -1
- package/dist/tembo-notify-BEEB2wEp.js +0 -3
- package/dist/tembo-notify-BEEB2wEp.js.map +0 -1
- package/dist/theme-provider-CpPw8sUs.js +0 -11
- package/dist/theme-provider-CpPw8sUs.js.map +0 -1
- package/dist/theme-provider-xDEswLd1.js +0 -11
- package/dist/theme-provider-xDEswLd1.js.map +0 -1
|
@@ -2,34 +2,35 @@
|
|
|
2
2
|
* Build comprehensive Ant Design theme from Tembo tokens
|
|
3
3
|
*
|
|
4
4
|
* Design principles:
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
5
|
+
* - Monochrome-first: Primary actions use neutral[8] (near-black/near-white)
|
|
6
|
+
* - Single accent: Blue for links, focus states, and interactive feedback
|
|
7
|
+
* - Semantic colors: Only for critical feedback (success, error, warning)
|
|
8
|
+
* - Consistent spacing: Set once at token level, inherited by components
|
|
9
|
+
* - Bold rounded corners: 24px inputs/buttons, 28px cards, 32px modals
|
|
10
|
+
* - Smart shadows: None on flat elements, subtle on elevated surfaces
|
|
10
11
|
*/
|
|
11
12
|
export const buildAntDTheme = (colors, constants) => {
|
|
12
13
|
const isDark = colors.mode === 'dark';
|
|
13
14
|
return {
|
|
14
15
|
token: {
|
|
15
16
|
// ============================================
|
|
16
|
-
// COLOR
|
|
17
|
+
// COLOR SYSTEM
|
|
17
18
|
// ============================================
|
|
18
|
-
// Primary
|
|
19
|
+
// Primary = Monochrome actions (near-black/near-white)
|
|
19
20
|
colorPrimary: colors.action.default,
|
|
20
21
|
colorPrimaryHover: colors.action.hover,
|
|
21
22
|
colorPrimaryActive: colors.action.default,
|
|
22
|
-
colorPrimaryBg: colors.neutral[
|
|
23
|
+
colorPrimaryBg: colors.neutral[3],
|
|
23
24
|
colorPrimaryBgHover: colors.surface.interactive,
|
|
24
25
|
colorPrimaryBorder: colors.action.default,
|
|
25
|
-
colorPrimaryBorderHover: colors.action.
|
|
26
|
+
colorPrimaryBorderHover: colors.action.hover,
|
|
26
27
|
colorPrimaryText: colors.action.default,
|
|
27
|
-
colorPrimaryTextHover: colors.
|
|
28
|
+
colorPrimaryTextHover: colors.action.hover,
|
|
28
29
|
colorPrimaryTextActive: colors.action.default,
|
|
29
|
-
// Links
|
|
30
|
-
colorLink: colors.
|
|
31
|
-
colorLinkHover: colors.
|
|
32
|
-
colorLinkActive: colors.
|
|
30
|
+
// Links = Accent blue (only color in monochrome system)
|
|
31
|
+
colorLink: colors.accent.default,
|
|
32
|
+
colorLinkHover: colors.accent.hover,
|
|
33
|
+
colorLinkActive: colors.accent.active,
|
|
33
34
|
// Text hierarchy
|
|
34
35
|
colorText: colors.text.primary,
|
|
35
36
|
colorTextSecondary: colors.text.secondary,
|
|
@@ -49,20 +50,19 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
49
50
|
colorBgSpotlight: colors.surface.interactive,
|
|
50
51
|
colorBgMask: isDark ? 'rgba(0, 0, 0, 0.65)' : 'rgba(0, 0, 0, 0.45)',
|
|
51
52
|
colorBgTextHover: colors.surface.interactive,
|
|
52
|
-
colorBgTextActive: colors.surface.
|
|
53
|
-
// Disabled backgrounds
|
|
53
|
+
colorBgTextActive: colors.surface.selected,
|
|
54
54
|
colorBgContainerDisabled: colors.action.disabled,
|
|
55
55
|
// Borders
|
|
56
56
|
colorBorder: colors.border.default,
|
|
57
57
|
colorBorderBg: colors.surface.card,
|
|
58
58
|
colorBorderSecondary: colors.border.subtle,
|
|
59
59
|
colorSplit: colors.border.subtle,
|
|
60
|
-
// Fill colors
|
|
61
|
-
colorFill: colors.neutral[
|
|
62
|
-
colorFillSecondary: colors.neutral[
|
|
60
|
+
// Fill colors (for backgrounds, progress bars, etc.)
|
|
61
|
+
colorFill: colors.neutral[3],
|
|
62
|
+
colorFillSecondary: colors.neutral[3],
|
|
63
63
|
colorFillTertiary: colors.neutral[2],
|
|
64
64
|
colorFillQuaternary: colors.surface.interactive,
|
|
65
|
-
// Semantic colors
|
|
65
|
+
// Semantic colors - modern, vibrant
|
|
66
66
|
colorSuccess: colors.semantic.success.main,
|
|
67
67
|
colorSuccessBg: colors.semantic.success.subtle,
|
|
68
68
|
colorSuccessBgHover: colors.semantic.success.subtle,
|
|
@@ -119,7 +119,7 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
119
119
|
lineHeightHeading4: constants.typography.lineHeight.tight,
|
|
120
120
|
lineHeightHeading5: constants.typography.lineHeight.tight,
|
|
121
121
|
// ============================================
|
|
122
|
-
// SPACING & SIZING
|
|
122
|
+
// SPACING & SIZING
|
|
123
123
|
// ============================================
|
|
124
124
|
padding: constants.spacing[4],
|
|
125
125
|
paddingXS: constants.spacing[2],
|
|
@@ -132,24 +132,24 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
132
132
|
marginLG: constants.spacing[5],
|
|
133
133
|
marginXL: constants.spacing[6],
|
|
134
134
|
marginXXL: constants.spacing[8],
|
|
135
|
-
// Control heights -
|
|
136
|
-
controlHeight: 40,
|
|
137
|
-
controlHeightLG: 48,
|
|
138
|
-
controlHeightSM: 32,
|
|
139
|
-
controlHeightXS: 24,
|
|
135
|
+
// Control heights - consistent across all inputs
|
|
136
|
+
controlHeight: 40,
|
|
137
|
+
controlHeightLG: 48,
|
|
138
|
+
controlHeightSM: 32,
|
|
139
|
+
controlHeightXS: 24,
|
|
140
140
|
// ============================================
|
|
141
141
|
// BORDER RADIUS - Bold rounded corners
|
|
142
142
|
// ============================================
|
|
143
|
-
borderRadius: constants.radius.base,
|
|
144
|
-
borderRadiusLG: constants.radius.md,
|
|
145
|
-
borderRadiusSM: constants.radius.sm,
|
|
146
|
-
borderRadiusXS: constants.radius.sm,
|
|
143
|
+
borderRadius: constants.radius.base,
|
|
144
|
+
borderRadiusLG: constants.radius.md,
|
|
145
|
+
borderRadiusSM: constants.radius.sm,
|
|
146
|
+
borderRadiusXS: constants.radius.sm,
|
|
147
147
|
// ============================================
|
|
148
|
-
// SHADOWS -
|
|
148
|
+
// SHADOWS - Flat elements have none
|
|
149
149
|
// ============================================
|
|
150
|
-
boxShadow: constants.shadow.none,
|
|
151
|
-
boxShadowSecondary: constants.shadow.none,
|
|
152
|
-
boxShadowTertiary: constants.shadow.card,
|
|
150
|
+
boxShadow: constants.shadow.none,
|
|
151
|
+
boxShadowSecondary: constants.shadow.none,
|
|
152
|
+
boxShadowTertiary: constants.shadow.card,
|
|
153
153
|
// ============================================
|
|
154
154
|
// MOTION
|
|
155
155
|
// ============================================
|
|
@@ -166,33 +166,40 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
166
166
|
},
|
|
167
167
|
components: {
|
|
168
168
|
// ========================================
|
|
169
|
-
//
|
|
169
|
+
// BUTTONS - Monochrome actions
|
|
170
170
|
// ========================================
|
|
171
171
|
Button: {
|
|
172
|
-
//
|
|
172
|
+
// Monochrome primary button (near-black/near-white)
|
|
173
173
|
colorPrimary: colors.action.default,
|
|
174
174
|
colorPrimaryHover: colors.action.hover,
|
|
175
175
|
colorPrimaryActive: colors.action.default,
|
|
176
176
|
colorPrimaryBorder: colors.action.default,
|
|
177
177
|
primaryColor: colors.action.contrast,
|
|
178
|
-
//
|
|
179
|
-
colorBgContainerDisabled: colors.action.disabled,
|
|
180
|
-
colorTextDisabled: colors.text.secondary,
|
|
181
|
-
borderColorDisabled: colors.action.disabled,
|
|
182
|
-
// Default button
|
|
178
|
+
// Default button (outlined)
|
|
183
179
|
defaultBg: colors.surface.card,
|
|
184
180
|
defaultBorderColor: colors.border.default,
|
|
185
181
|
defaultColor: colors.text.primary,
|
|
186
182
|
defaultHoverBg: colors.surface.interactive,
|
|
187
183
|
defaultHoverBorderColor: colors.border.strong,
|
|
184
|
+
defaultHoverColor: colors.text.primary,
|
|
185
|
+
defaultActiveBg: colors.surface.selected,
|
|
188
186
|
defaultActiveBorderColor: colors.action.default,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
187
|
+
defaultActiveColor: colors.action.default,
|
|
188
|
+
// Link button (uses accent color)
|
|
189
|
+
colorLink: colors.accent.default,
|
|
190
|
+
colorLinkHover: colors.accent.hover,
|
|
191
|
+
colorLinkActive: colors.accent.active,
|
|
192
|
+
// Text button
|
|
193
|
+
textHoverBg: colors.surface.interactive,
|
|
194
|
+
// Danger button (uses semantic red)
|
|
194
195
|
dangerColor: colors.semantic.error.main,
|
|
195
|
-
|
|
196
|
+
colorErrorHover: colors.semantic.error.main,
|
|
197
|
+
colorErrorActive: colors.semantic.error.main,
|
|
198
|
+
// Disabled state
|
|
199
|
+
colorBgContainerDisabled: colors.action.disabled,
|
|
200
|
+
colorTextDisabled: colors.text.disabled,
|
|
201
|
+
borderColorDisabled: colors.action.disabled,
|
|
202
|
+
// No shadows on buttons (flat design)
|
|
196
203
|
primaryShadow: 'none',
|
|
197
204
|
defaultShadow: 'none',
|
|
198
205
|
dangerShadow: 'none',
|
|
@@ -200,32 +207,34 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
200
207
|
borderRadius: constants.radius.button,
|
|
201
208
|
borderRadiusLG: constants.radius.button,
|
|
202
209
|
borderRadiusSM: constants.radius.button,
|
|
210
|
+
// Typography
|
|
211
|
+
fontWeight: constants.typography.fontWeight.medium,
|
|
203
212
|
// Padding
|
|
204
213
|
paddingContentHorizontal: constants.spacing[4],
|
|
205
214
|
paddingContentVertical: constants.spacing[2],
|
|
206
|
-
//
|
|
207
|
-
fontWeight: constants.typography.fontWeight.medium,
|
|
208
|
-
// Heights inherited from token.controlHeight automatically ✅
|
|
215
|
+
// Heights inherited from token.controlHeight ✅
|
|
209
216
|
},
|
|
210
217
|
// ========================================
|
|
211
|
-
// INPUTS -
|
|
218
|
+
// INPUTS - Blue accent for focus states
|
|
212
219
|
// ========================================
|
|
213
220
|
Input: {
|
|
214
|
-
|
|
215
|
-
colorBgContainer: colors.surface.card,
|
|
221
|
+
colorBgContainer: colors.surface.input,
|
|
216
222
|
colorBorder: colors.border.default,
|
|
217
223
|
colorText: colors.text.primary,
|
|
218
224
|
colorTextPlaceholder: colors.text.tertiary,
|
|
219
|
-
// Icons
|
|
225
|
+
// Icons
|
|
220
226
|
colorIcon: colors.text.tertiary,
|
|
221
227
|
colorIconHover: colors.text.secondary,
|
|
222
|
-
//
|
|
228
|
+
// Hover state
|
|
229
|
+
hoverBg: colors.surface.card,
|
|
223
230
|
hoverBorderColor: colors.border.strong,
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
231
|
+
// Focus state - blue accent ring
|
|
232
|
+
activeBg: colors.surface.card,
|
|
233
|
+
activeBorderColor: colors.accent.default,
|
|
234
|
+
activeShadow: `0 0 0 2px ${colors.accent.subtle}`,
|
|
235
|
+
// Disabled
|
|
236
|
+
colorBgContainerDisabled: colors.surface.nested,
|
|
237
|
+
colorTextDisabled: colors.text.disabled,
|
|
229
238
|
// Bold rounded
|
|
230
239
|
borderRadius: constants.radius.input,
|
|
231
240
|
borderRadiusLG: constants.radius.input,
|
|
@@ -234,25 +243,29 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
234
243
|
paddingBlock: constants.spacing[2],
|
|
235
244
|
paddingInline: constants.spacing[3],
|
|
236
245
|
paddingInlineLG: constants.spacing[4],
|
|
237
|
-
// Heights inherited from token.controlHeight automatically ✅
|
|
238
246
|
},
|
|
239
247
|
InputNumber: {
|
|
248
|
+
colorBgContainer: colors.surface.input,
|
|
240
249
|
colorIcon: colors.text.tertiary,
|
|
241
250
|
colorIconHover: colors.text.secondary,
|
|
242
|
-
activeBorderColor: colors.
|
|
243
|
-
activeShadow: `0 0 0 2px ${colors.
|
|
251
|
+
activeBorderColor: colors.accent.default,
|
|
252
|
+
activeShadow: `0 0 0 2px ${colors.accent.subtle}`,
|
|
244
253
|
borderRadius: constants.radius.input,
|
|
245
254
|
handleVisible: true,
|
|
246
255
|
},
|
|
247
256
|
Select: {
|
|
257
|
+
colorBgContainer: colors.surface.input,
|
|
248
258
|
colorBgElevated: colors.surface.overlay,
|
|
249
259
|
colorIcon: colors.text.tertiary,
|
|
250
260
|
colorIconHover: colors.text.secondary,
|
|
251
|
-
|
|
252
|
-
|
|
261
|
+
// Focus - blue accent
|
|
262
|
+
activeBorderColor: colors.accent.default,
|
|
263
|
+
boxShadow: `0 0 0 2px ${colors.accent.subtle}`,
|
|
264
|
+
// Options
|
|
253
265
|
optionSelectedBg: colors.surface.selected,
|
|
254
266
|
optionActiveBg: colors.surface.interactive,
|
|
255
267
|
controlItemBgHover: colors.surface.interactive,
|
|
268
|
+
controlItemBgActive: colors.surface.selected,
|
|
256
269
|
borderRadius: constants.radius.input,
|
|
257
270
|
borderRadiusLG: constants.radius.input,
|
|
258
271
|
borderRadiusSM: constants.radius.input,
|
|
@@ -260,59 +273,71 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
260
273
|
boxShadowSecondary: constants.shadow.popover,
|
|
261
274
|
},
|
|
262
275
|
DatePicker: {
|
|
276
|
+
colorBgContainer: colors.surface.input,
|
|
263
277
|
colorIcon: colors.text.tertiary,
|
|
264
278
|
colorIconHover: colors.text.secondary,
|
|
265
|
-
activeBorderColor: colors.
|
|
266
|
-
activeShadow: `0 0 0 2px ${colors.
|
|
279
|
+
activeBorderColor: colors.accent.default,
|
|
280
|
+
activeShadow: `0 0 0 2px ${colors.accent.subtle}`,
|
|
267
281
|
cellHoverBg: colors.surface.interactive,
|
|
268
|
-
cellActiveWithRangeBg: colors.
|
|
269
|
-
colorPrimary: colors.
|
|
282
|
+
cellActiveWithRangeBg: colors.accent.subtle,
|
|
283
|
+
colorPrimary: colors.accent.default,
|
|
270
284
|
borderRadius: constants.radius.input,
|
|
271
285
|
},
|
|
286
|
+
// ========================================
|
|
287
|
+
// FORM CONTROLS - Use accent for selected state
|
|
288
|
+
// ========================================
|
|
272
289
|
Checkbox: {
|
|
273
|
-
colorPrimary: colors.
|
|
274
|
-
colorPrimaryHover: colors.
|
|
290
|
+
colorPrimary: colors.accent.default,
|
|
291
|
+
colorPrimaryHover: colors.accent.hover,
|
|
292
|
+
colorPrimaryBorder: colors.border.default,
|
|
275
293
|
borderRadiusSM: constants.radius.sm,
|
|
276
294
|
},
|
|
277
295
|
Radio: {
|
|
278
|
-
colorPrimary: colors.
|
|
279
|
-
colorPrimaryHover: colors.
|
|
296
|
+
colorPrimary: colors.accent.default,
|
|
297
|
+
colorPrimaryHover: colors.accent.hover,
|
|
298
|
+
colorBorder: colors.border.default,
|
|
280
299
|
},
|
|
281
300
|
Switch: {
|
|
282
|
-
colorPrimary: colors.
|
|
283
|
-
colorPrimaryHover: colors.
|
|
301
|
+
colorPrimary: colors.accent.default,
|
|
302
|
+
colorPrimaryHover: colors.accent.hover,
|
|
303
|
+
colorTextQuaternary: colors.neutral[4],
|
|
304
|
+
colorTextTertiary: colors.neutral[5],
|
|
284
305
|
handleSize: 18,
|
|
285
306
|
},
|
|
286
307
|
Slider: {
|
|
287
|
-
colorPrimary: colors.
|
|
288
|
-
colorPrimaryBorder: colors.
|
|
289
|
-
colorPrimaryBorderHover: colors.
|
|
308
|
+
colorPrimary: colors.accent.default,
|
|
309
|
+
colorPrimaryBorder: colors.accent.default,
|
|
310
|
+
colorPrimaryBorderHover: colors.accent.hover,
|
|
290
311
|
handleColor: colors.surface.card,
|
|
291
312
|
handleActiveColor: colors.surface.card,
|
|
292
|
-
railBg: colors.neutral[
|
|
293
|
-
railHoverBg: colors.neutral[
|
|
294
|
-
trackBg: colors.
|
|
295
|
-
trackHoverBg: colors.
|
|
313
|
+
railBg: colors.neutral[3],
|
|
314
|
+
railHoverBg: colors.neutral[4],
|
|
315
|
+
trackBg: colors.accent.default,
|
|
316
|
+
trackHoverBg: colors.accent.hover,
|
|
296
317
|
dotBorderColor: colors.border.default,
|
|
297
|
-
dotActiveBorderColor: colors.
|
|
318
|
+
dotActiveBorderColor: colors.accent.default,
|
|
298
319
|
},
|
|
320
|
+
// ========================================
|
|
321
|
+
// FORM LAYOUT
|
|
322
|
+
// ========================================
|
|
299
323
|
Form: {
|
|
300
324
|
labelColor: colors.text.primary,
|
|
301
325
|
labelFontSize: constants.typography.fontSize.base,
|
|
326
|
+
labelRequiredMarkColor: colors.semantic.error.main,
|
|
302
327
|
itemMarginBottom: constants.spacing[4],
|
|
303
328
|
verticalLabelPadding: `0 0 ${constants.spacing[2]}px`,
|
|
304
|
-
labelRequiredMarkColor: colors.semantic.error.main,
|
|
305
329
|
},
|
|
306
330
|
// ========================================
|
|
307
331
|
// DATA DISPLAY
|
|
308
332
|
// ========================================
|
|
309
333
|
Table: {
|
|
310
|
-
// Colors
|
|
311
334
|
colorBgContainer: colors.surface.card,
|
|
312
335
|
headerBg: colors.surface.page,
|
|
313
336
|
headerColor: colors.text.secondary,
|
|
337
|
+
colorText: colors.text.primary,
|
|
338
|
+
colorTextHeading: colors.text.secondary,
|
|
314
339
|
borderColor: colors.border.subtle,
|
|
315
|
-
//
|
|
340
|
+
// Interactive states
|
|
316
341
|
rowHoverBg: colors.surface.interactive,
|
|
317
342
|
rowSelectedBg: colors.surface.selected,
|
|
318
343
|
rowExpandedBg: colors.surface.nested,
|
|
@@ -321,21 +346,27 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
321
346
|
borderRadiusLG: constants.radius.card,
|
|
322
347
|
headerBorderRadius: constants.radius.card,
|
|
323
348
|
// Padding
|
|
324
|
-
cellPaddingBlock: constants.spacing[
|
|
349
|
+
cellPaddingBlock: constants.spacing[3],
|
|
325
350
|
cellPaddingInline: constants.spacing[4],
|
|
326
351
|
cellPaddingBlockSM: constants.spacing[2],
|
|
327
352
|
cellPaddingInlineSM: constants.spacing[3],
|
|
353
|
+
// Typography
|
|
354
|
+
cellFontSize: constants.typography.fontSize.base,
|
|
355
|
+
headerSortActiveBg: colors.surface.interactive,
|
|
328
356
|
},
|
|
329
357
|
Descriptions: {
|
|
330
358
|
labelBg: colors.surface.page,
|
|
331
359
|
titleColor: colors.text.primary,
|
|
332
360
|
contentColor: colors.text.primary,
|
|
333
361
|
extraColor: colors.text.secondary,
|
|
334
|
-
|
|
362
|
+
colorSplit: colors.border.subtle,
|
|
363
|
+
itemPaddingBottom: constants.spacing[3],
|
|
335
364
|
},
|
|
336
365
|
Card: {
|
|
337
366
|
colorBgContainer: colors.surface.card,
|
|
338
367
|
colorBorderSecondary: colors.border.default,
|
|
368
|
+
colorTextHeading: colors.text.primary,
|
|
369
|
+
colorTextDescription: colors.text.secondary,
|
|
339
370
|
// Gentle shadow on cards
|
|
340
371
|
boxShadowTertiary: constants.shadow.card,
|
|
341
372
|
// Smooth rounded
|
|
@@ -345,17 +376,19 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
345
376
|
paddingLG: constants.spacing[6],
|
|
346
377
|
},
|
|
347
378
|
Statistic: {
|
|
348
|
-
titleFontSize: constants.typography.fontSize.
|
|
379
|
+
titleFontSize: constants.typography.fontSize.sm,
|
|
349
380
|
contentFontSize: constants.typography.fontSize['4xl'],
|
|
350
381
|
},
|
|
351
382
|
Timeline: {
|
|
352
383
|
tailColor: colors.border.default,
|
|
353
384
|
tailWidth: 2,
|
|
354
385
|
dotBg: colors.surface.card,
|
|
355
|
-
|
|
386
|
+
dotBorderWidth: 2,
|
|
387
|
+
itemPaddingBottom: constants.spacing[4],
|
|
356
388
|
},
|
|
357
389
|
Tag: {
|
|
358
390
|
defaultBg: colors.neutral[2],
|
|
391
|
+
defaultColor: colors.text.primary,
|
|
359
392
|
borderRadiusSM: constants.radius.sm,
|
|
360
393
|
fontSize: constants.typography.fontSize.sm,
|
|
361
394
|
fontSizeSM: constants.typography.fontSize.xs,
|
|
@@ -364,20 +397,22 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
364
397
|
colorBorderBg: colors.surface.card,
|
|
365
398
|
colorError: colors.semantic.error.main,
|
|
366
399
|
colorSuccess: colors.semantic.success.main,
|
|
367
|
-
colorInfo: colors.
|
|
400
|
+
colorInfo: colors.accent.default,
|
|
368
401
|
colorWarning: colors.semantic.warning.main,
|
|
369
402
|
textFontSize: constants.typography.fontSize.xs,
|
|
403
|
+
textFontWeight: constants.typography.fontWeight.medium,
|
|
370
404
|
},
|
|
371
405
|
Avatar: {
|
|
372
|
-
colorBgContainer: colors.neutral[
|
|
406
|
+
colorBgContainer: colors.neutral[3],
|
|
407
|
+
colorTextPlaceholder: colors.text.secondary,
|
|
373
408
|
borderRadius: constants.radius.avatar,
|
|
374
409
|
groupOverlapping: -8,
|
|
375
410
|
groupSpace: constants.spacing[1],
|
|
376
411
|
},
|
|
377
412
|
Calendar: {
|
|
378
413
|
colorBgContainer: colors.surface.card,
|
|
379
|
-
colorPrimary: colors.
|
|
380
|
-
itemActiveBg: colors.
|
|
414
|
+
colorPrimary: colors.accent.default,
|
|
415
|
+
itemActiveBg: colors.accent.subtle,
|
|
381
416
|
borderRadius: constants.radius.card,
|
|
382
417
|
},
|
|
383
418
|
Collapse: {
|
|
@@ -390,13 +425,13 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
390
425
|
Tree: {
|
|
391
426
|
nodeHoverBg: colors.surface.interactive,
|
|
392
427
|
nodeSelectedBg: colors.surface.selected,
|
|
428
|
+
directoryNodeSelectedBg: colors.surface.selected,
|
|
393
429
|
borderRadius: constants.radius.sm,
|
|
394
430
|
},
|
|
395
431
|
// ========================================
|
|
396
432
|
// FEEDBACK - Elevated with shadows
|
|
397
433
|
// ========================================
|
|
398
434
|
Alert: {
|
|
399
|
-
// Semantic colors
|
|
400
435
|
colorSuccessBg: colors.semantic.success.subtle,
|
|
401
436
|
colorSuccessBorder: colors.semantic.success.main,
|
|
402
437
|
colorSuccessText: colors.semantic.success.main,
|
|
@@ -411,11 +446,14 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
411
446
|
colorInfoText: colors.semantic.info.main,
|
|
412
447
|
defaultPadding: `${constants.spacing[3]}px ${constants.spacing[4]}px`,
|
|
413
448
|
borderRadiusLG: constants.radius.card,
|
|
449
|
+
withDescriptionPadding: `${constants.spacing[4]}px ${constants.spacing[5]}px`,
|
|
414
450
|
},
|
|
415
451
|
Modal: {
|
|
416
452
|
contentBg: colors.surface.overlay,
|
|
417
453
|
headerBg: colors.surface.overlay,
|
|
418
454
|
footerBg: colors.surface.overlay,
|
|
455
|
+
titleColor: colors.text.primary,
|
|
456
|
+
titleFontSize: constants.typography.fontSize.xl,
|
|
419
457
|
colorBgMask: isDark ? 'rgba(0, 0, 0, 0.65)' : 'rgba(0, 0, 0, 0.45)',
|
|
420
458
|
// Prominent shadow
|
|
421
459
|
boxShadow: constants.shadow.modal,
|
|
@@ -424,6 +462,7 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
424
462
|
},
|
|
425
463
|
Drawer: {
|
|
426
464
|
colorBgElevated: colors.surface.overlay,
|
|
465
|
+
colorText: colors.text.primary,
|
|
427
466
|
colorBgMask: isDark ? 'rgba(0, 0, 0, 0.65)' : 'rgba(0, 0, 0, 0.45)',
|
|
428
467
|
borderRadiusLG: constants.radius.modal,
|
|
429
468
|
footerPaddingBlock: constants.spacing[4],
|
|
@@ -431,6 +470,8 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
431
470
|
},
|
|
432
471
|
Notification: {
|
|
433
472
|
colorBgElevated: colors.surface.overlay,
|
|
473
|
+
colorText: colors.text.primary,
|
|
474
|
+
colorTextHeading: colors.text.primary,
|
|
434
475
|
// Shadow on notification
|
|
435
476
|
boxShadow: constants.shadow.popover,
|
|
436
477
|
borderRadiusLG: constants.radius.card,
|
|
@@ -445,14 +486,16 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
445
486
|
},
|
|
446
487
|
Popconfirm: {
|
|
447
488
|
colorBgElevated: colors.surface.overlay,
|
|
489
|
+
colorText: colors.text.primary,
|
|
490
|
+
colorTextHeading: colors.text.primary,
|
|
448
491
|
boxShadowSecondary: constants.shadow.popover,
|
|
449
492
|
borderRadiusLG: constants.radius.card,
|
|
450
493
|
},
|
|
451
494
|
Progress: {
|
|
452
|
-
defaultColor: colors.
|
|
495
|
+
defaultColor: colors.accent.default,
|
|
453
496
|
colorSuccess: colors.semantic.success.main,
|
|
454
497
|
colorError: colors.semantic.error.main,
|
|
455
|
-
remainingColor: colors.neutral[
|
|
498
|
+
remainingColor: colors.neutral[3],
|
|
456
499
|
borderRadius: 100,
|
|
457
500
|
lineBorderRadius: 100,
|
|
458
501
|
},
|
|
@@ -460,68 +503,85 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
460
503
|
titleFontSize: constants.typography.fontSize['3xl'],
|
|
461
504
|
subtitleFontSize: constants.typography.fontSize.base,
|
|
462
505
|
iconFontSize: constants.typography.fontSize['5xl'],
|
|
506
|
+
colorSuccess: colors.semantic.success.main,
|
|
507
|
+
colorError: colors.semantic.error.main,
|
|
508
|
+
colorInfo: colors.accent.default,
|
|
509
|
+
colorWarning: colors.semantic.warning.main,
|
|
463
510
|
},
|
|
464
511
|
Skeleton: {
|
|
465
512
|
colorFill: colors.neutral[2],
|
|
466
|
-
colorFillContent: colors.neutral[
|
|
513
|
+
colorFillContent: colors.neutral[3],
|
|
467
514
|
borderRadiusSM: constants.radius.sm,
|
|
468
515
|
},
|
|
469
516
|
Spin: {
|
|
470
|
-
colorPrimary: colors.
|
|
517
|
+
colorPrimary: colors.accent.default,
|
|
471
518
|
},
|
|
472
519
|
// ========================================
|
|
473
|
-
// NAVIGATION
|
|
520
|
+
// NAVIGATION - Accent for active states
|
|
474
521
|
// ========================================
|
|
475
522
|
Menu: {
|
|
476
523
|
itemBg: 'transparent',
|
|
477
524
|
itemColor: colors.text.primary,
|
|
478
525
|
itemHoverBg: colors.surface.interactive,
|
|
526
|
+
itemHoverColor: colors.text.primary,
|
|
479
527
|
itemSelectedBg: colors.surface.selected,
|
|
528
|
+
itemSelectedColor: colors.accent.default,
|
|
529
|
+
itemActiveBg: colors.surface.selected,
|
|
480
530
|
// Dark sidebar
|
|
481
531
|
darkItemBg: colors.absolute.black,
|
|
482
532
|
darkSubMenuItemBg: colors.absolute.black,
|
|
483
533
|
darkItemColor: colors.absolute.white,
|
|
484
534
|
darkItemHoverBg: 'rgba(255, 255, 255, 0.08)',
|
|
485
|
-
darkItemSelectedBg: colors.
|
|
535
|
+
darkItemSelectedBg: colors.accent.default,
|
|
486
536
|
darkItemSelectedColor: colors.absolute.white,
|
|
487
|
-
itemBorderRadius: constants.radius.
|
|
488
|
-
|
|
537
|
+
itemBorderRadius: constants.radius.sm,
|
|
538
|
+
itemMarginInline: constants.spacing[1],
|
|
539
|
+
itemPaddingInline: constants.spacing[3],
|
|
489
540
|
},
|
|
490
541
|
Breadcrumb: {
|
|
491
542
|
itemColor: colors.text.secondary,
|
|
492
543
|
lastItemColor: colors.text.primary,
|
|
493
|
-
linkColor: colors.
|
|
494
|
-
linkHoverColor: colors.
|
|
544
|
+
linkColor: colors.accent.default,
|
|
545
|
+
linkHoverColor: colors.accent.hover,
|
|
495
546
|
separatorColor: colors.text.tertiary,
|
|
496
547
|
separatorMargin: constants.spacing[2],
|
|
548
|
+
fontSize: constants.typography.fontSize.sm,
|
|
497
549
|
},
|
|
498
550
|
Pagination: {
|
|
499
|
-
colorPrimary: colors.
|
|
500
|
-
colorPrimaryHover: colors.
|
|
501
|
-
itemActiveBg: colors.
|
|
551
|
+
colorPrimary: colors.accent.default,
|
|
552
|
+
colorPrimaryHover: colors.accent.hover,
|
|
553
|
+
itemActiveBg: colors.accent.default,
|
|
554
|
+
itemBg: colors.surface.card,
|
|
555
|
+
itemLinkBg: colors.surface.card,
|
|
556
|
+
itemInputBg: colors.surface.card,
|
|
502
557
|
borderRadius: constants.radius.sm,
|
|
503
558
|
},
|
|
504
559
|
Steps: {
|
|
505
|
-
colorPrimary: colors.
|
|
560
|
+
colorPrimary: colors.accent.default,
|
|
506
561
|
colorText: colors.text.secondary,
|
|
507
562
|
colorTextDescription: colors.text.tertiary,
|
|
563
|
+
colorFillContent: colors.neutral[3],
|
|
508
564
|
},
|
|
509
565
|
Tabs: {
|
|
510
|
-
colorPrimary: colors.
|
|
566
|
+
colorPrimary: colors.accent.default,
|
|
511
567
|
itemColor: colors.text.secondary,
|
|
512
|
-
itemHoverColor: colors.
|
|
513
|
-
itemSelectedColor: colors.
|
|
514
|
-
|
|
568
|
+
itemHoverColor: colors.accent.hover,
|
|
569
|
+
itemSelectedColor: colors.accent.default,
|
|
570
|
+
itemActiveColor: colors.accent.default,
|
|
571
|
+
inkBarColor: colors.accent.default,
|
|
572
|
+
colorBgContainer: colors.surface.card,
|
|
515
573
|
cardPadding: `${constants.spacing[2]}px ${constants.spacing[4]}px`,
|
|
516
574
|
horizontalItemPadding: `${constants.spacing[3]}px 0`,
|
|
575
|
+
horizontalItemGutter: constants.spacing[8],
|
|
517
576
|
},
|
|
518
577
|
Anchor: {
|
|
519
|
-
colorPrimary: colors.
|
|
578
|
+
colorPrimary: colors.accent.default,
|
|
520
579
|
linkPaddingBlock: constants.spacing[1],
|
|
521
580
|
linkPaddingInlineStart: constants.spacing[4],
|
|
522
581
|
},
|
|
523
582
|
Dropdown: {
|
|
524
583
|
colorBgElevated: colors.surface.overlay,
|
|
584
|
+
colorText: colors.text.primary,
|
|
525
585
|
controlItemBgHover: colors.surface.interactive,
|
|
526
586
|
controlItemBgActive: colors.surface.selected,
|
|
527
587
|
// Shadow on dropdown
|
|
@@ -535,30 +595,35 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
535
595
|
Layout: {
|
|
536
596
|
colorBgBody: colors.surface.page,
|
|
537
597
|
colorBgHeader: colors.surface.card,
|
|
598
|
+
colorBgTrigger: colors.surface.interactive,
|
|
538
599
|
headerBg: colors.surface.card,
|
|
600
|
+
headerColor: colors.text.primary,
|
|
539
601
|
siderBg: colors.absolute.black,
|
|
602
|
+
triggerBg: colors.surface.interactive,
|
|
603
|
+
triggerColor: colors.text.primary,
|
|
540
604
|
headerPadding: `0 ${constants.spacing[6]}px`,
|
|
541
605
|
footerPadding: `${constants.spacing[6]}px ${constants.spacing[12]}px`,
|
|
542
606
|
},
|
|
543
607
|
Divider: {
|
|
544
608
|
colorSplit: colors.border.subtle,
|
|
545
609
|
colorText: colors.text.tertiary,
|
|
610
|
+
colorTextHeading: colors.text.secondary,
|
|
546
611
|
verticalMarginInline: constants.spacing[2],
|
|
547
612
|
},
|
|
548
613
|
// ========================================
|
|
549
|
-
//
|
|
614
|
+
// OVERLAYS
|
|
550
615
|
// ========================================
|
|
551
616
|
Typography: {
|
|
552
617
|
colorText: colors.text.primary,
|
|
553
618
|
colorTextSecondary: colors.text.secondary,
|
|
554
|
-
colorLink: colors.
|
|
555
|
-
colorLinkHover: colors.
|
|
556
|
-
colorLinkActive: colors.
|
|
619
|
+
colorLink: colors.accent.default,
|
|
620
|
+
colorLinkHover: colors.accent.hover,
|
|
621
|
+
colorLinkActive: colors.accent.active,
|
|
557
622
|
titleMarginBottom: constants.spacing[2],
|
|
558
623
|
titleMarginTop: constants.spacing[4],
|
|
559
624
|
},
|
|
560
625
|
Tooltip: {
|
|
561
|
-
colorBgSpotlight: colors.neutral[
|
|
626
|
+
colorBgSpotlight: colors.neutral[8],
|
|
562
627
|
colorTextLightSolid: colors.text.inverse,
|
|
563
628
|
// Subtle shadow
|
|
564
629
|
boxShadowSecondary: constants.shadow.tooltip,
|
|
@@ -566,31 +631,43 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
566
631
|
},
|
|
567
632
|
Popover: {
|
|
568
633
|
colorBgElevated: colors.surface.overlay,
|
|
634
|
+
colorText: colors.text.primary,
|
|
635
|
+
colorTextHeading: colors.text.primary,
|
|
569
636
|
// Shadow on popover
|
|
570
637
|
boxShadowSecondary: constants.shadow.popover,
|
|
571
638
|
borderRadiusLG: constants.radius.card,
|
|
572
639
|
padding: constants.spacing[3],
|
|
573
640
|
},
|
|
641
|
+
// ========================================
|
|
642
|
+
// OTHER COMPONENTS
|
|
643
|
+
// ========================================
|
|
574
644
|
Upload: {
|
|
575
645
|
colorFillAlter: colors.surface.interactive,
|
|
576
|
-
|
|
646
|
+
colorBorder: colors.border.default,
|
|
647
|
+
actionsColor: colors.accent.default,
|
|
577
648
|
},
|
|
578
649
|
Tour: {
|
|
579
650
|
colorBgElevated: colors.surface.overlay,
|
|
580
|
-
colorPrimary: colors.
|
|
651
|
+
colorPrimary: colors.accent.default,
|
|
652
|
+
colorText: colors.text.primary,
|
|
581
653
|
boxShadowSecondary: constants.shadow.popover,
|
|
582
654
|
borderRadius: constants.radius.card,
|
|
583
655
|
},
|
|
584
656
|
FloatButton: {
|
|
585
657
|
colorBgElevated: colors.surface.overlay,
|
|
586
|
-
colorPrimary: colors.
|
|
658
|
+
colorPrimary: colors.accent.default,
|
|
659
|
+
colorText: colors.text.primary,
|
|
587
660
|
boxShadow: constants.shadow.popover,
|
|
588
661
|
borderRadiusLG: constants.radius.avatar,
|
|
589
662
|
},
|
|
590
663
|
Segmented: {
|
|
591
664
|
colorBgLayout: colors.neutral[2],
|
|
665
|
+
itemColor: colors.text.secondary,
|
|
666
|
+
itemHoverColor: colors.text.primary,
|
|
592
667
|
itemHoverBg: colors.surface.interactive,
|
|
593
668
|
itemSelectedBg: colors.surface.card,
|
|
669
|
+
itemSelectedColor: colors.text.primary,
|
|
670
|
+
itemActiveBg: colors.surface.card,
|
|
594
671
|
borderRadius: constants.radius.base,
|
|
595
672
|
borderRadiusSM: constants.radius.sm,
|
|
596
673
|
},
|
|
@@ -604,24 +681,34 @@ export const buildAntDTheme = (colors, constants) => {
|
|
|
604
681
|
colorBgElevated: colors.surface.overlay,
|
|
605
682
|
controlItemBgHover: colors.surface.interactive,
|
|
606
683
|
optionSelectedBg: colors.surface.selected,
|
|
684
|
+
colorPrimary: colors.accent.default,
|
|
607
685
|
},
|
|
608
686
|
TreeSelect: {
|
|
609
687
|
colorBgElevated: colors.surface.overlay,
|
|
610
688
|
nodeHoverBg: colors.surface.interactive,
|
|
611
689
|
nodeSelectedBg: colors.surface.selected,
|
|
612
690
|
},
|
|
691
|
+
Transfer: {
|
|
692
|
+
colorBgContainer: colors.surface.card,
|
|
693
|
+
controlItemBgHover: colors.surface.interactive,
|
|
694
|
+
controlItemBgActive: colors.surface.selected,
|
|
695
|
+
},
|
|
613
696
|
Rate: {
|
|
614
697
|
colorFillContent: colors.neutral[3],
|
|
615
698
|
starColor: '#FADB14',
|
|
699
|
+
starBg: colors.neutral[3],
|
|
616
700
|
},
|
|
617
701
|
Empty: {
|
|
618
702
|
colorText: colors.text.secondary,
|
|
619
703
|
colorTextDescription: colors.text.tertiary,
|
|
704
|
+
colorTextDisabled: colors.text.disabled,
|
|
620
705
|
},
|
|
621
706
|
List: {
|
|
622
707
|
colorBorder: colors.border.subtle,
|
|
623
|
-
|
|
624
|
-
|
|
708
|
+
colorText: colors.text.primary,
|
|
709
|
+
colorTextDescription: colors.text.secondary,
|
|
710
|
+
itemPadding: `${constants.spacing[3]}px 0`,
|
|
711
|
+
itemPaddingSM: `${constants.spacing[2]}px ${constants.spacing[3]}px`,
|
|
625
712
|
itemPaddingLG: `${constants.spacing[4]}px ${constants.spacing[6]}px`,
|
|
626
713
|
metaMarginBottom: constants.spacing[2],
|
|
627
714
|
avatarMarginRight: constants.spacing[4],
|