@trinityui/design-system 1.0.2 → 1.0.4
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 +37 -1
- package/MIGRATION.md +8 -8
- package/README.md +8 -8
- package/dist/Legend.js +1455 -0
- package/dist/accessibility.d.ts +119 -0
- package/dist/accessibility.d.ts.map +1 -0
- package/dist/assets/index.d.ts +234 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/components/AI/AIActions.d.ts +104 -0
- package/dist/components/AI/AIActions.d.ts.map +1 -0
- package/dist/components/AI/AIAvatar.d.ts +32 -0
- package/dist/components/AI/AIAvatar.d.ts.map +1 -0
- package/dist/components/AI/AIChat.d.ts +142 -0
- package/dist/components/AI/AIChat.d.ts.map +1 -0
- package/dist/components/AI/AIContainer.d.ts +97 -0
- package/dist/components/AI/AIContainer.d.ts.map +1 -0
- package/dist/components/AI/AIExplainability.d.ts +46 -0
- package/dist/components/AI/AIExplainability.d.ts.map +1 -0
- package/dist/components/AI/AILabel.d.ts +43 -0
- package/dist/components/AI/AILabel.d.ts.map +1 -0
- package/dist/components/AI/AIMessage.d.ts +93 -0
- package/dist/components/AI/AIMessage.d.ts.map +1 -0
- package/dist/components/AI/AIRelatedQuestions.d.ts +53 -0
- package/dist/components/AI/AIRelatedQuestions.d.ts.map +1 -0
- package/dist/components/AI/AIResponseRenderer.d.ts +50 -0
- package/dist/components/AI/AIResponseRenderer.d.ts.map +1 -0
- package/dist/components/AI/AISources.d.ts +66 -0
- package/dist/components/AI/AISources.d.ts.map +1 -0
- package/dist/components/AI/AISourcesPanel.d.ts +84 -0
- package/dist/components/AI/AISourcesPanel.d.ts.map +1 -0
- package/dist/components/AI/AITextBlock.d.ts +56 -0
- package/dist/components/AI/AITextBlock.d.ts.map +1 -0
- package/dist/components/AI/AIVisuals.d.ts +104 -0
- package/dist/components/AI/AIVisuals.d.ts.map +1 -0
- package/dist/components/AI/AIVoiceInput.d.ts +66 -0
- package/dist/components/AI/AIVoiceInput.d.ts.map +1 -0
- package/dist/components/AI/ChatHeader.d.ts +52 -0
- package/dist/components/AI/ChatHeader.d.ts.map +1 -0
- package/dist/components/AI/ChatHistoryList.d.ts +80 -0
- package/dist/components/AI/ChatHistoryList.d.ts.map +1 -0
- package/dist/components/AI/ChatThread.d.ts +74 -0
- package/dist/components/AI/ChatThread.d.ts.map +1 -0
- package/dist/components/AI/InsightEngine.d.ts +147 -0
- package/dist/components/AI/InsightEngine.d.ts.map +1 -0
- package/dist/components/AI/InsightEngineInput.d.ts +94 -0
- package/dist/components/AI/InsightEngineInput.d.ts.map +1 -0
- package/dist/components/AI/QueryInput.d.ts +114 -0
- package/dist/components/AI/QueryInput.d.ts.map +1 -0
- package/dist/components/AI/UserAvatar.d.ts +24 -0
- package/dist/components/AI/UserAvatar.d.ts.map +1 -0
- package/dist/components/AI/UserMessage.d.ts +26 -0
- package/dist/components/AI/UserMessage.d.ts.map +1 -0
- package/dist/components/AI/index.d.ts +39 -0
- package/dist/components/AI/index.d.ts.map +1 -0
- package/dist/components/AI/tokens.d.ts +132 -0
- package/dist/components/AI/tokens.d.ts.map +1 -0
- package/dist/components/AI/types/index.d.ts +6 -0
- package/dist/components/AI/types/index.d.ts.map +1 -0
- package/dist/components/AI/types/response.d.ts +312 -0
- package/dist/components/AI/types/response.d.ts.map +1 -0
- package/dist/components/AppLayout/AIFab.d.ts +50 -0
- package/dist/components/AppLayout/AIFab.d.ts.map +1 -0
- package/dist/components/AppLayout/AIFabLayout.deprecated.d.ts +32 -0
- package/dist/components/AppLayout/AIFabLayout.deprecated.d.ts.map +1 -0
- package/dist/components/AppLayout/AppLayout.d.ts +154 -0
- package/dist/components/AppLayout/AppLayout.d.ts.map +1 -0
- package/dist/components/AppLayout/InsightEnginePanel.d.ts +141 -0
- package/dist/components/AppLayout/InsightEnginePanel.d.ts.map +1 -0
- package/dist/components/AppLayout/ResizablePanel.d.ts +52 -0
- package/dist/components/AppLayout/ResizablePanel.d.ts.map +1 -0
- package/dist/components/AppLayout/ThreadHistorySidebar.d.ts +53 -0
- package/dist/components/AppLayout/ThreadHistorySidebar.d.ts.map +1 -0
- package/dist/components/AppLayout/index.d.ts +27 -0
- package/dist/components/AppLayout/index.d.ts.map +1 -0
- package/dist/components/Charts/AreaChart.d.ts +38 -0
- package/dist/components/Charts/AreaChart.d.ts.map +1 -0
- package/dist/components/Charts/BarChart.d.ts +47 -0
- package/dist/components/Charts/BarChart.d.ts.map +1 -0
- package/dist/components/Charts/ChartWrapper.d.ts +48 -0
- package/dist/components/Charts/ChartWrapper.d.ts.map +1 -0
- package/dist/components/Charts/ComposedChart.d.ts +34 -0
- package/dist/components/Charts/ComposedChart.d.ts.map +1 -0
- package/dist/components/Charts/CustomLegend.d.ts +69 -0
- package/dist/components/Charts/CustomLegend.d.ts.map +1 -0
- package/dist/components/Charts/CustomTooltip.d.ts +55 -0
- package/dist/components/Charts/CustomTooltip.d.ts.map +1 -0
- package/dist/components/Charts/LineChart.d.ts +36 -0
- package/dist/components/Charts/LineChart.d.ts.map +1 -0
- package/dist/components/Charts/PieChart.d.ts +52 -0
- package/dist/components/Charts/PieChart.d.ts.map +1 -0
- package/dist/components/Charts/RadialChart.d.ts +51 -0
- package/dist/components/Charts/RadialChart.d.ts.map +1 -0
- package/dist/components/Charts/ScatterChart.d.ts +55 -0
- package/dist/components/Charts/ScatterChart.d.ts.map +1 -0
- package/dist/components/Charts/Sparkline.d.ts +44 -0
- package/dist/components/Charts/Sparkline.d.ts.map +1 -0
- package/dist/components/Charts/index.d.ts +48 -0
- package/dist/components/Charts/index.d.ts.map +1 -0
- package/dist/components/Charts/tokens.d.ts +200 -0
- package/dist/components/Charts/tokens.d.ts.map +1 -0
- package/dist/components/Charts/types.d.ts +595 -0
- package/dist/components/Charts/types.d.ts.map +1 -0
- package/dist/components/Combobox/Combobox.d.ts +99 -0
- package/dist/components/Combobox/Combobox.d.ts.map +1 -0
- package/dist/components/Combobox/index.d.ts +3 -0
- package/dist/components/Combobox/index.d.ts.map +1 -0
- package/dist/components/CommandPalette/CommandPalette.d.ts +76 -0
- package/dist/components/CommandPalette/CommandPalette.d.ts.map +1 -0
- package/dist/components/CommandPalette/index.d.ts +2 -0
- package/dist/components/CommandPalette/index.d.ts.map +1 -0
- package/dist/components/DataCard/DataCard.d.ts +60 -0
- package/dist/components/DataCard/DataCard.d.ts.map +1 -0
- package/dist/components/DataCard/index.d.ts +2 -0
- package/dist/components/DataCard/index.d.ts.map +1 -0
- package/dist/components/DataTable/CellRenderers.d.ts +78 -0
- package/dist/components/DataTable/CellRenderers.d.ts.map +1 -0
- package/dist/components/DataTable/DataTable.d.ts +36 -0
- package/dist/components/DataTable/DataTable.d.ts.map +1 -0
- package/dist/components/DataTable/InlineAddRow.d.ts +27 -0
- package/dist/components/DataTable/InlineAddRow.d.ts.map +1 -0
- package/dist/components/DataTable/index.d.ts +6 -0
- package/dist/components/DataTable/index.d.ts.map +1 -0
- package/dist/components/DataTable/tokens.d.ts +132 -0
- package/dist/components/DataTable/tokens.d.ts.map +1 -0
- package/dist/components/DataTable/types.d.ts +334 -0
- package/dist/components/DataTable/types.d.ts.map +1 -0
- package/dist/components/DiffViewer/DiffViewer.d.ts +63 -0
- package/dist/components/DiffViewer/DiffViewer.d.ts.map +1 -0
- package/dist/components/DiffViewer/index.d.ts +3 -0
- package/dist/components/DiffViewer/index.d.ts.map +1 -0
- package/dist/components/DockLayout/DockLayout.d.ts +78 -0
- package/dist/components/DockLayout/DockLayout.d.ts.map +1 -0
- package/dist/components/DockLayout/index.d.ts +3 -0
- package/dist/components/DockLayout/index.d.ts.map +1 -0
- package/dist/components/FileUpload/FileUpload.d.ts +93 -0
- package/dist/components/FileUpload/FileUpload.d.ts.map +1 -0
- package/dist/components/FileUpload/index.d.ts +2 -0
- package/dist/components/FileUpload/index.d.ts.map +1 -0
- package/dist/components/FilterBar/FilterBar.d.ts +76 -0
- package/dist/components/FilterBar/FilterBar.d.ts.map +1 -0
- package/dist/components/FilterBar/index.d.ts +2 -0
- package/dist/components/FilterBar/index.d.ts.map +1 -0
- package/dist/components/Footer.d.ts +30 -0
- package/dist/components/Footer.d.ts.map +1 -0
- package/dist/components/Icon.d.ts +67 -0
- package/dist/components/Icon.d.ts.map +1 -0
- package/dist/components/IllustratedMessage.d.ts +99 -0
- package/dist/components/IllustratedMessage.d.ts.map +1 -0
- package/dist/components/LandingPage/FeatureCard.d.ts +89 -0
- package/dist/components/LandingPage/FeatureCard.d.ts.map +1 -0
- package/dist/components/LandingPage/LandingPage.d.ts +126 -0
- package/dist/components/LandingPage/LandingPage.d.ts.map +1 -0
- package/dist/components/LandingPage/index.d.ts +11 -0
- package/dist/components/LandingPage/index.d.ts.map +1 -0
- package/dist/components/Modal/Modal.d.ts +181 -0
- package/dist/components/Modal/Modal.d.ts.map +1 -0
- package/dist/components/Modal/index.d.ts +2 -0
- package/dist/components/Modal/index.d.ts.map +1 -0
- package/dist/components/PageHeader/PageHeader.d.ts +91 -0
- package/dist/components/PageHeader/PageHeader.d.ts.map +1 -0
- package/dist/components/PageHeader/index.d.ts +2 -0
- package/dist/components/PageHeader/index.d.ts.map +1 -0
- package/dist/components/RichTextEditor/RichTextEditor.d.ts +52 -0
- package/dist/components/RichTextEditor/RichTextEditor.d.ts.map +1 -0
- package/dist/components/RichTextEditor/index.d.ts +3 -0
- package/dist/components/RichTextEditor/index.d.ts.map +1 -0
- package/dist/components/SearchInput/SearchInput.d.ts +66 -0
- package/dist/components/SearchInput/SearchInput.d.ts.map +1 -0
- package/dist/components/SearchInput/index.d.ts +2 -0
- package/dist/components/SearchInput/index.d.ts.map +1 -0
- package/dist/components/SimpleTable/SimpleTable.d.ts +93 -0
- package/dist/components/SimpleTable/SimpleTable.d.ts.map +1 -0
- package/dist/components/SimpleTable/index.d.ts +3 -0
- package/dist/components/SimpleTable/index.d.ts.map +1 -0
- package/dist/components/SplitPane/SplitPane.d.ts +52 -0
- package/dist/components/SplitPane/SplitPane.d.ts.map +1 -0
- package/dist/components/SplitPane/index.d.ts +3 -0
- package/dist/components/SplitPane/index.d.ts.map +1 -0
- package/dist/components/StatusIndicator/Badge.d.ts +71 -0
- package/dist/components/StatusIndicator/Badge.d.ts.map +1 -0
- package/dist/components/StatusIndicator/Chip.d.ts +64 -0
- package/dist/components/StatusIndicator/Chip.d.ts.map +1 -0
- package/dist/components/StatusIndicator/Indicators.d.ts +81 -0
- package/dist/components/StatusIndicator/Indicators.d.ts.map +1 -0
- package/dist/components/StatusIndicator/Legend.d.ts +42 -0
- package/dist/components/StatusIndicator/Legend.d.ts.map +1 -0
- package/dist/components/StatusIndicator/Shapes.d.ts +32 -0
- package/dist/components/StatusIndicator/Shapes.d.ts.map +1 -0
- package/dist/components/StatusIndicator/StatusIndicator.d.ts +183 -0
- package/dist/components/StatusIndicator/StatusIndicator.d.ts.map +1 -0
- package/dist/components/StatusIndicator/index.d.ts +55 -0
- package/dist/components/StatusIndicator/index.d.ts.map +1 -0
- package/dist/components/StatusIndicator/types.d.ts +37 -0
- package/dist/components/StatusIndicator/types.d.ts.map +1 -0
- package/dist/components/Timeline/Timeline.d.ts +89 -0
- package/dist/components/Timeline/Timeline.d.ts.map +1 -0
- package/dist/components/Timeline/index.d.ts +2 -0
- package/dist/components/Timeline/index.d.ts.map +1 -0
- package/dist/components/Toast/Toast.d.ts +124 -0
- package/dist/components/Toast/Toast.d.ts.map +1 -0
- package/dist/components/Toast/index.d.ts +2 -0
- package/dist/components/Toast/index.d.ts.map +1 -0
- package/dist/components/TopNavHeader.d.ts +55 -0
- package/dist/components/TopNavHeader.d.ts.map +1 -0
- package/dist/components/TopNavWithSidebar.d.ts +64 -0
- package/dist/components/TopNavWithSidebar.d.ts.map +1 -0
- package/dist/components/TransferList/TransferList.d.ts +62 -0
- package/dist/components/TransferList/TransferList.d.ts.map +1 -0
- package/dist/components/TransferList/index.d.ts +3 -0
- package/dist/components/TransferList/index.d.ts.map +1 -0
- package/dist/components/TreeView/TreeView.d.ts +89 -0
- package/dist/components/TreeView/TreeView.d.ts.map +1 -0
- package/dist/components/TreeView/index.d.ts +3 -0
- package/dist/components/TreeView/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +119 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/internal/index.d.ts +27 -0
- package/dist/components/internal/index.d.ts.map +1 -0
- package/dist/components/navigation/components.d.ts +85 -0
- package/dist/components/navigation/components.d.ts.map +1 -0
- package/dist/components/navigation/hooks.d.ts +65 -0
- package/dist/components/navigation/hooks.d.ts.map +1 -0
- package/dist/components/navigation/index.d.ts +28 -0
- package/dist/components/navigation/index.d.ts.map +1 -0
- package/dist/components/navigation/styled.d.ts +13 -0
- package/dist/components/navigation/styled.d.ts.map +1 -0
- package/dist/components/navigation/types.d.ts +58 -0
- package/dist/components/navigation/types.d.ts.map +1 -0
- package/dist/components/shared/TrinityLogoSvg.d.ts +29 -0
- package/dist/components/shared/TrinityLogoSvg.d.ts.map +1 -0
- package/dist/components/shared.d.ts +92 -0
- package/dist/components/shared.d.ts.map +1 -0
- package/dist/components/templates/Dashboard/DashboardTemplate.d.ts +66 -0
- package/dist/components/templates/Dashboard/DashboardTemplate.d.ts.map +1 -0
- package/dist/components/templates/Dashboard/index.d.ts +2 -0
- package/dist/components/templates/Dashboard/index.d.ts.map +1 -0
- package/dist/components/templates/ListDetail/ListDetailTemplate.d.ts +88 -0
- package/dist/components/templates/ListDetail/ListDetailTemplate.d.ts.map +1 -0
- package/dist/components/templates/ListDetail/index.d.ts +2 -0
- package/dist/components/templates/ListDetail/index.d.ts.map +1 -0
- package/dist/components/templates/Settings/SettingsTemplate.d.ts +78 -0
- package/dist/components/templates/Settings/SettingsTemplate.d.ts.map +1 -0
- package/dist/components/templates/Settings/index.d.ts +2 -0
- package/dist/components/templates/Settings/index.d.ts.map +1 -0
- package/dist/components/templates/index.d.ts +5 -0
- package/dist/components/templates/index.d.ts.map +1 -0
- package/dist/essentials.d.ts +49 -0
- package/dist/essentials.d.ts.map +1 -0
- package/dist/essentials.js +256 -0
- package/dist/form.d.ts +212 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/hierarchy.d.ts +371 -0
- package/dist/hierarchy.d.ts.map +1 -0
- package/dist/hooks/useTrinityPalette.d.ts +54 -0
- package/dist/hooks/useTrinityPalette.d.ts.map +1 -0
- package/dist/hooks.d.ts +217 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/index.d.ts +111 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2293 -3731
- package/dist/presets/analytics.d.ts +197 -0
- package/dist/presets/analytics.d.ts.map +1 -0
- package/dist/presets/crm.d.ts +67 -0
- package/dist/presets/crm.d.ts.map +1 -0
- package/dist/presets/index.d.ts +21 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/portal.d.ts +67 -0
- package/dist/presets/portal.d.ts.map +1 -0
- package/dist/theme.d.ts +221 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/tokens.d.ts +4760 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/trinity.css +1 -1
- package/package.json +2 -2
package/dist/tokens.d.ts
ADDED
|
@@ -0,0 +1,4760 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trinity Design System Token Types
|
|
3
|
+
* These interfaces describe the structure of the design tokens for type safety and DX.
|
|
4
|
+
*/
|
|
5
|
+
export interface TrinityColorShades {
|
|
6
|
+
[key: string]: string;
|
|
7
|
+
}
|
|
8
|
+
export interface TrinityBaseColors {
|
|
9
|
+
navy: TrinityColorShades;
|
|
10
|
+
purple: TrinityColorShades;
|
|
11
|
+
indigo: TrinityColorShades;
|
|
12
|
+
coral: TrinityColorShades;
|
|
13
|
+
azure: TrinityColorShades;
|
|
14
|
+
gray: TrinityColorShades;
|
|
15
|
+
}
|
|
16
|
+
export interface TrinitySpacing {
|
|
17
|
+
0: number;
|
|
18
|
+
0.5: number;
|
|
19
|
+
1: number;
|
|
20
|
+
1.5: number;
|
|
21
|
+
2: number;
|
|
22
|
+
2.5: number;
|
|
23
|
+
3: number;
|
|
24
|
+
4: number;
|
|
25
|
+
5: number;
|
|
26
|
+
6: number;
|
|
27
|
+
7: number;
|
|
28
|
+
8: number;
|
|
29
|
+
9: number;
|
|
30
|
+
10: number;
|
|
31
|
+
12: number;
|
|
32
|
+
14: number;
|
|
33
|
+
16: number;
|
|
34
|
+
20: number;
|
|
35
|
+
24: number;
|
|
36
|
+
32: number;
|
|
37
|
+
}
|
|
38
|
+
export interface TrinityFontSize {
|
|
39
|
+
xs: string;
|
|
40
|
+
sm: string;
|
|
41
|
+
base: string;
|
|
42
|
+
lg: string;
|
|
43
|
+
xl: string;
|
|
44
|
+
'2xl': string;
|
|
45
|
+
'3xl': string;
|
|
46
|
+
'4xl': string;
|
|
47
|
+
'5xl': string;
|
|
48
|
+
'6xl': string;
|
|
49
|
+
}
|
|
50
|
+
export interface TrinityFontWeight {
|
|
51
|
+
light: number;
|
|
52
|
+
regular: number;
|
|
53
|
+
medium: number;
|
|
54
|
+
semibold: number;
|
|
55
|
+
bold: number;
|
|
56
|
+
extrabold: number;
|
|
57
|
+
}
|
|
58
|
+
export interface TrinityLineHeight {
|
|
59
|
+
none: number;
|
|
60
|
+
tight: number;
|
|
61
|
+
snug: number;
|
|
62
|
+
normal: number;
|
|
63
|
+
relaxed: number;
|
|
64
|
+
loose: number;
|
|
65
|
+
}
|
|
66
|
+
export interface TrinityLetterSpacing {
|
|
67
|
+
tighter: string;
|
|
68
|
+
tight: string;
|
|
69
|
+
normal: string;
|
|
70
|
+
wide: string;
|
|
71
|
+
wider: string;
|
|
72
|
+
widest: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Border Radius Token System
|
|
76
|
+
*
|
|
77
|
+
* Based on size-based grouping with nesting formula:
|
|
78
|
+
* Outer radius = Inner radius + Padding
|
|
79
|
+
*
|
|
80
|
+
* Size groups (by shortest side):
|
|
81
|
+
* - xs: 16-24px elements (small chips, badges)
|
|
82
|
+
* - sm: 24-32px elements (buttons, inputs, small cards)
|
|
83
|
+
* - md: 32-48px elements (cards, list items)
|
|
84
|
+
* - lg: 48-64px elements (larger cards, dialogs)
|
|
85
|
+
* - xl: 64px+ elements (modals, large containers)
|
|
86
|
+
*/
|
|
87
|
+
export interface TrinityBorderRadius {
|
|
88
|
+
/** No radius - 0px */
|
|
89
|
+
none: number;
|
|
90
|
+
/** Extra small - 4px - For 16-24px elements (badges, small chips, icons) */
|
|
91
|
+
xs: number;
|
|
92
|
+
/** Small - 6px - For 24-32px elements (buttons, tags, inputs) */
|
|
93
|
+
sm: number;
|
|
94
|
+
/** Medium - 8px - For 32-48px elements (cards, list items, small containers) */
|
|
95
|
+
md: number;
|
|
96
|
+
/** Large - 12px - For 48-64px elements (larger cards, dialogs, panels) */
|
|
97
|
+
lg: number;
|
|
98
|
+
/** Extra large - 16px - For 64px+ elements (modals, popovers, large containers) */
|
|
99
|
+
xl: number;
|
|
100
|
+
/** 2X large - 20px - For very large containers with nested lg elements */
|
|
101
|
+
'2xl': number;
|
|
102
|
+
/** 3X large - 24px - For maximum container nesting scenarios */
|
|
103
|
+
'3xl': number;
|
|
104
|
+
/** Full/Max - 9999px - For pill shapes (buttons, badges, avatars) */
|
|
105
|
+
full: number;
|
|
106
|
+
}
|
|
107
|
+
export interface TrinityBorderWidth {
|
|
108
|
+
0: number;
|
|
109
|
+
1: number;
|
|
110
|
+
2: number;
|
|
111
|
+
4: number;
|
|
112
|
+
8: number;
|
|
113
|
+
}
|
|
114
|
+
export interface TrinityShadows {
|
|
115
|
+
none: string;
|
|
116
|
+
sm: string;
|
|
117
|
+
base: string;
|
|
118
|
+
md: string;
|
|
119
|
+
lg: string;
|
|
120
|
+
xl: string;
|
|
121
|
+
'2xl': string;
|
|
122
|
+
inner: string;
|
|
123
|
+
}
|
|
124
|
+
export interface TrinityZIndex {
|
|
125
|
+
auto: string | number;
|
|
126
|
+
0: number;
|
|
127
|
+
10: number;
|
|
128
|
+
20: number;
|
|
129
|
+
30: number;
|
|
130
|
+
40: number;
|
|
131
|
+
50: number;
|
|
132
|
+
dropdown: number;
|
|
133
|
+
sticky: number;
|
|
134
|
+
fixed: number;
|
|
135
|
+
modalBackdrop: number;
|
|
136
|
+
modal: number;
|
|
137
|
+
popover: number;
|
|
138
|
+
tooltip: number;
|
|
139
|
+
}
|
|
140
|
+
export interface TrinityDuration {
|
|
141
|
+
fastest: string;
|
|
142
|
+
faster: string;
|
|
143
|
+
fast: string;
|
|
144
|
+
normal: string;
|
|
145
|
+
slow: string;
|
|
146
|
+
slower: string;
|
|
147
|
+
slowest: string;
|
|
148
|
+
}
|
|
149
|
+
export interface TrinityEasing {
|
|
150
|
+
linear: string;
|
|
151
|
+
in: string;
|
|
152
|
+
out: string;
|
|
153
|
+
inOut: string;
|
|
154
|
+
smooth: string;
|
|
155
|
+
bounce: string;
|
|
156
|
+
elastic: string;
|
|
157
|
+
}
|
|
158
|
+
export interface TrinityOpacity {
|
|
159
|
+
0: number;
|
|
160
|
+
5: number;
|
|
161
|
+
10: number;
|
|
162
|
+
20: number;
|
|
163
|
+
25: number;
|
|
164
|
+
30: number;
|
|
165
|
+
40: number;
|
|
166
|
+
50: number;
|
|
167
|
+
60: number;
|
|
168
|
+
70: number;
|
|
169
|
+
75: number;
|
|
170
|
+
80: number;
|
|
171
|
+
90: number;
|
|
172
|
+
95: number;
|
|
173
|
+
100: number;
|
|
174
|
+
}
|
|
175
|
+
export interface TrinityBreakpoints {
|
|
176
|
+
xs: number;
|
|
177
|
+
sm: number;
|
|
178
|
+
md: number;
|
|
179
|
+
lg: number;
|
|
180
|
+
xl: number;
|
|
181
|
+
}
|
|
182
|
+
export interface TrinityBaseTokens {
|
|
183
|
+
colors: TrinityBaseColors;
|
|
184
|
+
spacing: TrinitySpacing;
|
|
185
|
+
fontSize: TrinityFontSize;
|
|
186
|
+
fontWeight: TrinityFontWeight;
|
|
187
|
+
lineHeight: TrinityLineHeight;
|
|
188
|
+
letterSpacing: TrinityLetterSpacing;
|
|
189
|
+
borderRadius: TrinityBorderRadius;
|
|
190
|
+
borderWidth: TrinityBorderWidth;
|
|
191
|
+
shadows: TrinityShadows;
|
|
192
|
+
zIndex: TrinityZIndex;
|
|
193
|
+
duration: TrinityDuration;
|
|
194
|
+
easing: TrinityEasing;
|
|
195
|
+
opacity: TrinityOpacity;
|
|
196
|
+
breakpoints: TrinityBreakpoints;
|
|
197
|
+
}
|
|
198
|
+
export interface TrinityBrandColors {
|
|
199
|
+
primary: string;
|
|
200
|
+
secondary: string;
|
|
201
|
+
tertiary: string;
|
|
202
|
+
accent: string;
|
|
203
|
+
}
|
|
204
|
+
export interface TrinityTextColors {
|
|
205
|
+
primary: string;
|
|
206
|
+
secondary: string;
|
|
207
|
+
tertiary: string;
|
|
208
|
+
disabled: string;
|
|
209
|
+
inverse: string;
|
|
210
|
+
brand: string;
|
|
211
|
+
link: string;
|
|
212
|
+
linkHover: string;
|
|
213
|
+
error: string;
|
|
214
|
+
success: string;
|
|
215
|
+
warning: string;
|
|
216
|
+
}
|
|
217
|
+
export interface TrinityBackgroundColors {
|
|
218
|
+
primary: string;
|
|
219
|
+
secondary: string;
|
|
220
|
+
tertiary: string;
|
|
221
|
+
inverse: string;
|
|
222
|
+
brand: string;
|
|
223
|
+
brandSubtle: string;
|
|
224
|
+
accent: string;
|
|
225
|
+
accentSubtle: string;
|
|
226
|
+
}
|
|
227
|
+
export interface TrinitySurfaceColors {
|
|
228
|
+
elevated: string;
|
|
229
|
+
sunken: string;
|
|
230
|
+
overlay: string;
|
|
231
|
+
success: string;
|
|
232
|
+
error: string;
|
|
233
|
+
warning: string;
|
|
234
|
+
info: string;
|
|
235
|
+
}
|
|
236
|
+
export interface TrinityBorderColors {
|
|
237
|
+
default: string;
|
|
238
|
+
subtle: string;
|
|
239
|
+
strong: string;
|
|
240
|
+
focus: string;
|
|
241
|
+
error: string;
|
|
242
|
+
success: string;
|
|
243
|
+
}
|
|
244
|
+
export interface TrinityInteractiveColors {
|
|
245
|
+
default: string;
|
|
246
|
+
hover: string;
|
|
247
|
+
active: string;
|
|
248
|
+
disabled: string;
|
|
249
|
+
focus: string;
|
|
250
|
+
}
|
|
251
|
+
export interface TrinityStatusColors {
|
|
252
|
+
text: string;
|
|
253
|
+
background: string;
|
|
254
|
+
border: string;
|
|
255
|
+
}
|
|
256
|
+
export interface TrinityStatusSet {
|
|
257
|
+
error: TrinityStatusColors;
|
|
258
|
+
warning: TrinityStatusColors;
|
|
259
|
+
success: TrinityStatusColors;
|
|
260
|
+
info: TrinityStatusColors;
|
|
261
|
+
}
|
|
262
|
+
export interface TrinitySemanticColors {
|
|
263
|
+
brand: TrinityBrandColors;
|
|
264
|
+
text: TrinityTextColors;
|
|
265
|
+
background: TrinityBackgroundColors;
|
|
266
|
+
border: TrinityBorderColors;
|
|
267
|
+
interactive: TrinityInteractiveColors;
|
|
268
|
+
status: TrinityStatusSet;
|
|
269
|
+
}
|
|
270
|
+
export interface TrinityTypographyStyle {
|
|
271
|
+
fontSize: string;
|
|
272
|
+
fontWeight: number;
|
|
273
|
+
lineHeight: number;
|
|
274
|
+
letterSpacing?: string;
|
|
275
|
+
}
|
|
276
|
+
export interface TrinityTypographyScale {
|
|
277
|
+
large: TrinityTypographyStyle;
|
|
278
|
+
medium: TrinityTypographyStyle;
|
|
279
|
+
small: TrinityTypographyStyle;
|
|
280
|
+
}
|
|
281
|
+
export interface TrinityHeadingScale {
|
|
282
|
+
h1: TrinityTypographyStyle;
|
|
283
|
+
h2: TrinityTypographyStyle;
|
|
284
|
+
h3: TrinityTypographyStyle;
|
|
285
|
+
h4: TrinityTypographyStyle;
|
|
286
|
+
h5: TrinityTypographyStyle;
|
|
287
|
+
h6: TrinityTypographyStyle;
|
|
288
|
+
}
|
|
289
|
+
/** Dense typography for compact UI elements */
|
|
290
|
+
export interface TrinityDenseTypography {
|
|
291
|
+
/** Badge counts, status dots - 10px */
|
|
292
|
+
badge: string;
|
|
293
|
+
/** Metadata, timestamps, dense tables - 12px */
|
|
294
|
+
text: string;
|
|
295
|
+
}
|
|
296
|
+
export interface TrinitySemanticTypography {
|
|
297
|
+
display: TrinityTypographyScale;
|
|
298
|
+
heading: TrinityHeadingScale;
|
|
299
|
+
body: TrinityTypographyScale;
|
|
300
|
+
label: TrinityTypographyScale;
|
|
301
|
+
/** Dense typography for compact UI */
|
|
302
|
+
dense: TrinityDenseTypography;
|
|
303
|
+
}
|
|
304
|
+
export interface TrinityComponentSpacing {
|
|
305
|
+
paddingXs: number;
|
|
306
|
+
paddingSm: number;
|
|
307
|
+
paddingMd: number;
|
|
308
|
+
paddingLg: number;
|
|
309
|
+
paddingXl: number;
|
|
310
|
+
gapXs: number;
|
|
311
|
+
gapSm: number;
|
|
312
|
+
gapMd: number;
|
|
313
|
+
gapLg: number;
|
|
314
|
+
}
|
|
315
|
+
export interface TrinityLayoutSpacing {
|
|
316
|
+
pagePadding: number;
|
|
317
|
+
sectionGap: number;
|
|
318
|
+
containerMaxWidth: number;
|
|
319
|
+
/** AppLayout header height (64px) */
|
|
320
|
+
headerHeight: number;
|
|
321
|
+
/** Sidebar width when expanded (200px) */
|
|
322
|
+
sidebarWidthExpanded: number;
|
|
323
|
+
/** Sidebar width when collapsed (56px) */
|
|
324
|
+
sidebarWidthCollapsed: number;
|
|
325
|
+
/** AI panel default width (420px) */
|
|
326
|
+
aiPanelWidth: number;
|
|
327
|
+
/** Standard gutter/offset spacing (24px) */
|
|
328
|
+
gutter: number;
|
|
329
|
+
/** Content area padding (64px) */
|
|
330
|
+
contentPadding: number;
|
|
331
|
+
}
|
|
332
|
+
export interface TrinitySemanticSpacing {
|
|
333
|
+
component: TrinityComponentSpacing;
|
|
334
|
+
layout: TrinityLayoutSpacing;
|
|
335
|
+
}
|
|
336
|
+
export interface TrinitySemanticRadius {
|
|
337
|
+
button: number;
|
|
338
|
+
input: number;
|
|
339
|
+
card: number;
|
|
340
|
+
modal: number;
|
|
341
|
+
badge: number;
|
|
342
|
+
avatar: number;
|
|
343
|
+
}
|
|
344
|
+
export interface TrinitySemanticBorderWidth {
|
|
345
|
+
default: number;
|
|
346
|
+
focus: number;
|
|
347
|
+
thick: number;
|
|
348
|
+
}
|
|
349
|
+
export interface TrinitySemanticBorders {
|
|
350
|
+
radius: TrinitySemanticRadius;
|
|
351
|
+
width: TrinitySemanticBorderWidth;
|
|
352
|
+
}
|
|
353
|
+
export interface TrinitySemanticShadows {
|
|
354
|
+
card: string;
|
|
355
|
+
dropdown: string;
|
|
356
|
+
modal: string;
|
|
357
|
+
button: string;
|
|
358
|
+
input: string;
|
|
359
|
+
inputFocus: string;
|
|
360
|
+
}
|
|
361
|
+
export interface TrinitySemanticMotionDuration {
|
|
362
|
+
instant: string;
|
|
363
|
+
fast: string;
|
|
364
|
+
normal: string;
|
|
365
|
+
slow: string;
|
|
366
|
+
}
|
|
367
|
+
export interface TrinitySemanticMotionEasing {
|
|
368
|
+
default: string;
|
|
369
|
+
enter: string;
|
|
370
|
+
exit: string;
|
|
371
|
+
}
|
|
372
|
+
export interface TrinitySemanticMotion {
|
|
373
|
+
duration: TrinitySemanticMotionDuration;
|
|
374
|
+
easing: TrinitySemanticMotionEasing;
|
|
375
|
+
}
|
|
376
|
+
/** Overlay effects for interaction states and backdrops */
|
|
377
|
+
export interface TrinityOverlayEffects {
|
|
378
|
+
/** Modal/drawer backdrop dimming */
|
|
379
|
+
scrim: string;
|
|
380
|
+
/** Standard interactive hover */
|
|
381
|
+
hover: string;
|
|
382
|
+
/** Subtle hover for dense UI (charts, tables) */
|
|
383
|
+
hoverSubtle: string;
|
|
384
|
+
/** Pressed/active state */
|
|
385
|
+
pressed: string;
|
|
386
|
+
/** Persistent selection background */
|
|
387
|
+
selected: string;
|
|
388
|
+
/** Disabled/inactive state overlay */
|
|
389
|
+
disabled: string;
|
|
390
|
+
}
|
|
391
|
+
/** Text/icon colors for placement on dark backgrounds */
|
|
392
|
+
export interface TrinityOnDarkEffects {
|
|
393
|
+
/** Maximum contrast white text (0.87 opacity) */
|
|
394
|
+
primary: string;
|
|
395
|
+
/** Reduced emphasis white text (0.7 opacity) */
|
|
396
|
+
secondary: string;
|
|
397
|
+
/** De-emphasized white text (0.5 opacity) */
|
|
398
|
+
tertiary: string;
|
|
399
|
+
/** Decorative/divider elements (0.12 opacity) */
|
|
400
|
+
subtle: string;
|
|
401
|
+
/** Background overlays on dark surfaces (0.1 opacity) */
|
|
402
|
+
tint: string;
|
|
403
|
+
/** Visible dividers on dark backgrounds (0.24 opacity) */
|
|
404
|
+
divider: string;
|
|
405
|
+
/** High-visibility text/icons on dark (0.8 opacity) */
|
|
406
|
+
emphasis: string;
|
|
407
|
+
/** Maximum contrast - avoids pure white (0.95 opacity) */
|
|
408
|
+
contrast: string;
|
|
409
|
+
}
|
|
410
|
+
/** Shadow effects for elevation hierarchy */
|
|
411
|
+
export interface TrinityShadowEffects {
|
|
412
|
+
/** Resting card/surface elevation */
|
|
413
|
+
surface: string;
|
|
414
|
+
/** Hovered/focused elevation increase */
|
|
415
|
+
raised: string;
|
|
416
|
+
/** Dropdown/popover floating */
|
|
417
|
+
floating: string;
|
|
418
|
+
/** Modal-level prominence */
|
|
419
|
+
dialog: string;
|
|
420
|
+
/** Recessed/pressed appearance */
|
|
421
|
+
inset: string;
|
|
422
|
+
}
|
|
423
|
+
/** Focus ring effects for keyboard accessibility */
|
|
424
|
+
export interface TrinityFocusEffects {
|
|
425
|
+
/** Standard keyboard focus ring */
|
|
426
|
+
ring: string;
|
|
427
|
+
/** Focus ring on dark backgrounds */
|
|
428
|
+
ringOnDark: string;
|
|
429
|
+
/** Emphasized focus for primary actions */
|
|
430
|
+
glow: string;
|
|
431
|
+
}
|
|
432
|
+
/** State indicator effects (subtle backgrounds and emphasis borders) */
|
|
433
|
+
export interface TrinityStateEffects {
|
|
434
|
+
/** Error subtle background */
|
|
435
|
+
errorSubtle: string;
|
|
436
|
+
/** Error border/ring emphasis */
|
|
437
|
+
errorEmphasis: string;
|
|
438
|
+
/** Warning subtle background */
|
|
439
|
+
warningSubtle: string;
|
|
440
|
+
/** Warning border emphasis */
|
|
441
|
+
warningEmphasis: string;
|
|
442
|
+
/** Success subtle background */
|
|
443
|
+
successSubtle: string;
|
|
444
|
+
/** Success border emphasis */
|
|
445
|
+
successEmphasis: string;
|
|
446
|
+
/** Info subtle background */
|
|
447
|
+
infoSubtle: string;
|
|
448
|
+
/** Info border emphasis */
|
|
449
|
+
infoEmphasis: string;
|
|
450
|
+
}
|
|
451
|
+
/** Complete semantic effects layer */
|
|
452
|
+
export interface TrinitySemanticEffects {
|
|
453
|
+
overlay: TrinityOverlayEffects;
|
|
454
|
+
onDark: TrinityOnDarkEffects;
|
|
455
|
+
shadow: TrinityShadowEffects;
|
|
456
|
+
focus: TrinityFocusEffects;
|
|
457
|
+
state: TrinityStateEffects;
|
|
458
|
+
}
|
|
459
|
+
/** Intent-based icon sizing scale */
|
|
460
|
+
export interface TrinityIconSize {
|
|
461
|
+
/** Within text flow - 14px */
|
|
462
|
+
inline: number;
|
|
463
|
+
/** Standard controls - 16px */
|
|
464
|
+
control: number;
|
|
465
|
+
/** Navigation clarity - 20px */
|
|
466
|
+
navigation: number;
|
|
467
|
+
/** Visual anchor - 24px */
|
|
468
|
+
prominent: number;
|
|
469
|
+
/** Large impact - 28px */
|
|
470
|
+
hero: number;
|
|
471
|
+
/** Maximum impact - 36px */
|
|
472
|
+
display: number;
|
|
473
|
+
}
|
|
474
|
+
/** Micro-typography for dense UI (charts, badges, metadata) */
|
|
475
|
+
export interface TrinityMicroTypography {
|
|
476
|
+
/** Smallest legible - 10px */
|
|
477
|
+
xs: TrinityTypographyStyle;
|
|
478
|
+
/** Dense but scannable - 11px */
|
|
479
|
+
sm: TrinityTypographyStyle;
|
|
480
|
+
}
|
|
481
|
+
/** Data-optimized typography */
|
|
482
|
+
export interface TrinityDataTypography {
|
|
483
|
+
/** Optimized for numbers - tabular nums */
|
|
484
|
+
numeric: TrinityTypographyStyle;
|
|
485
|
+
/** Monospace for technical content */
|
|
486
|
+
code: TrinityTypographyStyle;
|
|
487
|
+
}
|
|
488
|
+
/** Intent-based inline (horizontal) spacing */
|
|
489
|
+
export interface TrinityInlineSpacing {
|
|
490
|
+
/** Minimum internal space - 4px */
|
|
491
|
+
tight: number;
|
|
492
|
+
/** Dense but readable - 8px */
|
|
493
|
+
compact: number;
|
|
494
|
+
/** Balanced density - 12px (replaces compact + 4) */
|
|
495
|
+
snug: number;
|
|
496
|
+
/** Standard breathing room - 16px */
|
|
497
|
+
comfortable: number;
|
|
498
|
+
/** Generous without excess - 20px (replaces comfortable + 4) */
|
|
499
|
+
relaxed: number;
|
|
500
|
+
/** Maximum breathing room - 24px */
|
|
501
|
+
spacious: number;
|
|
502
|
+
}
|
|
503
|
+
/** Intent-based stack (vertical) spacing */
|
|
504
|
+
export interface TrinityStackSpacing {
|
|
505
|
+
/** Minimum vertical space - 4px */
|
|
506
|
+
tight: number;
|
|
507
|
+
/** Dense but readable - 8px */
|
|
508
|
+
compact: number;
|
|
509
|
+
/** Balanced density - 12px (replaces compact + 4) */
|
|
510
|
+
snug: number;
|
|
511
|
+
/** Standard vertical space - 16px */
|
|
512
|
+
comfortable: number;
|
|
513
|
+
/** Generous without excess - 20px (replaces comfortable + 4) */
|
|
514
|
+
relaxed: number;
|
|
515
|
+
/** Maximum vertical space - 24px */
|
|
516
|
+
spacious: number;
|
|
517
|
+
/** @deprecated Use tight instead */
|
|
518
|
+
related: number;
|
|
519
|
+
/** @deprecated Use compact instead */
|
|
520
|
+
grouped: number;
|
|
521
|
+
/** @deprecated Use comfortable instead */
|
|
522
|
+
separated: number;
|
|
523
|
+
/** @deprecated Use spacious instead - note: was 32px, now 24px */
|
|
524
|
+
distinct: number;
|
|
525
|
+
}
|
|
526
|
+
/** Density context for data-heavy UIs */
|
|
527
|
+
export interface TrinityDensityContext {
|
|
528
|
+
rowHeight: number;
|
|
529
|
+
cellPadding: number;
|
|
530
|
+
gap: number;
|
|
531
|
+
}
|
|
532
|
+
/** Density scale for adaptive layouts */
|
|
533
|
+
export interface TrinityDensity {
|
|
534
|
+
/** Maximum info density */
|
|
535
|
+
compact: TrinityDensityContext;
|
|
536
|
+
/** Balanced readability */
|
|
537
|
+
standard: TrinityDensityContext;
|
|
538
|
+
/** Prioritize readability */
|
|
539
|
+
comfortable: TrinityDensityContext;
|
|
540
|
+
}
|
|
541
|
+
/** Extended semantic radius with intent-based tokens */
|
|
542
|
+
export interface TrinitySemanticRadiusExtended {
|
|
543
|
+
button: number;
|
|
544
|
+
input: number;
|
|
545
|
+
card: number;
|
|
546
|
+
modal: number;
|
|
547
|
+
badge: number;
|
|
548
|
+
avatar: number;
|
|
549
|
+
/** Sharp edges - 0px */
|
|
550
|
+
none: number;
|
|
551
|
+
/** Minimal softening - 4px */
|
|
552
|
+
subtle: number;
|
|
553
|
+
/** Noticeable curves - 6px */
|
|
554
|
+
soft: number;
|
|
555
|
+
/** Prominent curves - 8px */
|
|
556
|
+
rounded: number;
|
|
557
|
+
/** Maximum curvature - 9999px */
|
|
558
|
+
pill: number;
|
|
559
|
+
/** Perfect circle - 50% */
|
|
560
|
+
circle: string;
|
|
561
|
+
/** Chips/tags - 6px */
|
|
562
|
+
chip: number;
|
|
563
|
+
/** Menu items - 6px */
|
|
564
|
+
menuItem: number;
|
|
565
|
+
/** Dropdown/popover menus - 12px */
|
|
566
|
+
menu: number;
|
|
567
|
+
/** Tooltips - 8px */
|
|
568
|
+
tooltip: number;
|
|
569
|
+
/** Small icon containers - 4px */
|
|
570
|
+
iconContainer: number;
|
|
571
|
+
/** Skeleton loaders - 4px */
|
|
572
|
+
skeleton: number;
|
|
573
|
+
/** Table cells - 0px */
|
|
574
|
+
tableCell: number;
|
|
575
|
+
}
|
|
576
|
+
/** Token domain classification for governance */
|
|
577
|
+
export type TokenDomain = 'ui' | 'status' | 'data-viz' | 'ai-feature' | 'illustration';
|
|
578
|
+
/** Metadata for domain token governance */
|
|
579
|
+
export interface DomainTokenMeta {
|
|
580
|
+
domain: TokenDomain;
|
|
581
|
+
governance: 'strict' | 'moderate' | 'flexible';
|
|
582
|
+
a11yRequired: boolean;
|
|
583
|
+
}
|
|
584
|
+
export interface TrinitySemanticTokens {
|
|
585
|
+
colors: TrinitySemanticColors;
|
|
586
|
+
typography: TrinitySemanticTypography;
|
|
587
|
+
spacing: TrinitySemanticSpacing;
|
|
588
|
+
borders: TrinitySemanticBorders;
|
|
589
|
+
shadows: TrinitySemanticShadows;
|
|
590
|
+
motion: TrinitySemanticMotion;
|
|
591
|
+
/** Phase A: Semantic effects for overlays, shadows, and states */
|
|
592
|
+
effects: TrinitySemanticEffects;
|
|
593
|
+
/** Phase A: Intent-based icon sizing scale */
|
|
594
|
+
iconSize: TrinityIconSize;
|
|
595
|
+
/** Phase A: Inline spacing (horizontal relationships) */
|
|
596
|
+
inline: TrinityInlineSpacing;
|
|
597
|
+
/** Phase A: Stack spacing (vertical relationships) */
|
|
598
|
+
stack: TrinityStackSpacing;
|
|
599
|
+
/** Phase A: Density contexts for data-dense UIs */
|
|
600
|
+
density: TrinityDensity;
|
|
601
|
+
}
|
|
602
|
+
export interface TrinityComponentSize<T> {
|
|
603
|
+
small: T;
|
|
604
|
+
medium: T;
|
|
605
|
+
large: T;
|
|
606
|
+
}
|
|
607
|
+
export interface TrinityPadding {
|
|
608
|
+
x: number;
|
|
609
|
+
y: number;
|
|
610
|
+
}
|
|
611
|
+
export interface TrinityButtonColors {
|
|
612
|
+
background: string;
|
|
613
|
+
backgroundHover: string;
|
|
614
|
+
text: string;
|
|
615
|
+
border?: string;
|
|
616
|
+
textHover?: string;
|
|
617
|
+
}
|
|
618
|
+
export interface TrinityButtonTokens {
|
|
619
|
+
height: TrinityComponentSize<number>;
|
|
620
|
+
padding: TrinityComponentSize<TrinityPadding>;
|
|
621
|
+
fontSize: TrinityComponentSize<string>;
|
|
622
|
+
borderRadius: number;
|
|
623
|
+
primary: TrinityButtonColors;
|
|
624
|
+
secondary: TrinityButtonColors;
|
|
625
|
+
outlined: TrinityButtonColors;
|
|
626
|
+
}
|
|
627
|
+
export interface TrinityInputBorderColors {
|
|
628
|
+
default: string;
|
|
629
|
+
hover: string;
|
|
630
|
+
focus: string;
|
|
631
|
+
error: string;
|
|
632
|
+
}
|
|
633
|
+
export interface TrinityInputBackgroundColors {
|
|
634
|
+
default: string;
|
|
635
|
+
disabled: string;
|
|
636
|
+
}
|
|
637
|
+
export interface TrinityInputTokens {
|
|
638
|
+
height: TrinityComponentSize<number>;
|
|
639
|
+
padding: TrinityComponentSize<TrinityPadding>;
|
|
640
|
+
fontSize: TrinityComponentSize<string>;
|
|
641
|
+
borderRadius: number;
|
|
642
|
+
borderColor: TrinityInputBorderColors;
|
|
643
|
+
background: TrinityInputBackgroundColors;
|
|
644
|
+
}
|
|
645
|
+
export interface TrinityCardTokens {
|
|
646
|
+
padding: TrinityComponentSize<number>;
|
|
647
|
+
borderRadius: number;
|
|
648
|
+
shadow: string;
|
|
649
|
+
background: string;
|
|
650
|
+
border: string;
|
|
651
|
+
}
|
|
652
|
+
export interface TrinityAvatarSize {
|
|
653
|
+
xs: number;
|
|
654
|
+
sm: number;
|
|
655
|
+
md: number;
|
|
656
|
+
lg: number;
|
|
657
|
+
xl: number;
|
|
658
|
+
'2xl': number;
|
|
659
|
+
}
|
|
660
|
+
export interface TrinityAvatarFontSize {
|
|
661
|
+
xs: string;
|
|
662
|
+
sm: string;
|
|
663
|
+
md: string;
|
|
664
|
+
lg: string;
|
|
665
|
+
xl: string;
|
|
666
|
+
'2xl': string;
|
|
667
|
+
}
|
|
668
|
+
export interface TrinityAvatarTokens {
|
|
669
|
+
size: TrinityAvatarSize;
|
|
670
|
+
borderRadius: number;
|
|
671
|
+
fontSize: TrinityAvatarFontSize;
|
|
672
|
+
}
|
|
673
|
+
export interface TrinityBadgeTokens {
|
|
674
|
+
padding: TrinityPadding;
|
|
675
|
+
borderRadius: number;
|
|
676
|
+
fontSize: string;
|
|
677
|
+
fontWeight: number;
|
|
678
|
+
}
|
|
679
|
+
export interface TrinityChipSize {
|
|
680
|
+
small: number;
|
|
681
|
+
medium: number;
|
|
682
|
+
}
|
|
683
|
+
export interface TrinityChipFontSize {
|
|
684
|
+
small: string;
|
|
685
|
+
medium: string;
|
|
686
|
+
}
|
|
687
|
+
export interface TrinityChipTokens {
|
|
688
|
+
height: TrinityChipSize;
|
|
689
|
+
padding: {
|
|
690
|
+
small: TrinityPadding;
|
|
691
|
+
medium: TrinityPadding;
|
|
692
|
+
};
|
|
693
|
+
borderRadius: number;
|
|
694
|
+
fontSize: TrinityChipFontSize;
|
|
695
|
+
}
|
|
696
|
+
export interface TrinityTooltipTokens {
|
|
697
|
+
padding: TrinityPadding;
|
|
698
|
+
borderRadius: number;
|
|
699
|
+
fontSize: string;
|
|
700
|
+
background: string;
|
|
701
|
+
text: string;
|
|
702
|
+
}
|
|
703
|
+
export interface TrinityModalWidth {
|
|
704
|
+
small: number;
|
|
705
|
+
medium: number;
|
|
706
|
+
large: number;
|
|
707
|
+
fullWidth: string;
|
|
708
|
+
}
|
|
709
|
+
export interface TrinityModalTokens {
|
|
710
|
+
padding: number;
|
|
711
|
+
borderRadius: number;
|
|
712
|
+
shadow: string;
|
|
713
|
+
backdropOpacity: number;
|
|
714
|
+
width: TrinityModalWidth;
|
|
715
|
+
}
|
|
716
|
+
export interface TrinitySwitchSize {
|
|
717
|
+
small: number;
|
|
718
|
+
medium: number;
|
|
719
|
+
}
|
|
720
|
+
export interface TrinitySwitchTrack {
|
|
721
|
+
off: string;
|
|
722
|
+
on: string;
|
|
723
|
+
}
|
|
724
|
+
export interface TrinitySwitchTokens {
|
|
725
|
+
width: TrinitySwitchSize;
|
|
726
|
+
height: TrinitySwitchSize;
|
|
727
|
+
thumb: TrinitySwitchSize;
|
|
728
|
+
track: TrinitySwitchTrack;
|
|
729
|
+
}
|
|
730
|
+
export interface TrinityNavigationHeader {
|
|
731
|
+
height: number;
|
|
732
|
+
background: string;
|
|
733
|
+
text: string;
|
|
734
|
+
}
|
|
735
|
+
export interface TrinityNavigationSidebar {
|
|
736
|
+
width: number;
|
|
737
|
+
collapsedWidth: number;
|
|
738
|
+
background: string;
|
|
739
|
+
}
|
|
740
|
+
export interface TrinityNavigationItem {
|
|
741
|
+
height: number;
|
|
742
|
+
padding: TrinityPadding;
|
|
743
|
+
borderRadius: number;
|
|
744
|
+
}
|
|
745
|
+
export interface TrinityNavigationTokens {
|
|
746
|
+
header: TrinityNavigationHeader;
|
|
747
|
+
sidebar: TrinityNavigationSidebar;
|
|
748
|
+
item: TrinityNavigationItem;
|
|
749
|
+
}
|
|
750
|
+
export interface TrinityComponentTokens {
|
|
751
|
+
button: TrinityButtonTokens;
|
|
752
|
+
input: TrinityInputTokens;
|
|
753
|
+
card: TrinityCardTokens;
|
|
754
|
+
avatar: TrinityAvatarTokens;
|
|
755
|
+
badge: TrinityBadgeTokens;
|
|
756
|
+
chip: TrinityChipTokens;
|
|
757
|
+
tooltip: TrinityTooltipTokens;
|
|
758
|
+
modal: TrinityModalTokens;
|
|
759
|
+
switch: TrinitySwitchTokens;
|
|
760
|
+
navigation: TrinityNavigationTokens;
|
|
761
|
+
}
|
|
762
|
+
export interface TrinityDarkModeTextColors {
|
|
763
|
+
primary: string;
|
|
764
|
+
secondary: string;
|
|
765
|
+
tertiary: string;
|
|
766
|
+
disabled: string;
|
|
767
|
+
}
|
|
768
|
+
export interface TrinityDarkModeBackgroundColors {
|
|
769
|
+
primary: string;
|
|
770
|
+
secondary: string;
|
|
771
|
+
tertiary: string;
|
|
772
|
+
}
|
|
773
|
+
export interface TrinityDarkModeBorderColors {
|
|
774
|
+
default: string;
|
|
775
|
+
subtle: string;
|
|
776
|
+
strong: string;
|
|
777
|
+
}
|
|
778
|
+
export interface TrinityDarkModeColors {
|
|
779
|
+
text: TrinityDarkModeTextColors;
|
|
780
|
+
background: TrinityDarkModeBackgroundColors;
|
|
781
|
+
border: TrinityDarkModeBorderColors;
|
|
782
|
+
interactive?: {
|
|
783
|
+
default: string;
|
|
784
|
+
hover: string;
|
|
785
|
+
active: string;
|
|
786
|
+
disabled: string;
|
|
787
|
+
focus: string;
|
|
788
|
+
};
|
|
789
|
+
status?: {
|
|
790
|
+
error: TrinityStatusColors;
|
|
791
|
+
warning: TrinityStatusColors;
|
|
792
|
+
success: TrinityStatusColors;
|
|
793
|
+
info: TrinityStatusColors;
|
|
794
|
+
};
|
|
795
|
+
}
|
|
796
|
+
export interface TrinityDarkModeTokens {
|
|
797
|
+
colors: TrinityDarkModeColors;
|
|
798
|
+
}
|
|
799
|
+
export interface TrinityTokens {
|
|
800
|
+
base: TrinityBaseTokens;
|
|
801
|
+
semantic: TrinitySemanticTokens;
|
|
802
|
+
component: TrinityComponentTokens;
|
|
803
|
+
darkMode: TrinityDarkModeTokens;
|
|
804
|
+
}
|
|
805
|
+
export declare const baseTokens: {
|
|
806
|
+
colors: {
|
|
807
|
+
navy: {
|
|
808
|
+
50: string;
|
|
809
|
+
100: string;
|
|
810
|
+
200: string;
|
|
811
|
+
300: string;
|
|
812
|
+
400: string;
|
|
813
|
+
500: string;
|
|
814
|
+
600: string;
|
|
815
|
+
700: string;
|
|
816
|
+
800: string;
|
|
817
|
+
900: string;
|
|
818
|
+
};
|
|
819
|
+
purple: {
|
|
820
|
+
50: string;
|
|
821
|
+
100: string;
|
|
822
|
+
200: string;
|
|
823
|
+
300: string;
|
|
824
|
+
400: string;
|
|
825
|
+
500: string;
|
|
826
|
+
600: string;
|
|
827
|
+
700: string;
|
|
828
|
+
800: string;
|
|
829
|
+
900: string;
|
|
830
|
+
};
|
|
831
|
+
indigo: {
|
|
832
|
+
50: string;
|
|
833
|
+
100: string;
|
|
834
|
+
200: string;
|
|
835
|
+
300: string;
|
|
836
|
+
400: string;
|
|
837
|
+
500: string;
|
|
838
|
+
600: string;
|
|
839
|
+
700: string;
|
|
840
|
+
800: string;
|
|
841
|
+
900: string;
|
|
842
|
+
electric: string;
|
|
843
|
+
};
|
|
844
|
+
coral: {
|
|
845
|
+
50: string;
|
|
846
|
+
100: string;
|
|
847
|
+
200: string;
|
|
848
|
+
300: string;
|
|
849
|
+
400: string;
|
|
850
|
+
500: string;
|
|
851
|
+
600: string;
|
|
852
|
+
700: string;
|
|
853
|
+
800: string;
|
|
854
|
+
900: string;
|
|
855
|
+
};
|
|
856
|
+
azure: {
|
|
857
|
+
50: string;
|
|
858
|
+
100: string;
|
|
859
|
+
200: string;
|
|
860
|
+
300: string;
|
|
861
|
+
400: string;
|
|
862
|
+
500: string;
|
|
863
|
+
600: string;
|
|
864
|
+
700: string;
|
|
865
|
+
800: string;
|
|
866
|
+
900: string;
|
|
867
|
+
};
|
|
868
|
+
gray: {
|
|
869
|
+
0: string;
|
|
870
|
+
50: string;
|
|
871
|
+
100: string;
|
|
872
|
+
200: string;
|
|
873
|
+
300: string;
|
|
874
|
+
400: string;
|
|
875
|
+
500: string;
|
|
876
|
+
600: string;
|
|
877
|
+
700: string;
|
|
878
|
+
800: string;
|
|
879
|
+
900: string;
|
|
880
|
+
};
|
|
881
|
+
};
|
|
882
|
+
spacing: {
|
|
883
|
+
0: number;
|
|
884
|
+
0.5: number;
|
|
885
|
+
1: number;
|
|
886
|
+
1.5: number;
|
|
887
|
+
2: number;
|
|
888
|
+
2.5: number;
|
|
889
|
+
3: number;
|
|
890
|
+
4: number;
|
|
891
|
+
5: number;
|
|
892
|
+
6: number;
|
|
893
|
+
7: number;
|
|
894
|
+
8: number;
|
|
895
|
+
9: number;
|
|
896
|
+
10: number;
|
|
897
|
+
12: number;
|
|
898
|
+
14: number;
|
|
899
|
+
16: number;
|
|
900
|
+
20: number;
|
|
901
|
+
24: number;
|
|
902
|
+
32: number;
|
|
903
|
+
};
|
|
904
|
+
fontSize: {
|
|
905
|
+
xs: string;
|
|
906
|
+
sm: string;
|
|
907
|
+
base: string;
|
|
908
|
+
lg: string;
|
|
909
|
+
xl: string;
|
|
910
|
+
'2xl': string;
|
|
911
|
+
'3xl': string;
|
|
912
|
+
'4xl': string;
|
|
913
|
+
'5xl': string;
|
|
914
|
+
'6xl': string;
|
|
915
|
+
};
|
|
916
|
+
fontWeight: {
|
|
917
|
+
light: number;
|
|
918
|
+
regular: number;
|
|
919
|
+
medium: number;
|
|
920
|
+
semibold: number;
|
|
921
|
+
bold: number;
|
|
922
|
+
extrabold: number;
|
|
923
|
+
};
|
|
924
|
+
lineHeight: {
|
|
925
|
+
none: number;
|
|
926
|
+
tight: number;
|
|
927
|
+
snug: number;
|
|
928
|
+
normal: number;
|
|
929
|
+
relaxed: number;
|
|
930
|
+
loose: number;
|
|
931
|
+
};
|
|
932
|
+
letterSpacing: {
|
|
933
|
+
tighter: string;
|
|
934
|
+
tight: string;
|
|
935
|
+
normal: string;
|
|
936
|
+
wide: string;
|
|
937
|
+
wider: string;
|
|
938
|
+
widest: string;
|
|
939
|
+
};
|
|
940
|
+
/**
|
|
941
|
+
* Border Radius Scale
|
|
942
|
+
*
|
|
943
|
+
* Designed for consistent nesting using: Outer = Inner + Padding
|
|
944
|
+
*
|
|
945
|
+
* Common nesting patterns:
|
|
946
|
+
* - Button (sm:6px) inside Card (md:8px) with 8px padding: 6 + 8 = 12 (use lg for container)
|
|
947
|
+
* - Card (md:8px) inside Modal (lg:12px) with 16px padding: 8 + 16 = 24 (use 3xl for modal)
|
|
948
|
+
* - Input (sm:6px) inside Panel (md:8px) with 8px padding: 6 + 8 = 12 (use lg for panel)
|
|
949
|
+
*
|
|
950
|
+
* Usage by element type:
|
|
951
|
+
* - xs (4px): Small badges, icon containers, status dots with corners
|
|
952
|
+
* - sm (6px): Buttons, inputs, chips, tags, small interactive elements
|
|
953
|
+
* - md (8px): Cards, list items, small panels, menu items
|
|
954
|
+
* - lg (12px): Large cards, dialogs, dropdown menus, panels
|
|
955
|
+
* - xl (16px): Modals, popovers, large containers
|
|
956
|
+
* - 2xl (20px): Very large modals with nested content
|
|
957
|
+
* - 3xl (24px): Maximum nesting scenarios
|
|
958
|
+
* - full (9999px): Pills, avatars, fully rounded elements
|
|
959
|
+
*/
|
|
960
|
+
borderRadius: {
|
|
961
|
+
none: number;
|
|
962
|
+
xs: number;
|
|
963
|
+
sm: number;
|
|
964
|
+
md: number;
|
|
965
|
+
lg: number;
|
|
966
|
+
xl: number;
|
|
967
|
+
'2xl': number;
|
|
968
|
+
'3xl': number;
|
|
969
|
+
full: number;
|
|
970
|
+
};
|
|
971
|
+
borderWidth: {
|
|
972
|
+
0: number;
|
|
973
|
+
1: number;
|
|
974
|
+
2: number;
|
|
975
|
+
4: number;
|
|
976
|
+
8: number;
|
|
977
|
+
};
|
|
978
|
+
shadows: {
|
|
979
|
+
none: string;
|
|
980
|
+
sm: string;
|
|
981
|
+
base: string;
|
|
982
|
+
md: string;
|
|
983
|
+
lg: string;
|
|
984
|
+
xl: string;
|
|
985
|
+
'2xl': string;
|
|
986
|
+
inner: string;
|
|
987
|
+
};
|
|
988
|
+
zIndex: {
|
|
989
|
+
auto: string;
|
|
990
|
+
0: number;
|
|
991
|
+
10: number;
|
|
992
|
+
20: number;
|
|
993
|
+
30: number;
|
|
994
|
+
40: number;
|
|
995
|
+
50: number;
|
|
996
|
+
dropdown: number;
|
|
997
|
+
sticky: number;
|
|
998
|
+
fixed: number;
|
|
999
|
+
modalBackdrop: number;
|
|
1000
|
+
modal: number;
|
|
1001
|
+
popover: number;
|
|
1002
|
+
tooltip: number;
|
|
1003
|
+
};
|
|
1004
|
+
duration: {
|
|
1005
|
+
fastest: string;
|
|
1006
|
+
faster: string;
|
|
1007
|
+
fast: string;
|
|
1008
|
+
normal: string;
|
|
1009
|
+
slow: string;
|
|
1010
|
+
slower: string;
|
|
1011
|
+
slowest: string;
|
|
1012
|
+
};
|
|
1013
|
+
easing: {
|
|
1014
|
+
linear: string;
|
|
1015
|
+
in: string;
|
|
1016
|
+
out: string;
|
|
1017
|
+
inOut: string;
|
|
1018
|
+
smooth: string;
|
|
1019
|
+
bounce: string;
|
|
1020
|
+
elastic: string;
|
|
1021
|
+
};
|
|
1022
|
+
opacity: {
|
|
1023
|
+
0: number;
|
|
1024
|
+
5: number;
|
|
1025
|
+
10: number;
|
|
1026
|
+
20: number;
|
|
1027
|
+
25: number;
|
|
1028
|
+
30: number;
|
|
1029
|
+
40: number;
|
|
1030
|
+
50: number;
|
|
1031
|
+
60: number;
|
|
1032
|
+
70: number;
|
|
1033
|
+
75: number;
|
|
1034
|
+
80: number;
|
|
1035
|
+
90: number;
|
|
1036
|
+
95: number;
|
|
1037
|
+
100: number;
|
|
1038
|
+
};
|
|
1039
|
+
breakpoints: {
|
|
1040
|
+
xs: number;
|
|
1041
|
+
sm: number;
|
|
1042
|
+
md: number;
|
|
1043
|
+
lg: number;
|
|
1044
|
+
xl: number;
|
|
1045
|
+
};
|
|
1046
|
+
};
|
|
1047
|
+
export declare const semanticTokens: {
|
|
1048
|
+
colors: {
|
|
1049
|
+
brand: {
|
|
1050
|
+
primary: string;
|
|
1051
|
+
secondary: string;
|
|
1052
|
+
tertiary: string;
|
|
1053
|
+
accent: string;
|
|
1054
|
+
};
|
|
1055
|
+
text: {
|
|
1056
|
+
primary: string;
|
|
1057
|
+
secondary: string;
|
|
1058
|
+
tertiary: string;
|
|
1059
|
+
disabled: string;
|
|
1060
|
+
inverse: string;
|
|
1061
|
+
brand: string;
|
|
1062
|
+
link: string;
|
|
1063
|
+
linkHover: string;
|
|
1064
|
+
error: string;
|
|
1065
|
+
success: string;
|
|
1066
|
+
warning: string;
|
|
1067
|
+
};
|
|
1068
|
+
background: {
|
|
1069
|
+
primary: string;
|
|
1070
|
+
secondary: string;
|
|
1071
|
+
tertiary: string;
|
|
1072
|
+
inverse: string;
|
|
1073
|
+
brand: string;
|
|
1074
|
+
brandSubtle: string;
|
|
1075
|
+
accent: string;
|
|
1076
|
+
accentSubtle: string;
|
|
1077
|
+
};
|
|
1078
|
+
surface: {
|
|
1079
|
+
elevated: string;
|
|
1080
|
+
sunken: string;
|
|
1081
|
+
overlay: string;
|
|
1082
|
+
success: string;
|
|
1083
|
+
error: string;
|
|
1084
|
+
warning: string;
|
|
1085
|
+
info: string;
|
|
1086
|
+
};
|
|
1087
|
+
border: {
|
|
1088
|
+
default: string;
|
|
1089
|
+
subtle: string;
|
|
1090
|
+
strong: string;
|
|
1091
|
+
focus: string;
|
|
1092
|
+
error: string;
|
|
1093
|
+
success: string;
|
|
1094
|
+
};
|
|
1095
|
+
interactive: {
|
|
1096
|
+
default: string;
|
|
1097
|
+
hover: string;
|
|
1098
|
+
active: string;
|
|
1099
|
+
disabled: string;
|
|
1100
|
+
focus: string;
|
|
1101
|
+
};
|
|
1102
|
+
focus: {
|
|
1103
|
+
ring: string;
|
|
1104
|
+
ringOffset: string;
|
|
1105
|
+
};
|
|
1106
|
+
selection: {
|
|
1107
|
+
background: string;
|
|
1108
|
+
text: string;
|
|
1109
|
+
};
|
|
1110
|
+
status: {
|
|
1111
|
+
error: {
|
|
1112
|
+
text: string;
|
|
1113
|
+
background: string;
|
|
1114
|
+
border: string;
|
|
1115
|
+
};
|
|
1116
|
+
warning: {
|
|
1117
|
+
text: string;
|
|
1118
|
+
background: string;
|
|
1119
|
+
border: string;
|
|
1120
|
+
};
|
|
1121
|
+
success: {
|
|
1122
|
+
text: string;
|
|
1123
|
+
background: string;
|
|
1124
|
+
border: string;
|
|
1125
|
+
};
|
|
1126
|
+
info: {
|
|
1127
|
+
text: string;
|
|
1128
|
+
background: string;
|
|
1129
|
+
border: string;
|
|
1130
|
+
};
|
|
1131
|
+
};
|
|
1132
|
+
/**
|
|
1133
|
+
* Status Indicator Colors
|
|
1134
|
+
* Semantic colors for StatusIndicator components (dots, badges, chips)
|
|
1135
|
+
* These are intentionally distinct from status.* which are for alerts/toasts
|
|
1136
|
+
* @intentional-color - Status indicators require specific colors for visual distinction
|
|
1137
|
+
*/
|
|
1138
|
+
indicator: {
|
|
1139
|
+
error: {
|
|
1140
|
+
fg: string;
|
|
1141
|
+
bg: string;
|
|
1142
|
+
};
|
|
1143
|
+
critical: {
|
|
1144
|
+
fg: string;
|
|
1145
|
+
bg: string;
|
|
1146
|
+
};
|
|
1147
|
+
failed: {
|
|
1148
|
+
fg: string;
|
|
1149
|
+
bg: string;
|
|
1150
|
+
};
|
|
1151
|
+
rejected: {
|
|
1152
|
+
fg: string;
|
|
1153
|
+
bg: string;
|
|
1154
|
+
};
|
|
1155
|
+
warning: {
|
|
1156
|
+
fg: string;
|
|
1157
|
+
bg: string;
|
|
1158
|
+
outline: string;
|
|
1159
|
+
};
|
|
1160
|
+
caution: {
|
|
1161
|
+
fg: string;
|
|
1162
|
+
bg: string;
|
|
1163
|
+
outline: string;
|
|
1164
|
+
};
|
|
1165
|
+
pending: {
|
|
1166
|
+
fg: string;
|
|
1167
|
+
bg: string;
|
|
1168
|
+
outline: string;
|
|
1169
|
+
};
|
|
1170
|
+
inProgress: {
|
|
1171
|
+
fg: string;
|
|
1172
|
+
bg: string;
|
|
1173
|
+
};
|
|
1174
|
+
running: {
|
|
1175
|
+
fg: string;
|
|
1176
|
+
bg: string;
|
|
1177
|
+
};
|
|
1178
|
+
success: {
|
|
1179
|
+
fg: string;
|
|
1180
|
+
bg: string;
|
|
1181
|
+
};
|
|
1182
|
+
complete: {
|
|
1183
|
+
fg: string;
|
|
1184
|
+
bg: string;
|
|
1185
|
+
};
|
|
1186
|
+
approved: {
|
|
1187
|
+
fg: string;
|
|
1188
|
+
bg: string;
|
|
1189
|
+
};
|
|
1190
|
+
active: {
|
|
1191
|
+
fg: string;
|
|
1192
|
+
bg: string;
|
|
1193
|
+
};
|
|
1194
|
+
enabled: {
|
|
1195
|
+
fg: string;
|
|
1196
|
+
bg: string;
|
|
1197
|
+
};
|
|
1198
|
+
info: {
|
|
1199
|
+
fg: string;
|
|
1200
|
+
bg: string;
|
|
1201
|
+
};
|
|
1202
|
+
new: {
|
|
1203
|
+
fg: string;
|
|
1204
|
+
bg: string;
|
|
1205
|
+
};
|
|
1206
|
+
updated: {
|
|
1207
|
+
fg: string;
|
|
1208
|
+
bg: string;
|
|
1209
|
+
};
|
|
1210
|
+
neutral: {
|
|
1211
|
+
fg: string;
|
|
1212
|
+
bg: string;
|
|
1213
|
+
};
|
|
1214
|
+
draft: {
|
|
1215
|
+
fg: string;
|
|
1216
|
+
bg: string;
|
|
1217
|
+
};
|
|
1218
|
+
inactive: {
|
|
1219
|
+
fg: string;
|
|
1220
|
+
bg: string;
|
|
1221
|
+
};
|
|
1222
|
+
disabled: {
|
|
1223
|
+
fg: string;
|
|
1224
|
+
bg: string;
|
|
1225
|
+
};
|
|
1226
|
+
cancelled: {
|
|
1227
|
+
fg: string;
|
|
1228
|
+
bg: string;
|
|
1229
|
+
};
|
|
1230
|
+
unknown: {
|
|
1231
|
+
fg: string;
|
|
1232
|
+
bg: string;
|
|
1233
|
+
};
|
|
1234
|
+
beta: {
|
|
1235
|
+
fg: string;
|
|
1236
|
+
bg: string;
|
|
1237
|
+
};
|
|
1238
|
+
experimental: {
|
|
1239
|
+
fg: string;
|
|
1240
|
+
bg: string;
|
|
1241
|
+
};
|
|
1242
|
+
};
|
|
1243
|
+
avatar: {
|
|
1244
|
+
backgrounds: string[];
|
|
1245
|
+
online: string;
|
|
1246
|
+
offline: string;
|
|
1247
|
+
busy: string;
|
|
1248
|
+
away: string;
|
|
1249
|
+
};
|
|
1250
|
+
gradients: {
|
|
1251
|
+
primary: string;
|
|
1252
|
+
secondary: string;
|
|
1253
|
+
accent: string;
|
|
1254
|
+
avatarPrimary: string;
|
|
1255
|
+
avatarWarm: string;
|
|
1256
|
+
avatarCool: string;
|
|
1257
|
+
darkOverlay: string;
|
|
1258
|
+
};
|
|
1259
|
+
};
|
|
1260
|
+
typography: {
|
|
1261
|
+
display: {
|
|
1262
|
+
large: {
|
|
1263
|
+
fontSize: string;
|
|
1264
|
+
fontWeight: number;
|
|
1265
|
+
lineHeight: number;
|
|
1266
|
+
letterSpacing: string;
|
|
1267
|
+
};
|
|
1268
|
+
medium: {
|
|
1269
|
+
fontSize: string;
|
|
1270
|
+
fontWeight: number;
|
|
1271
|
+
lineHeight: number;
|
|
1272
|
+
letterSpacing: string;
|
|
1273
|
+
};
|
|
1274
|
+
small: {
|
|
1275
|
+
fontSize: string;
|
|
1276
|
+
fontWeight: number;
|
|
1277
|
+
lineHeight: number;
|
|
1278
|
+
letterSpacing: string;
|
|
1279
|
+
};
|
|
1280
|
+
};
|
|
1281
|
+
heading: {
|
|
1282
|
+
h1: {
|
|
1283
|
+
fontSize: string;
|
|
1284
|
+
fontWeight: number;
|
|
1285
|
+
lineHeight: number;
|
|
1286
|
+
};
|
|
1287
|
+
h2: {
|
|
1288
|
+
fontSize: string;
|
|
1289
|
+
fontWeight: number;
|
|
1290
|
+
lineHeight: number;
|
|
1291
|
+
};
|
|
1292
|
+
h3: {
|
|
1293
|
+
fontSize: string;
|
|
1294
|
+
fontWeight: number;
|
|
1295
|
+
lineHeight: number;
|
|
1296
|
+
};
|
|
1297
|
+
h4: {
|
|
1298
|
+
fontSize: string;
|
|
1299
|
+
fontWeight: number;
|
|
1300
|
+
lineHeight: number;
|
|
1301
|
+
};
|
|
1302
|
+
h5: {
|
|
1303
|
+
fontSize: string;
|
|
1304
|
+
fontWeight: number;
|
|
1305
|
+
lineHeight: number;
|
|
1306
|
+
};
|
|
1307
|
+
h6: {
|
|
1308
|
+
fontSize: string;
|
|
1309
|
+
fontWeight: number;
|
|
1310
|
+
lineHeight: number;
|
|
1311
|
+
};
|
|
1312
|
+
};
|
|
1313
|
+
body: {
|
|
1314
|
+
large: {
|
|
1315
|
+
fontSize: string;
|
|
1316
|
+
fontWeight: number;
|
|
1317
|
+
lineHeight: number;
|
|
1318
|
+
};
|
|
1319
|
+
medium: {
|
|
1320
|
+
fontSize: string;
|
|
1321
|
+
fontWeight: number;
|
|
1322
|
+
lineHeight: number;
|
|
1323
|
+
};
|
|
1324
|
+
small: {
|
|
1325
|
+
fontSize: string;
|
|
1326
|
+
fontWeight: number;
|
|
1327
|
+
lineHeight: number;
|
|
1328
|
+
};
|
|
1329
|
+
};
|
|
1330
|
+
label: {
|
|
1331
|
+
large: {
|
|
1332
|
+
fontSize: string;
|
|
1333
|
+
fontWeight: number;
|
|
1334
|
+
lineHeight: number;
|
|
1335
|
+
};
|
|
1336
|
+
medium: {
|
|
1337
|
+
fontSize: string;
|
|
1338
|
+
fontWeight: number;
|
|
1339
|
+
lineHeight: number;
|
|
1340
|
+
};
|
|
1341
|
+
small: {
|
|
1342
|
+
fontSize: string;
|
|
1343
|
+
fontWeight: number;
|
|
1344
|
+
lineHeight: number;
|
|
1345
|
+
};
|
|
1346
|
+
};
|
|
1347
|
+
micro: {
|
|
1348
|
+
/** 10px - Absolute minimum for brief status text */
|
|
1349
|
+
xs: {
|
|
1350
|
+
fontSize: string;
|
|
1351
|
+
fontWeight: number;
|
|
1352
|
+
lineHeight: number;
|
|
1353
|
+
letterSpacing: string;
|
|
1354
|
+
};
|
|
1355
|
+
/** 11px - Primary micro size for badges, counters */
|
|
1356
|
+
sm: {
|
|
1357
|
+
fontSize: string;
|
|
1358
|
+
fontWeight: number;
|
|
1359
|
+
lineHeight: number;
|
|
1360
|
+
letterSpacing: string;
|
|
1361
|
+
};
|
|
1362
|
+
};
|
|
1363
|
+
dense: {
|
|
1364
|
+
/** Badge counts, status dots - 10px */
|
|
1365
|
+
badge: string;
|
|
1366
|
+
/** Metadata, timestamps, dense tables - 12px */
|
|
1367
|
+
text: string;
|
|
1368
|
+
};
|
|
1369
|
+
data: {
|
|
1370
|
+
/** Monospace styling for numeric values in tables */
|
|
1371
|
+
numeric: {
|
|
1372
|
+
fontFamily: string;
|
|
1373
|
+
fontWeight: number;
|
|
1374
|
+
fontFeatureSettings: string;
|
|
1375
|
+
};
|
|
1376
|
+
/** Code/technical content styling */
|
|
1377
|
+
code: {
|
|
1378
|
+
fontFamily: string;
|
|
1379
|
+
fontSize: string;
|
|
1380
|
+
fontWeight: number;
|
|
1381
|
+
lineHeight: number;
|
|
1382
|
+
};
|
|
1383
|
+
};
|
|
1384
|
+
};
|
|
1385
|
+
spacing: {
|
|
1386
|
+
component: {
|
|
1387
|
+
paddingXs: number;
|
|
1388
|
+
paddingSm: number;
|
|
1389
|
+
paddingMd: number;
|
|
1390
|
+
paddingLg: number;
|
|
1391
|
+
paddingXl: number;
|
|
1392
|
+
gapXs: number;
|
|
1393
|
+
gapSm: number;
|
|
1394
|
+
gapMd: number;
|
|
1395
|
+
gapLg: number;
|
|
1396
|
+
};
|
|
1397
|
+
layout: {
|
|
1398
|
+
pagePadding: number;
|
|
1399
|
+
sectionGap: number;
|
|
1400
|
+
containerMaxWidth: number;
|
|
1401
|
+
headerHeight: number;
|
|
1402
|
+
sidebarWidthExpanded: number;
|
|
1403
|
+
sidebarWidthCollapsed: number;
|
|
1404
|
+
aiPanelWidth: number;
|
|
1405
|
+
gutter: number;
|
|
1406
|
+
contentPadding: number;
|
|
1407
|
+
};
|
|
1408
|
+
};
|
|
1409
|
+
borders: {
|
|
1410
|
+
/**
|
|
1411
|
+
* Semantic border radius assignments
|
|
1412
|
+
* Based on component size and nesting requirements:
|
|
1413
|
+
* - Outer radius = Inner radius + Padding
|
|
1414
|
+
*/
|
|
1415
|
+
radius: {
|
|
1416
|
+
/** Buttons use full pill shape */
|
|
1417
|
+
button: number;
|
|
1418
|
+
/** Inputs use sm (6px) for 32-40px height elements */
|
|
1419
|
+
input: number;
|
|
1420
|
+
/** Cards use md (8px) for subtle rounding */
|
|
1421
|
+
card: number;
|
|
1422
|
+
/** Modals use lg (12px) - allows nested cards with md */
|
|
1423
|
+
modal: number;
|
|
1424
|
+
/** Large modals use xl (16px) for complex nested content */
|
|
1425
|
+
modalLarge: number;
|
|
1426
|
+
/** Badges use sm (6px) for subtle pill */
|
|
1427
|
+
badge: number;
|
|
1428
|
+
/** Avatars use full for circular shape */
|
|
1429
|
+
avatar: number;
|
|
1430
|
+
/** Chips/tags use sm (6px) */
|
|
1431
|
+
chip: number;
|
|
1432
|
+
/** Menu items use sm (6px) */
|
|
1433
|
+
menuItem: number;
|
|
1434
|
+
/** Dropdown/popover menus use lg (12px) - corrected to match actual usage */
|
|
1435
|
+
menu: number;
|
|
1436
|
+
/** Tooltips use md (8px) */
|
|
1437
|
+
tooltip: number;
|
|
1438
|
+
/** Small icon containers use xs (4px) */
|
|
1439
|
+
iconContainer: number;
|
|
1440
|
+
/** Sharp edges - 0px */
|
|
1441
|
+
none: number;
|
|
1442
|
+
/** Minimal softening - 4px */
|
|
1443
|
+
subtle: number;
|
|
1444
|
+
/** Noticeable curves - 6px */
|
|
1445
|
+
soft: number;
|
|
1446
|
+
/** Prominent curves - 8px */
|
|
1447
|
+
rounded: number;
|
|
1448
|
+
/** Maximum curvature - 9999px */
|
|
1449
|
+
pill: number;
|
|
1450
|
+
/** Perfect circle - 50% */
|
|
1451
|
+
circle: string;
|
|
1452
|
+
/** Skeleton loaders - 4px */
|
|
1453
|
+
skeleton: number;
|
|
1454
|
+
/** Table cells - 0px for data density */
|
|
1455
|
+
tableCell: number;
|
|
1456
|
+
};
|
|
1457
|
+
/**
|
|
1458
|
+
* Pre-formatted px strings for MUI sx prop
|
|
1459
|
+
* Use these when MUI would interpret numbers as spacing multipliers
|
|
1460
|
+
*/
|
|
1461
|
+
radiusPx: {
|
|
1462
|
+
none: string;
|
|
1463
|
+
xs: string;
|
|
1464
|
+
sm: string;
|
|
1465
|
+
md: string;
|
|
1466
|
+
lg: string;
|
|
1467
|
+
xl: string;
|
|
1468
|
+
'2xl': string;
|
|
1469
|
+
'3xl': string;
|
|
1470
|
+
full: string;
|
|
1471
|
+
};
|
|
1472
|
+
width: {
|
|
1473
|
+
default: number;
|
|
1474
|
+
focus: number;
|
|
1475
|
+
thick: number;
|
|
1476
|
+
};
|
|
1477
|
+
};
|
|
1478
|
+
shadows: {
|
|
1479
|
+
card: string;
|
|
1480
|
+
dropdown: string;
|
|
1481
|
+
modal: string;
|
|
1482
|
+
button: string;
|
|
1483
|
+
input: string;
|
|
1484
|
+
inputFocus: string;
|
|
1485
|
+
};
|
|
1486
|
+
motion: {
|
|
1487
|
+
duration: {
|
|
1488
|
+
instant: string;
|
|
1489
|
+
fast: string;
|
|
1490
|
+
normal: string;
|
|
1491
|
+
slow: string;
|
|
1492
|
+
};
|
|
1493
|
+
easing: {
|
|
1494
|
+
default: string;
|
|
1495
|
+
enter: string;
|
|
1496
|
+
exit: string;
|
|
1497
|
+
};
|
|
1498
|
+
};
|
|
1499
|
+
effects: {
|
|
1500
|
+
/**
|
|
1501
|
+
* Overlay effects for interaction states and backdrops
|
|
1502
|
+
*/
|
|
1503
|
+
overlay: {
|
|
1504
|
+
/** Modal/drawer backdrop - 50% black */
|
|
1505
|
+
scrim: string;
|
|
1506
|
+
/** Standard hover - 8% black */
|
|
1507
|
+
hover: string;
|
|
1508
|
+
/** Subtle hover for dense UI - 4% black */
|
|
1509
|
+
hoverSubtle: string;
|
|
1510
|
+
/** Pressed/active - 12% black */
|
|
1511
|
+
pressed: string;
|
|
1512
|
+
/** Selected row/item - 8% black */
|
|
1513
|
+
selected: string;
|
|
1514
|
+
/** Disabled overlay - 38% black */
|
|
1515
|
+
disabled: string;
|
|
1516
|
+
};
|
|
1517
|
+
/**
|
|
1518
|
+
* White text/icon opacity for dark backgrounds
|
|
1519
|
+
* Based on Material Design text emphasis levels
|
|
1520
|
+
*/
|
|
1521
|
+
onDark: {
|
|
1522
|
+
/** High emphasis - 87% white */
|
|
1523
|
+
primary: string;
|
|
1524
|
+
/** Medium emphasis - 70% white */
|
|
1525
|
+
secondary: string;
|
|
1526
|
+
/** Low emphasis - 50% white */
|
|
1527
|
+
tertiary: string;
|
|
1528
|
+
/** Borders/dividers - 12% white */
|
|
1529
|
+
subtle: string;
|
|
1530
|
+
/** Background overlays on dark surfaces - 10% white */
|
|
1531
|
+
tint: string;
|
|
1532
|
+
/** Visible dividers on dark backgrounds - 24% white */
|
|
1533
|
+
divider: string;
|
|
1534
|
+
/** High-visibility text/icons on dark - 80% white */
|
|
1535
|
+
emphasis: string;
|
|
1536
|
+
/** Maximum contrast - avoids pure white - 95% white */
|
|
1537
|
+
contrast: string;
|
|
1538
|
+
};
|
|
1539
|
+
/**
|
|
1540
|
+
* Shadow effects for elevation hierarchy
|
|
1541
|
+
* Replaces hardcoded rgba shadows
|
|
1542
|
+
*/
|
|
1543
|
+
shadow: {
|
|
1544
|
+
/** Resting card elevation */
|
|
1545
|
+
surface: string;
|
|
1546
|
+
/** Hovered/focused elevation */
|
|
1547
|
+
raised: string;
|
|
1548
|
+
/** Dropdown/popover/nav menus */
|
|
1549
|
+
floating: string;
|
|
1550
|
+
/** Modal dialogs */
|
|
1551
|
+
dialog: string;
|
|
1552
|
+
/** Pressed/inset appearance */
|
|
1553
|
+
inset: string;
|
|
1554
|
+
};
|
|
1555
|
+
/**
|
|
1556
|
+
* Focus ring effects for accessibility
|
|
1557
|
+
*/
|
|
1558
|
+
focus: {
|
|
1559
|
+
/** Standard focus ring - purple brand */
|
|
1560
|
+
ring: string;
|
|
1561
|
+
/** Focus on dark backgrounds */
|
|
1562
|
+
ringOnDark: string;
|
|
1563
|
+
/** Emphasized focus for primary actions */
|
|
1564
|
+
glow: string;
|
|
1565
|
+
};
|
|
1566
|
+
/**
|
|
1567
|
+
* State indicator effects (subtle fills and emphasis borders)
|
|
1568
|
+
*/
|
|
1569
|
+
state: {
|
|
1570
|
+
/** Error background - 5% red */
|
|
1571
|
+
errorSubtle: string;
|
|
1572
|
+
/** Error border - 30% red */
|
|
1573
|
+
errorEmphasis: string;
|
|
1574
|
+
/** Warning background - 10% yellow */
|
|
1575
|
+
warningSubtle: string;
|
|
1576
|
+
/** Warning border - 40% yellow */
|
|
1577
|
+
warningEmphasis: string;
|
|
1578
|
+
/** Success background - 5% green */
|
|
1579
|
+
successSubtle: string;
|
|
1580
|
+
/** Success border - 30% green */
|
|
1581
|
+
successEmphasis: string;
|
|
1582
|
+
/** Info background - 5% blue */
|
|
1583
|
+
infoSubtle: string;
|
|
1584
|
+
/** Info border - 30% blue */
|
|
1585
|
+
infoEmphasis: string;
|
|
1586
|
+
};
|
|
1587
|
+
};
|
|
1588
|
+
iconSize: {
|
|
1589
|
+
/** Within text flow - 14px */
|
|
1590
|
+
inline: number;
|
|
1591
|
+
/** Standard controls (buttons, inputs) - 16px */
|
|
1592
|
+
control: number;
|
|
1593
|
+
/** Navigation and toolbar - 20px */
|
|
1594
|
+
navigation: number;
|
|
1595
|
+
/** Visual anchor (empty states) - 24px */
|
|
1596
|
+
prominent: number;
|
|
1597
|
+
/** Hero sections - 28px */
|
|
1598
|
+
hero: number;
|
|
1599
|
+
/** Maximum impact - 36px */
|
|
1600
|
+
display: number;
|
|
1601
|
+
};
|
|
1602
|
+
inline: {
|
|
1603
|
+
/** Minimum internal space - 4px */
|
|
1604
|
+
tight: number;
|
|
1605
|
+
/** Dense but readable - 8px */
|
|
1606
|
+
compact: number;
|
|
1607
|
+
/** Balanced density - 12px */
|
|
1608
|
+
snug: number;
|
|
1609
|
+
/** Standard breathing room - 16px */
|
|
1610
|
+
comfortable: number;
|
|
1611
|
+
/** Generous without excess - 20px */
|
|
1612
|
+
relaxed: number;
|
|
1613
|
+
/** Maximum breathing room - 24px */
|
|
1614
|
+
spacious: number;
|
|
1615
|
+
};
|
|
1616
|
+
stack: {
|
|
1617
|
+
/** Minimum vertical space - 4px */
|
|
1618
|
+
tight: number;
|
|
1619
|
+
/** Dense but readable - 8px */
|
|
1620
|
+
compact: number;
|
|
1621
|
+
/** Balanced density - 12px */
|
|
1622
|
+
snug: number;
|
|
1623
|
+
/** Standard vertical space - 16px */
|
|
1624
|
+
comfortable: number;
|
|
1625
|
+
/** Generous without excess - 20px */
|
|
1626
|
+
relaxed: number;
|
|
1627
|
+
/** Maximum vertical space - 24px */
|
|
1628
|
+
spacious: number;
|
|
1629
|
+
/** @deprecated Use tight instead */
|
|
1630
|
+
related: number;
|
|
1631
|
+
/** @deprecated Use compact instead */
|
|
1632
|
+
grouped: number;
|
|
1633
|
+
/** @deprecated Use comfortable instead */
|
|
1634
|
+
separated: number;
|
|
1635
|
+
/** @deprecated Use spacious instead */
|
|
1636
|
+
distinct: number;
|
|
1637
|
+
};
|
|
1638
|
+
density: {
|
|
1639
|
+
/** Maximum info density */
|
|
1640
|
+
compact: {
|
|
1641
|
+
rowHeight: number;
|
|
1642
|
+
cellPadding: number;
|
|
1643
|
+
gap: number;
|
|
1644
|
+
};
|
|
1645
|
+
/** Balanced readability/density */
|
|
1646
|
+
standard: {
|
|
1647
|
+
rowHeight: number;
|
|
1648
|
+
cellPadding: number;
|
|
1649
|
+
gap: number;
|
|
1650
|
+
};
|
|
1651
|
+
/** Prioritize readability */
|
|
1652
|
+
comfortable: {
|
|
1653
|
+
rowHeight: number;
|
|
1654
|
+
cellPadding: number;
|
|
1655
|
+
gap: number;
|
|
1656
|
+
};
|
|
1657
|
+
};
|
|
1658
|
+
};
|
|
1659
|
+
/**
|
|
1660
|
+
* Canonical brand colors derived from baseTokens.
|
|
1661
|
+
*
|
|
1662
|
+
* This provides API compatibility with the legacy `brandColors` export from theme.ts.
|
|
1663
|
+
* Components should migrate from `import { brandColors } from '../theme'`
|
|
1664
|
+
* to `import { brandColors } from '../tokens'`.
|
|
1665
|
+
*
|
|
1666
|
+
* MAPPING TABLE:
|
|
1667
|
+
* ┌─────────────────────────┬───────────┬──────────────────────────────┐
|
|
1668
|
+
* │ brandColors path │ Hex Value │ baseTokens path │
|
|
1669
|
+
* ├─────────────────────────┼───────────┼──────────────────────────────┤
|
|
1670
|
+
* │ primary.main │ #050742 │ colors.navy[900] │
|
|
1671
|
+
* │ primary.light │ #7841C9 │ colors.purple[700] │
|
|
1672
|
+
* │ primary.dark │ #3816A0 │ colors.indigo[900] │
|
|
1673
|
+
* │ secondary.main │ #FF6150 │ colors.coral[800] │
|
|
1674
|
+
* │ secondary.light │ #27AAE1 │ colors.azure[500] │
|
|
1675
|
+
* │ secondary.dark │ #6B12ED │ colors.indigo.electric │
|
|
1676
|
+
* │ neutral.white │ #FFFFFF │ colors.gray[0] │
|
|
1677
|
+
* │ neutral.lightGray │ #FAFAFA │ colors.gray[50] │
|
|
1678
|
+
* │ neutral.gray100 │ #E5E7EB │ colors.gray[200] │
|
|
1679
|
+
* │ neutral.gray400 │ #9CA3AF │ colors.gray[400] │
|
|
1680
|
+
* │ neutral.gray500 │ #6B7280 │ colors.gray[500] │
|
|
1681
|
+
* │ neutral.gray600 │ #374151 │ colors.gray[600] │
|
|
1682
|
+
* │ neutral.darkBg │ #18181B │ colors.gray[800] │
|
|
1683
|
+
* │ neutral.darkPaper │ #27272A │ colors.gray[700] │
|
|
1684
|
+
* └─────────────────────────┴───────────┴──────────────────────────────┘
|
|
1685
|
+
*
|
|
1686
|
+
* NOTE: neutral.gray100 naming is misleading - it's actually gray[200] (#E5E7EB).
|
|
1687
|
+
* This is preserved for backwards compatibility with theme.ts.
|
|
1688
|
+
*/
|
|
1689
|
+
export declare const brandColors: {
|
|
1690
|
+
readonly primary: {
|
|
1691
|
+
readonly main: string;
|
|
1692
|
+
readonly light: string;
|
|
1693
|
+
readonly dark: string;
|
|
1694
|
+
};
|
|
1695
|
+
readonly secondary: {
|
|
1696
|
+
readonly main: string;
|
|
1697
|
+
readonly light: string;
|
|
1698
|
+
readonly dark: string;
|
|
1699
|
+
};
|
|
1700
|
+
readonly neutral: {
|
|
1701
|
+
readonly white: string;
|
|
1702
|
+
readonly lightGray: string;
|
|
1703
|
+
readonly gray50: string;
|
|
1704
|
+
readonly gray100: string;
|
|
1705
|
+
readonly gray200: string;
|
|
1706
|
+
readonly gray300: string;
|
|
1707
|
+
readonly gray400: string;
|
|
1708
|
+
readonly gray500: string;
|
|
1709
|
+
readonly gray600: string;
|
|
1710
|
+
readonly gray700: string;
|
|
1711
|
+
readonly gray800: string;
|
|
1712
|
+
readonly gray900: string;
|
|
1713
|
+
readonly darkBg: string;
|
|
1714
|
+
readonly darkPaper: string;
|
|
1715
|
+
};
|
|
1716
|
+
};
|
|
1717
|
+
/**
|
|
1718
|
+
* Type for brandColors structure
|
|
1719
|
+
*/
|
|
1720
|
+
export type TrinityBrandColorsLegacy = typeof brandColors;
|
|
1721
|
+
export declare const componentTokens: {
|
|
1722
|
+
button: {
|
|
1723
|
+
height: {
|
|
1724
|
+
small: number;
|
|
1725
|
+
medium: number;
|
|
1726
|
+
large: number;
|
|
1727
|
+
};
|
|
1728
|
+
padding: {
|
|
1729
|
+
small: {
|
|
1730
|
+
x: number;
|
|
1731
|
+
y: number;
|
|
1732
|
+
};
|
|
1733
|
+
medium: {
|
|
1734
|
+
x: number;
|
|
1735
|
+
y: number;
|
|
1736
|
+
};
|
|
1737
|
+
large: {
|
|
1738
|
+
x: number;
|
|
1739
|
+
y: number;
|
|
1740
|
+
};
|
|
1741
|
+
};
|
|
1742
|
+
fontSize: {
|
|
1743
|
+
small: string;
|
|
1744
|
+
medium: string;
|
|
1745
|
+
large: string;
|
|
1746
|
+
};
|
|
1747
|
+
borderRadius: number;
|
|
1748
|
+
primary: {
|
|
1749
|
+
background: string;
|
|
1750
|
+
backgroundHover: string;
|
|
1751
|
+
text: string;
|
|
1752
|
+
};
|
|
1753
|
+
secondary: {
|
|
1754
|
+
background: string;
|
|
1755
|
+
backgroundHover: string;
|
|
1756
|
+
text: string;
|
|
1757
|
+
};
|
|
1758
|
+
outlined: {
|
|
1759
|
+
background: string;
|
|
1760
|
+
backgroundHover: string;
|
|
1761
|
+
border: string;
|
|
1762
|
+
text: string;
|
|
1763
|
+
textHover: string;
|
|
1764
|
+
};
|
|
1765
|
+
};
|
|
1766
|
+
input: {
|
|
1767
|
+
height: {
|
|
1768
|
+
small: number;
|
|
1769
|
+
medium: number;
|
|
1770
|
+
large: number;
|
|
1771
|
+
};
|
|
1772
|
+
padding: {
|
|
1773
|
+
small: {
|
|
1774
|
+
x: number;
|
|
1775
|
+
y: number;
|
|
1776
|
+
};
|
|
1777
|
+
medium: {
|
|
1778
|
+
x: number;
|
|
1779
|
+
y: number;
|
|
1780
|
+
};
|
|
1781
|
+
large: {
|
|
1782
|
+
x: number;
|
|
1783
|
+
y: number;
|
|
1784
|
+
};
|
|
1785
|
+
};
|
|
1786
|
+
fontSize: {
|
|
1787
|
+
small: string;
|
|
1788
|
+
medium: string;
|
|
1789
|
+
large: string;
|
|
1790
|
+
};
|
|
1791
|
+
borderRadius: number;
|
|
1792
|
+
borderColor: {
|
|
1793
|
+
default: string;
|
|
1794
|
+
hover: string;
|
|
1795
|
+
focus: string;
|
|
1796
|
+
error: string;
|
|
1797
|
+
};
|
|
1798
|
+
background: {
|
|
1799
|
+
default: string;
|
|
1800
|
+
disabled: string;
|
|
1801
|
+
};
|
|
1802
|
+
};
|
|
1803
|
+
card: {
|
|
1804
|
+
padding: {
|
|
1805
|
+
small: number;
|
|
1806
|
+
medium: number;
|
|
1807
|
+
large: number;
|
|
1808
|
+
};
|
|
1809
|
+
borderRadius: number;
|
|
1810
|
+
shadow: string;
|
|
1811
|
+
background: string;
|
|
1812
|
+
border: string;
|
|
1813
|
+
};
|
|
1814
|
+
avatar: {
|
|
1815
|
+
size: {
|
|
1816
|
+
xs: number;
|
|
1817
|
+
sm: number;
|
|
1818
|
+
md: number;
|
|
1819
|
+
lg: number;
|
|
1820
|
+
xl: number;
|
|
1821
|
+
'2xl': number;
|
|
1822
|
+
};
|
|
1823
|
+
borderRadius: number;
|
|
1824
|
+
fontSize: {
|
|
1825
|
+
xs: string;
|
|
1826
|
+
sm: string;
|
|
1827
|
+
md: string;
|
|
1828
|
+
lg: string;
|
|
1829
|
+
xl: string;
|
|
1830
|
+
'2xl': string;
|
|
1831
|
+
};
|
|
1832
|
+
};
|
|
1833
|
+
badge: {
|
|
1834
|
+
padding: {
|
|
1835
|
+
x: number;
|
|
1836
|
+
y: number;
|
|
1837
|
+
};
|
|
1838
|
+
borderRadius: number;
|
|
1839
|
+
fontSize: string;
|
|
1840
|
+
fontWeight: number;
|
|
1841
|
+
};
|
|
1842
|
+
chip: {
|
|
1843
|
+
height: {
|
|
1844
|
+
small: number;
|
|
1845
|
+
medium: number;
|
|
1846
|
+
};
|
|
1847
|
+
padding: {
|
|
1848
|
+
small: {
|
|
1849
|
+
x: number;
|
|
1850
|
+
y: number;
|
|
1851
|
+
};
|
|
1852
|
+
medium: {
|
|
1853
|
+
x: number;
|
|
1854
|
+
y: number;
|
|
1855
|
+
};
|
|
1856
|
+
};
|
|
1857
|
+
borderRadius: number;
|
|
1858
|
+
fontSize: {
|
|
1859
|
+
small: string;
|
|
1860
|
+
medium: string;
|
|
1861
|
+
};
|
|
1862
|
+
};
|
|
1863
|
+
tooltip: {
|
|
1864
|
+
padding: {
|
|
1865
|
+
x: number;
|
|
1866
|
+
y: number;
|
|
1867
|
+
};
|
|
1868
|
+
borderRadius: number;
|
|
1869
|
+
fontSize: string;
|
|
1870
|
+
background: string;
|
|
1871
|
+
text: string;
|
|
1872
|
+
};
|
|
1873
|
+
modal: {
|
|
1874
|
+
padding: number;
|
|
1875
|
+
borderRadius: number;
|
|
1876
|
+
shadow: string;
|
|
1877
|
+
backdropOpacity: number;
|
|
1878
|
+
width: {
|
|
1879
|
+
small: number;
|
|
1880
|
+
medium: number;
|
|
1881
|
+
large: number;
|
|
1882
|
+
fullWidth: string;
|
|
1883
|
+
};
|
|
1884
|
+
};
|
|
1885
|
+
switch: {
|
|
1886
|
+
width: {
|
|
1887
|
+
small: number;
|
|
1888
|
+
medium: number;
|
|
1889
|
+
};
|
|
1890
|
+
height: {
|
|
1891
|
+
small: number;
|
|
1892
|
+
medium: number;
|
|
1893
|
+
};
|
|
1894
|
+
thumb: {
|
|
1895
|
+
small: number;
|
|
1896
|
+
medium: number;
|
|
1897
|
+
};
|
|
1898
|
+
track: {
|
|
1899
|
+
off: string;
|
|
1900
|
+
on: string;
|
|
1901
|
+
};
|
|
1902
|
+
};
|
|
1903
|
+
navigation: {
|
|
1904
|
+
header: {
|
|
1905
|
+
height: number;
|
|
1906
|
+
background: string;
|
|
1907
|
+
text: string;
|
|
1908
|
+
};
|
|
1909
|
+
sidebar: {
|
|
1910
|
+
width: number;
|
|
1911
|
+
collapsedWidth: number;
|
|
1912
|
+
background: string;
|
|
1913
|
+
};
|
|
1914
|
+
item: {
|
|
1915
|
+
height: number;
|
|
1916
|
+
padding: {
|
|
1917
|
+
x: number;
|
|
1918
|
+
y: number;
|
|
1919
|
+
};
|
|
1920
|
+
borderRadius: number;
|
|
1921
|
+
};
|
|
1922
|
+
};
|
|
1923
|
+
};
|
|
1924
|
+
/**
|
|
1925
|
+
* DESIGN SYSTEM ARCHITECTURE HIERARCHY
|
|
1926
|
+
*
|
|
1927
|
+
* 1. FOUNDATIONS (Base Layer)
|
|
1928
|
+
* └── Color palettes, typography, spacing scales, iconography
|
|
1929
|
+
* └── These are the raw, primitive values
|
|
1930
|
+
*
|
|
1931
|
+
* 2. DESIGN TOKENS (Semantic Layer)
|
|
1932
|
+
* └── Smallest units mapping foundations to semantic roles
|
|
1933
|
+
* └── E.g., color-primary-600, spacing-md, font-heading
|
|
1934
|
+
*
|
|
1935
|
+
* 3. CORE COMPONENTS (Component Layer)
|
|
1936
|
+
* └── Reusable UI building blocks (buttons, inputs, cards)
|
|
1937
|
+
* └── Agnostic of specific product logic
|
|
1938
|
+
*
|
|
1939
|
+
* 4. PATTERNS & RECIPES (Composition Layer)
|
|
1940
|
+
* └── Composed groups solving specific user tasks
|
|
1941
|
+
* └── E.g., Contact Form, Navigation Header, Data Table
|
|
1942
|
+
*
|
|
1943
|
+
* 5. PRODUCT ECOSYSTEM (Application Layer)
|
|
1944
|
+
* └── Final implementations in actual products
|
|
1945
|
+
* └── Product-specific customizations and overrides
|
|
1946
|
+
*/
|
|
1947
|
+
export type HierarchyLevel = 'foundation' | 'token' | 'component' | 'pattern' | 'product';
|
|
1948
|
+
export interface HierarchyMeta {
|
|
1949
|
+
level: HierarchyLevel;
|
|
1950
|
+
layer: number;
|
|
1951
|
+
description: string;
|
|
1952
|
+
}
|
|
1953
|
+
/**
|
|
1954
|
+
* ATTENTION HIERARCHY
|
|
1955
|
+
* Controls signal-to-noise ratio across the interface
|
|
1956
|
+
* Primary > Secondary > Tertiary > Muted > Disabled
|
|
1957
|
+
*/
|
|
1958
|
+
export interface AttentionLevel {
|
|
1959
|
+
/** Prominence score 1-5 (5 being most prominent) */
|
|
1960
|
+
prominence: number;
|
|
1961
|
+
/** Typical use cases */
|
|
1962
|
+
usage: string[];
|
|
1963
|
+
/** Recommended contrast ratio */
|
|
1964
|
+
minContrast: number;
|
|
1965
|
+
}
|
|
1966
|
+
export declare const attentionHierarchy: {
|
|
1967
|
+
/** Most important actions/content - demands immediate attention */
|
|
1968
|
+
readonly primary: {
|
|
1969
|
+
readonly prominence: 5;
|
|
1970
|
+
readonly usage: readonly ["Primary CTAs", "Critical alerts", "Page titles", "Current navigation"];
|
|
1971
|
+
readonly minContrast: 7;
|
|
1972
|
+
};
|
|
1973
|
+
/** Important but not critical - strong visual presence */
|
|
1974
|
+
readonly secondary: {
|
|
1975
|
+
readonly prominence: 4;
|
|
1976
|
+
readonly usage: readonly ["Secondary buttons", "Section headings", "Key information", "Active states"];
|
|
1977
|
+
readonly minContrast: 4.5;
|
|
1978
|
+
};
|
|
1979
|
+
/** Supportive content - visible but not competing */
|
|
1980
|
+
readonly tertiary: {
|
|
1981
|
+
readonly prominence: 3;
|
|
1982
|
+
readonly usage: readonly ["Body text", "Form labels", "Navigation items", "Card content"];
|
|
1983
|
+
readonly minContrast: 4.5;
|
|
1984
|
+
};
|
|
1985
|
+
/** Background/supporting information */
|
|
1986
|
+
readonly muted: {
|
|
1987
|
+
readonly prominence: 2;
|
|
1988
|
+
readonly usage: readonly ["Helper text", "Timestamps", "Metadata", "Placeholders"];
|
|
1989
|
+
readonly minContrast: 3;
|
|
1990
|
+
};
|
|
1991
|
+
/** Non-interactive or unavailable */
|
|
1992
|
+
readonly disabled: {
|
|
1993
|
+
readonly prominence: 1;
|
|
1994
|
+
readonly usage: readonly ["Disabled controls", "Inactive states", "Read-only fields"];
|
|
1995
|
+
readonly minContrast: 2.5;
|
|
1996
|
+
};
|
|
1997
|
+
};
|
|
1998
|
+
/**
|
|
1999
|
+
* TYPOGRAPHIC HIERARCHY
|
|
2000
|
+
* Distinct font treatments to differentiate content types
|
|
2001
|
+
*/
|
|
2002
|
+
export declare const typographicHierarchy: {
|
|
2003
|
+
readonly display: {
|
|
2004
|
+
readonly level: 1;
|
|
2005
|
+
readonly scale: {
|
|
2006
|
+
readonly large: {
|
|
2007
|
+
readonly size: "3rem";
|
|
2008
|
+
readonly weight: 700;
|
|
2009
|
+
readonly lineHeight: 1.1;
|
|
2010
|
+
readonly tracking: "-0.02em";
|
|
2011
|
+
};
|
|
2012
|
+
readonly medium: {
|
|
2013
|
+
readonly size: "2.25rem";
|
|
2014
|
+
readonly weight: 700;
|
|
2015
|
+
readonly lineHeight: 1.15;
|
|
2016
|
+
readonly tracking: "-0.01em";
|
|
2017
|
+
};
|
|
2018
|
+
readonly small: {
|
|
2019
|
+
readonly size: "1.875rem";
|
|
2020
|
+
readonly weight: 600;
|
|
2021
|
+
readonly lineHeight: 1.2;
|
|
2022
|
+
readonly tracking: "0";
|
|
2023
|
+
};
|
|
2024
|
+
};
|
|
2025
|
+
};
|
|
2026
|
+
readonly heading: {
|
|
2027
|
+
readonly level: 2;
|
|
2028
|
+
readonly scale: {
|
|
2029
|
+
readonly h1: {
|
|
2030
|
+
readonly size: "1.875rem";
|
|
2031
|
+
readonly weight: 700;
|
|
2032
|
+
readonly lineHeight: 1.25;
|
|
2033
|
+
};
|
|
2034
|
+
readonly h2: {
|
|
2035
|
+
readonly size: "1.5rem";
|
|
2036
|
+
readonly weight: 600;
|
|
2037
|
+
readonly lineHeight: 1.3;
|
|
2038
|
+
};
|
|
2039
|
+
readonly h3: {
|
|
2040
|
+
readonly size: "1.25rem";
|
|
2041
|
+
readonly weight: 600;
|
|
2042
|
+
readonly lineHeight: 1.35;
|
|
2043
|
+
};
|
|
2044
|
+
readonly h4: {
|
|
2045
|
+
readonly size: "1.125rem";
|
|
2046
|
+
readonly weight: 600;
|
|
2047
|
+
readonly lineHeight: 1.4;
|
|
2048
|
+
};
|
|
2049
|
+
readonly h5: {
|
|
2050
|
+
readonly size: "1rem";
|
|
2051
|
+
readonly weight: 600;
|
|
2052
|
+
readonly lineHeight: 1.45;
|
|
2053
|
+
};
|
|
2054
|
+
readonly h6: {
|
|
2055
|
+
readonly size: "0.875rem";
|
|
2056
|
+
readonly weight: 600;
|
|
2057
|
+
readonly lineHeight: 1.5;
|
|
2058
|
+
};
|
|
2059
|
+
};
|
|
2060
|
+
};
|
|
2061
|
+
readonly body: {
|
|
2062
|
+
readonly level: 3;
|
|
2063
|
+
readonly scale: {
|
|
2064
|
+
readonly large: {
|
|
2065
|
+
readonly size: "1.125rem";
|
|
2066
|
+
readonly weight: 400;
|
|
2067
|
+
readonly lineHeight: 1.6;
|
|
2068
|
+
};
|
|
2069
|
+
readonly medium: {
|
|
2070
|
+
readonly size: "1rem";
|
|
2071
|
+
readonly weight: 400;
|
|
2072
|
+
readonly lineHeight: 1.5;
|
|
2073
|
+
};
|
|
2074
|
+
readonly small: {
|
|
2075
|
+
readonly size: "0.875rem";
|
|
2076
|
+
readonly weight: 400;
|
|
2077
|
+
readonly lineHeight: 1.5;
|
|
2078
|
+
};
|
|
2079
|
+
};
|
|
2080
|
+
};
|
|
2081
|
+
readonly label: {
|
|
2082
|
+
readonly level: 4;
|
|
2083
|
+
readonly scale: {
|
|
2084
|
+
readonly large: {
|
|
2085
|
+
readonly size: "1rem";
|
|
2086
|
+
readonly weight: 500;
|
|
2087
|
+
readonly lineHeight: 1.25;
|
|
2088
|
+
};
|
|
2089
|
+
readonly medium: {
|
|
2090
|
+
readonly size: "0.875rem";
|
|
2091
|
+
readonly weight: 500;
|
|
2092
|
+
readonly lineHeight: 1.25;
|
|
2093
|
+
};
|
|
2094
|
+
readonly small: {
|
|
2095
|
+
readonly size: "0.75rem";
|
|
2096
|
+
readonly weight: 500;
|
|
2097
|
+
readonly lineHeight: 1.25;
|
|
2098
|
+
};
|
|
2099
|
+
};
|
|
2100
|
+
};
|
|
2101
|
+
readonly caption: {
|
|
2102
|
+
readonly level: 5;
|
|
2103
|
+
readonly scale: {
|
|
2104
|
+
readonly default: {
|
|
2105
|
+
readonly size: "0.75rem";
|
|
2106
|
+
readonly weight: 400;
|
|
2107
|
+
readonly lineHeight: 1.4;
|
|
2108
|
+
};
|
|
2109
|
+
readonly emphasis: {
|
|
2110
|
+
readonly size: "0.75rem";
|
|
2111
|
+
readonly weight: 500;
|
|
2112
|
+
readonly lineHeight: 1.4;
|
|
2113
|
+
};
|
|
2114
|
+
};
|
|
2115
|
+
};
|
|
2116
|
+
readonly overline: {
|
|
2117
|
+
readonly level: 6;
|
|
2118
|
+
readonly scale: {
|
|
2119
|
+
readonly default: {
|
|
2120
|
+
readonly size: "0.625rem";
|
|
2121
|
+
readonly weight: 600;
|
|
2122
|
+
readonly lineHeight: 1.5;
|
|
2123
|
+
readonly tracking: "0.1em";
|
|
2124
|
+
readonly transform: "uppercase";
|
|
2125
|
+
};
|
|
2126
|
+
};
|
|
2127
|
+
};
|
|
2128
|
+
};
|
|
2129
|
+
/**
|
|
2130
|
+
* ELEVATION HIERARCHY (Z-Axis)
|
|
2131
|
+
* Creates depth through shadows and layering
|
|
2132
|
+
* Higher elevation = more prominent, closer to user
|
|
2133
|
+
*/
|
|
2134
|
+
export declare const elevationHierarchy: {
|
|
2135
|
+
/** Ground level - page background, sunken areas */
|
|
2136
|
+
readonly ground: {
|
|
2137
|
+
readonly level: 0;
|
|
2138
|
+
readonly zIndex: 0;
|
|
2139
|
+
readonly shadow: "none";
|
|
2140
|
+
readonly description: "Page backgrounds, wells, sunken inputs";
|
|
2141
|
+
};
|
|
2142
|
+
/** Resting - default content surfaces */
|
|
2143
|
+
readonly resting: {
|
|
2144
|
+
readonly level: 1;
|
|
2145
|
+
readonly zIndex: 1;
|
|
2146
|
+
readonly shadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)";
|
|
2147
|
+
readonly description: "Cards, panels at rest";
|
|
2148
|
+
};
|
|
2149
|
+
/** Raised - interactive/hover states */
|
|
2150
|
+
readonly raised: {
|
|
2151
|
+
readonly level: 2;
|
|
2152
|
+
readonly zIndex: 10;
|
|
2153
|
+
readonly shadow: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)";
|
|
2154
|
+
readonly description: "Hovered cards, active buttons";
|
|
2155
|
+
};
|
|
2156
|
+
/** Floating - dropdowns, menus */
|
|
2157
|
+
readonly floating: {
|
|
2158
|
+
readonly level: 3;
|
|
2159
|
+
readonly zIndex: 1000;
|
|
2160
|
+
readonly shadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
|
|
2161
|
+
readonly description: "Dropdown menus, popovers";
|
|
2162
|
+
};
|
|
2163
|
+
/** Sticky - headers, navigation */
|
|
2164
|
+
readonly sticky: {
|
|
2165
|
+
readonly level: 4;
|
|
2166
|
+
readonly zIndex: 1020;
|
|
2167
|
+
readonly shadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
|
|
2168
|
+
readonly description: "Sticky headers, fixed navigation";
|
|
2169
|
+
};
|
|
2170
|
+
/** Overlay - backdrop for modals */
|
|
2171
|
+
readonly overlay: {
|
|
2172
|
+
readonly level: 5;
|
|
2173
|
+
readonly zIndex: 1040;
|
|
2174
|
+
readonly shadow: "none";
|
|
2175
|
+
readonly description: "Modal/dialog backdrops";
|
|
2176
|
+
};
|
|
2177
|
+
/** Dialog - modals, alerts */
|
|
2178
|
+
readonly dialog: {
|
|
2179
|
+
readonly level: 6;
|
|
2180
|
+
readonly zIndex: 1050;
|
|
2181
|
+
readonly shadow: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)";
|
|
2182
|
+
readonly description: "Modal dialogs, alerts";
|
|
2183
|
+
};
|
|
2184
|
+
/** Popover - tooltips, notifications */
|
|
2185
|
+
readonly popover: {
|
|
2186
|
+
readonly level: 7;
|
|
2187
|
+
readonly zIndex: 1060;
|
|
2188
|
+
readonly shadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)";
|
|
2189
|
+
readonly description: "Popovers, floating panels";
|
|
2190
|
+
};
|
|
2191
|
+
/** Tooltip - highest priority overlays */
|
|
2192
|
+
readonly tooltip: {
|
|
2193
|
+
readonly level: 8;
|
|
2194
|
+
readonly zIndex: 1070;
|
|
2195
|
+
readonly shadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
|
|
2196
|
+
readonly description: "Tooltips, critical notifications";
|
|
2197
|
+
};
|
|
2198
|
+
};
|
|
2199
|
+
/**
|
|
2200
|
+
* SCALE HIERARCHY
|
|
2201
|
+
* Size-based importance through consistent ratios
|
|
2202
|
+
*/
|
|
2203
|
+
export declare const scaleHierarchy: {
|
|
2204
|
+
/** Scale ratio for size progression */
|
|
2205
|
+
readonly ratio: 1.25;
|
|
2206
|
+
/** Size scale multipliers */
|
|
2207
|
+
readonly sizes: {
|
|
2208
|
+
readonly '3xs': 0.512;
|
|
2209
|
+
readonly '2xs': 0.64;
|
|
2210
|
+
readonly xs: 0.8;
|
|
2211
|
+
readonly sm: 1;
|
|
2212
|
+
readonly md: 1.25;
|
|
2213
|
+
readonly lg: 1.563;
|
|
2214
|
+
readonly xl: 1.953;
|
|
2215
|
+
readonly '2xl': 2.441;
|
|
2216
|
+
readonly '3xl': 3.052;
|
|
2217
|
+
};
|
|
2218
|
+
/** Icon sizes following the scale */
|
|
2219
|
+
readonly icons: {
|
|
2220
|
+
readonly xs: 12;
|
|
2221
|
+
readonly sm: 16;
|
|
2222
|
+
readonly md: 20;
|
|
2223
|
+
readonly lg: 24;
|
|
2224
|
+
readonly xl: 32;
|
|
2225
|
+
readonly '2xl': 40;
|
|
2226
|
+
};
|
|
2227
|
+
/** Touch target minimums (accessibility) */
|
|
2228
|
+
readonly touchTargets: {
|
|
2229
|
+
readonly minimum: 44;
|
|
2230
|
+
readonly comfortable: 48;
|
|
2231
|
+
readonly spacious: 56;
|
|
2232
|
+
};
|
|
2233
|
+
};
|
|
2234
|
+
/**
|
|
2235
|
+
* CONTRAST HIERARCHY
|
|
2236
|
+
* Color contrast for attention management
|
|
2237
|
+
*/
|
|
2238
|
+
export declare const contrastHierarchy: {
|
|
2239
|
+
/** High contrast - primary actions, critical info */
|
|
2240
|
+
readonly high: {
|
|
2241
|
+
readonly foreground: string;
|
|
2242
|
+
readonly background: string;
|
|
2243
|
+
readonly ratio: 12.5;
|
|
2244
|
+
};
|
|
2245
|
+
/** Medium contrast - body content */
|
|
2246
|
+
readonly medium: {
|
|
2247
|
+
readonly foreground: string;
|
|
2248
|
+
readonly background: string;
|
|
2249
|
+
readonly ratio: 7.5;
|
|
2250
|
+
};
|
|
2251
|
+
/** Low contrast - secondary/muted content */
|
|
2252
|
+
readonly low: {
|
|
2253
|
+
readonly foreground: string;
|
|
2254
|
+
readonly background: string;
|
|
2255
|
+
readonly ratio: 4.5;
|
|
2256
|
+
};
|
|
2257
|
+
/** Subtle - disabled/decorative */
|
|
2258
|
+
readonly subtle: {
|
|
2259
|
+
readonly foreground: string;
|
|
2260
|
+
readonly background: string;
|
|
2261
|
+
readonly ratio: 3;
|
|
2262
|
+
};
|
|
2263
|
+
};
|
|
2264
|
+
/**
|
|
2265
|
+
* INTERACTIVE HIERARCHY
|
|
2266
|
+
* Visual states for user feedback
|
|
2267
|
+
*/
|
|
2268
|
+
export declare const interactiveHierarchy: {
|
|
2269
|
+
/** Default resting state */
|
|
2270
|
+
readonly default: {
|
|
2271
|
+
readonly opacity: 1;
|
|
2272
|
+
readonly transform: "none";
|
|
2273
|
+
readonly transition: "all 150ms ease-out";
|
|
2274
|
+
};
|
|
2275
|
+
/** Mouse hovering over element */
|
|
2276
|
+
readonly hover: {
|
|
2277
|
+
readonly opacity: 1;
|
|
2278
|
+
readonly transform: "translateY(-1px)";
|
|
2279
|
+
readonly transition: "all 150ms ease-out";
|
|
2280
|
+
};
|
|
2281
|
+
/** Element being pressed */
|
|
2282
|
+
readonly active: {
|
|
2283
|
+
readonly opacity: 0.9;
|
|
2284
|
+
readonly transform: "translateY(0) scale(0.98)";
|
|
2285
|
+
readonly transition: "all 50ms ease-out";
|
|
2286
|
+
};
|
|
2287
|
+
/** Keyboard focused */
|
|
2288
|
+
readonly focus: {
|
|
2289
|
+
readonly outline: `2px solid ${string}`;
|
|
2290
|
+
readonly outlineOffset: "2px";
|
|
2291
|
+
readonly transition: "outline-offset 100ms ease-out";
|
|
2292
|
+
};
|
|
2293
|
+
/** Element is disabled */
|
|
2294
|
+
readonly disabled: {
|
|
2295
|
+
readonly opacity: 0.5;
|
|
2296
|
+
readonly cursor: "not-allowed";
|
|
2297
|
+
readonly pointerEvents: "none";
|
|
2298
|
+
};
|
|
2299
|
+
};
|
|
2300
|
+
/**
|
|
2301
|
+
* SPACING HIERARCHY
|
|
2302
|
+
* Consistent spacing scale for layout rhythm
|
|
2303
|
+
*/
|
|
2304
|
+
export declare const spacingHierarchy: {
|
|
2305
|
+
/** Micro spacing - between related elements */
|
|
2306
|
+
readonly micro: {
|
|
2307
|
+
readonly 1: 4;
|
|
2308
|
+
readonly 2: 8;
|
|
2309
|
+
};
|
|
2310
|
+
/** Component spacing - within components */
|
|
2311
|
+
readonly component: {
|
|
2312
|
+
readonly 3: 12;
|
|
2313
|
+
readonly 4: 16;
|
|
2314
|
+
readonly 5: 20;
|
|
2315
|
+
};
|
|
2316
|
+
/** Section spacing - between sections */
|
|
2317
|
+
readonly section: {
|
|
2318
|
+
readonly 6: 24;
|
|
2319
|
+
readonly 8: 32;
|
|
2320
|
+
readonly 10: 40;
|
|
2321
|
+
};
|
|
2322
|
+
/** Layout spacing - page-level */
|
|
2323
|
+
readonly layout: {
|
|
2324
|
+
readonly 12: 48;
|
|
2325
|
+
readonly 16: 64;
|
|
2326
|
+
readonly 24: 96;
|
|
2327
|
+
readonly 32: 128;
|
|
2328
|
+
};
|
|
2329
|
+
};
|
|
2330
|
+
/**
|
|
2331
|
+
* HIERARCHY UTILITIES
|
|
2332
|
+
* Helper functions for applying hierarchy
|
|
2333
|
+
*/
|
|
2334
|
+
/** Get elevation styles for a given level */
|
|
2335
|
+
export declare function getElevation(level: keyof typeof elevationHierarchy): {
|
|
2336
|
+
zIndex: 0 | 10 | 1 | 1000 | 1020 | 1040 | 1050 | 1060 | 1070;
|
|
2337
|
+
boxShadow: "none" | "0 1px 2px 0 rgb(0 0 0 / 0.05)" | "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)" | "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)" | "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)" | "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)";
|
|
2338
|
+
};
|
|
2339
|
+
/** Get typography styles for a given hierarchy */
|
|
2340
|
+
export declare function getTypography(category: keyof typeof typographicHierarchy, variant: string): {} | null;
|
|
2341
|
+
/** Get attention-based color treatment */
|
|
2342
|
+
export declare function getAttentionColor(level: keyof typeof attentionHierarchy, mode?: 'light' | 'dark'): string;
|
|
2343
|
+
/** Calculate spacing from hierarchy */
|
|
2344
|
+
export declare function getHierarchySpacing(category: 'micro' | 'component' | 'section' | 'layout', size: number): number;
|
|
2345
|
+
export declare const darkModeTokens: TrinityDarkModeTokens;
|
|
2346
|
+
export declare const darkModeShadows: {
|
|
2347
|
+
none: string;
|
|
2348
|
+
sm: string;
|
|
2349
|
+
base: string;
|
|
2350
|
+
md: string;
|
|
2351
|
+
lg: string;
|
|
2352
|
+
xl: string;
|
|
2353
|
+
'2xl': string;
|
|
2354
|
+
glow: {
|
|
2355
|
+
primary: string;
|
|
2356
|
+
accent: string;
|
|
2357
|
+
info: string;
|
|
2358
|
+
};
|
|
2359
|
+
};
|
|
2360
|
+
export interface BrandVariant {
|
|
2361
|
+
name: string;
|
|
2362
|
+
primary: {
|
|
2363
|
+
main: string;
|
|
2364
|
+
light: string;
|
|
2365
|
+
dark: string;
|
|
2366
|
+
contrast: string;
|
|
2367
|
+
};
|
|
2368
|
+
secondary: {
|
|
2369
|
+
main: string;
|
|
2370
|
+
light: string;
|
|
2371
|
+
dark: string;
|
|
2372
|
+
contrast: string;
|
|
2373
|
+
};
|
|
2374
|
+
accent: string;
|
|
2375
|
+
}
|
|
2376
|
+
/**
|
|
2377
|
+
* Brand Variants - Pre-configured color schemes
|
|
2378
|
+
* Each variant provides a complete color palette that can be swapped at runtime
|
|
2379
|
+
*/
|
|
2380
|
+
export declare const brandVariants: Record<string, BrandVariant>;
|
|
2381
|
+
/**
|
|
2382
|
+
* Get semantic tokens for a specific brand variant
|
|
2383
|
+
* @param variant - The brand variant name
|
|
2384
|
+
* @returns Modified semantic tokens with the brand colors applied
|
|
2385
|
+
*/
|
|
2386
|
+
export declare function getBrandSemanticTokens(variant: keyof typeof brandVariants): {
|
|
2387
|
+
colors: {
|
|
2388
|
+
brand: {
|
|
2389
|
+
primary: string;
|
|
2390
|
+
secondary: string;
|
|
2391
|
+
tertiary: string;
|
|
2392
|
+
accent: string;
|
|
2393
|
+
};
|
|
2394
|
+
text: {
|
|
2395
|
+
primary: string;
|
|
2396
|
+
secondary: string;
|
|
2397
|
+
tertiary: string;
|
|
2398
|
+
disabled: string;
|
|
2399
|
+
inverse: string;
|
|
2400
|
+
brand: string;
|
|
2401
|
+
link: string;
|
|
2402
|
+
linkHover: string;
|
|
2403
|
+
error: string;
|
|
2404
|
+
success: string;
|
|
2405
|
+
warning: string;
|
|
2406
|
+
};
|
|
2407
|
+
background: {
|
|
2408
|
+
primary: string;
|
|
2409
|
+
secondary: string;
|
|
2410
|
+
tertiary: string;
|
|
2411
|
+
inverse: string;
|
|
2412
|
+
brand: string;
|
|
2413
|
+
brandSubtle: string;
|
|
2414
|
+
accent: string;
|
|
2415
|
+
accentSubtle: string;
|
|
2416
|
+
};
|
|
2417
|
+
surface: {
|
|
2418
|
+
elevated: string;
|
|
2419
|
+
sunken: string;
|
|
2420
|
+
overlay: string;
|
|
2421
|
+
success: string;
|
|
2422
|
+
error: string;
|
|
2423
|
+
warning: string;
|
|
2424
|
+
info: string;
|
|
2425
|
+
};
|
|
2426
|
+
border: {
|
|
2427
|
+
default: string;
|
|
2428
|
+
subtle: string;
|
|
2429
|
+
strong: string;
|
|
2430
|
+
focus: string;
|
|
2431
|
+
error: string;
|
|
2432
|
+
success: string;
|
|
2433
|
+
};
|
|
2434
|
+
interactive: {
|
|
2435
|
+
default: string;
|
|
2436
|
+
hover: string;
|
|
2437
|
+
active: string;
|
|
2438
|
+
disabled: string;
|
|
2439
|
+
focus: string;
|
|
2440
|
+
};
|
|
2441
|
+
focus: {
|
|
2442
|
+
ring: string;
|
|
2443
|
+
ringOffset: string;
|
|
2444
|
+
};
|
|
2445
|
+
selection: {
|
|
2446
|
+
background: string;
|
|
2447
|
+
text: string;
|
|
2448
|
+
};
|
|
2449
|
+
status: {
|
|
2450
|
+
error: {
|
|
2451
|
+
text: string;
|
|
2452
|
+
background: string;
|
|
2453
|
+
border: string;
|
|
2454
|
+
};
|
|
2455
|
+
warning: {
|
|
2456
|
+
text: string;
|
|
2457
|
+
background: string;
|
|
2458
|
+
border: string;
|
|
2459
|
+
};
|
|
2460
|
+
success: {
|
|
2461
|
+
text: string;
|
|
2462
|
+
background: string;
|
|
2463
|
+
border: string;
|
|
2464
|
+
};
|
|
2465
|
+
info: {
|
|
2466
|
+
text: string;
|
|
2467
|
+
background: string;
|
|
2468
|
+
border: string;
|
|
2469
|
+
};
|
|
2470
|
+
};
|
|
2471
|
+
/**
|
|
2472
|
+
* Status Indicator Colors
|
|
2473
|
+
* Semantic colors for StatusIndicator components (dots, badges, chips)
|
|
2474
|
+
* These are intentionally distinct from status.* which are for alerts/toasts
|
|
2475
|
+
* @intentional-color - Status indicators require specific colors for visual distinction
|
|
2476
|
+
*/
|
|
2477
|
+
indicator: {
|
|
2478
|
+
error: {
|
|
2479
|
+
fg: string;
|
|
2480
|
+
bg: string;
|
|
2481
|
+
};
|
|
2482
|
+
critical: {
|
|
2483
|
+
fg: string;
|
|
2484
|
+
bg: string;
|
|
2485
|
+
};
|
|
2486
|
+
failed: {
|
|
2487
|
+
fg: string;
|
|
2488
|
+
bg: string;
|
|
2489
|
+
};
|
|
2490
|
+
rejected: {
|
|
2491
|
+
fg: string;
|
|
2492
|
+
bg: string;
|
|
2493
|
+
};
|
|
2494
|
+
warning: {
|
|
2495
|
+
fg: string;
|
|
2496
|
+
bg: string;
|
|
2497
|
+
outline: string;
|
|
2498
|
+
};
|
|
2499
|
+
caution: {
|
|
2500
|
+
fg: string;
|
|
2501
|
+
bg: string;
|
|
2502
|
+
outline: string;
|
|
2503
|
+
};
|
|
2504
|
+
pending: {
|
|
2505
|
+
fg: string;
|
|
2506
|
+
bg: string;
|
|
2507
|
+
outline: string;
|
|
2508
|
+
};
|
|
2509
|
+
inProgress: {
|
|
2510
|
+
fg: string;
|
|
2511
|
+
bg: string;
|
|
2512
|
+
};
|
|
2513
|
+
running: {
|
|
2514
|
+
fg: string;
|
|
2515
|
+
bg: string;
|
|
2516
|
+
};
|
|
2517
|
+
success: {
|
|
2518
|
+
fg: string;
|
|
2519
|
+
bg: string;
|
|
2520
|
+
};
|
|
2521
|
+
complete: {
|
|
2522
|
+
fg: string;
|
|
2523
|
+
bg: string;
|
|
2524
|
+
};
|
|
2525
|
+
approved: {
|
|
2526
|
+
fg: string;
|
|
2527
|
+
bg: string;
|
|
2528
|
+
};
|
|
2529
|
+
active: {
|
|
2530
|
+
fg: string;
|
|
2531
|
+
bg: string;
|
|
2532
|
+
};
|
|
2533
|
+
enabled: {
|
|
2534
|
+
fg: string;
|
|
2535
|
+
bg: string;
|
|
2536
|
+
};
|
|
2537
|
+
info: {
|
|
2538
|
+
fg: string;
|
|
2539
|
+
bg: string;
|
|
2540
|
+
};
|
|
2541
|
+
new: {
|
|
2542
|
+
fg: string;
|
|
2543
|
+
bg: string;
|
|
2544
|
+
};
|
|
2545
|
+
updated: {
|
|
2546
|
+
fg: string;
|
|
2547
|
+
bg: string;
|
|
2548
|
+
};
|
|
2549
|
+
neutral: {
|
|
2550
|
+
fg: string;
|
|
2551
|
+
bg: string;
|
|
2552
|
+
};
|
|
2553
|
+
draft: {
|
|
2554
|
+
fg: string;
|
|
2555
|
+
bg: string;
|
|
2556
|
+
};
|
|
2557
|
+
inactive: {
|
|
2558
|
+
fg: string;
|
|
2559
|
+
bg: string;
|
|
2560
|
+
};
|
|
2561
|
+
disabled: {
|
|
2562
|
+
fg: string;
|
|
2563
|
+
bg: string;
|
|
2564
|
+
};
|
|
2565
|
+
cancelled: {
|
|
2566
|
+
fg: string;
|
|
2567
|
+
bg: string;
|
|
2568
|
+
};
|
|
2569
|
+
unknown: {
|
|
2570
|
+
fg: string;
|
|
2571
|
+
bg: string;
|
|
2572
|
+
};
|
|
2573
|
+
beta: {
|
|
2574
|
+
fg: string;
|
|
2575
|
+
bg: string;
|
|
2576
|
+
};
|
|
2577
|
+
experimental: {
|
|
2578
|
+
fg: string;
|
|
2579
|
+
bg: string;
|
|
2580
|
+
};
|
|
2581
|
+
};
|
|
2582
|
+
avatar: {
|
|
2583
|
+
backgrounds: string[];
|
|
2584
|
+
online: string;
|
|
2585
|
+
offline: string;
|
|
2586
|
+
busy: string;
|
|
2587
|
+
away: string;
|
|
2588
|
+
};
|
|
2589
|
+
gradients: {
|
|
2590
|
+
primary: string;
|
|
2591
|
+
secondary: string;
|
|
2592
|
+
accent: string;
|
|
2593
|
+
avatarPrimary: string;
|
|
2594
|
+
avatarWarm: string;
|
|
2595
|
+
avatarCool: string;
|
|
2596
|
+
darkOverlay: string;
|
|
2597
|
+
};
|
|
2598
|
+
};
|
|
2599
|
+
typography: {
|
|
2600
|
+
display: {
|
|
2601
|
+
large: {
|
|
2602
|
+
fontSize: string;
|
|
2603
|
+
fontWeight: number;
|
|
2604
|
+
lineHeight: number;
|
|
2605
|
+
letterSpacing: string;
|
|
2606
|
+
};
|
|
2607
|
+
medium: {
|
|
2608
|
+
fontSize: string;
|
|
2609
|
+
fontWeight: number;
|
|
2610
|
+
lineHeight: number;
|
|
2611
|
+
letterSpacing: string;
|
|
2612
|
+
};
|
|
2613
|
+
small: {
|
|
2614
|
+
fontSize: string;
|
|
2615
|
+
fontWeight: number;
|
|
2616
|
+
lineHeight: number;
|
|
2617
|
+
letterSpacing: string;
|
|
2618
|
+
};
|
|
2619
|
+
};
|
|
2620
|
+
heading: {
|
|
2621
|
+
h1: {
|
|
2622
|
+
fontSize: string;
|
|
2623
|
+
fontWeight: number;
|
|
2624
|
+
lineHeight: number;
|
|
2625
|
+
};
|
|
2626
|
+
h2: {
|
|
2627
|
+
fontSize: string;
|
|
2628
|
+
fontWeight: number;
|
|
2629
|
+
lineHeight: number;
|
|
2630
|
+
};
|
|
2631
|
+
h3: {
|
|
2632
|
+
fontSize: string;
|
|
2633
|
+
fontWeight: number;
|
|
2634
|
+
lineHeight: number;
|
|
2635
|
+
};
|
|
2636
|
+
h4: {
|
|
2637
|
+
fontSize: string;
|
|
2638
|
+
fontWeight: number;
|
|
2639
|
+
lineHeight: number;
|
|
2640
|
+
};
|
|
2641
|
+
h5: {
|
|
2642
|
+
fontSize: string;
|
|
2643
|
+
fontWeight: number;
|
|
2644
|
+
lineHeight: number;
|
|
2645
|
+
};
|
|
2646
|
+
h6: {
|
|
2647
|
+
fontSize: string;
|
|
2648
|
+
fontWeight: number;
|
|
2649
|
+
lineHeight: number;
|
|
2650
|
+
};
|
|
2651
|
+
};
|
|
2652
|
+
body: {
|
|
2653
|
+
large: {
|
|
2654
|
+
fontSize: string;
|
|
2655
|
+
fontWeight: number;
|
|
2656
|
+
lineHeight: number;
|
|
2657
|
+
};
|
|
2658
|
+
medium: {
|
|
2659
|
+
fontSize: string;
|
|
2660
|
+
fontWeight: number;
|
|
2661
|
+
lineHeight: number;
|
|
2662
|
+
};
|
|
2663
|
+
small: {
|
|
2664
|
+
fontSize: string;
|
|
2665
|
+
fontWeight: number;
|
|
2666
|
+
lineHeight: number;
|
|
2667
|
+
};
|
|
2668
|
+
};
|
|
2669
|
+
label: {
|
|
2670
|
+
large: {
|
|
2671
|
+
fontSize: string;
|
|
2672
|
+
fontWeight: number;
|
|
2673
|
+
lineHeight: number;
|
|
2674
|
+
};
|
|
2675
|
+
medium: {
|
|
2676
|
+
fontSize: string;
|
|
2677
|
+
fontWeight: number;
|
|
2678
|
+
lineHeight: number;
|
|
2679
|
+
};
|
|
2680
|
+
small: {
|
|
2681
|
+
fontSize: string;
|
|
2682
|
+
fontWeight: number;
|
|
2683
|
+
lineHeight: number;
|
|
2684
|
+
};
|
|
2685
|
+
};
|
|
2686
|
+
micro: {
|
|
2687
|
+
/** 10px - Absolute minimum for brief status text */
|
|
2688
|
+
xs: {
|
|
2689
|
+
fontSize: string;
|
|
2690
|
+
fontWeight: number;
|
|
2691
|
+
lineHeight: number;
|
|
2692
|
+
letterSpacing: string;
|
|
2693
|
+
};
|
|
2694
|
+
/** 11px - Primary micro size for badges, counters */
|
|
2695
|
+
sm: {
|
|
2696
|
+
fontSize: string;
|
|
2697
|
+
fontWeight: number;
|
|
2698
|
+
lineHeight: number;
|
|
2699
|
+
letterSpacing: string;
|
|
2700
|
+
};
|
|
2701
|
+
};
|
|
2702
|
+
dense: {
|
|
2703
|
+
/** Badge counts, status dots - 10px */
|
|
2704
|
+
badge: string;
|
|
2705
|
+
/** Metadata, timestamps, dense tables - 12px */
|
|
2706
|
+
text: string;
|
|
2707
|
+
};
|
|
2708
|
+
data: {
|
|
2709
|
+
/** Monospace styling for numeric values in tables */
|
|
2710
|
+
numeric: {
|
|
2711
|
+
fontFamily: string;
|
|
2712
|
+
fontWeight: number;
|
|
2713
|
+
fontFeatureSettings: string;
|
|
2714
|
+
};
|
|
2715
|
+
/** Code/technical content styling */
|
|
2716
|
+
code: {
|
|
2717
|
+
fontFamily: string;
|
|
2718
|
+
fontSize: string;
|
|
2719
|
+
fontWeight: number;
|
|
2720
|
+
lineHeight: number;
|
|
2721
|
+
};
|
|
2722
|
+
};
|
|
2723
|
+
};
|
|
2724
|
+
spacing: {
|
|
2725
|
+
component: {
|
|
2726
|
+
paddingXs: number;
|
|
2727
|
+
paddingSm: number;
|
|
2728
|
+
paddingMd: number;
|
|
2729
|
+
paddingLg: number;
|
|
2730
|
+
paddingXl: number;
|
|
2731
|
+
gapXs: number;
|
|
2732
|
+
gapSm: number;
|
|
2733
|
+
gapMd: number;
|
|
2734
|
+
gapLg: number;
|
|
2735
|
+
};
|
|
2736
|
+
layout: {
|
|
2737
|
+
pagePadding: number;
|
|
2738
|
+
sectionGap: number;
|
|
2739
|
+
containerMaxWidth: number;
|
|
2740
|
+
headerHeight: number;
|
|
2741
|
+
sidebarWidthExpanded: number;
|
|
2742
|
+
sidebarWidthCollapsed: number;
|
|
2743
|
+
aiPanelWidth: number;
|
|
2744
|
+
gutter: number;
|
|
2745
|
+
contentPadding: number;
|
|
2746
|
+
};
|
|
2747
|
+
};
|
|
2748
|
+
borders: {
|
|
2749
|
+
/**
|
|
2750
|
+
* Semantic border radius assignments
|
|
2751
|
+
* Based on component size and nesting requirements:
|
|
2752
|
+
* - Outer radius = Inner radius + Padding
|
|
2753
|
+
*/
|
|
2754
|
+
radius: {
|
|
2755
|
+
/** Buttons use full pill shape */
|
|
2756
|
+
button: number;
|
|
2757
|
+
/** Inputs use sm (6px) for 32-40px height elements */
|
|
2758
|
+
input: number;
|
|
2759
|
+
/** Cards use md (8px) for subtle rounding */
|
|
2760
|
+
card: number;
|
|
2761
|
+
/** Modals use lg (12px) - allows nested cards with md */
|
|
2762
|
+
modal: number;
|
|
2763
|
+
/** Large modals use xl (16px) for complex nested content */
|
|
2764
|
+
modalLarge: number;
|
|
2765
|
+
/** Badges use sm (6px) for subtle pill */
|
|
2766
|
+
badge: number;
|
|
2767
|
+
/** Avatars use full for circular shape */
|
|
2768
|
+
avatar: number;
|
|
2769
|
+
/** Chips/tags use sm (6px) */
|
|
2770
|
+
chip: number;
|
|
2771
|
+
/** Menu items use sm (6px) */
|
|
2772
|
+
menuItem: number;
|
|
2773
|
+
/** Dropdown/popover menus use lg (12px) - corrected to match actual usage */
|
|
2774
|
+
menu: number;
|
|
2775
|
+
/** Tooltips use md (8px) */
|
|
2776
|
+
tooltip: number;
|
|
2777
|
+
/** Small icon containers use xs (4px) */
|
|
2778
|
+
iconContainer: number;
|
|
2779
|
+
/** Sharp edges - 0px */
|
|
2780
|
+
none: number;
|
|
2781
|
+
/** Minimal softening - 4px */
|
|
2782
|
+
subtle: number;
|
|
2783
|
+
/** Noticeable curves - 6px */
|
|
2784
|
+
soft: number;
|
|
2785
|
+
/** Prominent curves - 8px */
|
|
2786
|
+
rounded: number;
|
|
2787
|
+
/** Maximum curvature - 9999px */
|
|
2788
|
+
pill: number;
|
|
2789
|
+
/** Perfect circle - 50% */
|
|
2790
|
+
circle: string;
|
|
2791
|
+
/** Skeleton loaders - 4px */
|
|
2792
|
+
skeleton: number;
|
|
2793
|
+
/** Table cells - 0px for data density */
|
|
2794
|
+
tableCell: number;
|
|
2795
|
+
};
|
|
2796
|
+
/**
|
|
2797
|
+
* Pre-formatted px strings for MUI sx prop
|
|
2798
|
+
* Use these when MUI would interpret numbers as spacing multipliers
|
|
2799
|
+
*/
|
|
2800
|
+
radiusPx: {
|
|
2801
|
+
none: string;
|
|
2802
|
+
xs: string;
|
|
2803
|
+
sm: string;
|
|
2804
|
+
md: string;
|
|
2805
|
+
lg: string;
|
|
2806
|
+
xl: string;
|
|
2807
|
+
'2xl': string;
|
|
2808
|
+
'3xl': string;
|
|
2809
|
+
full: string;
|
|
2810
|
+
};
|
|
2811
|
+
width: {
|
|
2812
|
+
default: number;
|
|
2813
|
+
focus: number;
|
|
2814
|
+
thick: number;
|
|
2815
|
+
};
|
|
2816
|
+
};
|
|
2817
|
+
shadows: {
|
|
2818
|
+
card: string;
|
|
2819
|
+
dropdown: string;
|
|
2820
|
+
modal: string;
|
|
2821
|
+
button: string;
|
|
2822
|
+
input: string;
|
|
2823
|
+
inputFocus: string;
|
|
2824
|
+
};
|
|
2825
|
+
motion: {
|
|
2826
|
+
duration: {
|
|
2827
|
+
instant: string;
|
|
2828
|
+
fast: string;
|
|
2829
|
+
normal: string;
|
|
2830
|
+
slow: string;
|
|
2831
|
+
};
|
|
2832
|
+
easing: {
|
|
2833
|
+
default: string;
|
|
2834
|
+
enter: string;
|
|
2835
|
+
exit: string;
|
|
2836
|
+
};
|
|
2837
|
+
};
|
|
2838
|
+
effects: {
|
|
2839
|
+
/**
|
|
2840
|
+
* Overlay effects for interaction states and backdrops
|
|
2841
|
+
*/
|
|
2842
|
+
overlay: {
|
|
2843
|
+
/** Modal/drawer backdrop - 50% black */
|
|
2844
|
+
scrim: string;
|
|
2845
|
+
/** Standard hover - 8% black */
|
|
2846
|
+
hover: string;
|
|
2847
|
+
/** Subtle hover for dense UI - 4% black */
|
|
2848
|
+
hoverSubtle: string;
|
|
2849
|
+
/** Pressed/active - 12% black */
|
|
2850
|
+
pressed: string;
|
|
2851
|
+
/** Selected row/item - 8% black */
|
|
2852
|
+
selected: string;
|
|
2853
|
+
/** Disabled overlay - 38% black */
|
|
2854
|
+
disabled: string;
|
|
2855
|
+
};
|
|
2856
|
+
/**
|
|
2857
|
+
* White text/icon opacity for dark backgrounds
|
|
2858
|
+
* Based on Material Design text emphasis levels
|
|
2859
|
+
*/
|
|
2860
|
+
onDark: {
|
|
2861
|
+
/** High emphasis - 87% white */
|
|
2862
|
+
primary: string;
|
|
2863
|
+
/** Medium emphasis - 70% white */
|
|
2864
|
+
secondary: string;
|
|
2865
|
+
/** Low emphasis - 50% white */
|
|
2866
|
+
tertiary: string;
|
|
2867
|
+
/** Borders/dividers - 12% white */
|
|
2868
|
+
subtle: string;
|
|
2869
|
+
/** Background overlays on dark surfaces - 10% white */
|
|
2870
|
+
tint: string;
|
|
2871
|
+
/** Visible dividers on dark backgrounds - 24% white */
|
|
2872
|
+
divider: string;
|
|
2873
|
+
/** High-visibility text/icons on dark - 80% white */
|
|
2874
|
+
emphasis: string;
|
|
2875
|
+
/** Maximum contrast - avoids pure white - 95% white */
|
|
2876
|
+
contrast: string;
|
|
2877
|
+
};
|
|
2878
|
+
/**
|
|
2879
|
+
* Shadow effects for elevation hierarchy
|
|
2880
|
+
* Replaces hardcoded rgba shadows
|
|
2881
|
+
*/
|
|
2882
|
+
shadow: {
|
|
2883
|
+
/** Resting card elevation */
|
|
2884
|
+
surface: string;
|
|
2885
|
+
/** Hovered/focused elevation */
|
|
2886
|
+
raised: string;
|
|
2887
|
+
/** Dropdown/popover/nav menus */
|
|
2888
|
+
floating: string;
|
|
2889
|
+
/** Modal dialogs */
|
|
2890
|
+
dialog: string;
|
|
2891
|
+
/** Pressed/inset appearance */
|
|
2892
|
+
inset: string;
|
|
2893
|
+
};
|
|
2894
|
+
/**
|
|
2895
|
+
* Focus ring effects for accessibility
|
|
2896
|
+
*/
|
|
2897
|
+
focus: {
|
|
2898
|
+
/** Standard focus ring - purple brand */
|
|
2899
|
+
ring: string;
|
|
2900
|
+
/** Focus on dark backgrounds */
|
|
2901
|
+
ringOnDark: string;
|
|
2902
|
+
/** Emphasized focus for primary actions */
|
|
2903
|
+
glow: string;
|
|
2904
|
+
};
|
|
2905
|
+
/**
|
|
2906
|
+
* State indicator effects (subtle fills and emphasis borders)
|
|
2907
|
+
*/
|
|
2908
|
+
state: {
|
|
2909
|
+
/** Error background - 5% red */
|
|
2910
|
+
errorSubtle: string;
|
|
2911
|
+
/** Error border - 30% red */
|
|
2912
|
+
errorEmphasis: string;
|
|
2913
|
+
/** Warning background - 10% yellow */
|
|
2914
|
+
warningSubtle: string;
|
|
2915
|
+
/** Warning border - 40% yellow */
|
|
2916
|
+
warningEmphasis: string;
|
|
2917
|
+
/** Success background - 5% green */
|
|
2918
|
+
successSubtle: string;
|
|
2919
|
+
/** Success border - 30% green */
|
|
2920
|
+
successEmphasis: string;
|
|
2921
|
+
/** Info background - 5% blue */
|
|
2922
|
+
infoSubtle: string;
|
|
2923
|
+
/** Info border - 30% blue */
|
|
2924
|
+
infoEmphasis: string;
|
|
2925
|
+
};
|
|
2926
|
+
};
|
|
2927
|
+
iconSize: {
|
|
2928
|
+
/** Within text flow - 14px */
|
|
2929
|
+
inline: number;
|
|
2930
|
+
/** Standard controls (buttons, inputs) - 16px */
|
|
2931
|
+
control: number;
|
|
2932
|
+
/** Navigation and toolbar - 20px */
|
|
2933
|
+
navigation: number;
|
|
2934
|
+
/** Visual anchor (empty states) - 24px */
|
|
2935
|
+
prominent: number;
|
|
2936
|
+
/** Hero sections - 28px */
|
|
2937
|
+
hero: number;
|
|
2938
|
+
/** Maximum impact - 36px */
|
|
2939
|
+
display: number;
|
|
2940
|
+
};
|
|
2941
|
+
inline: {
|
|
2942
|
+
/** Minimum internal space - 4px */
|
|
2943
|
+
tight: number;
|
|
2944
|
+
/** Dense but readable - 8px */
|
|
2945
|
+
compact: number;
|
|
2946
|
+
/** Balanced density - 12px */
|
|
2947
|
+
snug: number;
|
|
2948
|
+
/** Standard breathing room - 16px */
|
|
2949
|
+
comfortable: number;
|
|
2950
|
+
/** Generous without excess - 20px */
|
|
2951
|
+
relaxed: number;
|
|
2952
|
+
/** Maximum breathing room - 24px */
|
|
2953
|
+
spacious: number;
|
|
2954
|
+
};
|
|
2955
|
+
stack: {
|
|
2956
|
+
/** Minimum vertical space - 4px */
|
|
2957
|
+
tight: number;
|
|
2958
|
+
/** Dense but readable - 8px */
|
|
2959
|
+
compact: number;
|
|
2960
|
+
/** Balanced density - 12px */
|
|
2961
|
+
snug: number;
|
|
2962
|
+
/** Standard vertical space - 16px */
|
|
2963
|
+
comfortable: number;
|
|
2964
|
+
/** Generous without excess - 20px */
|
|
2965
|
+
relaxed: number;
|
|
2966
|
+
/** Maximum vertical space - 24px */
|
|
2967
|
+
spacious: number;
|
|
2968
|
+
/** @deprecated Use tight instead */
|
|
2969
|
+
related: number;
|
|
2970
|
+
/** @deprecated Use compact instead */
|
|
2971
|
+
grouped: number;
|
|
2972
|
+
/** @deprecated Use comfortable instead */
|
|
2973
|
+
separated: number;
|
|
2974
|
+
/** @deprecated Use spacious instead */
|
|
2975
|
+
distinct: number;
|
|
2976
|
+
};
|
|
2977
|
+
density: {
|
|
2978
|
+
/** Maximum info density */
|
|
2979
|
+
compact: {
|
|
2980
|
+
rowHeight: number;
|
|
2981
|
+
cellPadding: number;
|
|
2982
|
+
gap: number;
|
|
2983
|
+
};
|
|
2984
|
+
/** Balanced readability/density */
|
|
2985
|
+
standard: {
|
|
2986
|
+
rowHeight: number;
|
|
2987
|
+
cellPadding: number;
|
|
2988
|
+
gap: number;
|
|
2989
|
+
};
|
|
2990
|
+
/** Prioritize readability */
|
|
2991
|
+
comfortable: {
|
|
2992
|
+
rowHeight: number;
|
|
2993
|
+
cellPadding: number;
|
|
2994
|
+
gap: number;
|
|
2995
|
+
};
|
|
2996
|
+
};
|
|
2997
|
+
};
|
|
2998
|
+
/**
|
|
2999
|
+
* Complete hierarchy system combining all hierarchy aspects
|
|
3000
|
+
* Use this as the single source of truth for design hierarchy
|
|
3001
|
+
*/
|
|
3002
|
+
export declare const hierarchy: {
|
|
3003
|
+
/** Attention/importance levels */
|
|
3004
|
+
readonly attention: {
|
|
3005
|
+
/** Most important actions/content - demands immediate attention */
|
|
3006
|
+
readonly primary: {
|
|
3007
|
+
readonly prominence: 5;
|
|
3008
|
+
readonly usage: readonly ["Primary CTAs", "Critical alerts", "Page titles", "Current navigation"];
|
|
3009
|
+
readonly minContrast: 7;
|
|
3010
|
+
};
|
|
3011
|
+
/** Important but not critical - strong visual presence */
|
|
3012
|
+
readonly secondary: {
|
|
3013
|
+
readonly prominence: 4;
|
|
3014
|
+
readonly usage: readonly ["Secondary buttons", "Section headings", "Key information", "Active states"];
|
|
3015
|
+
readonly minContrast: 4.5;
|
|
3016
|
+
};
|
|
3017
|
+
/** Supportive content - visible but not competing */
|
|
3018
|
+
readonly tertiary: {
|
|
3019
|
+
readonly prominence: 3;
|
|
3020
|
+
readonly usage: readonly ["Body text", "Form labels", "Navigation items", "Card content"];
|
|
3021
|
+
readonly minContrast: 4.5;
|
|
3022
|
+
};
|
|
3023
|
+
/** Background/supporting information */
|
|
3024
|
+
readonly muted: {
|
|
3025
|
+
readonly prominence: 2;
|
|
3026
|
+
readonly usage: readonly ["Helper text", "Timestamps", "Metadata", "Placeholders"];
|
|
3027
|
+
readonly minContrast: 3;
|
|
3028
|
+
};
|
|
3029
|
+
/** Non-interactive or unavailable */
|
|
3030
|
+
readonly disabled: {
|
|
3031
|
+
readonly prominence: 1;
|
|
3032
|
+
readonly usage: readonly ["Disabled controls", "Inactive states", "Read-only fields"];
|
|
3033
|
+
readonly minContrast: 2.5;
|
|
3034
|
+
};
|
|
3035
|
+
};
|
|
3036
|
+
/** Typography scale and weights */
|
|
3037
|
+
readonly typography: {
|
|
3038
|
+
readonly display: {
|
|
3039
|
+
readonly level: 1;
|
|
3040
|
+
readonly scale: {
|
|
3041
|
+
readonly large: {
|
|
3042
|
+
readonly size: "3rem";
|
|
3043
|
+
readonly weight: 700;
|
|
3044
|
+
readonly lineHeight: 1.1;
|
|
3045
|
+
readonly tracking: "-0.02em";
|
|
3046
|
+
};
|
|
3047
|
+
readonly medium: {
|
|
3048
|
+
readonly size: "2.25rem";
|
|
3049
|
+
readonly weight: 700;
|
|
3050
|
+
readonly lineHeight: 1.15;
|
|
3051
|
+
readonly tracking: "-0.01em";
|
|
3052
|
+
};
|
|
3053
|
+
readonly small: {
|
|
3054
|
+
readonly size: "1.875rem";
|
|
3055
|
+
readonly weight: 600;
|
|
3056
|
+
readonly lineHeight: 1.2;
|
|
3057
|
+
readonly tracking: "0";
|
|
3058
|
+
};
|
|
3059
|
+
};
|
|
3060
|
+
};
|
|
3061
|
+
readonly heading: {
|
|
3062
|
+
readonly level: 2;
|
|
3063
|
+
readonly scale: {
|
|
3064
|
+
readonly h1: {
|
|
3065
|
+
readonly size: "1.875rem";
|
|
3066
|
+
readonly weight: 700;
|
|
3067
|
+
readonly lineHeight: 1.25;
|
|
3068
|
+
};
|
|
3069
|
+
readonly h2: {
|
|
3070
|
+
readonly size: "1.5rem";
|
|
3071
|
+
readonly weight: 600;
|
|
3072
|
+
readonly lineHeight: 1.3;
|
|
3073
|
+
};
|
|
3074
|
+
readonly h3: {
|
|
3075
|
+
readonly size: "1.25rem";
|
|
3076
|
+
readonly weight: 600;
|
|
3077
|
+
readonly lineHeight: 1.35;
|
|
3078
|
+
};
|
|
3079
|
+
readonly h4: {
|
|
3080
|
+
readonly size: "1.125rem";
|
|
3081
|
+
readonly weight: 600;
|
|
3082
|
+
readonly lineHeight: 1.4;
|
|
3083
|
+
};
|
|
3084
|
+
readonly h5: {
|
|
3085
|
+
readonly size: "1rem";
|
|
3086
|
+
readonly weight: 600;
|
|
3087
|
+
readonly lineHeight: 1.45;
|
|
3088
|
+
};
|
|
3089
|
+
readonly h6: {
|
|
3090
|
+
readonly size: "0.875rem";
|
|
3091
|
+
readonly weight: 600;
|
|
3092
|
+
readonly lineHeight: 1.5;
|
|
3093
|
+
};
|
|
3094
|
+
};
|
|
3095
|
+
};
|
|
3096
|
+
readonly body: {
|
|
3097
|
+
readonly level: 3;
|
|
3098
|
+
readonly scale: {
|
|
3099
|
+
readonly large: {
|
|
3100
|
+
readonly size: "1.125rem";
|
|
3101
|
+
readonly weight: 400;
|
|
3102
|
+
readonly lineHeight: 1.6;
|
|
3103
|
+
};
|
|
3104
|
+
readonly medium: {
|
|
3105
|
+
readonly size: "1rem";
|
|
3106
|
+
readonly weight: 400;
|
|
3107
|
+
readonly lineHeight: 1.5;
|
|
3108
|
+
};
|
|
3109
|
+
readonly small: {
|
|
3110
|
+
readonly size: "0.875rem";
|
|
3111
|
+
readonly weight: 400;
|
|
3112
|
+
readonly lineHeight: 1.5;
|
|
3113
|
+
};
|
|
3114
|
+
};
|
|
3115
|
+
};
|
|
3116
|
+
readonly label: {
|
|
3117
|
+
readonly level: 4;
|
|
3118
|
+
readonly scale: {
|
|
3119
|
+
readonly large: {
|
|
3120
|
+
readonly size: "1rem";
|
|
3121
|
+
readonly weight: 500;
|
|
3122
|
+
readonly lineHeight: 1.25;
|
|
3123
|
+
};
|
|
3124
|
+
readonly medium: {
|
|
3125
|
+
readonly size: "0.875rem";
|
|
3126
|
+
readonly weight: 500;
|
|
3127
|
+
readonly lineHeight: 1.25;
|
|
3128
|
+
};
|
|
3129
|
+
readonly small: {
|
|
3130
|
+
readonly size: "0.75rem";
|
|
3131
|
+
readonly weight: 500;
|
|
3132
|
+
readonly lineHeight: 1.25;
|
|
3133
|
+
};
|
|
3134
|
+
};
|
|
3135
|
+
};
|
|
3136
|
+
readonly caption: {
|
|
3137
|
+
readonly level: 5;
|
|
3138
|
+
readonly scale: {
|
|
3139
|
+
readonly default: {
|
|
3140
|
+
readonly size: "0.75rem";
|
|
3141
|
+
readonly weight: 400;
|
|
3142
|
+
readonly lineHeight: 1.4;
|
|
3143
|
+
};
|
|
3144
|
+
readonly emphasis: {
|
|
3145
|
+
readonly size: "0.75rem";
|
|
3146
|
+
readonly weight: 500;
|
|
3147
|
+
readonly lineHeight: 1.4;
|
|
3148
|
+
};
|
|
3149
|
+
};
|
|
3150
|
+
};
|
|
3151
|
+
readonly overline: {
|
|
3152
|
+
readonly level: 6;
|
|
3153
|
+
readonly scale: {
|
|
3154
|
+
readonly default: {
|
|
3155
|
+
readonly size: "0.625rem";
|
|
3156
|
+
readonly weight: 600;
|
|
3157
|
+
readonly lineHeight: 1.5;
|
|
3158
|
+
readonly tracking: "0.1em";
|
|
3159
|
+
readonly transform: "uppercase";
|
|
3160
|
+
};
|
|
3161
|
+
};
|
|
3162
|
+
};
|
|
3163
|
+
};
|
|
3164
|
+
/** Z-axis elevation system */
|
|
3165
|
+
readonly elevation: {
|
|
3166
|
+
/** Ground level - page background, sunken areas */
|
|
3167
|
+
readonly ground: {
|
|
3168
|
+
readonly level: 0;
|
|
3169
|
+
readonly zIndex: 0;
|
|
3170
|
+
readonly shadow: "none";
|
|
3171
|
+
readonly description: "Page backgrounds, wells, sunken inputs";
|
|
3172
|
+
};
|
|
3173
|
+
/** Resting - default content surfaces */
|
|
3174
|
+
readonly resting: {
|
|
3175
|
+
readonly level: 1;
|
|
3176
|
+
readonly zIndex: 1;
|
|
3177
|
+
readonly shadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)";
|
|
3178
|
+
readonly description: "Cards, panels at rest";
|
|
3179
|
+
};
|
|
3180
|
+
/** Raised - interactive/hover states */
|
|
3181
|
+
readonly raised: {
|
|
3182
|
+
readonly level: 2;
|
|
3183
|
+
readonly zIndex: 10;
|
|
3184
|
+
readonly shadow: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)";
|
|
3185
|
+
readonly description: "Hovered cards, active buttons";
|
|
3186
|
+
};
|
|
3187
|
+
/** Floating - dropdowns, menus */
|
|
3188
|
+
readonly floating: {
|
|
3189
|
+
readonly level: 3;
|
|
3190
|
+
readonly zIndex: 1000;
|
|
3191
|
+
readonly shadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
|
|
3192
|
+
readonly description: "Dropdown menus, popovers";
|
|
3193
|
+
};
|
|
3194
|
+
/** Sticky - headers, navigation */
|
|
3195
|
+
readonly sticky: {
|
|
3196
|
+
readonly level: 4;
|
|
3197
|
+
readonly zIndex: 1020;
|
|
3198
|
+
readonly shadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
|
|
3199
|
+
readonly description: "Sticky headers, fixed navigation";
|
|
3200
|
+
};
|
|
3201
|
+
/** Overlay - backdrop for modals */
|
|
3202
|
+
readonly overlay: {
|
|
3203
|
+
readonly level: 5;
|
|
3204
|
+
readonly zIndex: 1040;
|
|
3205
|
+
readonly shadow: "none";
|
|
3206
|
+
readonly description: "Modal/dialog backdrops";
|
|
3207
|
+
};
|
|
3208
|
+
/** Dialog - modals, alerts */
|
|
3209
|
+
readonly dialog: {
|
|
3210
|
+
readonly level: 6;
|
|
3211
|
+
readonly zIndex: 1050;
|
|
3212
|
+
readonly shadow: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)";
|
|
3213
|
+
readonly description: "Modal dialogs, alerts";
|
|
3214
|
+
};
|
|
3215
|
+
/** Popover - tooltips, notifications */
|
|
3216
|
+
readonly popover: {
|
|
3217
|
+
readonly level: 7;
|
|
3218
|
+
readonly zIndex: 1060;
|
|
3219
|
+
readonly shadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)";
|
|
3220
|
+
readonly description: "Popovers, floating panels";
|
|
3221
|
+
};
|
|
3222
|
+
/** Tooltip - highest priority overlays */
|
|
3223
|
+
readonly tooltip: {
|
|
3224
|
+
readonly level: 8;
|
|
3225
|
+
readonly zIndex: 1070;
|
|
3226
|
+
readonly shadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
|
|
3227
|
+
readonly description: "Tooltips, critical notifications";
|
|
3228
|
+
};
|
|
3229
|
+
};
|
|
3230
|
+
/** Size scaling system */
|
|
3231
|
+
readonly scale: {
|
|
3232
|
+
/** Scale ratio for size progression */
|
|
3233
|
+
readonly ratio: 1.25;
|
|
3234
|
+
/** Size scale multipliers */
|
|
3235
|
+
readonly sizes: {
|
|
3236
|
+
readonly '3xs': 0.512;
|
|
3237
|
+
readonly '2xs': 0.64;
|
|
3238
|
+
readonly xs: 0.8;
|
|
3239
|
+
readonly sm: 1;
|
|
3240
|
+
readonly md: 1.25;
|
|
3241
|
+
readonly lg: 1.563;
|
|
3242
|
+
readonly xl: 1.953;
|
|
3243
|
+
readonly '2xl': 2.441;
|
|
3244
|
+
readonly '3xl': 3.052;
|
|
3245
|
+
};
|
|
3246
|
+
/** Icon sizes following the scale */
|
|
3247
|
+
readonly icons: {
|
|
3248
|
+
readonly xs: 12;
|
|
3249
|
+
readonly sm: 16;
|
|
3250
|
+
readonly md: 20;
|
|
3251
|
+
readonly lg: 24;
|
|
3252
|
+
readonly xl: 32;
|
|
3253
|
+
readonly '2xl': 40;
|
|
3254
|
+
};
|
|
3255
|
+
/** Touch target minimums (accessibility) */
|
|
3256
|
+
readonly touchTargets: {
|
|
3257
|
+
readonly minimum: 44;
|
|
3258
|
+
readonly comfortable: 48;
|
|
3259
|
+
readonly spacious: 56;
|
|
3260
|
+
};
|
|
3261
|
+
};
|
|
3262
|
+
/** Contrast levels */
|
|
3263
|
+
readonly contrast: {
|
|
3264
|
+
/** High contrast - primary actions, critical info */
|
|
3265
|
+
readonly high: {
|
|
3266
|
+
readonly foreground: string;
|
|
3267
|
+
readonly background: string;
|
|
3268
|
+
readonly ratio: 12.5;
|
|
3269
|
+
};
|
|
3270
|
+
/** Medium contrast - body content */
|
|
3271
|
+
readonly medium: {
|
|
3272
|
+
readonly foreground: string;
|
|
3273
|
+
readonly background: string;
|
|
3274
|
+
readonly ratio: 7.5;
|
|
3275
|
+
};
|
|
3276
|
+
/** Low contrast - secondary/muted content */
|
|
3277
|
+
readonly low: {
|
|
3278
|
+
readonly foreground: string;
|
|
3279
|
+
readonly background: string;
|
|
3280
|
+
readonly ratio: 4.5;
|
|
3281
|
+
};
|
|
3282
|
+
/** Subtle - disabled/decorative */
|
|
3283
|
+
readonly subtle: {
|
|
3284
|
+
readonly foreground: string;
|
|
3285
|
+
readonly background: string;
|
|
3286
|
+
readonly ratio: 3;
|
|
3287
|
+
};
|
|
3288
|
+
};
|
|
3289
|
+
/** Interactive states */
|
|
3290
|
+
readonly interactive: {
|
|
3291
|
+
/** Default resting state */
|
|
3292
|
+
readonly default: {
|
|
3293
|
+
readonly opacity: 1;
|
|
3294
|
+
readonly transform: "none";
|
|
3295
|
+
readonly transition: "all 150ms ease-out";
|
|
3296
|
+
};
|
|
3297
|
+
/** Mouse hovering over element */
|
|
3298
|
+
readonly hover: {
|
|
3299
|
+
readonly opacity: 1;
|
|
3300
|
+
readonly transform: "translateY(-1px)";
|
|
3301
|
+
readonly transition: "all 150ms ease-out";
|
|
3302
|
+
};
|
|
3303
|
+
/** Element being pressed */
|
|
3304
|
+
readonly active: {
|
|
3305
|
+
readonly opacity: 0.9;
|
|
3306
|
+
readonly transform: "translateY(0) scale(0.98)";
|
|
3307
|
+
readonly transition: "all 50ms ease-out";
|
|
3308
|
+
};
|
|
3309
|
+
/** Keyboard focused */
|
|
3310
|
+
readonly focus: {
|
|
3311
|
+
readonly outline: `2px solid ${string}`;
|
|
3312
|
+
readonly outlineOffset: "2px";
|
|
3313
|
+
readonly transition: "outline-offset 100ms ease-out";
|
|
3314
|
+
};
|
|
3315
|
+
/** Element is disabled */
|
|
3316
|
+
readonly disabled: {
|
|
3317
|
+
readonly opacity: 0.5;
|
|
3318
|
+
readonly cursor: "not-allowed";
|
|
3319
|
+
readonly pointerEvents: "none";
|
|
3320
|
+
};
|
|
3321
|
+
};
|
|
3322
|
+
/** Spacing rhythm */
|
|
3323
|
+
readonly spacing: {
|
|
3324
|
+
/** Micro spacing - between related elements */
|
|
3325
|
+
readonly micro: {
|
|
3326
|
+
readonly 1: 4;
|
|
3327
|
+
readonly 2: 8;
|
|
3328
|
+
};
|
|
3329
|
+
/** Component spacing - within components */
|
|
3330
|
+
readonly component: {
|
|
3331
|
+
readonly 3: 12;
|
|
3332
|
+
readonly 4: 16;
|
|
3333
|
+
readonly 5: 20;
|
|
3334
|
+
};
|
|
3335
|
+
/** Section spacing - between sections */
|
|
3336
|
+
readonly section: {
|
|
3337
|
+
readonly 6: 24;
|
|
3338
|
+
readonly 8: 32;
|
|
3339
|
+
readonly 10: 40;
|
|
3340
|
+
};
|
|
3341
|
+
/** Layout spacing - page-level */
|
|
3342
|
+
readonly layout: {
|
|
3343
|
+
readonly 12: 48;
|
|
3344
|
+
readonly 16: 64;
|
|
3345
|
+
readonly 24: 96;
|
|
3346
|
+
readonly 32: 128;
|
|
3347
|
+
};
|
|
3348
|
+
};
|
|
3349
|
+
};
|
|
3350
|
+
export type TrinityHierarchy = typeof hierarchy;
|
|
3351
|
+
export declare const tokens: {
|
|
3352
|
+
base: {
|
|
3353
|
+
colors: {
|
|
3354
|
+
navy: {
|
|
3355
|
+
50: string;
|
|
3356
|
+
100: string;
|
|
3357
|
+
200: string;
|
|
3358
|
+
300: string;
|
|
3359
|
+
400: string;
|
|
3360
|
+
500: string;
|
|
3361
|
+
600: string;
|
|
3362
|
+
700: string;
|
|
3363
|
+
800: string;
|
|
3364
|
+
900: string;
|
|
3365
|
+
};
|
|
3366
|
+
purple: {
|
|
3367
|
+
50: string;
|
|
3368
|
+
100: string;
|
|
3369
|
+
200: string;
|
|
3370
|
+
300: string;
|
|
3371
|
+
400: string;
|
|
3372
|
+
500: string;
|
|
3373
|
+
600: string;
|
|
3374
|
+
700: string;
|
|
3375
|
+
800: string;
|
|
3376
|
+
900: string;
|
|
3377
|
+
};
|
|
3378
|
+
indigo: {
|
|
3379
|
+
50: string;
|
|
3380
|
+
100: string;
|
|
3381
|
+
200: string;
|
|
3382
|
+
300: string;
|
|
3383
|
+
400: string;
|
|
3384
|
+
500: string;
|
|
3385
|
+
600: string;
|
|
3386
|
+
700: string;
|
|
3387
|
+
800: string;
|
|
3388
|
+
900: string;
|
|
3389
|
+
electric: string;
|
|
3390
|
+
};
|
|
3391
|
+
coral: {
|
|
3392
|
+
50: string;
|
|
3393
|
+
100: string;
|
|
3394
|
+
200: string;
|
|
3395
|
+
300: string;
|
|
3396
|
+
400: string;
|
|
3397
|
+
500: string;
|
|
3398
|
+
600: string;
|
|
3399
|
+
700: string;
|
|
3400
|
+
800: string;
|
|
3401
|
+
900: string;
|
|
3402
|
+
};
|
|
3403
|
+
azure: {
|
|
3404
|
+
50: string;
|
|
3405
|
+
100: string;
|
|
3406
|
+
200: string;
|
|
3407
|
+
300: string;
|
|
3408
|
+
400: string;
|
|
3409
|
+
500: string;
|
|
3410
|
+
600: string;
|
|
3411
|
+
700: string;
|
|
3412
|
+
800: string;
|
|
3413
|
+
900: string;
|
|
3414
|
+
};
|
|
3415
|
+
gray: {
|
|
3416
|
+
0: string;
|
|
3417
|
+
50: string;
|
|
3418
|
+
100: string;
|
|
3419
|
+
200: string;
|
|
3420
|
+
300: string;
|
|
3421
|
+
400: string;
|
|
3422
|
+
500: string;
|
|
3423
|
+
600: string;
|
|
3424
|
+
700: string;
|
|
3425
|
+
800: string;
|
|
3426
|
+
900: string;
|
|
3427
|
+
};
|
|
3428
|
+
};
|
|
3429
|
+
spacing: {
|
|
3430
|
+
0: number;
|
|
3431
|
+
0.5: number;
|
|
3432
|
+
1: number;
|
|
3433
|
+
1.5: number;
|
|
3434
|
+
2: number;
|
|
3435
|
+
2.5: number;
|
|
3436
|
+
3: number;
|
|
3437
|
+
4: number;
|
|
3438
|
+
5: number;
|
|
3439
|
+
6: number;
|
|
3440
|
+
7: number;
|
|
3441
|
+
8: number;
|
|
3442
|
+
9: number;
|
|
3443
|
+
10: number;
|
|
3444
|
+
12: number;
|
|
3445
|
+
14: number;
|
|
3446
|
+
16: number;
|
|
3447
|
+
20: number;
|
|
3448
|
+
24: number;
|
|
3449
|
+
32: number;
|
|
3450
|
+
};
|
|
3451
|
+
fontSize: {
|
|
3452
|
+
xs: string;
|
|
3453
|
+
sm: string;
|
|
3454
|
+
base: string;
|
|
3455
|
+
lg: string;
|
|
3456
|
+
xl: string;
|
|
3457
|
+
'2xl': string;
|
|
3458
|
+
'3xl': string;
|
|
3459
|
+
'4xl': string;
|
|
3460
|
+
'5xl': string;
|
|
3461
|
+
'6xl': string;
|
|
3462
|
+
};
|
|
3463
|
+
fontWeight: {
|
|
3464
|
+
light: number;
|
|
3465
|
+
regular: number;
|
|
3466
|
+
medium: number;
|
|
3467
|
+
semibold: number;
|
|
3468
|
+
bold: number;
|
|
3469
|
+
extrabold: number;
|
|
3470
|
+
};
|
|
3471
|
+
lineHeight: {
|
|
3472
|
+
none: number;
|
|
3473
|
+
tight: number;
|
|
3474
|
+
snug: number;
|
|
3475
|
+
normal: number;
|
|
3476
|
+
relaxed: number;
|
|
3477
|
+
loose: number;
|
|
3478
|
+
};
|
|
3479
|
+
letterSpacing: {
|
|
3480
|
+
tighter: string;
|
|
3481
|
+
tight: string;
|
|
3482
|
+
normal: string;
|
|
3483
|
+
wide: string;
|
|
3484
|
+
wider: string;
|
|
3485
|
+
widest: string;
|
|
3486
|
+
};
|
|
3487
|
+
/**
|
|
3488
|
+
* Border Radius Scale
|
|
3489
|
+
*
|
|
3490
|
+
* Designed for consistent nesting using: Outer = Inner + Padding
|
|
3491
|
+
*
|
|
3492
|
+
* Common nesting patterns:
|
|
3493
|
+
* - Button (sm:6px) inside Card (md:8px) with 8px padding: 6 + 8 = 12 (use lg for container)
|
|
3494
|
+
* - Card (md:8px) inside Modal (lg:12px) with 16px padding: 8 + 16 = 24 (use 3xl for modal)
|
|
3495
|
+
* - Input (sm:6px) inside Panel (md:8px) with 8px padding: 6 + 8 = 12 (use lg for panel)
|
|
3496
|
+
*
|
|
3497
|
+
* Usage by element type:
|
|
3498
|
+
* - xs (4px): Small badges, icon containers, status dots with corners
|
|
3499
|
+
* - sm (6px): Buttons, inputs, chips, tags, small interactive elements
|
|
3500
|
+
* - md (8px): Cards, list items, small panels, menu items
|
|
3501
|
+
* - lg (12px): Large cards, dialogs, dropdown menus, panels
|
|
3502
|
+
* - xl (16px): Modals, popovers, large containers
|
|
3503
|
+
* - 2xl (20px): Very large modals with nested content
|
|
3504
|
+
* - 3xl (24px): Maximum nesting scenarios
|
|
3505
|
+
* - full (9999px): Pills, avatars, fully rounded elements
|
|
3506
|
+
*/
|
|
3507
|
+
borderRadius: {
|
|
3508
|
+
none: number;
|
|
3509
|
+
xs: number;
|
|
3510
|
+
sm: number;
|
|
3511
|
+
md: number;
|
|
3512
|
+
lg: number;
|
|
3513
|
+
xl: number;
|
|
3514
|
+
'2xl': number;
|
|
3515
|
+
'3xl': number;
|
|
3516
|
+
full: number;
|
|
3517
|
+
};
|
|
3518
|
+
borderWidth: {
|
|
3519
|
+
0: number;
|
|
3520
|
+
1: number;
|
|
3521
|
+
2: number;
|
|
3522
|
+
4: number;
|
|
3523
|
+
8: number;
|
|
3524
|
+
};
|
|
3525
|
+
shadows: {
|
|
3526
|
+
none: string;
|
|
3527
|
+
sm: string;
|
|
3528
|
+
base: string;
|
|
3529
|
+
md: string;
|
|
3530
|
+
lg: string;
|
|
3531
|
+
xl: string;
|
|
3532
|
+
'2xl': string;
|
|
3533
|
+
inner: string;
|
|
3534
|
+
};
|
|
3535
|
+
zIndex: {
|
|
3536
|
+
auto: string;
|
|
3537
|
+
0: number;
|
|
3538
|
+
10: number;
|
|
3539
|
+
20: number;
|
|
3540
|
+
30: number;
|
|
3541
|
+
40: number;
|
|
3542
|
+
50: number;
|
|
3543
|
+
dropdown: number;
|
|
3544
|
+
sticky: number;
|
|
3545
|
+
fixed: number;
|
|
3546
|
+
modalBackdrop: number;
|
|
3547
|
+
modal: number;
|
|
3548
|
+
popover: number;
|
|
3549
|
+
tooltip: number;
|
|
3550
|
+
};
|
|
3551
|
+
duration: {
|
|
3552
|
+
fastest: string;
|
|
3553
|
+
faster: string;
|
|
3554
|
+
fast: string;
|
|
3555
|
+
normal: string;
|
|
3556
|
+
slow: string;
|
|
3557
|
+
slower: string;
|
|
3558
|
+
slowest: string;
|
|
3559
|
+
};
|
|
3560
|
+
easing: {
|
|
3561
|
+
linear: string;
|
|
3562
|
+
in: string;
|
|
3563
|
+
out: string;
|
|
3564
|
+
inOut: string;
|
|
3565
|
+
smooth: string;
|
|
3566
|
+
bounce: string;
|
|
3567
|
+
elastic: string;
|
|
3568
|
+
};
|
|
3569
|
+
opacity: {
|
|
3570
|
+
0: number;
|
|
3571
|
+
5: number;
|
|
3572
|
+
10: number;
|
|
3573
|
+
20: number;
|
|
3574
|
+
25: number;
|
|
3575
|
+
30: number;
|
|
3576
|
+
40: number;
|
|
3577
|
+
50: number;
|
|
3578
|
+
60: number;
|
|
3579
|
+
70: number;
|
|
3580
|
+
75: number;
|
|
3581
|
+
80: number;
|
|
3582
|
+
90: number;
|
|
3583
|
+
95: number;
|
|
3584
|
+
100: number;
|
|
3585
|
+
};
|
|
3586
|
+
breakpoints: {
|
|
3587
|
+
xs: number;
|
|
3588
|
+
sm: number;
|
|
3589
|
+
md: number;
|
|
3590
|
+
lg: number;
|
|
3591
|
+
xl: number;
|
|
3592
|
+
};
|
|
3593
|
+
};
|
|
3594
|
+
semantic: {
|
|
3595
|
+
colors: {
|
|
3596
|
+
brand: {
|
|
3597
|
+
primary: string;
|
|
3598
|
+
secondary: string;
|
|
3599
|
+
tertiary: string;
|
|
3600
|
+
accent: string;
|
|
3601
|
+
};
|
|
3602
|
+
text: {
|
|
3603
|
+
primary: string;
|
|
3604
|
+
secondary: string;
|
|
3605
|
+
tertiary: string;
|
|
3606
|
+
disabled: string;
|
|
3607
|
+
inverse: string;
|
|
3608
|
+
brand: string;
|
|
3609
|
+
link: string;
|
|
3610
|
+
linkHover: string;
|
|
3611
|
+
error: string;
|
|
3612
|
+
success: string;
|
|
3613
|
+
warning: string;
|
|
3614
|
+
};
|
|
3615
|
+
background: {
|
|
3616
|
+
primary: string;
|
|
3617
|
+
secondary: string;
|
|
3618
|
+
tertiary: string;
|
|
3619
|
+
inverse: string;
|
|
3620
|
+
brand: string;
|
|
3621
|
+
brandSubtle: string;
|
|
3622
|
+
accent: string;
|
|
3623
|
+
accentSubtle: string;
|
|
3624
|
+
};
|
|
3625
|
+
surface: {
|
|
3626
|
+
elevated: string;
|
|
3627
|
+
sunken: string;
|
|
3628
|
+
overlay: string;
|
|
3629
|
+
success: string;
|
|
3630
|
+
error: string;
|
|
3631
|
+
warning: string;
|
|
3632
|
+
info: string;
|
|
3633
|
+
};
|
|
3634
|
+
border: {
|
|
3635
|
+
default: string;
|
|
3636
|
+
subtle: string;
|
|
3637
|
+
strong: string;
|
|
3638
|
+
focus: string;
|
|
3639
|
+
error: string;
|
|
3640
|
+
success: string;
|
|
3641
|
+
};
|
|
3642
|
+
interactive: {
|
|
3643
|
+
default: string;
|
|
3644
|
+
hover: string;
|
|
3645
|
+
active: string;
|
|
3646
|
+
disabled: string;
|
|
3647
|
+
focus: string;
|
|
3648
|
+
};
|
|
3649
|
+
focus: {
|
|
3650
|
+
ring: string;
|
|
3651
|
+
ringOffset: string;
|
|
3652
|
+
};
|
|
3653
|
+
selection: {
|
|
3654
|
+
background: string;
|
|
3655
|
+
text: string;
|
|
3656
|
+
};
|
|
3657
|
+
status: {
|
|
3658
|
+
error: {
|
|
3659
|
+
text: string;
|
|
3660
|
+
background: string;
|
|
3661
|
+
border: string;
|
|
3662
|
+
};
|
|
3663
|
+
warning: {
|
|
3664
|
+
text: string;
|
|
3665
|
+
background: string;
|
|
3666
|
+
border: string;
|
|
3667
|
+
};
|
|
3668
|
+
success: {
|
|
3669
|
+
text: string;
|
|
3670
|
+
background: string;
|
|
3671
|
+
border: string;
|
|
3672
|
+
};
|
|
3673
|
+
info: {
|
|
3674
|
+
text: string;
|
|
3675
|
+
background: string;
|
|
3676
|
+
border: string;
|
|
3677
|
+
};
|
|
3678
|
+
};
|
|
3679
|
+
/**
|
|
3680
|
+
* Status Indicator Colors
|
|
3681
|
+
* Semantic colors for StatusIndicator components (dots, badges, chips)
|
|
3682
|
+
* These are intentionally distinct from status.* which are for alerts/toasts
|
|
3683
|
+
* @intentional-color - Status indicators require specific colors for visual distinction
|
|
3684
|
+
*/
|
|
3685
|
+
indicator: {
|
|
3686
|
+
error: {
|
|
3687
|
+
fg: string;
|
|
3688
|
+
bg: string;
|
|
3689
|
+
};
|
|
3690
|
+
critical: {
|
|
3691
|
+
fg: string;
|
|
3692
|
+
bg: string;
|
|
3693
|
+
};
|
|
3694
|
+
failed: {
|
|
3695
|
+
fg: string;
|
|
3696
|
+
bg: string;
|
|
3697
|
+
};
|
|
3698
|
+
rejected: {
|
|
3699
|
+
fg: string;
|
|
3700
|
+
bg: string;
|
|
3701
|
+
};
|
|
3702
|
+
warning: {
|
|
3703
|
+
fg: string;
|
|
3704
|
+
bg: string;
|
|
3705
|
+
outline: string;
|
|
3706
|
+
};
|
|
3707
|
+
caution: {
|
|
3708
|
+
fg: string;
|
|
3709
|
+
bg: string;
|
|
3710
|
+
outline: string;
|
|
3711
|
+
};
|
|
3712
|
+
pending: {
|
|
3713
|
+
fg: string;
|
|
3714
|
+
bg: string;
|
|
3715
|
+
outline: string;
|
|
3716
|
+
};
|
|
3717
|
+
inProgress: {
|
|
3718
|
+
fg: string;
|
|
3719
|
+
bg: string;
|
|
3720
|
+
};
|
|
3721
|
+
running: {
|
|
3722
|
+
fg: string;
|
|
3723
|
+
bg: string;
|
|
3724
|
+
};
|
|
3725
|
+
success: {
|
|
3726
|
+
fg: string;
|
|
3727
|
+
bg: string;
|
|
3728
|
+
};
|
|
3729
|
+
complete: {
|
|
3730
|
+
fg: string;
|
|
3731
|
+
bg: string;
|
|
3732
|
+
};
|
|
3733
|
+
approved: {
|
|
3734
|
+
fg: string;
|
|
3735
|
+
bg: string;
|
|
3736
|
+
};
|
|
3737
|
+
active: {
|
|
3738
|
+
fg: string;
|
|
3739
|
+
bg: string;
|
|
3740
|
+
};
|
|
3741
|
+
enabled: {
|
|
3742
|
+
fg: string;
|
|
3743
|
+
bg: string;
|
|
3744
|
+
};
|
|
3745
|
+
info: {
|
|
3746
|
+
fg: string;
|
|
3747
|
+
bg: string;
|
|
3748
|
+
};
|
|
3749
|
+
new: {
|
|
3750
|
+
fg: string;
|
|
3751
|
+
bg: string;
|
|
3752
|
+
};
|
|
3753
|
+
updated: {
|
|
3754
|
+
fg: string;
|
|
3755
|
+
bg: string;
|
|
3756
|
+
};
|
|
3757
|
+
neutral: {
|
|
3758
|
+
fg: string;
|
|
3759
|
+
bg: string;
|
|
3760
|
+
};
|
|
3761
|
+
draft: {
|
|
3762
|
+
fg: string;
|
|
3763
|
+
bg: string;
|
|
3764
|
+
};
|
|
3765
|
+
inactive: {
|
|
3766
|
+
fg: string;
|
|
3767
|
+
bg: string;
|
|
3768
|
+
};
|
|
3769
|
+
disabled: {
|
|
3770
|
+
fg: string;
|
|
3771
|
+
bg: string;
|
|
3772
|
+
};
|
|
3773
|
+
cancelled: {
|
|
3774
|
+
fg: string;
|
|
3775
|
+
bg: string;
|
|
3776
|
+
};
|
|
3777
|
+
unknown: {
|
|
3778
|
+
fg: string;
|
|
3779
|
+
bg: string;
|
|
3780
|
+
};
|
|
3781
|
+
beta: {
|
|
3782
|
+
fg: string;
|
|
3783
|
+
bg: string;
|
|
3784
|
+
};
|
|
3785
|
+
experimental: {
|
|
3786
|
+
fg: string;
|
|
3787
|
+
bg: string;
|
|
3788
|
+
};
|
|
3789
|
+
};
|
|
3790
|
+
avatar: {
|
|
3791
|
+
backgrounds: string[];
|
|
3792
|
+
online: string;
|
|
3793
|
+
offline: string;
|
|
3794
|
+
busy: string;
|
|
3795
|
+
away: string;
|
|
3796
|
+
};
|
|
3797
|
+
gradients: {
|
|
3798
|
+
primary: string;
|
|
3799
|
+
secondary: string;
|
|
3800
|
+
accent: string;
|
|
3801
|
+
avatarPrimary: string;
|
|
3802
|
+
avatarWarm: string;
|
|
3803
|
+
avatarCool: string;
|
|
3804
|
+
darkOverlay: string;
|
|
3805
|
+
};
|
|
3806
|
+
};
|
|
3807
|
+
typography: {
|
|
3808
|
+
display: {
|
|
3809
|
+
large: {
|
|
3810
|
+
fontSize: string;
|
|
3811
|
+
fontWeight: number;
|
|
3812
|
+
lineHeight: number;
|
|
3813
|
+
letterSpacing: string;
|
|
3814
|
+
};
|
|
3815
|
+
medium: {
|
|
3816
|
+
fontSize: string;
|
|
3817
|
+
fontWeight: number;
|
|
3818
|
+
lineHeight: number;
|
|
3819
|
+
letterSpacing: string;
|
|
3820
|
+
};
|
|
3821
|
+
small: {
|
|
3822
|
+
fontSize: string;
|
|
3823
|
+
fontWeight: number;
|
|
3824
|
+
lineHeight: number;
|
|
3825
|
+
letterSpacing: string;
|
|
3826
|
+
};
|
|
3827
|
+
};
|
|
3828
|
+
heading: {
|
|
3829
|
+
h1: {
|
|
3830
|
+
fontSize: string;
|
|
3831
|
+
fontWeight: number;
|
|
3832
|
+
lineHeight: number;
|
|
3833
|
+
};
|
|
3834
|
+
h2: {
|
|
3835
|
+
fontSize: string;
|
|
3836
|
+
fontWeight: number;
|
|
3837
|
+
lineHeight: number;
|
|
3838
|
+
};
|
|
3839
|
+
h3: {
|
|
3840
|
+
fontSize: string;
|
|
3841
|
+
fontWeight: number;
|
|
3842
|
+
lineHeight: number;
|
|
3843
|
+
};
|
|
3844
|
+
h4: {
|
|
3845
|
+
fontSize: string;
|
|
3846
|
+
fontWeight: number;
|
|
3847
|
+
lineHeight: number;
|
|
3848
|
+
};
|
|
3849
|
+
h5: {
|
|
3850
|
+
fontSize: string;
|
|
3851
|
+
fontWeight: number;
|
|
3852
|
+
lineHeight: number;
|
|
3853
|
+
};
|
|
3854
|
+
h6: {
|
|
3855
|
+
fontSize: string;
|
|
3856
|
+
fontWeight: number;
|
|
3857
|
+
lineHeight: number;
|
|
3858
|
+
};
|
|
3859
|
+
};
|
|
3860
|
+
body: {
|
|
3861
|
+
large: {
|
|
3862
|
+
fontSize: string;
|
|
3863
|
+
fontWeight: number;
|
|
3864
|
+
lineHeight: number;
|
|
3865
|
+
};
|
|
3866
|
+
medium: {
|
|
3867
|
+
fontSize: string;
|
|
3868
|
+
fontWeight: number;
|
|
3869
|
+
lineHeight: number;
|
|
3870
|
+
};
|
|
3871
|
+
small: {
|
|
3872
|
+
fontSize: string;
|
|
3873
|
+
fontWeight: number;
|
|
3874
|
+
lineHeight: number;
|
|
3875
|
+
};
|
|
3876
|
+
};
|
|
3877
|
+
label: {
|
|
3878
|
+
large: {
|
|
3879
|
+
fontSize: string;
|
|
3880
|
+
fontWeight: number;
|
|
3881
|
+
lineHeight: number;
|
|
3882
|
+
};
|
|
3883
|
+
medium: {
|
|
3884
|
+
fontSize: string;
|
|
3885
|
+
fontWeight: number;
|
|
3886
|
+
lineHeight: number;
|
|
3887
|
+
};
|
|
3888
|
+
small: {
|
|
3889
|
+
fontSize: string;
|
|
3890
|
+
fontWeight: number;
|
|
3891
|
+
lineHeight: number;
|
|
3892
|
+
};
|
|
3893
|
+
};
|
|
3894
|
+
micro: {
|
|
3895
|
+
/** 10px - Absolute minimum for brief status text */
|
|
3896
|
+
xs: {
|
|
3897
|
+
fontSize: string;
|
|
3898
|
+
fontWeight: number;
|
|
3899
|
+
lineHeight: number;
|
|
3900
|
+
letterSpacing: string;
|
|
3901
|
+
};
|
|
3902
|
+
/** 11px - Primary micro size for badges, counters */
|
|
3903
|
+
sm: {
|
|
3904
|
+
fontSize: string;
|
|
3905
|
+
fontWeight: number;
|
|
3906
|
+
lineHeight: number;
|
|
3907
|
+
letterSpacing: string;
|
|
3908
|
+
};
|
|
3909
|
+
};
|
|
3910
|
+
dense: {
|
|
3911
|
+
/** Badge counts, status dots - 10px */
|
|
3912
|
+
badge: string;
|
|
3913
|
+
/** Metadata, timestamps, dense tables - 12px */
|
|
3914
|
+
text: string;
|
|
3915
|
+
};
|
|
3916
|
+
data: {
|
|
3917
|
+
/** Monospace styling for numeric values in tables */
|
|
3918
|
+
numeric: {
|
|
3919
|
+
fontFamily: string;
|
|
3920
|
+
fontWeight: number;
|
|
3921
|
+
fontFeatureSettings: string;
|
|
3922
|
+
};
|
|
3923
|
+
/** Code/technical content styling */
|
|
3924
|
+
code: {
|
|
3925
|
+
fontFamily: string;
|
|
3926
|
+
fontSize: string;
|
|
3927
|
+
fontWeight: number;
|
|
3928
|
+
lineHeight: number;
|
|
3929
|
+
};
|
|
3930
|
+
};
|
|
3931
|
+
};
|
|
3932
|
+
spacing: {
|
|
3933
|
+
component: {
|
|
3934
|
+
paddingXs: number;
|
|
3935
|
+
paddingSm: number;
|
|
3936
|
+
paddingMd: number;
|
|
3937
|
+
paddingLg: number;
|
|
3938
|
+
paddingXl: number;
|
|
3939
|
+
gapXs: number;
|
|
3940
|
+
gapSm: number;
|
|
3941
|
+
gapMd: number;
|
|
3942
|
+
gapLg: number;
|
|
3943
|
+
};
|
|
3944
|
+
layout: {
|
|
3945
|
+
pagePadding: number;
|
|
3946
|
+
sectionGap: number;
|
|
3947
|
+
containerMaxWidth: number;
|
|
3948
|
+
headerHeight: number;
|
|
3949
|
+
sidebarWidthExpanded: number;
|
|
3950
|
+
sidebarWidthCollapsed: number;
|
|
3951
|
+
aiPanelWidth: number;
|
|
3952
|
+
gutter: number;
|
|
3953
|
+
contentPadding: number;
|
|
3954
|
+
};
|
|
3955
|
+
};
|
|
3956
|
+
borders: {
|
|
3957
|
+
/**
|
|
3958
|
+
* Semantic border radius assignments
|
|
3959
|
+
* Based on component size and nesting requirements:
|
|
3960
|
+
* - Outer radius = Inner radius + Padding
|
|
3961
|
+
*/
|
|
3962
|
+
radius: {
|
|
3963
|
+
/** Buttons use full pill shape */
|
|
3964
|
+
button: number;
|
|
3965
|
+
/** Inputs use sm (6px) for 32-40px height elements */
|
|
3966
|
+
input: number;
|
|
3967
|
+
/** Cards use md (8px) for subtle rounding */
|
|
3968
|
+
card: number;
|
|
3969
|
+
/** Modals use lg (12px) - allows nested cards with md */
|
|
3970
|
+
modal: number;
|
|
3971
|
+
/** Large modals use xl (16px) for complex nested content */
|
|
3972
|
+
modalLarge: number;
|
|
3973
|
+
/** Badges use sm (6px) for subtle pill */
|
|
3974
|
+
badge: number;
|
|
3975
|
+
/** Avatars use full for circular shape */
|
|
3976
|
+
avatar: number;
|
|
3977
|
+
/** Chips/tags use sm (6px) */
|
|
3978
|
+
chip: number;
|
|
3979
|
+
/** Menu items use sm (6px) */
|
|
3980
|
+
menuItem: number;
|
|
3981
|
+
/** Dropdown/popover menus use lg (12px) - corrected to match actual usage */
|
|
3982
|
+
menu: number;
|
|
3983
|
+
/** Tooltips use md (8px) */
|
|
3984
|
+
tooltip: number;
|
|
3985
|
+
/** Small icon containers use xs (4px) */
|
|
3986
|
+
iconContainer: number;
|
|
3987
|
+
/** Sharp edges - 0px */
|
|
3988
|
+
none: number;
|
|
3989
|
+
/** Minimal softening - 4px */
|
|
3990
|
+
subtle: number;
|
|
3991
|
+
/** Noticeable curves - 6px */
|
|
3992
|
+
soft: number;
|
|
3993
|
+
/** Prominent curves - 8px */
|
|
3994
|
+
rounded: number;
|
|
3995
|
+
/** Maximum curvature - 9999px */
|
|
3996
|
+
pill: number;
|
|
3997
|
+
/** Perfect circle - 50% */
|
|
3998
|
+
circle: string;
|
|
3999
|
+
/** Skeleton loaders - 4px */
|
|
4000
|
+
skeleton: number;
|
|
4001
|
+
/** Table cells - 0px for data density */
|
|
4002
|
+
tableCell: number;
|
|
4003
|
+
};
|
|
4004
|
+
/**
|
|
4005
|
+
* Pre-formatted px strings for MUI sx prop
|
|
4006
|
+
* Use these when MUI would interpret numbers as spacing multipliers
|
|
4007
|
+
*/
|
|
4008
|
+
radiusPx: {
|
|
4009
|
+
none: string;
|
|
4010
|
+
xs: string;
|
|
4011
|
+
sm: string;
|
|
4012
|
+
md: string;
|
|
4013
|
+
lg: string;
|
|
4014
|
+
xl: string;
|
|
4015
|
+
'2xl': string;
|
|
4016
|
+
'3xl': string;
|
|
4017
|
+
full: string;
|
|
4018
|
+
};
|
|
4019
|
+
width: {
|
|
4020
|
+
default: number;
|
|
4021
|
+
focus: number;
|
|
4022
|
+
thick: number;
|
|
4023
|
+
};
|
|
4024
|
+
};
|
|
4025
|
+
shadows: {
|
|
4026
|
+
card: string;
|
|
4027
|
+
dropdown: string;
|
|
4028
|
+
modal: string;
|
|
4029
|
+
button: string;
|
|
4030
|
+
input: string;
|
|
4031
|
+
inputFocus: string;
|
|
4032
|
+
};
|
|
4033
|
+
motion: {
|
|
4034
|
+
duration: {
|
|
4035
|
+
instant: string;
|
|
4036
|
+
fast: string;
|
|
4037
|
+
normal: string;
|
|
4038
|
+
slow: string;
|
|
4039
|
+
};
|
|
4040
|
+
easing: {
|
|
4041
|
+
default: string;
|
|
4042
|
+
enter: string;
|
|
4043
|
+
exit: string;
|
|
4044
|
+
};
|
|
4045
|
+
};
|
|
4046
|
+
effects: {
|
|
4047
|
+
/**
|
|
4048
|
+
* Overlay effects for interaction states and backdrops
|
|
4049
|
+
*/
|
|
4050
|
+
overlay: {
|
|
4051
|
+
/** Modal/drawer backdrop - 50% black */
|
|
4052
|
+
scrim: string;
|
|
4053
|
+
/** Standard hover - 8% black */
|
|
4054
|
+
hover: string;
|
|
4055
|
+
/** Subtle hover for dense UI - 4% black */
|
|
4056
|
+
hoverSubtle: string;
|
|
4057
|
+
/** Pressed/active - 12% black */
|
|
4058
|
+
pressed: string;
|
|
4059
|
+
/** Selected row/item - 8% black */
|
|
4060
|
+
selected: string;
|
|
4061
|
+
/** Disabled overlay - 38% black */
|
|
4062
|
+
disabled: string;
|
|
4063
|
+
};
|
|
4064
|
+
/**
|
|
4065
|
+
* White text/icon opacity for dark backgrounds
|
|
4066
|
+
* Based on Material Design text emphasis levels
|
|
4067
|
+
*/
|
|
4068
|
+
onDark: {
|
|
4069
|
+
/** High emphasis - 87% white */
|
|
4070
|
+
primary: string;
|
|
4071
|
+
/** Medium emphasis - 70% white */
|
|
4072
|
+
secondary: string;
|
|
4073
|
+
/** Low emphasis - 50% white */
|
|
4074
|
+
tertiary: string;
|
|
4075
|
+
/** Borders/dividers - 12% white */
|
|
4076
|
+
subtle: string;
|
|
4077
|
+
/** Background overlays on dark surfaces - 10% white */
|
|
4078
|
+
tint: string;
|
|
4079
|
+
/** Visible dividers on dark backgrounds - 24% white */
|
|
4080
|
+
divider: string;
|
|
4081
|
+
/** High-visibility text/icons on dark - 80% white */
|
|
4082
|
+
emphasis: string;
|
|
4083
|
+
/** Maximum contrast - avoids pure white - 95% white */
|
|
4084
|
+
contrast: string;
|
|
4085
|
+
};
|
|
4086
|
+
/**
|
|
4087
|
+
* Shadow effects for elevation hierarchy
|
|
4088
|
+
* Replaces hardcoded rgba shadows
|
|
4089
|
+
*/
|
|
4090
|
+
shadow: {
|
|
4091
|
+
/** Resting card elevation */
|
|
4092
|
+
surface: string;
|
|
4093
|
+
/** Hovered/focused elevation */
|
|
4094
|
+
raised: string;
|
|
4095
|
+
/** Dropdown/popover/nav menus */
|
|
4096
|
+
floating: string;
|
|
4097
|
+
/** Modal dialogs */
|
|
4098
|
+
dialog: string;
|
|
4099
|
+
/** Pressed/inset appearance */
|
|
4100
|
+
inset: string;
|
|
4101
|
+
};
|
|
4102
|
+
/**
|
|
4103
|
+
* Focus ring effects for accessibility
|
|
4104
|
+
*/
|
|
4105
|
+
focus: {
|
|
4106
|
+
/** Standard focus ring - purple brand */
|
|
4107
|
+
ring: string;
|
|
4108
|
+
/** Focus on dark backgrounds */
|
|
4109
|
+
ringOnDark: string;
|
|
4110
|
+
/** Emphasized focus for primary actions */
|
|
4111
|
+
glow: string;
|
|
4112
|
+
};
|
|
4113
|
+
/**
|
|
4114
|
+
* State indicator effects (subtle fills and emphasis borders)
|
|
4115
|
+
*/
|
|
4116
|
+
state: {
|
|
4117
|
+
/** Error background - 5% red */
|
|
4118
|
+
errorSubtle: string;
|
|
4119
|
+
/** Error border - 30% red */
|
|
4120
|
+
errorEmphasis: string;
|
|
4121
|
+
/** Warning background - 10% yellow */
|
|
4122
|
+
warningSubtle: string;
|
|
4123
|
+
/** Warning border - 40% yellow */
|
|
4124
|
+
warningEmphasis: string;
|
|
4125
|
+
/** Success background - 5% green */
|
|
4126
|
+
successSubtle: string;
|
|
4127
|
+
/** Success border - 30% green */
|
|
4128
|
+
successEmphasis: string;
|
|
4129
|
+
/** Info background - 5% blue */
|
|
4130
|
+
infoSubtle: string;
|
|
4131
|
+
/** Info border - 30% blue */
|
|
4132
|
+
infoEmphasis: string;
|
|
4133
|
+
};
|
|
4134
|
+
};
|
|
4135
|
+
iconSize: {
|
|
4136
|
+
/** Within text flow - 14px */
|
|
4137
|
+
inline: number;
|
|
4138
|
+
/** Standard controls (buttons, inputs) - 16px */
|
|
4139
|
+
control: number;
|
|
4140
|
+
/** Navigation and toolbar - 20px */
|
|
4141
|
+
navigation: number;
|
|
4142
|
+
/** Visual anchor (empty states) - 24px */
|
|
4143
|
+
prominent: number;
|
|
4144
|
+
/** Hero sections - 28px */
|
|
4145
|
+
hero: number;
|
|
4146
|
+
/** Maximum impact - 36px */
|
|
4147
|
+
display: number;
|
|
4148
|
+
};
|
|
4149
|
+
inline: {
|
|
4150
|
+
/** Minimum internal space - 4px */
|
|
4151
|
+
tight: number;
|
|
4152
|
+
/** Dense but readable - 8px */
|
|
4153
|
+
compact: number;
|
|
4154
|
+
/** Balanced density - 12px */
|
|
4155
|
+
snug: number;
|
|
4156
|
+
/** Standard breathing room - 16px */
|
|
4157
|
+
comfortable: number;
|
|
4158
|
+
/** Generous without excess - 20px */
|
|
4159
|
+
relaxed: number;
|
|
4160
|
+
/** Maximum breathing room - 24px */
|
|
4161
|
+
spacious: number;
|
|
4162
|
+
};
|
|
4163
|
+
stack: {
|
|
4164
|
+
/** Minimum vertical space - 4px */
|
|
4165
|
+
tight: number;
|
|
4166
|
+
/** Dense but readable - 8px */
|
|
4167
|
+
compact: number;
|
|
4168
|
+
/** Balanced density - 12px */
|
|
4169
|
+
snug: number;
|
|
4170
|
+
/** Standard vertical space - 16px */
|
|
4171
|
+
comfortable: number;
|
|
4172
|
+
/** Generous without excess - 20px */
|
|
4173
|
+
relaxed: number;
|
|
4174
|
+
/** Maximum vertical space - 24px */
|
|
4175
|
+
spacious: number;
|
|
4176
|
+
/** @deprecated Use tight instead */
|
|
4177
|
+
related: number;
|
|
4178
|
+
/** @deprecated Use compact instead */
|
|
4179
|
+
grouped: number;
|
|
4180
|
+
/** @deprecated Use comfortable instead */
|
|
4181
|
+
separated: number;
|
|
4182
|
+
/** @deprecated Use spacious instead */
|
|
4183
|
+
distinct: number;
|
|
4184
|
+
};
|
|
4185
|
+
density: {
|
|
4186
|
+
/** Maximum info density */
|
|
4187
|
+
compact: {
|
|
4188
|
+
rowHeight: number;
|
|
4189
|
+
cellPadding: number;
|
|
4190
|
+
gap: number;
|
|
4191
|
+
};
|
|
4192
|
+
/** Balanced readability/density */
|
|
4193
|
+
standard: {
|
|
4194
|
+
rowHeight: number;
|
|
4195
|
+
cellPadding: number;
|
|
4196
|
+
gap: number;
|
|
4197
|
+
};
|
|
4198
|
+
/** Prioritize readability */
|
|
4199
|
+
comfortable: {
|
|
4200
|
+
rowHeight: number;
|
|
4201
|
+
cellPadding: number;
|
|
4202
|
+
gap: number;
|
|
4203
|
+
};
|
|
4204
|
+
};
|
|
4205
|
+
};
|
|
4206
|
+
component: {
|
|
4207
|
+
button: {
|
|
4208
|
+
height: {
|
|
4209
|
+
small: number;
|
|
4210
|
+
medium: number;
|
|
4211
|
+
large: number;
|
|
4212
|
+
};
|
|
4213
|
+
padding: {
|
|
4214
|
+
small: {
|
|
4215
|
+
x: number;
|
|
4216
|
+
y: number;
|
|
4217
|
+
};
|
|
4218
|
+
medium: {
|
|
4219
|
+
x: number;
|
|
4220
|
+
y: number;
|
|
4221
|
+
};
|
|
4222
|
+
large: {
|
|
4223
|
+
x: number;
|
|
4224
|
+
y: number;
|
|
4225
|
+
};
|
|
4226
|
+
};
|
|
4227
|
+
fontSize: {
|
|
4228
|
+
small: string;
|
|
4229
|
+
medium: string;
|
|
4230
|
+
large: string;
|
|
4231
|
+
};
|
|
4232
|
+
borderRadius: number;
|
|
4233
|
+
primary: {
|
|
4234
|
+
background: string;
|
|
4235
|
+
backgroundHover: string;
|
|
4236
|
+
text: string;
|
|
4237
|
+
};
|
|
4238
|
+
secondary: {
|
|
4239
|
+
background: string;
|
|
4240
|
+
backgroundHover: string;
|
|
4241
|
+
text: string;
|
|
4242
|
+
};
|
|
4243
|
+
outlined: {
|
|
4244
|
+
background: string;
|
|
4245
|
+
backgroundHover: string;
|
|
4246
|
+
border: string;
|
|
4247
|
+
text: string;
|
|
4248
|
+
textHover: string;
|
|
4249
|
+
};
|
|
4250
|
+
};
|
|
4251
|
+
input: {
|
|
4252
|
+
height: {
|
|
4253
|
+
small: number;
|
|
4254
|
+
medium: number;
|
|
4255
|
+
large: number;
|
|
4256
|
+
};
|
|
4257
|
+
padding: {
|
|
4258
|
+
small: {
|
|
4259
|
+
x: number;
|
|
4260
|
+
y: number;
|
|
4261
|
+
};
|
|
4262
|
+
medium: {
|
|
4263
|
+
x: number;
|
|
4264
|
+
y: number;
|
|
4265
|
+
};
|
|
4266
|
+
large: {
|
|
4267
|
+
x: number;
|
|
4268
|
+
y: number;
|
|
4269
|
+
};
|
|
4270
|
+
};
|
|
4271
|
+
fontSize: {
|
|
4272
|
+
small: string;
|
|
4273
|
+
medium: string;
|
|
4274
|
+
large: string;
|
|
4275
|
+
};
|
|
4276
|
+
borderRadius: number;
|
|
4277
|
+
borderColor: {
|
|
4278
|
+
default: string;
|
|
4279
|
+
hover: string;
|
|
4280
|
+
focus: string;
|
|
4281
|
+
error: string;
|
|
4282
|
+
};
|
|
4283
|
+
background: {
|
|
4284
|
+
default: string;
|
|
4285
|
+
disabled: string;
|
|
4286
|
+
};
|
|
4287
|
+
};
|
|
4288
|
+
card: {
|
|
4289
|
+
padding: {
|
|
4290
|
+
small: number;
|
|
4291
|
+
medium: number;
|
|
4292
|
+
large: number;
|
|
4293
|
+
};
|
|
4294
|
+
borderRadius: number;
|
|
4295
|
+
shadow: string;
|
|
4296
|
+
background: string;
|
|
4297
|
+
border: string;
|
|
4298
|
+
};
|
|
4299
|
+
avatar: {
|
|
4300
|
+
size: {
|
|
4301
|
+
xs: number;
|
|
4302
|
+
sm: number;
|
|
4303
|
+
md: number;
|
|
4304
|
+
lg: number;
|
|
4305
|
+
xl: number;
|
|
4306
|
+
'2xl': number;
|
|
4307
|
+
};
|
|
4308
|
+
borderRadius: number;
|
|
4309
|
+
fontSize: {
|
|
4310
|
+
xs: string;
|
|
4311
|
+
sm: string;
|
|
4312
|
+
md: string;
|
|
4313
|
+
lg: string;
|
|
4314
|
+
xl: string;
|
|
4315
|
+
'2xl': string;
|
|
4316
|
+
};
|
|
4317
|
+
};
|
|
4318
|
+
badge: {
|
|
4319
|
+
padding: {
|
|
4320
|
+
x: number;
|
|
4321
|
+
y: number;
|
|
4322
|
+
};
|
|
4323
|
+
borderRadius: number;
|
|
4324
|
+
fontSize: string;
|
|
4325
|
+
fontWeight: number;
|
|
4326
|
+
};
|
|
4327
|
+
chip: {
|
|
4328
|
+
height: {
|
|
4329
|
+
small: number;
|
|
4330
|
+
medium: number;
|
|
4331
|
+
};
|
|
4332
|
+
padding: {
|
|
4333
|
+
small: {
|
|
4334
|
+
x: number;
|
|
4335
|
+
y: number;
|
|
4336
|
+
};
|
|
4337
|
+
medium: {
|
|
4338
|
+
x: number;
|
|
4339
|
+
y: number;
|
|
4340
|
+
};
|
|
4341
|
+
};
|
|
4342
|
+
borderRadius: number;
|
|
4343
|
+
fontSize: {
|
|
4344
|
+
small: string;
|
|
4345
|
+
medium: string;
|
|
4346
|
+
};
|
|
4347
|
+
};
|
|
4348
|
+
tooltip: {
|
|
4349
|
+
padding: {
|
|
4350
|
+
x: number;
|
|
4351
|
+
y: number;
|
|
4352
|
+
};
|
|
4353
|
+
borderRadius: number;
|
|
4354
|
+
fontSize: string;
|
|
4355
|
+
background: string;
|
|
4356
|
+
text: string;
|
|
4357
|
+
};
|
|
4358
|
+
modal: {
|
|
4359
|
+
padding: number;
|
|
4360
|
+
borderRadius: number;
|
|
4361
|
+
shadow: string;
|
|
4362
|
+
backdropOpacity: number;
|
|
4363
|
+
width: {
|
|
4364
|
+
small: number;
|
|
4365
|
+
medium: number;
|
|
4366
|
+
large: number;
|
|
4367
|
+
fullWidth: string;
|
|
4368
|
+
};
|
|
4369
|
+
};
|
|
4370
|
+
switch: {
|
|
4371
|
+
width: {
|
|
4372
|
+
small: number;
|
|
4373
|
+
medium: number;
|
|
4374
|
+
};
|
|
4375
|
+
height: {
|
|
4376
|
+
small: number;
|
|
4377
|
+
medium: number;
|
|
4378
|
+
};
|
|
4379
|
+
thumb: {
|
|
4380
|
+
small: number;
|
|
4381
|
+
medium: number;
|
|
4382
|
+
};
|
|
4383
|
+
track: {
|
|
4384
|
+
off: string;
|
|
4385
|
+
on: string;
|
|
4386
|
+
};
|
|
4387
|
+
};
|
|
4388
|
+
navigation: {
|
|
4389
|
+
header: {
|
|
4390
|
+
height: number;
|
|
4391
|
+
background: string;
|
|
4392
|
+
text: string;
|
|
4393
|
+
};
|
|
4394
|
+
sidebar: {
|
|
4395
|
+
width: number;
|
|
4396
|
+
collapsedWidth: number;
|
|
4397
|
+
background: string;
|
|
4398
|
+
};
|
|
4399
|
+
item: {
|
|
4400
|
+
height: number;
|
|
4401
|
+
padding: {
|
|
4402
|
+
x: number;
|
|
4403
|
+
y: number;
|
|
4404
|
+
};
|
|
4405
|
+
borderRadius: number;
|
|
4406
|
+
};
|
|
4407
|
+
};
|
|
4408
|
+
};
|
|
4409
|
+
darkMode: TrinityDarkModeTokens;
|
|
4410
|
+
hierarchy: {
|
|
4411
|
+
/** Attention/importance levels */
|
|
4412
|
+
readonly attention: {
|
|
4413
|
+
/** Most important actions/content - demands immediate attention */
|
|
4414
|
+
readonly primary: {
|
|
4415
|
+
readonly prominence: 5;
|
|
4416
|
+
readonly usage: readonly ["Primary CTAs", "Critical alerts", "Page titles", "Current navigation"];
|
|
4417
|
+
readonly minContrast: 7;
|
|
4418
|
+
};
|
|
4419
|
+
/** Important but not critical - strong visual presence */
|
|
4420
|
+
readonly secondary: {
|
|
4421
|
+
readonly prominence: 4;
|
|
4422
|
+
readonly usage: readonly ["Secondary buttons", "Section headings", "Key information", "Active states"];
|
|
4423
|
+
readonly minContrast: 4.5;
|
|
4424
|
+
};
|
|
4425
|
+
/** Supportive content - visible but not competing */
|
|
4426
|
+
readonly tertiary: {
|
|
4427
|
+
readonly prominence: 3;
|
|
4428
|
+
readonly usage: readonly ["Body text", "Form labels", "Navigation items", "Card content"];
|
|
4429
|
+
readonly minContrast: 4.5;
|
|
4430
|
+
};
|
|
4431
|
+
/** Background/supporting information */
|
|
4432
|
+
readonly muted: {
|
|
4433
|
+
readonly prominence: 2;
|
|
4434
|
+
readonly usage: readonly ["Helper text", "Timestamps", "Metadata", "Placeholders"];
|
|
4435
|
+
readonly minContrast: 3;
|
|
4436
|
+
};
|
|
4437
|
+
/** Non-interactive or unavailable */
|
|
4438
|
+
readonly disabled: {
|
|
4439
|
+
readonly prominence: 1;
|
|
4440
|
+
readonly usage: readonly ["Disabled controls", "Inactive states", "Read-only fields"];
|
|
4441
|
+
readonly minContrast: 2.5;
|
|
4442
|
+
};
|
|
4443
|
+
};
|
|
4444
|
+
/** Typography scale and weights */
|
|
4445
|
+
readonly typography: {
|
|
4446
|
+
readonly display: {
|
|
4447
|
+
readonly level: 1;
|
|
4448
|
+
readonly scale: {
|
|
4449
|
+
readonly large: {
|
|
4450
|
+
readonly size: "3rem";
|
|
4451
|
+
readonly weight: 700;
|
|
4452
|
+
readonly lineHeight: 1.1;
|
|
4453
|
+
readonly tracking: "-0.02em";
|
|
4454
|
+
};
|
|
4455
|
+
readonly medium: {
|
|
4456
|
+
readonly size: "2.25rem";
|
|
4457
|
+
readonly weight: 700;
|
|
4458
|
+
readonly lineHeight: 1.15;
|
|
4459
|
+
readonly tracking: "-0.01em";
|
|
4460
|
+
};
|
|
4461
|
+
readonly small: {
|
|
4462
|
+
readonly size: "1.875rem";
|
|
4463
|
+
readonly weight: 600;
|
|
4464
|
+
readonly lineHeight: 1.2;
|
|
4465
|
+
readonly tracking: "0";
|
|
4466
|
+
};
|
|
4467
|
+
};
|
|
4468
|
+
};
|
|
4469
|
+
readonly heading: {
|
|
4470
|
+
readonly level: 2;
|
|
4471
|
+
readonly scale: {
|
|
4472
|
+
readonly h1: {
|
|
4473
|
+
readonly size: "1.875rem";
|
|
4474
|
+
readonly weight: 700;
|
|
4475
|
+
readonly lineHeight: 1.25;
|
|
4476
|
+
};
|
|
4477
|
+
readonly h2: {
|
|
4478
|
+
readonly size: "1.5rem";
|
|
4479
|
+
readonly weight: 600;
|
|
4480
|
+
readonly lineHeight: 1.3;
|
|
4481
|
+
};
|
|
4482
|
+
readonly h3: {
|
|
4483
|
+
readonly size: "1.25rem";
|
|
4484
|
+
readonly weight: 600;
|
|
4485
|
+
readonly lineHeight: 1.35;
|
|
4486
|
+
};
|
|
4487
|
+
readonly h4: {
|
|
4488
|
+
readonly size: "1.125rem";
|
|
4489
|
+
readonly weight: 600;
|
|
4490
|
+
readonly lineHeight: 1.4;
|
|
4491
|
+
};
|
|
4492
|
+
readonly h5: {
|
|
4493
|
+
readonly size: "1rem";
|
|
4494
|
+
readonly weight: 600;
|
|
4495
|
+
readonly lineHeight: 1.45;
|
|
4496
|
+
};
|
|
4497
|
+
readonly h6: {
|
|
4498
|
+
readonly size: "0.875rem";
|
|
4499
|
+
readonly weight: 600;
|
|
4500
|
+
readonly lineHeight: 1.5;
|
|
4501
|
+
};
|
|
4502
|
+
};
|
|
4503
|
+
};
|
|
4504
|
+
readonly body: {
|
|
4505
|
+
readonly level: 3;
|
|
4506
|
+
readonly scale: {
|
|
4507
|
+
readonly large: {
|
|
4508
|
+
readonly size: "1.125rem";
|
|
4509
|
+
readonly weight: 400;
|
|
4510
|
+
readonly lineHeight: 1.6;
|
|
4511
|
+
};
|
|
4512
|
+
readonly medium: {
|
|
4513
|
+
readonly size: "1rem";
|
|
4514
|
+
readonly weight: 400;
|
|
4515
|
+
readonly lineHeight: 1.5;
|
|
4516
|
+
};
|
|
4517
|
+
readonly small: {
|
|
4518
|
+
readonly size: "0.875rem";
|
|
4519
|
+
readonly weight: 400;
|
|
4520
|
+
readonly lineHeight: 1.5;
|
|
4521
|
+
};
|
|
4522
|
+
};
|
|
4523
|
+
};
|
|
4524
|
+
readonly label: {
|
|
4525
|
+
readonly level: 4;
|
|
4526
|
+
readonly scale: {
|
|
4527
|
+
readonly large: {
|
|
4528
|
+
readonly size: "1rem";
|
|
4529
|
+
readonly weight: 500;
|
|
4530
|
+
readonly lineHeight: 1.25;
|
|
4531
|
+
};
|
|
4532
|
+
readonly medium: {
|
|
4533
|
+
readonly size: "0.875rem";
|
|
4534
|
+
readonly weight: 500;
|
|
4535
|
+
readonly lineHeight: 1.25;
|
|
4536
|
+
};
|
|
4537
|
+
readonly small: {
|
|
4538
|
+
readonly size: "0.75rem";
|
|
4539
|
+
readonly weight: 500;
|
|
4540
|
+
readonly lineHeight: 1.25;
|
|
4541
|
+
};
|
|
4542
|
+
};
|
|
4543
|
+
};
|
|
4544
|
+
readonly caption: {
|
|
4545
|
+
readonly level: 5;
|
|
4546
|
+
readonly scale: {
|
|
4547
|
+
readonly default: {
|
|
4548
|
+
readonly size: "0.75rem";
|
|
4549
|
+
readonly weight: 400;
|
|
4550
|
+
readonly lineHeight: 1.4;
|
|
4551
|
+
};
|
|
4552
|
+
readonly emphasis: {
|
|
4553
|
+
readonly size: "0.75rem";
|
|
4554
|
+
readonly weight: 500;
|
|
4555
|
+
readonly lineHeight: 1.4;
|
|
4556
|
+
};
|
|
4557
|
+
};
|
|
4558
|
+
};
|
|
4559
|
+
readonly overline: {
|
|
4560
|
+
readonly level: 6;
|
|
4561
|
+
readonly scale: {
|
|
4562
|
+
readonly default: {
|
|
4563
|
+
readonly size: "0.625rem";
|
|
4564
|
+
readonly weight: 600;
|
|
4565
|
+
readonly lineHeight: 1.5;
|
|
4566
|
+
readonly tracking: "0.1em";
|
|
4567
|
+
readonly transform: "uppercase";
|
|
4568
|
+
};
|
|
4569
|
+
};
|
|
4570
|
+
};
|
|
4571
|
+
};
|
|
4572
|
+
/** Z-axis elevation system */
|
|
4573
|
+
readonly elevation: {
|
|
4574
|
+
/** Ground level - page background, sunken areas */
|
|
4575
|
+
readonly ground: {
|
|
4576
|
+
readonly level: 0;
|
|
4577
|
+
readonly zIndex: 0;
|
|
4578
|
+
readonly shadow: "none";
|
|
4579
|
+
readonly description: "Page backgrounds, wells, sunken inputs";
|
|
4580
|
+
};
|
|
4581
|
+
/** Resting - default content surfaces */
|
|
4582
|
+
readonly resting: {
|
|
4583
|
+
readonly level: 1;
|
|
4584
|
+
readonly zIndex: 1;
|
|
4585
|
+
readonly shadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)";
|
|
4586
|
+
readonly description: "Cards, panels at rest";
|
|
4587
|
+
};
|
|
4588
|
+
/** Raised - interactive/hover states */
|
|
4589
|
+
readonly raised: {
|
|
4590
|
+
readonly level: 2;
|
|
4591
|
+
readonly zIndex: 10;
|
|
4592
|
+
readonly shadow: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)";
|
|
4593
|
+
readonly description: "Hovered cards, active buttons";
|
|
4594
|
+
};
|
|
4595
|
+
/** Floating - dropdowns, menus */
|
|
4596
|
+
readonly floating: {
|
|
4597
|
+
readonly level: 3;
|
|
4598
|
+
readonly zIndex: 1000;
|
|
4599
|
+
readonly shadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
|
|
4600
|
+
readonly description: "Dropdown menus, popovers";
|
|
4601
|
+
};
|
|
4602
|
+
/** Sticky - headers, navigation */
|
|
4603
|
+
readonly sticky: {
|
|
4604
|
+
readonly level: 4;
|
|
4605
|
+
readonly zIndex: 1020;
|
|
4606
|
+
readonly shadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
|
|
4607
|
+
readonly description: "Sticky headers, fixed navigation";
|
|
4608
|
+
};
|
|
4609
|
+
/** Overlay - backdrop for modals */
|
|
4610
|
+
readonly overlay: {
|
|
4611
|
+
readonly level: 5;
|
|
4612
|
+
readonly zIndex: 1040;
|
|
4613
|
+
readonly shadow: "none";
|
|
4614
|
+
readonly description: "Modal/dialog backdrops";
|
|
4615
|
+
};
|
|
4616
|
+
/** Dialog - modals, alerts */
|
|
4617
|
+
readonly dialog: {
|
|
4618
|
+
readonly level: 6;
|
|
4619
|
+
readonly zIndex: 1050;
|
|
4620
|
+
readonly shadow: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)";
|
|
4621
|
+
readonly description: "Modal dialogs, alerts";
|
|
4622
|
+
};
|
|
4623
|
+
/** Popover - tooltips, notifications */
|
|
4624
|
+
readonly popover: {
|
|
4625
|
+
readonly level: 7;
|
|
4626
|
+
readonly zIndex: 1060;
|
|
4627
|
+
readonly shadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)";
|
|
4628
|
+
readonly description: "Popovers, floating panels";
|
|
4629
|
+
};
|
|
4630
|
+
/** Tooltip - highest priority overlays */
|
|
4631
|
+
readonly tooltip: {
|
|
4632
|
+
readonly level: 8;
|
|
4633
|
+
readonly zIndex: 1070;
|
|
4634
|
+
readonly shadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
|
|
4635
|
+
readonly description: "Tooltips, critical notifications";
|
|
4636
|
+
};
|
|
4637
|
+
};
|
|
4638
|
+
/** Size scaling system */
|
|
4639
|
+
readonly scale: {
|
|
4640
|
+
/** Scale ratio for size progression */
|
|
4641
|
+
readonly ratio: 1.25;
|
|
4642
|
+
/** Size scale multipliers */
|
|
4643
|
+
readonly sizes: {
|
|
4644
|
+
readonly '3xs': 0.512;
|
|
4645
|
+
readonly '2xs': 0.64;
|
|
4646
|
+
readonly xs: 0.8;
|
|
4647
|
+
readonly sm: 1;
|
|
4648
|
+
readonly md: 1.25;
|
|
4649
|
+
readonly lg: 1.563;
|
|
4650
|
+
readonly xl: 1.953;
|
|
4651
|
+
readonly '2xl': 2.441;
|
|
4652
|
+
readonly '3xl': 3.052;
|
|
4653
|
+
};
|
|
4654
|
+
/** Icon sizes following the scale */
|
|
4655
|
+
readonly icons: {
|
|
4656
|
+
readonly xs: 12;
|
|
4657
|
+
readonly sm: 16;
|
|
4658
|
+
readonly md: 20;
|
|
4659
|
+
readonly lg: 24;
|
|
4660
|
+
readonly xl: 32;
|
|
4661
|
+
readonly '2xl': 40;
|
|
4662
|
+
};
|
|
4663
|
+
/** Touch target minimums (accessibility) */
|
|
4664
|
+
readonly touchTargets: {
|
|
4665
|
+
readonly minimum: 44;
|
|
4666
|
+
readonly comfortable: 48;
|
|
4667
|
+
readonly spacious: 56;
|
|
4668
|
+
};
|
|
4669
|
+
};
|
|
4670
|
+
/** Contrast levels */
|
|
4671
|
+
readonly contrast: {
|
|
4672
|
+
/** High contrast - primary actions, critical info */
|
|
4673
|
+
readonly high: {
|
|
4674
|
+
readonly foreground: string;
|
|
4675
|
+
readonly background: string;
|
|
4676
|
+
readonly ratio: 12.5;
|
|
4677
|
+
};
|
|
4678
|
+
/** Medium contrast - body content */
|
|
4679
|
+
readonly medium: {
|
|
4680
|
+
readonly foreground: string;
|
|
4681
|
+
readonly background: string;
|
|
4682
|
+
readonly ratio: 7.5;
|
|
4683
|
+
};
|
|
4684
|
+
/** Low contrast - secondary/muted content */
|
|
4685
|
+
readonly low: {
|
|
4686
|
+
readonly foreground: string;
|
|
4687
|
+
readonly background: string;
|
|
4688
|
+
readonly ratio: 4.5;
|
|
4689
|
+
};
|
|
4690
|
+
/** Subtle - disabled/decorative */
|
|
4691
|
+
readonly subtle: {
|
|
4692
|
+
readonly foreground: string;
|
|
4693
|
+
readonly background: string;
|
|
4694
|
+
readonly ratio: 3;
|
|
4695
|
+
};
|
|
4696
|
+
};
|
|
4697
|
+
/** Interactive states */
|
|
4698
|
+
readonly interactive: {
|
|
4699
|
+
/** Default resting state */
|
|
4700
|
+
readonly default: {
|
|
4701
|
+
readonly opacity: 1;
|
|
4702
|
+
readonly transform: "none";
|
|
4703
|
+
readonly transition: "all 150ms ease-out";
|
|
4704
|
+
};
|
|
4705
|
+
/** Mouse hovering over element */
|
|
4706
|
+
readonly hover: {
|
|
4707
|
+
readonly opacity: 1;
|
|
4708
|
+
readonly transform: "translateY(-1px)";
|
|
4709
|
+
readonly transition: "all 150ms ease-out";
|
|
4710
|
+
};
|
|
4711
|
+
/** Element being pressed */
|
|
4712
|
+
readonly active: {
|
|
4713
|
+
readonly opacity: 0.9;
|
|
4714
|
+
readonly transform: "translateY(0) scale(0.98)";
|
|
4715
|
+
readonly transition: "all 50ms ease-out";
|
|
4716
|
+
};
|
|
4717
|
+
/** Keyboard focused */
|
|
4718
|
+
readonly focus: {
|
|
4719
|
+
readonly outline: `2px solid ${string}`;
|
|
4720
|
+
readonly outlineOffset: "2px";
|
|
4721
|
+
readonly transition: "outline-offset 100ms ease-out";
|
|
4722
|
+
};
|
|
4723
|
+
/** Element is disabled */
|
|
4724
|
+
readonly disabled: {
|
|
4725
|
+
readonly opacity: 0.5;
|
|
4726
|
+
readonly cursor: "not-allowed";
|
|
4727
|
+
readonly pointerEvents: "none";
|
|
4728
|
+
};
|
|
4729
|
+
};
|
|
4730
|
+
/** Spacing rhythm */
|
|
4731
|
+
readonly spacing: {
|
|
4732
|
+
/** Micro spacing - between related elements */
|
|
4733
|
+
readonly micro: {
|
|
4734
|
+
readonly 1: 4;
|
|
4735
|
+
readonly 2: 8;
|
|
4736
|
+
};
|
|
4737
|
+
/** Component spacing - within components */
|
|
4738
|
+
readonly component: {
|
|
4739
|
+
readonly 3: 12;
|
|
4740
|
+
readonly 4: 16;
|
|
4741
|
+
readonly 5: 20;
|
|
4742
|
+
};
|
|
4743
|
+
/** Section spacing - between sections */
|
|
4744
|
+
readonly section: {
|
|
4745
|
+
readonly 6: 24;
|
|
4746
|
+
readonly 8: 32;
|
|
4747
|
+
readonly 10: 40;
|
|
4748
|
+
};
|
|
4749
|
+
/** Layout spacing - page-level */
|
|
4750
|
+
readonly layout: {
|
|
4751
|
+
readonly 12: 48;
|
|
4752
|
+
readonly 16: 64;
|
|
4753
|
+
readonly 24: 96;
|
|
4754
|
+
readonly 32: 128;
|
|
4755
|
+
};
|
|
4756
|
+
};
|
|
4757
|
+
};
|
|
4758
|
+
};
|
|
4759
|
+
export default tokens;
|
|
4760
|
+
//# sourceMappingURL=tokens.d.ts.map
|