@pitchfork-ui/react 0.1.9 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +20 -5
  2. package/dist/components/Accordion/Accordion.css +85 -0
  3. package/dist/components/Accordion/Accordion2.js +96 -0
  4. package/dist/components/Alert/Alert.css +111 -0
  5. package/dist/{index8.js → components/Alert/Alert2.js} +7 -5
  6. package/dist/components/Avatar/Avatar.css +97 -0
  7. package/dist/{index10.js → components/Avatar/Avatar2.js} +2 -2
  8. package/dist/components/Badge/Badge.css +26 -0
  9. package/dist/{index23.js → components/Badge/Badge2.js} +2 -2
  10. package/dist/components/BadgeGroup/BadgeGroup.css +115 -0
  11. package/dist/{index14.js → components/BadgeGroup/BadgeGroup2.js} +2 -2
  12. package/dist/components/Breadcrumbs/Breadcrumbs.css +45 -0
  13. package/dist/{index18.js → components/Breadcrumbs/Breadcrumbs2.js} +2 -2
  14. package/dist/components/Button/Button.css +93 -0
  15. package/dist/{index12.js → components/Button/Button2.js} +2 -2
  16. package/dist/components/ButtonGroup/ButtonGroup.css +107 -0
  17. package/dist/{index16.js → components/ButtonGroup/ButtonGroup2.js} +2 -2
  18. package/dist/components/Calendar/Calendar.css +144 -0
  19. package/dist/{index40.js → components/Calendar/Calendar2.js} +4 -4
  20. package/dist/components/Card/Card.css +23 -0
  21. package/dist/{index25.js → components/Card/Card2.js} +2 -2
  22. package/dist/components/Carousel/Carousel.css +124 -0
  23. package/dist/components/Carousel/Carousel2.js +147 -0
  24. package/dist/components/Checkbox/Checkbox.css +62 -0
  25. package/dist/{index29.js → components/Checkbox/Checkbox2.js} +2 -2
  26. package/dist/components/CodeSnippet/CodeSnippet.css +155 -0
  27. package/dist/{index46.js → components/CodeSnippet/CodeSnippet2.js} +6 -6
  28. package/dist/components/ContentDivider/ContentDivider.css +38 -0
  29. package/dist/{index48.js → components/ContentDivider/ContentDivider2.js} +2 -2
  30. package/dist/components/CreditCard/CreditCard.css +139 -0
  31. package/dist/{index27.js → components/CreditCard/CreditCard2.js} +2 -2
  32. package/dist/components/DatePicker/DatePicker.css +91 -0
  33. package/dist/{index50.js → components/DatePicker/DatePicker2.js} +9 -9
  34. package/dist/components/Dropdown/Dropdown.css +149 -0
  35. package/dist/{index38.js → components/Dropdown/Dropdown2.js} +8 -9
  36. package/dist/components/EmptyState/EmptyState.css +72 -0
  37. package/dist/{index52.js → components/EmptyState/EmptyState2.js} +3 -3
  38. package/dist/components/FileUploader/FileUploader.css +135 -0
  39. package/dist/{index54.js → components/FileUploader/FileUploader2.js} +4 -4
  40. package/dist/components/GaugeChart/GaugeChart.css +63 -0
  41. package/dist/components/GaugeChart/GaugeChart2.js +74 -0
  42. package/dist/components/HeaderNavigation/HeaderNavigation.css +87 -0
  43. package/dist/{index56.js → components/HeaderNavigation/HeaderNavigation2.js} +2 -2
  44. package/dist/components/Heatmap/Heatmap.css +100 -0
  45. package/dist/components/Heatmap/Heatmap2.js +160 -0
  46. package/dist/components/Icon/Icon.css +6 -0
  47. package/dist/{index6.js → components/Icon/Icon2.js} +2 -2
  48. package/dist/components/InlineCTA/InlineCTA.css +144 -0
  49. package/dist/{index58.js → components/InlineCTA/InlineCTA2.js} +17 -5
  50. package/dist/components/Input/Input.css +75 -0
  51. package/dist/{index21.js → components/Input/Input2.js} +3 -3
  52. package/dist/components/LineBarCharts/LineBarChart.css +122 -0
  53. package/dist/{index60.js → components/LineBarCharts/LineBarChart2.js} +11 -3
  54. package/dist/components/LoadingIndicators/LoadingIndicators.css +107 -0
  55. package/dist/{index62.js → components/LoadingIndicators/LoadingIndicators2.js} +2 -2
  56. package/dist/components/Metrics/Metrics.css +106 -0
  57. package/dist/{index64.js → components/Metrics/Metrics2.js} +3 -3
  58. package/dist/components/Modal/Modal.css +198 -0
  59. package/dist/{index66.js → components/Modal/Modal2.js} +11 -9
  60. package/dist/components/MultiSelect/MultiSelect.css +174 -0
  61. package/dist/{index68.js → components/MultiSelect/MultiSelect2.js} +11 -12
  62. package/dist/components/Notification/Notification.css +242 -0
  63. package/dist/{index70.js → components/Notification/Notification2.js} +7 -5
  64. package/dist/components/PageHeader/PageHeader.css +85 -0
  65. package/dist/{index72.js → components/PageHeader/PageHeader2.js} +3 -3
  66. package/dist/components/Pagination/Pagination.css +101 -0
  67. package/dist/{index74.js → components/Pagination/Pagination2.js} +2 -2
  68. package/dist/components/PieChart/PieChart.css +115 -0
  69. package/dist/{index76.js → components/PieChart/PieChart2.js} +3 -3
  70. package/dist/components/ProgressIndicators/ProgressIndicators.css +95 -0
  71. package/dist/{index78.js → components/ProgressIndicators/ProgressIndicators2.js} +6 -3
  72. package/dist/components/ProgressSteps/ProgressSteps.css +175 -0
  73. package/dist/{index80.js → components/ProgressSteps/ProgressSteps2.js} +2 -2
  74. package/dist/components/RadarChart/RadarChart.css +119 -0
  75. package/dist/{index82.js → components/RadarChart/RadarChart2.js} +21 -15
  76. package/dist/components/RadioButton/RadioButton.css +21 -0
  77. package/dist/{index84.js → components/RadioButton/RadioButton2.js} +2 -2
  78. package/dist/components/RadioGroup/RadioGroup.css +64 -0
  79. package/dist/{index86.js → components/RadioGroup/RadioGroup2.js} +2 -2
  80. package/dist/components/Rating/Rating.css +91 -0
  81. package/dist/{index88.js → components/Rating/Rating2.js} +3 -3
  82. package/dist/components/RichTextEditor/RichTextEditor.css +94 -0
  83. package/dist/{index90.js → components/RichTextEditor/RichTextEditor2.js} +4 -4
  84. package/dist/components/SectionFooter/SectionFooter.css +59 -0
  85. package/dist/{index92.js → components/SectionFooter/SectionFooter2.js} +2 -2
  86. package/dist/components/SectionHeader/SectionHeader.css +78 -0
  87. package/dist/{index94.js → components/SectionHeader/SectionHeader2.js} +2 -2
  88. package/dist/components/Select/Select.css +156 -0
  89. package/dist/{index102.js → components/Select/Select2.js} +11 -12
  90. package/dist/components/SidebarNavigation/SidebarNavigation.css +116 -0
  91. package/dist/{index96.js → components/SidebarNavigation/SidebarNavigation2.js} +2 -2
  92. package/dist/components/SlideoutMenu/SlideoutMenu.css +161 -0
  93. package/dist/{index98.js → components/SlideoutMenu/SlideoutMenu2.js} +3 -3
  94. package/dist/components/Slider/Slider.css +106 -0
  95. package/dist/{index104.js → components/Slider/Slider2.js} +2 -2
  96. package/dist/components/Sparkline/Sparkline.css +65 -0
  97. package/dist/components/Sparkline/Sparkline2.js +100 -0
  98. package/dist/components/Switch/Switch.css +59 -0
  99. package/dist/{index100.js → components/Switch/Switch2.js} +2 -2
  100. package/dist/components/Table/Table.css +126 -0
  101. package/dist/{index108.js → components/Table/Table2.js} +2 -2
  102. package/dist/components/Tabs/Tabs.css +138 -0
  103. package/dist/{index110.js → components/Tabs/Tabs2.js} +53 -6
  104. package/dist/components/Tag/Tag.css +64 -0
  105. package/dist/{index106.js → components/Tag/Tag2.js} +3 -3
  106. package/dist/components/Textarea/Textarea.css +52 -0
  107. package/dist/{index112.js → components/Textarea/Textarea2.js} +3 -3
  108. package/dist/components/Tooltip/Tooltip.css +61 -0
  109. package/dist/{index114.js → components/Tooltip/Tooltip2.js} +6 -6
  110. package/dist/components/TreeView/TreeView.css +109 -0
  111. package/dist/{index116.js → components/TreeView/TreeView2.js} +2 -2
  112. package/dist/components/UtilityButton/UtilityButton.css +90 -0
  113. package/dist/{index118.js → components/UtilityButton/UtilityButton2.js} +2 -2
  114. package/dist/components/VideoPlayer/VideoPlayer.css +41 -0
  115. package/dist/{index120.js → components/VideoPlayer/VideoPlayer2.js} +2 -2
  116. package/dist/{index33.js → hooks/useDisclosure.js} +1 -1
  117. package/dist/hooks/useExitAnimation.js +25 -0
  118. package/dist/{index34.js → hooks/useFocusTrap.js} +1 -1
  119. package/dist/hooks/usePresence.js +31 -0
  120. package/dist/index.cjs +1030 -4720
  121. package/dist/index.js +69 -63
  122. package/dist/src/components/Accordion/Accordion.d.ts +20 -0
  123. package/dist/src/components/Accordion/Accordion.test.d.ts +1 -0
  124. package/dist/src/components/Accordion/index.d.ts +1 -0
  125. package/dist/src/components/GaugeChart/GaugeChart.d.ts +17 -0
  126. package/dist/src/components/GaugeChart/GaugeChart.test.d.ts +1 -0
  127. package/dist/src/components/GaugeChart/index.d.ts +1 -0
  128. package/dist/src/components/Heatmap/Heatmap.d.ts +28 -0
  129. package/dist/src/components/Heatmap/Heatmap.test.d.ts +1 -0
  130. package/dist/src/components/Heatmap/index.d.ts +1 -0
  131. package/dist/src/components/InlineCTA/InlineCTA.d.ts +2 -0
  132. package/dist/src/components/LineBarCharts/LineBarChart.d.ts +2 -0
  133. package/dist/src/components/Sparkline/Sparkline.d.ts +17 -0
  134. package/dist/src/components/Sparkline/Sparkline.test.d.ts +1 -0
  135. package/dist/src/components/Sparkline/index.d.ts +1 -0
  136. package/dist/src/hooks/index.d.ts +2 -0
  137. package/dist/src/hooks/useExitAnimation.d.ts +18 -0
  138. package/dist/src/hooks/usePresence.d.ts +13 -0
  139. package/dist/src/index.d.ts +4 -0
  140. package/dist/styles/theme.css +813 -0
  141. package/dist/styles.css +881 -68
  142. package/dist/{index19.js → utils/FieldWrapper.js} +1 -1
  143. package/package.json +8 -4
  144. package/theme.starter.css +58 -0
  145. package/dist/index42.js +0 -134
  146. package/dist/index43.js +0 -16
  147. package/dist/index44.js +0 -4232
  148. /package/dist/{index3.js → a11y/index.js} +0 -0
  149. /package/dist/{index30.js → hooks/useAnchoredPosition.js} +0 -0
  150. /package/dist/{index31.js → hooks/useComposedRefs.js} +0 -0
  151. /package/dist/{index32.js → hooks/useControllableState.js} +0 -0
  152. /package/dist/{index35.js → hooks/useListNavigation.js} +0 -0
  153. /package/dist/{index36.js → hooks/useOutsideInteraction.js} +0 -0
  154. /package/dist/{index4.js → utils/cx.js} +0 -0
@@ -0,0 +1,813 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ :root {
6
+ --color-base-white: #ffffff;
7
+ --color-base-black: #0b0b0f;
8
+ --color-gray-50: #f8fafc;
9
+ --color-gray-100: #f1f5f9;
10
+ --color-gray-200: #e2e8f0;
11
+ --color-gray-300: #cbd5e1;
12
+ --color-gray-400: #94a3b8;
13
+ --color-gray-500: #64748b;
14
+ --color-gray-600: #475569;
15
+ --color-gray-700: #334155;
16
+ --color-gray-800: #1e293b;
17
+ --color-gray-900: #0f172a;
18
+ --color-brand-50: #eef2ff;
19
+ --color-brand-100: #e0e7ff;
20
+ --color-brand-200: #c7d2fe;
21
+ --color-brand-300: #a5b4fc;
22
+ --color-brand-400: #818cf8;
23
+ --color-brand-500: #6366f1;
24
+ --color-brand-600: #4f46e5;
25
+ --color-brand-700: #4338ca;
26
+ --color-brand-800: #3730a3;
27
+ --color-brand-900: #312e81;
28
+ --color-success-50: #ecfdf3;
29
+ --color-success-100: #d1fadf;
30
+ --color-success-200: #a6f4c5;
31
+ --color-success-300: #6ce9a6;
32
+ --color-success-400: #32d583;
33
+ --color-success-500: #12b76a;
34
+ --color-success-600: #039855;
35
+ --color-success-700: #027a48;
36
+ --color-success-800: #05603a;
37
+ --color-success-900: #054f31;
38
+ --color-warning-50: #fffaeb;
39
+ --color-warning-100: #fef0c7;
40
+ --color-warning-200: #fedf89;
41
+ --color-warning-300: #fec84b;
42
+ --color-warning-400: #fdb022;
43
+ --color-warning-500: #f79009;
44
+ --color-warning-600: #dc6803;
45
+ --color-warning-700: #b54708;
46
+ --color-warning-800: #93370d;
47
+ --color-warning-900: #7a2e0e;
48
+ --color-danger-50: #fef3f2;
49
+ --color-danger-100: #fee4e2;
50
+ --color-danger-200: #fecdca;
51
+ --color-danger-300: #fda29b;
52
+ --color-danger-400: #f97066;
53
+ --color-danger-500: #f04438;
54
+ --color-danger-600: #d92d20;
55
+ --color-danger-700: #b42318;
56
+ --color-danger-800: #912018;
57
+ --color-danger-900: #7a271a;
58
+ --duration-fast: 120ms;
59
+ --duration-moderate: 180ms;
60
+ --duration-slow: 280ms;
61
+ --easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
62
+ --easing-decelerate: cubic-bezier(0, 0, 0.2, 1);
63
+ --easing-accelerate: cubic-bezier(0.4, 0, 1, 1);
64
+ --shadow-sm: 0 1px 2px rgb(15 23 42 / 0.08);
65
+ --shadow-md: 0 8px 24px rgb(15 23 42 / 0.12);
66
+ --shadow-lg: 0 18px 48px rgb(15 23 42 / 0.16);
67
+ --shadow-focus: 0 0 0 3px rgb(59 130 246 / 0.35);
68
+ --space-0: 0rem;
69
+ --space-1: 0.25rem;
70
+ --space-2: 0.5rem;
71
+ --space-3: 0.75rem;
72
+ --space-4: 1rem;
73
+ --space-5: 1.25rem;
74
+ --space-6: 1.5rem;
75
+ --space-7: 1.75rem;
76
+ --space-8: 2rem;
77
+ --space-9: 2.25rem;
78
+ --space-10: 2.5rem;
79
+ --space-11: 2.75rem;
80
+ --space-12: 3rem;
81
+ --space-13: 3.25rem;
82
+ --space-14: 3.5rem;
83
+ --space-16: 4rem;
84
+ --radius-sm: 0.375rem;
85
+ --radius-md: 0.5rem;
86
+ --radius-lg: 0.75rem;
87
+ --radius-full: 9999px;
88
+ --size-control-sm: 2.25rem;
89
+ --size-control-md: 2.5rem;
90
+ --size-control-lg: 3rem;
91
+ --size-icon-sm: 1rem;
92
+ --size-icon-md: 1.25rem;
93
+ --size-icon-lg: 1.5rem;
94
+ --font-family-sans: Geist, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
95
+ --font-size-2xs: 0.6875rem;
96
+ --font-size-xs: 0.75rem;
97
+ --font-size-sm: 0.875rem;
98
+ --font-size-md: 1rem;
99
+ --font-size-lg: 1.125rem;
100
+ --font-size-xl: 1.25rem;
101
+ --font-size-2xl: 1.5rem;
102
+ --font-size-3xl: 1.75rem;
103
+ --font-size-4xl: 2.25rem;
104
+ --font-size-5xl: 2.5rem;
105
+ --font-line-height-tight: 1.2;
106
+ --font-line-height-normal: 1.5;
107
+ --font-weight-regular: 400;
108
+ --font-weight-medium: 500;
109
+ --font-weight-semibold: 600;
110
+ --color-semantic-background-default: var(--color-base-white);
111
+ --color-semantic-background-subtle: var(--color-gray-50);
112
+ --color-semantic-background-raised: var(--color-base-white);
113
+ --color-semantic-background-disabled: var(--color-gray-100);
114
+ --color-semantic-text-default: var(--color-gray-900);
115
+ --color-semantic-text-muted: var(--color-gray-500);
116
+ --color-semantic-text-subtle: var(--color-gray-600);
117
+ --color-semantic-text-inverse: var(--color-base-white);
118
+ --color-semantic-text-disabled: var(--color-gray-400);
119
+ --color-semantic-border-muted: var(--color-gray-100);
120
+ --color-semantic-border-default: var(--color-gray-200);
121
+ --color-semantic-border-strong: var(--color-gray-300);
122
+ --color-semantic-border-focus: var(--color-brand-500);
123
+ --color-semantic-border-disabled: var(--color-gray-200);
124
+ --color-semantic-action-primary: var(--color-brand-700);
125
+ --color-semantic-action-primary-hover: var(--color-brand-800);
126
+ --color-semantic-action-primary-active: var(--color-brand-900);
127
+ --color-semantic-action-primary-text: var(--color-base-white);
128
+ --color-semantic-action-secondary: var(--color-gray-100);
129
+ --color-semantic-action-secondary-hover: var(--color-gray-200);
130
+ --color-semantic-action-secondary-text: var(--color-gray-900);
131
+ --color-semantic-status-success-background: var(--color-success-50);
132
+ --color-semantic-status-success-border: var(--color-success-200);
133
+ --color-semantic-status-success-foreground: var(--color-success-700);
134
+ --color-semantic-status-success-bright: var(--color-success-500);
135
+ --color-semantic-status-warning-background: var(--color-warning-50);
136
+ --color-semantic-status-warning-border: var(--color-warning-200);
137
+ --color-semantic-status-warning-foreground: var(--color-warning-700);
138
+ --color-semantic-status-warning-bright: var(--color-warning-500);
139
+ --color-semantic-status-danger-background: var(--color-danger-50);
140
+ --color-semantic-status-danger-border: var(--color-danger-200);
141
+ --color-semantic-status-danger-foreground: var(--color-danger-700);
142
+ --color-semantic-status-danger-bright: var(--color-danger-500);
143
+ }
144
+
145
+ /* Breakpoints — mobile-first min-width. Resolved at build time by postcss-custom-media. */
146
+
147
+ :root {
148
+ color-scheme: light;
149
+
150
+ /* Interaction aliases */
151
+ --pf-focus-ring-color: var(--color-semantic-border-focus, var(--color-brand-500));
152
+ --pf-focus-ring-width: 3px;
153
+ --pf-focus-ring-offset: 2px;
154
+ --pf-focus-ring: 0 0 0 var(--pf-focus-ring-width)
155
+ color-mix(in srgb, var(--pf-focus-ring-color) 35%, transparent);
156
+ --pf-focus-outline: var(--pf-focus-ring-width) solid var(--pf-focus-ring-color);
157
+ /* Motion — durations and easings come from Style Dictionary (--duration-*, --easing-*) */
158
+ --pf-transition-fast: var(--duration-fast) var(--easing-standard);
159
+ --pf-transition-medium: var(--duration-moderate) var(--easing-standard);
160
+ --pf-transition-slow: var(--duration-slow) var(--easing-standard);
161
+ /* Directional easings for enter/exit animations */
162
+ --pf-transition-enter: var(--duration-moderate) var(--easing-decelerate);
163
+ --pf-transition-exit: var(--duration-fast) var(--easing-accelerate);
164
+
165
+ /* Control aliases */
166
+ --pf-control-height-sm: var(--size-control-sm, 36px);
167
+ --pf-control-height-md: var(--size-control-md, 40px);
168
+ --pf-control-height-lg: var(--size-control-lg, 48px);
169
+ --pf-control-padding-x-sm: var(--space-3);
170
+ --pf-control-padding-x-md: var(--space-3);
171
+ --pf-control-padding-x-lg: var(--space-5);
172
+ --pf-control-radius: var(--radius-md);
173
+ --pf-control-border: var(--color-semantic-border-default);
174
+ --pf-control-border-hover: var(--color-semantic-border-strong);
175
+ --pf-control-border-focus: var(
176
+ --color-semantic-border-focus,
177
+ var(--color-semantic-action-primary)
178
+ );
179
+ --pf-control-bg: var(--color-semantic-background-default);
180
+ --pf-control-bg-disabled: var(--color-semantic-background-disabled, var(--color-gray-100));
181
+ --pf-control-text: var(--color-semantic-text-default);
182
+ --pf-control-text-muted: var(--color-semantic-text-muted);
183
+ --pf-control-text-disabled: var(--color-semantic-text-disabled, var(--color-gray-400));
184
+
185
+ /* Overlay aliases */
186
+ --pf-z-index-dropdown: 1000;
187
+ --pf-z-index-popover: 1100;
188
+ --pf-z-index-modal: 1200;
189
+
190
+ /* Button aliases */
191
+ --pf-button-primary-bg: var(--color-semantic-action-primary);
192
+ --pf-button-primary-bg-hover: var(--color-semantic-action-primary-hover);
193
+ --pf-button-primary-text: var(--color-semantic-action-primary-text);
194
+ --pf-button-secondary-bg: var(--color-semantic-background-default);
195
+ --pf-button-secondary-bg-hover: var(--color-semantic-background-subtle);
196
+ --pf-button-secondary-border: var(--color-semantic-border-default);
197
+ --pf-button-secondary-border-hover: var(--color-semantic-border-strong);
198
+ --pf-button-secondary-text: var(--color-semantic-text-default);
199
+ --pf-button-ghost-text: var(--color-semantic-text-default);
200
+ --pf-button-ghost-bg-hover: var(--color-semantic-background-subtle);
201
+
202
+ /* Field/input aliases */
203
+ --pf-field-label: var(--color-semantic-text-default);
204
+ --pf-field-description: var(--color-semantic-text-muted);
205
+ --pf-field-error: var(--color-semantic-status-danger-foreground);
206
+ --pf-input-bg: var(--pf-control-bg);
207
+ --pf-input-border: var(--pf-control-border);
208
+ --pf-input-text: var(--pf-control-text);
209
+ --pf-input-placeholder: var(--pf-control-text-muted);
210
+
211
+ /* Surface/select aliases */
212
+ --pf-surface-bg: var(
213
+ --color-semantic-background-raised,
214
+ var(--color-semantic-background-default)
215
+ );
216
+ --pf-surface-subtle: var(--color-semantic-background-subtle);
217
+ --pf-surface-border: var(--color-semantic-border-default);
218
+ --pf-surface-border-strong: var(--color-semantic-border-strong);
219
+ --pf-select-menu-bg: var(--pf-surface-bg);
220
+ --pf-select-menu-border: var(--pf-surface-border-strong);
221
+ --pf-select-option-active-bg: var(--color-semantic-action-primary);
222
+ --pf-select-option-active-text: var(--color-semantic-action-primary-text);
223
+
224
+ /* Overlay and elevation color aliases */
225
+ --pf-overlay-backdrop: color-mix(in srgb, var(--color-gray-900) 48%, transparent);
226
+ --pf-elevation-overlay-shadow: 0 24px 60px
227
+ color-mix(in srgb, var(--color-gray-900) 18%, transparent);
228
+ --pf-elevation-popover-shadow: 0 14px 30px
229
+ color-mix(in srgb, var(--color-base-black) 12%, transparent);
230
+ --pf-elevation-floating-shadow: 0 16px 32px
231
+ color-mix(in srgb, var(--color-gray-900) 8%, transparent);
232
+ --pf-elevation-tab-active-shadow: 0 1px 2px
233
+ color-mix(in srgb, var(--color-gray-900) 12%, transparent);
234
+ --pf-elevation-tooltip-shadow: 0 10px 24px
235
+ color-mix(in srgb, var(--color-base-black) 24%, transparent);
236
+ --pf-control-thumb-outline-shadow: 0 0 0 1px
237
+ color-mix(in srgb, var(--color-base-black) 6%, transparent);
238
+
239
+ /* Slider geometry aliases */
240
+ --pf-slider-track-height: 0.5rem;
241
+ --pf-slider-thumb-size: 1.125rem;
242
+
243
+ /* Tabs geometry aliases */
244
+ --pf-tabs-tab-padding-y-md: 0.625rem;
245
+ --pf-tabs-tab-padding-x-md: 0.875rem;
246
+ --pf-tabs-underline-width: 2px;
247
+
248
+ /* Calendar aliases */
249
+ --pf-calendar-bg: var(--color-semantic-background-default);
250
+ --pf-calendar-border: var(--color-semantic-border-default);
251
+ --pf-calendar-text: var(--color-semantic-text-default);
252
+ --pf-calendar-text-muted: var(--color-semantic-text-muted);
253
+ --pf-calendar-bg-subtle: var(--color-semantic-background-subtle);
254
+ --pf-calendar-today-bg: var(--color-semantic-status-warning-background);
255
+ --pf-calendar-today-border: var(--color-semantic-status-warning-border);
256
+ --pf-calendar-selected-bg: var(--color-semantic-action-primary);
257
+ --pf-calendar-selected-text: var(--color-semantic-action-primary-text);
258
+ --pf-calendar-selected-bg-hover: var(--color-semantic-action-primary-hover);
259
+ --pf-calendar-invalid-border: var(--color-semantic-status-danger-border);
260
+
261
+ /* Breadcrumbs aliases */
262
+ --pf-breadcrumbs-link-color: var(--color-semantic-text-muted);
263
+ --pf-breadcrumbs-link-hover-color: var(--color-semantic-text-default);
264
+ --pf-breadcrumbs-link-current-color: var(--color-semantic-text-default);
265
+ --pf-breadcrumbs-separator-color: var(--color-semantic-text-muted);
266
+
267
+ /* ProgressIndicators aliases */
268
+ --pf-progress-track-bg: var(--pf-surface-subtle);
269
+ --pf-progress-accent: var(--color-semantic-action-primary);
270
+ --pf-progress-text: var(--color-semantic-text-default);
271
+ --pf-progress-text-muted: var(--color-semantic-text-muted);
272
+
273
+ /* RadioGroup aliases */
274
+ --pf-radiogroup-text: var(--color-semantic-text-default);
275
+ --pf-radiogroup-text-muted: var(--color-semantic-text-muted);
276
+ --pf-radiogroup-accent: var(--color-semantic-action-primary);
277
+
278
+ /* SidebarNavigation aliases */
279
+ --pf-sidebar-nav-bg: var(--color-semantic-background-default);
280
+ --pf-sidebar-nav-border: var(--color-semantic-border-default);
281
+ --pf-sidebar-nav-text: var(--color-semantic-text-default);
282
+ --pf-sidebar-nav-text-muted: var(--color-semantic-text-muted);
283
+ --pf-sidebar-nav-bg-subtle: var(--color-semantic-background-subtle);
284
+
285
+ /* Tabs aliases */
286
+ --pf-tabs-border: var(--color-semantic-border-default);
287
+ --pf-tabs-bg-subtle: var(--color-semantic-background-subtle);
288
+ --pf-tabs-bg: var(--color-semantic-background-default);
289
+ --pf-tabs-text: var(--color-semantic-text-default);
290
+ --pf-tabs-text-muted: var(--color-semantic-text-muted);
291
+
292
+ /* SlideoutMenu aliases */
293
+ --pf-slideout-bg: var(--color-semantic-background-default);
294
+ --pf-slideout-border: var(--color-semantic-border-default);
295
+ --pf-slideout-text: var(--color-semantic-text-default);
296
+ --pf-slideout-text-muted: var(--color-semantic-text-muted);
297
+ --pf-slideout-bg-subtle: var(--color-semantic-background-subtle);
298
+
299
+ /* Metrics aliases */
300
+ --pf-metric-bg: var(--color-semantic-background-default);
301
+ --pf-metric-border: var(--color-semantic-border-default);
302
+ --pf-metric-text: var(--color-semantic-text-default);
303
+ --pf-metric-text-muted: var(--color-semantic-text-muted);
304
+ --pf-metric-bg-subtle: var(--color-semantic-background-subtle);
305
+ --pf-metric-success-bg: var(--color-semantic-status-success-background);
306
+ --pf-metric-success-text: var(--color-semantic-status-success-foreground);
307
+ --pf-metric-danger-bg: var(--color-semantic-status-danger-background);
308
+ --pf-metric-danger-text: var(--color-semantic-status-danger-foreground);
309
+
310
+ /* Dropdown additions */
311
+ --pf-dropdown-text: var(--color-semantic-text-default);
312
+ --pf-dropdown-text-muted: var(--color-semantic-text-muted);
313
+ --pf-dropdown-text-danger: var(--color-semantic-status-danger-foreground);
314
+ --pf-dropdown-icon-danger: var(--color-danger-500);
315
+
316
+ /* Pagination aliases */
317
+ --pf-pagination-bg: var(--color-semantic-background-default);
318
+ --pf-pagination-border: var(--color-semantic-border-muted);
319
+ --pf-pagination-text: var(--color-semantic-text-default);
320
+ --pf-pagination-text-muted: var(--color-semantic-text-muted);
321
+ --pf-pagination-active-bg: var(--color-semantic-action-primary);
322
+ --pf-pagination-active-text: var(--color-semantic-action-primary-text);
323
+ --pf-pagination-active-hover-bg: var(--color-semantic-action-primary-hover);
324
+ --pf-pagination-active-border: var(--color-semantic-action-primary);
325
+
326
+ /* Rating aliases */
327
+ --pf-rating-text: var(--color-semantic-text-default);
328
+ --pf-rating-text-muted: var(--color-semantic-text-muted);
329
+ --pf-rating-star-empty: var(--color-gray-300);
330
+ --pf-rating-star-fill: var(--color-warning-500);
331
+ --pf-rating-badge-bg: var(--color-warning-50);
332
+ --pf-rating-badge-border: var(--color-warning-200);
333
+ --pf-rating-badge-text: var(--color-warning-700);
334
+ --pf-rating-badge-reviews: var(--color-warning-800);
335
+
336
+ /* SectionHeader aliases */
337
+ --pf-section-header-border: var(--color-semantic-border-default);
338
+ --pf-section-header-text: var(--color-semantic-text-default);
339
+ --pf-section-header-text-muted: var(--color-semantic-text-muted);
340
+
341
+ /* Card aliases */
342
+ --pf-card-background: var(--color-semantic-background-default);
343
+ --pf-card-border: var(--color-semantic-border-default);
344
+ --pf-card-footer-gap: var(--space-2);
345
+
346
+ /* ButtonGroup aliases */
347
+ --pf-buttongroup-bg: var(--color-semantic-background-default);
348
+ --pf-buttongroup-bg-subtle: var(--color-semantic-background-subtle);
349
+ --pf-buttongroup-border: var(--color-semantic-border-default);
350
+ --pf-buttongroup-text: var(--color-semantic-text-default);
351
+ --pf-buttongroup-action-primary: var(--color-semantic-action-primary);
352
+ --pf-buttongroup-action-primary-hover: var(--color-semantic-action-primary-hover);
353
+ --pf-buttongroup-action-primary-text: var(--color-semantic-action-primary-text);
354
+ --pf-buttongroup-dot-selected: var(--color-base-white);
355
+
356
+ /* RadioButton aliases */
357
+ --pf-radio-checked-color: var(--color-semantic-action-primary);
358
+ --pf-radio-label-text: var(--color-semantic-text-default);
359
+
360
+ /* UtilityButton aliases */
361
+ --pf-utility-btn-neutral-bg: var(--color-semantic-background-default);
362
+ --pf-utility-btn-neutral-border: var(--color-semantic-border-default);
363
+ --pf-utility-btn-neutral-text: var(--color-semantic-text-default);
364
+ --pf-utility-btn-neutral-bg-hover: var(--color-semantic-background-subtle);
365
+ --pf-utility-btn-neutral-border-hover: var(--color-semantic-border-strong);
366
+ --pf-utility-btn-brand-bg: var(--color-brand-100);
367
+ --pf-utility-btn-brand-border: var(--color-brand-300);
368
+ --pf-utility-btn-brand-text: var(--color-brand-700);
369
+ --pf-utility-btn-brand-bg-hover: var(--color-brand-200);
370
+ --pf-utility-btn-danger-bg: var(--color-semantic-status-danger-background);
371
+ --pf-utility-btn-danger-border: var(--color-semantic-status-danger-border);
372
+ --pf-utility-btn-danger-text: var(--color-semantic-status-danger-foreground);
373
+ --pf-utility-btn-danger-bg-hover: var(--color-danger-100);
374
+
375
+ /* Accordion aliases */
376
+ --pf-accordion-border: var(--color-semantic-border-default);
377
+ --pf-accordion-trigger-text: var(--color-semantic-text-default);
378
+ --pf-accordion-trigger-bg-hover: var(--color-semantic-background-subtle);
379
+ --pf-accordion-icon: var(--color-semantic-text-muted);
380
+ --pf-accordion-content-text: var(--color-semantic-text-muted);
381
+
382
+ /* Heatmap aliases */
383
+ --pf-heatmap-color: var(--color-semantic-action-primary);
384
+ --pf-heatmap-empty: var(--color-semantic-background-subtle);
385
+ --pf-heatmap-label-color: var(--color-semantic-text-muted);
386
+ --pf-heatmap-cell-radius: var(--radius-sm);
387
+
388
+ /* GaugeChart aliases */
389
+ --pf-gauge-color: var(--color-semantic-action-primary);
390
+ --pf-gauge-track-color: var(--color-semantic-background-subtle);
391
+ --pf-gauge-center-bg: var(--color-semantic-background-default);
392
+ --pf-gauge-label-color: var(--color-semantic-text-default);
393
+ --pf-gauge-label-size: var(--font-size-2xl);
394
+ --pf-gauge-sub-label-color: var(--color-semantic-text-muted);
395
+
396
+ /* Sparkline aliases */
397
+ --pf-sparkline-color: var(--color-semantic-action-primary);
398
+
399
+ /* TreeView aliases */
400
+ --pf-treeview-bg: var(--color-semantic-background-default);
401
+ --pf-treeview-border: var(--color-semantic-border-default);
402
+ --pf-treeview-text: var(--color-semantic-text-default);
403
+ --pf-treeview-text-muted: var(--color-semantic-text-muted);
404
+ --pf-treeview-bg-subtle: var(--color-semantic-background-subtle);
405
+
406
+ /* Input additions */
407
+ --pf-field-required: var(--color-semantic-status-danger-foreground);
408
+ --pf-input-focus-border: var(--color-semantic-action-primary);
409
+ --pf-input-invalid-border: var(--color-semantic-status-danger-border);
410
+ --pf-control-border-disabled: var(--color-gray-200);
411
+
412
+ /* RichTextEditor aliases */
413
+ --pf-rte-bg: var(--color-semantic-background-default);
414
+ --pf-rte-bg-subtle: var(--color-semantic-background-subtle);
415
+ --pf-rte-border: var(--color-semantic-border-default);
416
+ --pf-rte-text: var(--color-semantic-text-default);
417
+ --pf-rte-text-muted: var(--color-semantic-text-muted);
418
+ --pf-rte-focus-border: var(--color-semantic-action-primary);
419
+ --pf-rte-invalid-border: var(--color-semantic-status-danger-border);
420
+
421
+ /* Notification aliases */
422
+ --pf-notification-bg: var(--color-semantic-background-default);
423
+ --pf-notification-border: var(--color-semantic-border-default);
424
+ --pf-notification-text: var(--color-semantic-text-default);
425
+ --pf-notification-text-muted: var(--color-semantic-text-muted);
426
+ --pf-notification-bg-subtle: var(--color-semantic-background-subtle);
427
+ /* Surface the variant tints blend toward; white in light, a dark raised
428
+ surface in dark so cards stay dark and text keeps contrast. */
429
+ --pf-notification-mix-base: var(--color-base-white);
430
+ --pf-notification-info-bg: var(--color-brand-50);
431
+ --pf-notification-info-border: var(--color-brand-300);
432
+ --pf-notification-info-icon: var(--color-brand-700);
433
+ --pf-notification-info-title: var(--color-brand-800);
434
+ --pf-notification-info-hover-bg: var(--color-brand-100);
435
+ --pf-notification-info-hover-icon: var(--color-brand-800);
436
+ --pf-notification-success-bg: var(--color-semantic-status-success-background);
437
+ --pf-notification-success-border: var(--color-semantic-status-success-border);
438
+ --pf-notification-success-icon: var(--color-semantic-status-success-foreground);
439
+ --pf-notification-warning-bg: var(--color-semantic-status-warning-background);
440
+ --pf-notification-warning-border: var(--color-semantic-status-warning-border);
441
+ --pf-notification-warning-icon: var(--color-semantic-status-warning-foreground);
442
+ --pf-notification-danger-bg: var(--color-semantic-status-danger-background);
443
+ --pf-notification-danger-border: var(--color-semantic-status-danger-border);
444
+ --pf-notification-danger-icon: var(--color-semantic-status-danger-foreground);
445
+
446
+ /* Alert aliases */
447
+ --pf-alert-border: var(--color-semantic-border-default);
448
+ --pf-alert-info-background: var(--color-brand-50);
449
+ --pf-alert-info-border: var(--color-brand-300);
450
+ --pf-alert-info-foreground: var(--color-brand-800);
451
+ --pf-alert-success-background: var(--color-semantic-status-success-background);
452
+ --pf-alert-success-border: var(--color-semantic-status-success-border);
453
+ --pf-alert-success-foreground: var(--color-semantic-status-success-foreground);
454
+ --pf-alert-warning-background: var(--color-semantic-status-warning-background);
455
+ --pf-alert-warning-border: var(--color-semantic-status-warning-border);
456
+ --pf-alert-warning-foreground: var(--color-semantic-status-warning-foreground);
457
+ --pf-alert-danger-background: var(--color-semantic-status-danger-background);
458
+ --pf-alert-danger-border: var(--color-semantic-status-danger-border);
459
+ --pf-alert-danger-foreground: var(--color-semantic-status-danger-foreground);
460
+
461
+ /* VideoPlayer aliases */
462
+ --pf-videoplayer-bg: var(--color-base-black);
463
+ --pf-videoplayer-border: var(--color-semantic-border-default);
464
+ --pf-videoplayer-text-muted: var(--color-semantic-text-muted);
465
+ --pf-videoplayer-invalid-border: var(--color-semantic-status-danger-border);
466
+
467
+ /* RadarChart aliases */
468
+ --pf-radar-grid-stroke: var(--color-semantic-border-default);
469
+ --pf-radar-axis-stroke: var(--color-semantic-border-muted);
470
+ --pf-radar-point-stroke: var(--color-semantic-background-default);
471
+ --pf-radar-label: var(--color-semantic-text-muted);
472
+ --pf-radar-legend-text: var(--color-semantic-text-default);
473
+ --pf-radar-legend-value: var(--color-semantic-text-muted);
474
+ --pf-radar-empty-border: var(--color-semantic-border-default);
475
+ --pf-radar-empty-text: var(--color-semantic-text-muted);
476
+
477
+ /* DatePicker aliases */
478
+ --pf-datepicker-bg: var(--color-semantic-background-default);
479
+ --pf-datepicker-bg-subtle: var(--color-semantic-background-subtle);
480
+ --pf-datepicker-border: var(--color-semantic-border-default);
481
+ --pf-datepicker-border-strong: var(--color-semantic-border-strong);
482
+ --pf-datepicker-text: var(--color-semantic-text-default);
483
+ --pf-datepicker-text-muted: var(--color-semantic-text-muted);
484
+ --pf-datepicker-focus-border: var(--color-semantic-action-primary);
485
+ --pf-datepicker-invalid-border: var(--color-semantic-status-danger-border);
486
+
487
+ /* BadgeGroup aliases */
488
+ --pf-badgegroup-gray-100: var(--color-gray-100);
489
+ --pf-badgegroup-gray-200: var(--color-gray-200);
490
+ --pf-badgegroup-gray-700: var(--color-gray-700);
491
+ --pf-badgegroup-brand-100: var(--color-brand-100);
492
+ --pf-badgegroup-brand-300: var(--color-brand-300);
493
+ --pf-badgegroup-brand-700: var(--color-brand-700);
494
+ --pf-badgegroup-danger-bg: var(--color-semantic-status-danger-background);
495
+ --pf-badgegroup-danger-border: var(--color-semantic-status-danger-border);
496
+ --pf-badgegroup-danger-text: var(--color-semantic-status-danger-foreground);
497
+ --pf-badgegroup-warning-bg: var(--color-semantic-status-warning-background);
498
+ --pf-badgegroup-warning-border: var(--color-semantic-status-warning-border);
499
+ --pf-badgegroup-warning-text: var(--color-semantic-status-warning-foreground);
500
+ --pf-badgegroup-success-bg: var(--color-semantic-status-success-background);
501
+ --pf-badgegroup-success-border: var(--color-semantic-status-success-border);
502
+ --pf-badgegroup-success-text: var(--color-semantic-status-success-foreground);
503
+
504
+ /* Checkbox aliases */
505
+ --pf-checkbox-bg: var(--color-semantic-background-default);
506
+ --pf-checkbox-border: var(--color-semantic-border-default);
507
+ --pf-checkbox-checked-bg: var(--color-semantic-action-primary);
508
+ --pf-checkbox-check-color: var(--color-semantic-action-primary-text);
509
+ --pf-checkbox-label-text: var(--color-semantic-text-default);
510
+
511
+ /* Slider aliases */
512
+ --pf-slider-text: var(--color-semantic-text-default);
513
+ --pf-slider-text-muted: var(--color-semantic-text-muted);
514
+ --pf-slider-error-text: var(--color-semantic-status-danger-foreground);
515
+ --pf-slider-action: var(--color-semantic-action-primary);
516
+ --pf-slider-border: var(--color-semantic-border-default);
517
+ --pf-slider-bg: var(--color-semantic-background-default);
518
+ --pf-slider-danger-fill: var(--color-danger-500);
519
+
520
+ /* PageHeader aliases */
521
+ --pf-page-header-eyebrow: var(--color-semantic-action-primary);
522
+ --pf-page-header-text: var(--color-semantic-text-default);
523
+ --pf-page-header-text-muted: var(--color-semantic-text-muted);
524
+
525
+ /* Carousel aliases */
526
+ --pf-carousel-bg: var(--color-semantic-background-default);
527
+ --pf-carousel-border: var(--color-semantic-border-default);
528
+ --pf-carousel-viewport-bg: var(--color-semantic-background-subtle);
529
+ --pf-carousel-slide-text: var(--color-semantic-text-default);
530
+ --pf-carousel-empty-text: var(--color-semantic-text-muted);
531
+ --pf-carousel-nav-text: var(--color-semantic-text-muted);
532
+ --pf-carousel-nav-hover-bg: var(--color-semantic-background-subtle);
533
+ --pf-carousel-nav-hover-text: var(--color-semantic-text-default);
534
+ --pf-carousel-indicator-bg: var(--color-semantic-border-default);
535
+ --pf-carousel-indicator-active-bg: var(--color-semantic-action-primary);
536
+
537
+ /* PieChart aliases */
538
+ --pf-piechart-border-muted: var(--color-semantic-border-muted);
539
+ --pf-piechart-bg: var(--color-semantic-background-default);
540
+ --pf-piechart-text: var(--color-semantic-text-default);
541
+ --pf-piechart-text-muted: var(--color-semantic-text-muted);
542
+
543
+ /* ContentDivider aliases */
544
+ --pf-content-divider-text: var(--color-semantic-text-muted);
545
+ --pf-content-divider-line: var(--color-semantic-border-default);
546
+
547
+ /* Textarea aliases */
548
+ --pf-textarea-bg: var(--color-semantic-background-default);
549
+ --pf-textarea-border: var(--color-semantic-border-default);
550
+ --pf-textarea-text: var(--color-semantic-text-default);
551
+ --pf-textarea-text-muted: var(--color-semantic-text-muted);
552
+ --pf-textarea-focus-border: var(--color-semantic-action-primary);
553
+ --pf-textarea-invalid-border: var(--color-semantic-status-danger-border);
554
+
555
+ /* Table aliases */
556
+ --pf-table-bg: var(--color-semantic-background-default);
557
+ --pf-table-bg-subtle: var(--color-semantic-background-subtle);
558
+ --pf-table-border: var(--color-semantic-border-default);
559
+ --pf-table-text: var(--color-semantic-text-default);
560
+ --pf-table-text-muted: var(--color-semantic-text-muted);
561
+
562
+ /* LoadingIndicators aliases */
563
+ --pf-loading-border: var(--color-semantic-border-default);
564
+ --pf-loading-accent: var(--color-semantic-action-primary);
565
+ --pf-loading-bg-subtle: var(--color-semantic-background-subtle);
566
+
567
+ /* Avatar aliases */
568
+ --pf-avatar-text: var(--color-semantic-text-default);
569
+ --pf-avatar-status-border: var(--pf-surface-bg);
570
+ --pf-avatar-status-online: var(--color-semantic-status-success-bright);
571
+ --pf-avatar-status-away: var(--color-semantic-status-warning-bright);
572
+ --pf-avatar-status-busy: var(--color-semantic-status-danger-bright);
573
+ --pf-avatar-status-offline: var(--color-semantic-text-muted);
574
+
575
+ /* Switch aliases */
576
+ --pf-switch-track-bg: var(--color-gray-300);
577
+ --pf-switch-thumb-bg: var(--color-base-white);
578
+ --pf-switch-track-checked-bg: var(--color-semantic-action-primary);
579
+ --pf-switch-label-text: var(--color-semantic-text-default);
580
+
581
+ /* LineBarChart additions */
582
+ --pf-chart-text-muted: var(--color-semantic-text-muted);
583
+
584
+ /* InlineCTA aliases */
585
+ --pf-inline-cta-bg: var(--color-semantic-background-default);
586
+ --pf-inline-cta-border: var(--color-semantic-border-default);
587
+ --pf-inline-cta-text: var(--color-semantic-text-default);
588
+ --pf-inline-cta-text-muted: var(--color-semantic-text-muted);
589
+ --pf-inline-cta-info-bg: var(--color-brand-50);
590
+ --pf-inline-cta-info-border: var(--color-brand-300);
591
+ --pf-inline-cta-info-icon: var(--color-brand-700);
592
+ --pf-inline-cta-info-heading: var(--color-brand-800);
593
+ --pf-inline-cta-info-description: var(--color-brand-700);
594
+ --pf-inline-cta-success-bg: var(--color-semantic-status-success-background);
595
+ --pf-inline-cta-success-border: var(--color-semantic-status-success-border);
596
+ --pf-inline-cta-warning-bg: var(--color-semantic-status-warning-background);
597
+ --pf-inline-cta-warning-border: var(--color-semantic-status-warning-border);
598
+
599
+ /* Select additions */
600
+ --pf-select-focus-border: var(--color-semantic-action-primary);
601
+ --pf-select-invalid-border: var(--color-semantic-status-danger-border);
602
+
603
+ /* FileUploader aliases */
604
+ --pf-file-uploader-bg: var(--color-semantic-background-default);
605
+ --pf-file-uploader-bg-subtle: var(--color-semantic-background-subtle);
606
+ --pf-file-uploader-border: var(--color-semantic-border-default);
607
+ --pf-file-uploader-border-strong: var(--color-semantic-border-strong);
608
+ --pf-file-uploader-text: var(--color-semantic-text-default);
609
+ --pf-file-uploader-text-muted: var(--color-semantic-text-muted);
610
+ --pf-file-uploader-active-border: var(--color-semantic-action-primary);
611
+ --pf-file-uploader-invalid-border: var(--color-semantic-status-danger-border);
612
+
613
+ /* ProgressSteps aliases */
614
+ --pf-progress-steps-bg: var(--color-semantic-background-default);
615
+ --pf-progress-steps-border: var(--color-semantic-border-default);
616
+ --pf-progress-steps-text: var(--color-semantic-text-default);
617
+ --pf-progress-steps-text-muted: var(--color-semantic-text-muted);
618
+ --pf-progress-steps-complete-bg: var(--color-semantic-status-success-border);
619
+ --pf-progress-steps-complete-border: var(--color-semantic-status-success-border);
620
+ --pf-progress-steps-complete-text: var(--color-success-900);
621
+ --pf-progress-steps-current-bg: var(--color-semantic-status-success-foreground);
622
+ --pf-progress-steps-current-border: var(--color-semantic-status-success-foreground);
623
+ --pf-progress-steps-current-text: var(--color-base-white);
624
+ --pf-progress-steps-current-title: var(--color-semantic-status-success-foreground);
625
+
626
+ /* SectionFooter aliases */
627
+ --pf-section-footer-border: var(--color-semantic-border-default);
628
+ --pf-section-footer-text: var(--color-semantic-text-default);
629
+ --pf-section-footer-text-muted: var(--color-semantic-text-muted);
630
+
631
+ /* Modal aliases */
632
+ --pf-modal-bg: var(--color-semantic-background-default);
633
+ --pf-modal-border: var(--color-semantic-border-default);
634
+ --pf-modal-text: var(--color-semantic-text-default);
635
+ --pf-modal-text-muted: var(--color-semantic-text-muted);
636
+ --pf-modal-bg-subtle: var(--color-semantic-background-subtle);
637
+
638
+ /* MultiSelect aliases */
639
+ --pf-multiselect-bg: var(--color-semantic-background-default);
640
+ --pf-multiselect-bg-subtle: var(--color-semantic-background-subtle);
641
+ --pf-multiselect-border: var(--color-semantic-text-muted);
642
+ --pf-multiselect-text: var(--color-semantic-text-default);
643
+ --pf-multiselect-text-muted: var(--color-semantic-text-muted);
644
+ --pf-multiselect-focus-border: var(--color-semantic-action-primary);
645
+ --pf-multiselect-active-bg: var(--color-semantic-action-primary);
646
+ --pf-multiselect-active-text: var(--color-semantic-action-primary-text);
647
+ --pf-multiselect-invalid-border: var(--color-semantic-status-danger-border);
648
+
649
+ /* Tag aliases */
650
+ --pf-tag-neutral-bg: var(--color-gray-100);
651
+ --pf-tag-neutral-text: var(--color-gray-700);
652
+ --pf-tag-brand-bg: var(--color-brand-100);
653
+ --pf-tag-brand-text: var(--color-brand-700);
654
+ --pf-tag-success-bg: var(--color-semantic-status-success-background);
655
+ --pf-tag-success-text: var(--color-semantic-status-success-foreground);
656
+ --pf-tag-warning-bg: var(--color-semantic-status-warning-background);
657
+ --pf-tag-warning-text: var(--color-semantic-status-warning-foreground);
658
+
659
+ /* HeaderNavigation aliases */
660
+ --pf-header-nav-bg: var(--color-semantic-background-default);
661
+ --pf-header-nav-border: var(--color-semantic-border-default);
662
+ --pf-header-nav-text: var(--color-semantic-text-default);
663
+ --pf-header-nav-text-muted: var(--color-semantic-text-muted);
664
+ --pf-header-nav-bg-subtle: var(--color-semantic-background-subtle);
665
+
666
+ /* Dropdown geometry aliases */
667
+ --pf-dropdown-icon-size: 1rem;
668
+ --pf-dropdown-menu-gap: 2px;
669
+
670
+ /* Pagination geometry aliases */
671
+ --pf-pagination-page-size: 2rem;
672
+
673
+ /* Tooltip geometry aliases */
674
+ --pf-tooltip-padding-x: 0.625rem;
675
+
676
+ /* EmptyState aliases */
677
+ --pf-empty-state-icon: var(--color-semantic-text-muted);
678
+ --pf-empty-state-text: var(--color-semantic-text-default);
679
+ --pf-empty-state-text-muted: var(--color-semantic-text-muted);
680
+
681
+ /* Utility color aliases */
682
+ --pf-tooltip-bg: var(--color-gray-900);
683
+ --pf-tooltip-text: var(--color-base-white);
684
+ --pf-subtle-hover-overlay: color-mix(in srgb, var(--color-base-black) 8%, transparent);
685
+ }
686
+
687
+ [data-theme='dark'] {
688
+ color-scheme: dark;
689
+
690
+ --color-semantic-background-default: var(--color-gray-900);
691
+ --color-semantic-background-subtle: var(--color-gray-700);
692
+ --color-semantic-background-raised: var(--color-gray-800);
693
+ --color-semantic-background-disabled: var(--color-gray-800);
694
+ --color-semantic-text-default: var(--color-gray-50);
695
+ --color-semantic-text-muted: var(--color-gray-300);
696
+ --color-semantic-text-subtle: var(--color-gray-200);
697
+ --color-semantic-text-inverse: var(--color-gray-900);
698
+ --color-semantic-text-disabled: var(--color-gray-500);
699
+ --color-semantic-border-muted: var(--color-gray-800);
700
+ --color-semantic-border-default: var(--color-gray-700);
701
+ --color-semantic-border-strong: var(--color-gray-500);
702
+ --color-semantic-border-focus: var(--color-brand-400);
703
+
704
+ /* brand-600 (#2563eb) on white = ~5:1 — passes WCAG AA for normal text */
705
+ --color-semantic-action-primary: var(--color-brand-600);
706
+ --color-semantic-action-primary-hover: var(--color-brand-700);
707
+ --color-semantic-action-primary-active: var(--color-brand-800);
708
+ --color-semantic-action-primary-text: var(--color-base-white);
709
+ --color-semantic-action-secondary: var(--color-gray-800);
710
+ --color-semantic-action-secondary-hover: var(--color-gray-700);
711
+ --color-semantic-action-secondary-text: var(--color-gray-50);
712
+ --color-semantic-status-success-background: var(--color-success-900);
713
+ --color-semantic-status-success-border: var(--color-success-700);
714
+ --color-semantic-status-success-foreground: var(--color-success-300);
715
+ --color-semantic-status-success-bright: var(--color-success-400);
716
+ --color-semantic-status-warning-background: var(--color-warning-900);
717
+ --color-semantic-status-warning-border: var(--color-warning-700);
718
+ --color-semantic-status-warning-foreground: var(--color-warning-300);
719
+ --color-semantic-status-warning-bright: var(--color-warning-400);
720
+ --color-semantic-status-danger-background: var(--color-danger-900);
721
+ /* danger-600 (#d92d20) on gray-900 = 3.71:1 — danger-700 only gives 2.72:1 */
722
+ --color-semantic-status-danger-border: var(--color-danger-600);
723
+ --color-semantic-status-danger-foreground: var(--color-danger-300);
724
+ --color-semantic-status-danger-bright: var(--color-danger-400);
725
+
726
+ /* Info state overrides — light brand colors (brand-50/100/300) are invisible on dark surfaces */
727
+ --pf-notification-mix-base: var(--color-semantic-background-raised);
728
+ --pf-notification-info-bg: var(--color-brand-900);
729
+ --pf-notification-info-border: var(--color-brand-700);
730
+ --pf-notification-info-icon: var(--color-brand-300);
731
+ --pf-notification-info-title: var(--color-brand-200);
732
+ --pf-notification-info-hover-bg: var(--color-brand-800);
733
+ --pf-notification-info-hover-icon: var(--color-brand-200);
734
+
735
+ --pf-alert-info-background: var(--color-brand-900);
736
+ --pf-alert-info-border: var(--color-brand-700);
737
+ --pf-alert-info-foreground: var(--color-brand-200);
738
+
739
+ --pf-inline-cta-info-bg: var(--color-brand-900);
740
+ --pf-inline-cta-info-border: var(--color-brand-700);
741
+ --pf-inline-cta-info-icon: var(--color-brand-300);
742
+ --pf-inline-cta-info-heading: var(--color-brand-200);
743
+ --pf-inline-cta-info-description: var(--color-brand-300);
744
+
745
+ --pf-badge-brand-background: var(--color-brand-900);
746
+ --pf-badge-brand-foreground: var(--color-brand-300);
747
+
748
+ --pf-badgegroup-brand-100: var(--color-brand-900);
749
+ --pf-badgegroup-brand-300: var(--color-brand-700);
750
+ --pf-badgegroup-brand-700: var(--color-brand-300);
751
+
752
+ --pf-tag-brand-bg: var(--color-brand-900);
753
+ --pf-tag-brand-text: var(--color-brand-300);
754
+
755
+ --pf-utility-btn-brand-bg: var(--color-brand-900);
756
+ --pf-utility-btn-brand-border: var(--color-brand-700);
757
+ --pf-utility-btn-brand-text: var(--color-brand-300);
758
+ --pf-utility-btn-brand-bg-hover: var(--color-brand-800);
759
+
760
+ /* Calendar — same border-default contrast issue as TreeView */
761
+ --pf-calendar-border: var(--color-semantic-border-strong);
762
+
763
+ /* GaugeChart — track uses background-subtle (gray-700) which is 1.72:1 against gray-900 */
764
+ --pf-gauge-track-color: var(--color-semantic-border-strong);
765
+
766
+ /* ProgressSteps — semantic success bg shades flip in dark mode, so the marker
767
+ numbers need opposite text colors to keep ≥4.5:1.
768
+ complete: white on success-700 = 5.4:1; current: success-900 on success-300 = 6.4:1 */
769
+ --pf-progress-steps-complete-text: var(--color-base-white);
770
+ --pf-progress-steps-current-text: var(--color-success-900);
771
+
772
+ /* TreeView — border-default (gray-700) is 1.73:1 against gray-900, fails WCAG non-text contrast.
773
+ border-strong (gray-500) gives 3.75:1. */
774
+ --pf-treeview-border: var(--color-semantic-border-strong);
775
+
776
+ --pf-focus-ring: 0 0 0 var(--pf-focus-ring-width)
777
+ color-mix(in srgb, var(--pf-focus-ring-color) 45%, transparent);
778
+ }
779
+
780
+ *,
781
+ *::before,
782
+ *::after {
783
+ box-sizing: border-box;
784
+ }
785
+
786
+ body {
787
+ margin: 0;
788
+ font-family: var(--font-family-sans);
789
+ color: var(--color-semantic-text-default);
790
+ background: var(--color-semantic-background-default);
791
+ }
792
+
793
+ .pf-sr-only {
794
+ position: absolute;
795
+ width: 1px;
796
+ height: 1px;
797
+ padding: 0;
798
+ margin: -1px;
799
+ overflow: hidden;
800
+ clip: rect(0, 0, 0, 0);
801
+ white-space: nowrap;
802
+ border: 0;
803
+ }
804
+
805
+ .pf-focus-ring:focus-visible {
806
+ box-shadow: var(--pf-focus-ring);
807
+ outline: none;
808
+ }
809
+
810
+ .pf-focus-outline:focus-visible {
811
+ outline: var(--pf-focus-outline);
812
+ outline-offset: var(--pf-focus-ring-offset);
813
+ }