@juspay/svelte-ui-components 4.27.6 → 4.28.1
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/README.md +140 -36
- package/dist/Animations/ModalAnimation.svelte +15 -1
- package/dist/Animations/OverlayAnimation.svelte +7 -1
- package/dist/AreaChart/AreaChart.svelte +366 -85
- package/dist/AspectRatio/AspectRatio.svelte +51 -0
- package/dist/AspectRatio/AspectRatio.svelte.d.ts +3 -0
- package/dist/AspectRatio/properties.d.ts +27 -0
- package/dist/AspectRatio/properties.js +1 -0
- package/dist/Banner/Banner.svelte +10 -4
- package/dist/Banner/properties.d.ts +8 -0
- package/dist/BarChart/BarChart.svelte +156 -49
- package/dist/Book/Book.svelte +14 -1
- package/dist/BrandLoader/BrandLoader.svelte +76 -12
- package/dist/Button/Button.svelte +56 -11
- package/dist/Calendar/Calendar.svelte +88 -61
- package/dist/Card/Card.svelte +1 -1
- package/dist/Carousel/Carousel.svelte +6 -3
- package/dist/ChatComposer/ChatComposer.svelte +54 -4
- package/dist/ChatComposer/dictationState.d.ts +15 -0
- package/dist/ChatComposer/dictationState.js +9 -0
- package/dist/ChatComposer/properties.d.ts +28 -1
- package/dist/ChatMessage/ChatMessage.svelte +27 -1
- package/dist/CheckListItem/CheckListItem.svelte +3 -3
- package/dist/Checkbox/Checkbox.svelte +84 -3
- package/dist/Checkbox/properties.d.ts +45 -13
- package/dist/ChipInput/ChipInput.svelte +70 -3
- package/dist/ChipInput/properties.d.ts +16 -0
- package/dist/Choicebox/Choicebox.svelte +156 -1
- package/dist/Choicebox/group.d.ts +63 -0
- package/dist/Choicebox/group.js +127 -0
- package/dist/Choicebox/properties.d.ts +46 -0
- package/dist/ColorPicker/ColorPicker.svelte +169 -20
- package/dist/ColorPicker/properties.d.ts +16 -0
- package/dist/Combobox/Combobox.svelte +87 -25
- package/dist/Combobox/properties.d.ts +23 -0
- package/dist/CommandMenu/CommandMenu.svelte +27 -11
- package/dist/ContextMenu/ContextMenu.svelte +31 -37
- package/dist/DateRangePicker/DateRangePicker.svelte +171 -73
- package/dist/DeltaIndicator/DeltaIndicator.svelte +3 -3
- package/dist/Draggable/Draggable.svelte +12 -7
- package/dist/DualAxisBarChart/DualAxisBarChart.svelte +11 -4
- package/dist/EmptyState/EmptyState.svelte +1 -1
- package/dist/FileDropzoneTrigger/FileDropzoneTrigger.svelte +1 -1
- package/dist/FileInput/FileInput.svelte +50 -1
- package/dist/FileInput/properties.d.ts +7 -0
- package/dist/FunnelChart/FunnelChart.svelte +40 -12
- package/dist/FunnelChart/properties.d.ts +7 -1
- package/dist/Gallery/Gallery.svelte +20 -13
- package/dist/Gallery/properties.d.ts +8 -0
- package/dist/GridItem/GridItem.svelte +31 -1
- package/dist/HITL/HITL.svelte +35 -9
- package/dist/Icon/Icon.svelte +19 -3
- package/dist/Input/Input.svelte +24 -10
- package/dist/Input/properties.d.ts +37 -1
- package/dist/InputButton/InputButton.svelte +86 -11
- package/dist/InputButton/properties.d.ts +10 -1
- package/dist/Label/Label.svelte +54 -0
- package/dist/Label/Label.svelte.d.ts +3 -0
- package/dist/Label/properties.d.ts +26 -0
- package/dist/Label/properties.js +1 -0
- package/dist/LineChart/LineChart.svelte +385 -94
- package/dist/ListItem/ListItem.svelte +121 -15
- package/dist/Loader/Loader.svelte +22 -2
- package/dist/LoadingDots/LoadingDots.svelte +21 -0
- package/dist/MediaUpload/MediaUpload.svelte +13 -3
- package/dist/Menu/Menu.svelte +56 -28
- package/dist/Modal/Modal.svelte +77 -42
- package/dist/Pagination/Pagination.svelte +9 -2
- package/dist/Phone/Phone.svelte +4 -0
- package/dist/PieChart/PieChart.svelte +282 -38
- package/dist/PieChart/properties.d.ts +9 -0
- package/dist/Pill/Pill.svelte +14 -5
- package/dist/Progress/Progress.svelte +20 -0
- package/dist/Radio/Radio.svelte +58 -1
- package/dist/Radio/properties.d.ts +23 -0
- package/dist/RatingGroup/RatingGroup.svelte +283 -0
- package/dist/RatingGroup/RatingGroup.svelte.d.ts +4 -0
- package/dist/RatingGroup/properties.d.ts +73 -0
- package/dist/RatingGroup/properties.js +1 -0
- package/dist/RelativeTime/RelativeTime.svelte +1 -1
- package/dist/SankeyChart/SankeyChart.svelte +272 -50
- package/dist/SankeyChart/properties.d.ts +9 -0
- package/dist/Scroller/Scroller.svelte +37 -2
- package/dist/Select/Select.svelte +166 -46
- package/dist/Select/properties.d.ts +7 -0
- package/dist/Separator/Separator.svelte +48 -0
- package/dist/Separator/Separator.svelte.d.ts +3 -0
- package/dist/Separator/properties.d.ts +22 -0
- package/dist/Separator/properties.js +1 -0
- package/dist/Sheet/Sheet.svelte +60 -21
- package/dist/Shimmer/Shimmer.svelte +15 -0
- package/dist/Slider/Slider.svelte +87 -6
- package/dist/Slider/properties.d.ts +26 -0
- package/dist/Snippet/Snippet.svelte +4 -0
- package/dist/Snippet/copyState.svelte.d.ts +13 -1
- package/dist/Snippet/copyState.svelte.js +27 -1
- package/dist/Snippet/properties.d.ts +7 -0
- package/dist/SoundKit/SoundKit.js +9 -8
- package/dist/SplitInput/SplitInput.svelte +68 -2
- package/dist/SplitInput/properties.d.ts +23 -0
- package/dist/StatCard/StatCard.svelte +6 -6
- package/dist/Status/Status.svelte +2 -2
- package/dist/Stepper/Step.svelte +19 -6
- package/dist/Stepper/Stepper.svelte +108 -35
- package/dist/Table/BuiltinCell.svelte +2 -2
- package/dist/Table/Table.svelte +373 -55
- package/dist/Table/properties.d.ts +134 -3
- package/dist/Tabs/Tabs.svelte +263 -65
- package/dist/Tabs/properties.d.ts +23 -0
- package/dist/TaskList/TaskList.svelte +14 -5
- package/dist/ThemeSwitcher/ThemeSwitcher.svelte +23 -0
- package/dist/ThinkingIndicator/ThinkingIndicator.svelte +13 -5
- package/dist/Toast/Toast.svelte +27 -2
- package/dist/Toggle/Toggle.svelte +79 -7
- package/dist/Toggle/Toggle.svelte.d.ts +1 -1
- package/dist/Toggle/properties.d.ts +30 -7
- package/dist/ToolCallLog/ToolCallLog.svelte +59 -21
- package/dist/ToolCallLog/properties.d.ts +10 -0
- package/dist/Toolbar/Toolbar.svelte +1 -1
- package/dist/Tooltip/Tooltip.svelte +20 -2
- package/dist/Tooltip/tooltip-action.js +39 -4
- package/dist/TypewriterText/TypewriterText.svelte +34 -2
- package/dist/TypewriterText/properties.d.ts +18 -5
- package/dist/_chart/ChartContainer.svelte +12 -0
- package/dist/_chart/ChartTooltip.svelte +18 -4
- package/dist/_chart/Legend.svelte +21 -0
- package/dist/_chart/Legend.svelte.d.ts +15 -0
- package/dist/_chart/geometry.d.ts +54 -1
- package/dist/_chart/geometry.js +122 -14
- package/dist/_chart/interactions.d.ts +5 -1
- package/dist/_chart/interactions.js +9 -5
- package/dist/_chart/scales.js +16 -0
- package/dist/_chart/temporal.d.ts +45 -0
- package/dist/_chart/temporal.js +116 -0
- package/dist/_field/description.d.ts +50 -0
- package/dist/_field/description.js +51 -0
- package/dist/_interaction/dismissal.d.ts +67 -0
- package/dist/_interaction/dismissal.js +137 -0
- package/dist/_interaction/focus.d.ts +73 -0
- package/dist/_interaction/focus.js +143 -0
- package/dist/assets/star.svg +5 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.js +21 -1
- package/dist/reduced-motion.svelte.d.ts +37 -0
- package/dist/reduced-motion.svelte.js +44 -0
- package/dist/styles/theme-dark.css +778 -0
- package/dist/types.d.ts +4 -2
- package/dist/utils.d.ts +62 -1
- package/dist/utils.js +80 -21
- package/dist-codemod/{bin.js → codemod/bin.js} +13 -2
- package/dist-codemod/{cli.js → codemod/cli.js} +48 -3
- package/dist-codemod/codemod/migrate-audit.js +395 -0
- package/dist-codemod/codemod/migration-assets/legacy-display.css +120 -0
- package/dist-codemod/codemod/migration-assets/legacy-palette.css +106 -0
- package/dist-codemod/codemod/migration-assets/wc-display.json +492 -0
- package/dist-codemod/migrate/analyze.js +804 -0
- package/dist-codemod/migrate/chart-tooltip-selector.js +301 -0
- package/dist-wc/index.js +13992 -4323
- package/package.json +13 -6
- package/dist/Modal/focus-trap.d.ts +0 -42
- package/dist/Modal/focus-trap.js +0 -57
- /package/dist-codemod/{legacy-pairs.js → codemod/legacy-pairs.js} +0 -0
- /package/dist-codemod/{transform.js → codemod/transform.js} +0 -0
- /package/dist-codemod/{wc-children.js → codemod/wc-children.js} +0 -0
|
@@ -0,0 +1,778 @@
|
|
|
1
|
+
/* ============================================================================
|
|
2
|
+
Dark theme for @juspay/svelte-ui-components.
|
|
3
|
+
|
|
4
|
+
Every colour in every component is authored as `var(--x, <light literal>)`,
|
|
5
|
+
so the library's defaults are light all the way through. The library also
|
|
6
|
+
ships a ThemeSwitcher that stamps data-theme="dark" on <html>. Until this
|
|
7
|
+
file existed those two facts did not meet: a consumer who dropped in the
|
|
8
|
+
switcher got a dark page with light components on it -- white table cells,
|
|
9
|
+
#333 labels on a near-black ground, a white Select on every route. A sweep of
|
|
10
|
+
98 routes measured 1820 text instances below their WCAG threshold in dark
|
|
11
|
+
mode across 107 distinct classes, the worst at 1.01:1.
|
|
12
|
+
|
|
13
|
+
That was never a hundred bugs. It was one bug shaped like a hundred, and this
|
|
14
|
+
is the one place it gets fixed. Import it to opt a whole app into dark mode:
|
|
15
|
+
|
|
16
|
+
import '@juspay/svelte-ui-components/theme-dark.css';
|
|
17
|
+
|
|
18
|
+
Custom properties are inherited, and inheritance crosses a shadow boundary --
|
|
19
|
+
verified against a live sui-input, whose inner <input> repaints from a rule
|
|
20
|
+
set on the document root. So this file themes the <sui-*> custom elements
|
|
21
|
+
too, which no stylesheet could do if it had to reach them by selector.
|
|
22
|
+
|
|
23
|
+
Anything declared here must clear 4.5:1 (3:1 for large text) against the
|
|
24
|
+
surface it lands on; scripts/check-css-contract.js fails the build when a
|
|
25
|
+
component grows a light colour default with no entry here.
|
|
26
|
+
============================================================================ */
|
|
27
|
+
|
|
28
|
+
/* ============================================================================
|
|
29
|
+
Chat family — dark theme.
|
|
30
|
+
The components ship light literals as their token fallbacks (the library
|
|
31
|
+
convention); theming is the consumer's job, and on this site that consumer
|
|
32
|
+
is the demo shell. Without these, dark mode renders the chat surfaces with
|
|
33
|
+
their light defaults — white composer on a near-black page, #27272a
|
|
34
|
+
responder text on #0f0f17.
|
|
35
|
+
============================================================================ */
|
|
36
|
+
[data-theme='dark'] {
|
|
37
|
+
/* Table -- the component's defaults are light all the way through: white
|
|
38
|
+
cells, a #f9fafb header, a white search field. An earlier pass pinned the
|
|
39
|
+
cell background to #ffffff so its dark text stayed readable; that fixed the
|
|
40
|
+
contrast and left a glaring white slab sitting on a dark page. The right
|
|
41
|
+
lever was always these variables -- the component exposes every one of
|
|
42
|
+
them, nothing had ever set them. */
|
|
43
|
+
--table-content-background: #1a1a26;
|
|
44
|
+
--table-content-color: #d1d5db;
|
|
45
|
+
--table-header-background: #1e1e2e;
|
|
46
|
+
--table-header-color: #9ca3af;
|
|
47
|
+
--table-border: 1px solid #2a2a3c;
|
|
48
|
+
--table-row-border: 1px solid #232335;
|
|
49
|
+
--table-row-hover-background: #232335;
|
|
50
|
+
--table-row-alt-background: #1e1e2e;
|
|
51
|
+
--table-row-selected-background: #1e1b4b;
|
|
52
|
+
--table-col-highlight-background: #1e1b3a;
|
|
53
|
+
--table-summary-row-background: #1e1e2e;
|
|
54
|
+
--table-scroll-scrim-color: #1a1a26;
|
|
55
|
+
|
|
56
|
+
--table-search-background: #1e1e2e;
|
|
57
|
+
--table-search-color: #d1d5db;
|
|
58
|
+
--table-search-placeholder-color: #9ca3af;
|
|
59
|
+
--table-search-icon-color: #9ca3af;
|
|
60
|
+
--table-search-clear-color: #9ca3af;
|
|
61
|
+
--table-search-clear-hover-color: #f3f4f6;
|
|
62
|
+
--table-search-clear-hover-background: rgb(255 255 255 / 8%);
|
|
63
|
+
|
|
64
|
+
/* Both #6b7280, tuned for a white surface: ~3.9:1 on the dark footer and
|
|
65
|
+
3.56:1 on the newly-dark cells. Theming a surface means theming what
|
|
66
|
+
sits on it. */
|
|
67
|
+
--table-paginator-range-color: #9ca3af;
|
|
68
|
+
--table-row-number-color: #9ca3af;
|
|
69
|
+
|
|
70
|
+
/* Mobile record cards: the per-cell label span mirrors
|
|
71
|
+
--table-header-color's dark value, since it is standing in for the
|
|
72
|
+
header text at the width where the header row itself is visually
|
|
73
|
+
hidden. The card border mirrors --table-border for the same reason
|
|
74
|
+
scripts/check-css-contract.js does not itself require it here: a
|
|
75
|
+
"1px solid #e5e7eb" fallback never automatically qualifies (its value
|
|
76
|
+
isn't a bare hex colour), but leaving it light-only would still put a
|
|
77
|
+
light-grey card outline on this same dark page. */
|
|
78
|
+
--table-mobile-label-color: #9ca3af;
|
|
79
|
+
--table-mobile-card-border: 1px solid #2a2a3c;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
[data-theme='dark'] {
|
|
83
|
+
/* Select -- the component's own defaults are light (#ffffff trigger,
|
|
84
|
+
#cccccc border, #333333 text) and nothing here had ever overridden them,
|
|
85
|
+
so every Select on every route rendered as a white box on the dark page. */
|
|
86
|
+
--select-color: #d1d5db;
|
|
87
|
+
--select-trigger-background: #1e1e2e;
|
|
88
|
+
--select-trigger-border: 1px solid #2a2a3c;
|
|
89
|
+
--select-trigger-hover-border-color: #3f3f57;
|
|
90
|
+
--select-trigger-pressed-background: #252535;
|
|
91
|
+
--select-placeholder-color: #9ca3af;
|
|
92
|
+
--select-arrow-color: #9ca3af;
|
|
93
|
+
--select-clear-color: #9ca3af;
|
|
94
|
+
--select-clear-hover-background: #252535;
|
|
95
|
+
--select-clear-hover-color: #e5e7eb;
|
|
96
|
+
--select-dropdown-background: #1e1e2e;
|
|
97
|
+
--select-dropdown-border: 1px solid #2a2a3c;
|
|
98
|
+
--select-option-color: #d1d5db;
|
|
99
|
+
--select-option-hover-background: #252535;
|
|
100
|
+
--select-option-hover-color: #f3f4f6;
|
|
101
|
+
--select-menu-search-background: #161621;
|
|
102
|
+
--select-menu-search-border: 1px solid #2a2a3c;
|
|
103
|
+
|
|
104
|
+
/* Input -- same gap. */
|
|
105
|
+
--input-background: #1e1e2e;
|
|
106
|
+
--input-text-color: #d1d5db;
|
|
107
|
+
--input-placeholder-color: #9ca3af;
|
|
108
|
+
--input-border: 1px solid #2a2a3c;
|
|
109
|
+
--input-info-msg-text-color: #9ca3af;
|
|
110
|
+
--input-label-msg-text-color: #9ca3af;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
[data-theme='dark'] {
|
|
114
|
+
/* ChatMessage */
|
|
115
|
+
--chat-message-sender-background: #e4e4e7;
|
|
116
|
+
--chat-message-sender-color: #18181b;
|
|
117
|
+
--chat-message-color: #d1d5db;
|
|
118
|
+
--chat-message-background: #1e1e2e;
|
|
119
|
+
--chat-message-header-color: #9ca3af;
|
|
120
|
+
--chat-message-action-color: #9ca3af;
|
|
121
|
+
--chat-message-action-hover-background-color: #252535;
|
|
122
|
+
--chat-message-code-background: rgb(255 255 255 / 8%);
|
|
123
|
+
--chat-message-pre-background: rgb(255 255 255 / 8%);
|
|
124
|
+
--chat-message-link-color: #a5b4fc;
|
|
125
|
+
--chat-message-error-color: #f87171;
|
|
126
|
+
/* Same element and same light default (#3b82f6) as
|
|
127
|
+
--markdown-text-focus-outline-color: the markdown renderer's table
|
|
128
|
+
wrapper, here inside a chat bubble. Mapped to the same dark value. */
|
|
129
|
+
--chat-message-table-focus-outline-color: #818cf8;
|
|
130
|
+
|
|
131
|
+
/* ChatComposer */
|
|
132
|
+
--chat-composer-background: #1e1e2e;
|
|
133
|
+
--chat-composer-border: 1px solid #2a2a3c;
|
|
134
|
+
--chat-composer-color: #e5e7eb;
|
|
135
|
+
--chat-composer-placeholder-color: #9ca3af;
|
|
136
|
+
--chat-composer-action-color: #9ca3af;
|
|
137
|
+
--chat-composer-action-hover-background-color: #252535;
|
|
138
|
+
--chat-composer-send-background-color: #e4e4e7;
|
|
139
|
+
--chat-composer-send-color: #18181b;
|
|
140
|
+
--chat-composer-send-hover-background-color: #d4d4d8;
|
|
141
|
+
--chat-composer-stop-background-color: #e4e4e7;
|
|
142
|
+
--chat-composer-stop-color: #18181b;
|
|
143
|
+
--chat-composer-voice-recording-background-color: #450a0a;
|
|
144
|
+
--chat-composer-voice-recording-color: #f87171;
|
|
145
|
+
|
|
146
|
+
/* ChatToolStatus */
|
|
147
|
+
--chat-tool-status-background: #1e1e2e;
|
|
148
|
+
--chat-tool-status-border: 1px solid #2a2a3c;
|
|
149
|
+
--chat-tool-status-color: #9ca3af;
|
|
150
|
+
--chat-tool-status-box-shadow: 0 6px 20px rgb(0 0 0 / 40%);
|
|
151
|
+
|
|
152
|
+
/* ChatHeader */
|
|
153
|
+
--chat-header-title-color: #e5e7eb;
|
|
154
|
+
--chat-header-subtitle-color: #9ca3af;
|
|
155
|
+
--chat-header-close-color: #9ca3af;
|
|
156
|
+
--chat-header-close-hover-background-color: #252535;
|
|
157
|
+
|
|
158
|
+
/* ChatMessageList */
|
|
159
|
+
--chat-message-list-jump-background-color: #1e1e2e;
|
|
160
|
+
--chat-message-list-jump-color: #d1d5db;
|
|
161
|
+
--chat-message-list-jump-hover-background-color: #252535;
|
|
162
|
+
--chat-message-list-jump-box-shadow: 0 4px 12px rgb(0 0 0 / 45%);
|
|
163
|
+
|
|
164
|
+
/* Chat surface + ChatBubble widget */
|
|
165
|
+
--chat-background: #161621;
|
|
166
|
+
--chat-bubble-background-color: #e4e4e7;
|
|
167
|
+
--chat-bubble-color: #18181b;
|
|
168
|
+
--chat-bubble-hover-background-color: #d4d4d8;
|
|
169
|
+
--chat-bubble-panel-background: #161621;
|
|
170
|
+
|
|
171
|
+
/* HITL */
|
|
172
|
+
--hitl-background: #1e1e2e;
|
|
173
|
+
--hitl-border: 1px solid #2a2a3c;
|
|
174
|
+
--hitl-divider-color: #2a2a3c;
|
|
175
|
+
--hitl-title-color: #e5e7eb;
|
|
176
|
+
--hitl-param-value-color: #e5e7eb;
|
|
177
|
+
--hitl-badge-color: #9ca3af;
|
|
178
|
+
--hitl-description-color: #9ca3af;
|
|
179
|
+
--hitl-param-label-color: #9ca3af;
|
|
180
|
+
--hitl-completion-background: #252535;
|
|
181
|
+
--hitl-approved-color: #4ade80;
|
|
182
|
+
--hitl-halted-color: #fbbf24;
|
|
183
|
+
--hitl-countdown-filter: brightness(1.6);
|
|
184
|
+
|
|
185
|
+
/* ThinkingIndicator */
|
|
186
|
+
--thinking-indicator-label-color: #9ca3af;
|
|
187
|
+
--thinking-indicator-detail-color: #9ca3af;
|
|
188
|
+
--thinking-indicator-arrow-color: #9ca3af;
|
|
189
|
+
--thinking-indicator-border-bottom: 1px solid #2a2a3c;
|
|
190
|
+
|
|
191
|
+
/* ThinkingIndicator — chip variant (mirrors ChatToolStatus above; Chat's built-in
|
|
192
|
+
tool-status row now renders this instead of ChatToolStatus) */
|
|
193
|
+
--thinking-indicator-chip-background: #1e1e2e;
|
|
194
|
+
--thinking-indicator-chip-border: 1px solid #2a2a3c;
|
|
195
|
+
--thinking-indicator-chip-color: #9ca3af;
|
|
196
|
+
--thinking-indicator-chip-box-shadow: 0 6px 20px rgb(0 0 0 / 40%);
|
|
197
|
+
|
|
198
|
+
/* AttachmentChipRow */
|
|
199
|
+
--attachment-chip-row-chip-background: #1e1e2e;
|
|
200
|
+
--attachment-chip-row-file-tile-background: #252535;
|
|
201
|
+
--attachment-chip-row-file-tile-border: 1px solid #2a2a3c;
|
|
202
|
+
--attachment-chip-row-file-tile-box-shadow: 0 2px 0.25rem rgb(0 0 0 / 40%);
|
|
203
|
+
--attachment-chip-row-file-name-color: #d1d5db;
|
|
204
|
+
--attachment-chip-row-file-glyph-color: #9ca3af;
|
|
205
|
+
--attachment-chip-row-file-glyph-fold-color: #1e1e2e;
|
|
206
|
+
|
|
207
|
+
/* Pill — dark counterparts for the semantic tones. Without these a status chip
|
|
208
|
+
falls back to Pill's built-in light pastels, which are unreadable on this
|
|
209
|
+
ground: the `ok` text #155724 on the neutral chip below is 1.74:1. Every pair
|
|
210
|
+
here clears WCAG AA (5.93:1 at the lowest, `muted`). The neutral chip itself
|
|
211
|
+
is scoped separately, below this block — see the note there. */
|
|
212
|
+
--pill-tone-accent-background: #11262e;
|
|
213
|
+
--pill-tone-accent-color: #7dd3fc;
|
|
214
|
+
--pill-tone-ok-background: #10281a;
|
|
215
|
+
--pill-tone-ok-color: #6ee7a8;
|
|
216
|
+
--pill-tone-warn-background: #2e2410;
|
|
217
|
+
--pill-tone-warn-color: #fcd34d;
|
|
218
|
+
--pill-tone-danger-background: #2d1416;
|
|
219
|
+
--pill-tone-danger-color: #fca5a5;
|
|
220
|
+
--pill-tone-muted-background: #252535;
|
|
221
|
+
--pill-tone-muted-color: #9ca3af;
|
|
222
|
+
|
|
223
|
+
/* ThinkingTrace */
|
|
224
|
+
--thinking-indicator-trace-connector-color: #2a2a3c;
|
|
225
|
+
--thinking-indicator-trace-row-color: #d1d5db;
|
|
226
|
+
--thinking-indicator-trace-prose-color: #9ca3af;
|
|
227
|
+
--thinking-indicator-trace-secondary-color: #9ca3af;
|
|
228
|
+
--thinking-indicator-trace-icon-color: #9ca3af;
|
|
229
|
+
--thinking-indicator-trace-spinner-color: #9ca3af;
|
|
230
|
+
--thinking-indicator-trace-spinner-track-color: #2a2a3c;
|
|
231
|
+
--thinking-indicator-trace-spinner-color-end: #2a2a3c;
|
|
232
|
+
--thinking-indicator-trace-row-hover-background: #252535;
|
|
233
|
+
--thinking-indicator-trace-row-selected-background: #2f2f45;
|
|
234
|
+
--thinking-indicator-trace-query-background: #252535;
|
|
235
|
+
--thinking-indicator-trace-query-color: #d1d5db;
|
|
236
|
+
--thinking-indicator-trace-more-color: #9ca3af;
|
|
237
|
+
--thinking-indicator-trace-added-color: #4ade80;
|
|
238
|
+
--thinking-indicator-trace-removed-color: #f87171;
|
|
239
|
+
|
|
240
|
+
/* ToolCallLog */
|
|
241
|
+
--tool-call-log-chip-background: #1e1e2e;
|
|
242
|
+
--tool-call-log-chip-border: 1px solid #2a2a3c;
|
|
243
|
+
--tool-call-log-chip-hover-background: #252535;
|
|
244
|
+
--tool-call-log-chip-open-border-color: #6366f1;
|
|
245
|
+
--tool-call-log-label-color: #d1d5db;
|
|
246
|
+
--tool-call-log-meta-color: #9ca3af;
|
|
247
|
+
--tool-call-log-error-background: #2a1416;
|
|
248
|
+
--tool-call-log-error-border-color: #7f1d1d;
|
|
249
|
+
--tool-call-log-error-color: #f87171;
|
|
250
|
+
--tool-call-log-error-hover-background: #3b1a1c;
|
|
251
|
+
--tool-call-log-added-background: rgb(74 222 128 / 12%);
|
|
252
|
+
--tool-call-log-added-color: #4ade80;
|
|
253
|
+
--tool-call-log-removed-background: rgb(248 113 113 / 12%);
|
|
254
|
+
--tool-call-log-removed-color: #f87171;
|
|
255
|
+
--tool-call-log-spinner-color: #9ca3af;
|
|
256
|
+
--tool-call-log-spinner-track-color: #2a2a3c;
|
|
257
|
+
--tool-call-log-popover-background: #1e1e2e;
|
|
258
|
+
--tool-call-log-popover-border: 1px solid #2a2a3c;
|
|
259
|
+
--tool-call-log-popover-color: #d1d5db;
|
|
260
|
+
--tool-call-log-popover-shadow: 0 8px 24px rgb(0 0 0 / 55%);
|
|
261
|
+
|
|
262
|
+
/* TaskList */
|
|
263
|
+
--task-list-row-color: #d1d5db;
|
|
264
|
+
--task-list-secondary-color: #9ca3af;
|
|
265
|
+
--task-list-dot-color: #4b5563;
|
|
266
|
+
--task-list-done-color: #9ca3af;
|
|
267
|
+
--task-list-error-color: #f87171;
|
|
268
|
+
--task-list-spinner-color: #9ca3af;
|
|
269
|
+
--task-list-spinner-track-color: #2a2a3c;
|
|
270
|
+
--task-list-retry-background: #2a1416;
|
|
271
|
+
--task-list-retry-color: #f87171;
|
|
272
|
+
--task-list-retry-hover-background: #3b1a1c;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/* Pill — the neutral dark chip for chat suggestion chips and composer attachment
|
|
276
|
+
pills, which carry no tone.
|
|
277
|
+
|
|
278
|
+
Deliberately NOT set alongside the other tokens in the block above. Pill resolves
|
|
279
|
+
colour as `var(--pill-background, var(--_pill-tone-background, …))`, so a bare
|
|
280
|
+
--pill-background on the theme root wins over the tone layer by design (see
|
|
281
|
+
docs/Pill.md). Set there, it silently flattened every tone="…" chip to this same
|
|
282
|
+
grey — all five tones rendered byte-identical in dark mode, so the Pill demo
|
|
283
|
+
showed five indistinguishable chips labelled Accent/Ok/Warn/Danger/Muted.
|
|
284
|
+
|
|
285
|
+
Excluding the tone classes keeps the neutral chip for the untoned pills that
|
|
286
|
+
wanted it, and lets the tone variables above reach the ones that carry a tone. */
|
|
287
|
+
[data-theme='dark'] {
|
|
288
|
+
/* The untoned chip. This used to be a `.pill:not(.tone-…)` selector, to stop a
|
|
289
|
+
bare --pill-background from flattening every toned chip to one grey. The
|
|
290
|
+
scoping was right and the mechanism was not: .pill sits inside <sui-pill>'s
|
|
291
|
+
shadow root, where a document-level descendant selector cannot reach it, so
|
|
292
|
+
the custom element went on painting its #e0e0e0 light default on the dark
|
|
293
|
+
page. Pill now exposes a neutral tier in its fallback chain that resolves
|
|
294
|
+
only when no tone class has set --_pill-tone-*, which says the same thing
|
|
295
|
+
with a token -- and tokens inherit across the boundary. */
|
|
296
|
+
--pill-tone-neutral-background: #252535;
|
|
297
|
+
--pill-tone-neutral-color: #d1d5db;
|
|
298
|
+
--pill-tone-neutral-hover-background: #2f2f45;
|
|
299
|
+
--pill-tone-neutral-hover-color: #e5e7eb;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/* ----------------------------------------------------------------------------
|
|
303
|
+
Second pass — from measurement rather than from reports.
|
|
304
|
+
|
|
305
|
+
The blocks above were written component by component as defects were noticed
|
|
306
|
+
by eye. This pass swept all 98 routes in BOTH themes and composited each
|
|
307
|
+
element's real backdrop up its ancestor chain, instead of only inspecting
|
|
308
|
+
elements that painted a background of their own -- which is what the earlier
|
|
309
|
+
sweep did, and why it was structurally unable to see text sitting on an
|
|
310
|
+
inherited surface. Every value here clears its WCAG threshold against the
|
|
311
|
+
surface the audit measured it on.
|
|
312
|
+
---------------------------------------------------------------------------- */
|
|
313
|
+
[data-theme='dark'] {
|
|
314
|
+
/* Status's panel is frosted glass -- rgba(255,255,255,0.6) behind a 60px
|
|
315
|
+
backdrop-filter. It stayed white in dark mode with the themed light text on
|
|
316
|
+
it, measured at 1.02:1 from real pixels. The sweep could not count it: a
|
|
317
|
+
backdrop-filter means the backdrop is not one colour, so it was quarantined
|
|
318
|
+
as indeterminate rather than guessed at, and only a pixel check settled it.
|
|
319
|
+
The static lint could not see it either -- it reads hex literals, and this
|
|
320
|
+
default is an rgba(). Both limitations are ones those tools print about
|
|
321
|
+
themselves, which is the only reason this was findable at all. */
|
|
322
|
+
--status-panel-background: rgba(30, 30, 46, 0.6);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
[data-theme='dark'] {
|
|
326
|
+
/* Banner */
|
|
327
|
+
--banner-color: #9ca3af;
|
|
328
|
+
--banner-link-color: #93c5fd;
|
|
329
|
+
|
|
330
|
+
/* Book */
|
|
331
|
+
--book-background: #1e1e2e;
|
|
332
|
+
|
|
333
|
+
/* Calendar */
|
|
334
|
+
--calendar-day-name-color: #9ca3af;
|
|
335
|
+
--calendar-outside-month-color: #9ca3af;
|
|
336
|
+
|
|
337
|
+
/* Checkbox */
|
|
338
|
+
--field-error-color: #f87171;
|
|
339
|
+
--field-info-color: #9ca3af;
|
|
340
|
+
|
|
341
|
+
/* Choicebox */
|
|
342
|
+
--choicebox-background: #1e1e2e;
|
|
343
|
+
|
|
344
|
+
/* DeltaIndicator */
|
|
345
|
+
--delta-indicator-negative-color: #f87171;
|
|
346
|
+
|
|
347
|
+
/* FileDropzoneTrigger */
|
|
348
|
+
--file-dropzone-trigger-caption-color: #cbd5e1;
|
|
349
|
+
|
|
350
|
+
/* Gauge */
|
|
351
|
+
--gauge-label-color: #d1d5db;
|
|
352
|
+
|
|
353
|
+
/* GridItem */
|
|
354
|
+
--grid-item-color: #d1d5db;
|
|
355
|
+
|
|
356
|
+
/* Input */
|
|
357
|
+
--input-error-msg-text-color: #f87171;
|
|
358
|
+
|
|
359
|
+
/* InputButton */
|
|
360
|
+
--inputbutton-external-error-color: #f87171;
|
|
361
|
+
|
|
362
|
+
/* Label */
|
|
363
|
+
--label-color: #d1d5db;
|
|
364
|
+
|
|
365
|
+
/* ListItem */
|
|
366
|
+
--list-item-center-text-color: #d1d5db;
|
|
367
|
+
--list-item-right-content-text-color: #d1d5db;
|
|
368
|
+
|
|
369
|
+
/* MediaUpload */
|
|
370
|
+
--media-upload-label-color: #d1d5db;
|
|
371
|
+
|
|
372
|
+
/* PieChart */
|
|
373
|
+
--chart-legend-color: #d1d5db;
|
|
374
|
+
--piechart-legend-more-color: #818cf8;
|
|
375
|
+
--piechart-legend-value-color: #d1d5db;
|
|
376
|
+
|
|
377
|
+
/* Progress */
|
|
378
|
+
--progress-label-color: #d1d5db;
|
|
379
|
+
|
|
380
|
+
/* ProportionBar */
|
|
381
|
+
--proportion-bar-legend-label-color: #9ca3af;
|
|
382
|
+
--proportion-bar-legend-value-color: #d1d5db;
|
|
383
|
+
|
|
384
|
+
/* Radio */
|
|
385
|
+
--radio-text-color: #d1d5db;
|
|
386
|
+
|
|
387
|
+
/* Select */
|
|
388
|
+
--select-error-message-color: #f87171;
|
|
389
|
+
|
|
390
|
+
/* Slider */
|
|
391
|
+
--slider-value-color: #d1d5db;
|
|
392
|
+
|
|
393
|
+
/* StatCard */
|
|
394
|
+
--statcard-background: #1e1e2e;
|
|
395
|
+
--statcard-delta-positive-color: #4ade80;
|
|
396
|
+
|
|
397
|
+
/* Status */
|
|
398
|
+
--status-description-font-color: #9ca3af;
|
|
399
|
+
|
|
400
|
+
/* Stepper */
|
|
401
|
+
--step-index-container-completed-background-color: #1a7a44;
|
|
402
|
+
--step-text-active-color: #818cf8;
|
|
403
|
+
|
|
404
|
+
/* Table */
|
|
405
|
+
--table-cell-secondary-color: #9ca3af;
|
|
406
|
+
--table-cell-thumb-placeholder-color: #4b5563;
|
|
407
|
+
--table-link-color: #60a5fa;
|
|
408
|
+
--table-trend-down-color: #f87171;
|
|
409
|
+
|
|
410
|
+
/* Tabs */
|
|
411
|
+
--tabs-section-label-color: #9ca3af;
|
|
412
|
+
|
|
413
|
+
/* Toggle */
|
|
414
|
+
--toggle-text-color: #d1d5db;
|
|
415
|
+
|
|
416
|
+
/* Toolbar */
|
|
417
|
+
--toolbar-background: #1e1e2e;
|
|
418
|
+
|
|
419
|
+
/* demo page: pill */
|
|
420
|
+
/* NOT --button-text-color: that is the consumer-level hook and it wins over
|
|
421
|
+
the variant layer by design, so setting it here flattened primary,
|
|
422
|
+
destructive and the rest to one grey -- #d1d5db on the destructive red at
|
|
423
|
+
3.24:1. The neutral tier applies only to a button no variant has coloured. */
|
|
424
|
+
--button-neutral-text-color: #d1d5db;
|
|
425
|
+
--button-secondary-text-color: #d1d5db;
|
|
426
|
+
--button-secondary-border-color: #3f3f57;
|
|
427
|
+
--button-secondary-hover-background: #252535;
|
|
428
|
+
--button-ghost-text-color: #d1d5db;
|
|
429
|
+
--button-ghost-hover-background: #252535;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
[data-theme='dark'] {
|
|
433
|
+
/* Stepper. These were selectors inside the component until they were measured
|
|
434
|
+
against <sui-stepper>, where they could never apply. The light rules in
|
|
435
|
+
Stepper.svelte and Step.svelte already read these properties; naming them
|
|
436
|
+
here re-points those same rules and reaches the shadow tree as well.
|
|
437
|
+
Contrast is against this app's #1a1a26 demo surface. */
|
|
438
|
+
--step-text-completed-color: #24aa5a;
|
|
439
|
+
--step-text-failure-color: #ef5350;
|
|
440
|
+
--step-text-in-progress-color: #fbbf24;
|
|
441
|
+
--stepper-separator-background-image-failure-color: #ef5350;
|
|
442
|
+
--stepper-separator-background-image-in-progress-color: #fbbf24;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/* ----------------------------------------------------------------------------
|
|
446
|
+
Third pass — completing the set.
|
|
447
|
+
|
|
448
|
+
The passes above fixed what a demo page happened to render. A static scan of
|
|
449
|
+
every colour default in src/lib (scripts/check-css-contract.js) found 218 more
|
|
450
|
+
that no page exercises: hover fills, popovers, focus rings, empty states. The
|
|
451
|
+
sweep could never have seen them, because nothing on screen was showing them.
|
|
452
|
+
---------------------------------------------------------------------------- */
|
|
453
|
+
[data-theme='dark'] {
|
|
454
|
+
/* Avatar */
|
|
455
|
+
--avatar-background: #2f2f45;
|
|
456
|
+
--avatar-text-color: #d1d5db;
|
|
457
|
+
|
|
458
|
+
/* Banner */
|
|
459
|
+
--banner-background: #1e1e2e;
|
|
460
|
+
|
|
461
|
+
/* Book */
|
|
462
|
+
--book-dot-active-color: #818cf8;
|
|
463
|
+
--book-nav-color: #9ca3af;
|
|
464
|
+
|
|
465
|
+
/* BrandLoader */
|
|
466
|
+
--loader-dot-color: #9ca3af;
|
|
467
|
+
--loader-sub-text-color: #b8bcc4;
|
|
468
|
+
--loader-text-color: #d1d5db;
|
|
469
|
+
|
|
470
|
+
/* Browser */
|
|
471
|
+
--browser-addressbar-bg: #0f0f17;
|
|
472
|
+
--browser-addressbar-color: #9ca3af;
|
|
473
|
+
--browser-chrome-bg: #1e1e2e;
|
|
474
|
+
--browser-chrome-color: #9ca3af;
|
|
475
|
+
--browser-content-bg: #1a1a26;
|
|
476
|
+
--browser-lock-color: #9ca3af;
|
|
477
|
+
--browser-tab-bg: #252535;
|
|
478
|
+
--browser-tab-color: #d1d5db;
|
|
479
|
+
|
|
480
|
+
/* Calendar */
|
|
481
|
+
--calendar-background: #1e1e2e;
|
|
482
|
+
--calendar-cell-color: #d1d5db;
|
|
483
|
+
--calendar-cell-hover-background: #252535;
|
|
484
|
+
--calendar-focus-ring-color: #818cf8;
|
|
485
|
+
--calendar-header-color: #d1d5db;
|
|
486
|
+
--calendar-nav-button-color: #9ca3af;
|
|
487
|
+
--calendar-nav-button-hover-background: #252535;
|
|
488
|
+
--calendar-range-background: #2a2a3c;
|
|
489
|
+
|
|
490
|
+
/* Carousel */
|
|
491
|
+
--carousel-dot-active-color: #818cf8;
|
|
492
|
+
|
|
493
|
+
/* ChatMessage */
|
|
494
|
+
--chat-message-marker-color: #a78bfa;
|
|
495
|
+
|
|
496
|
+
/* Checkbox */
|
|
497
|
+
--checkbox-hover-border-color: #d1d5db;
|
|
498
|
+
--checkbox-label-color: #d1d5db;
|
|
499
|
+
|
|
500
|
+
/* ColorPicker */
|
|
501
|
+
--color-picker-field-background: #1e1e2e;
|
|
502
|
+
--color-picker-field-color: #d1d5db;
|
|
503
|
+
--color-picker-field-focus-border: #60a5fa;
|
|
504
|
+
--color-picker-label-color: #d1d5db;
|
|
505
|
+
--color-picker-popover-background: #1e1e2e;
|
|
506
|
+
--color-picker-swatch-btn-background: #1e1e2e;
|
|
507
|
+
--color-picker-swatch-btn-hover-background: #252535;
|
|
508
|
+
|
|
509
|
+
/* Combobox */
|
|
510
|
+
--combobox-action-color: #9ca3af;
|
|
511
|
+
--combobox-color: #d1d5db;
|
|
512
|
+
--combobox-create-color: #818cf8;
|
|
513
|
+
--combobox-dropdown-background: #1e1e2e;
|
|
514
|
+
--combobox-input-background: #1e1e2e;
|
|
515
|
+
--combobox-input-focus-border-color: #818cf8;
|
|
516
|
+
--combobox-limit-background: #3a2f14;
|
|
517
|
+
--combobox-limit-color: #fbbf24;
|
|
518
|
+
--combobox-option-color: #d1d5db;
|
|
519
|
+
--combobox-option-hover-background: #252535;
|
|
520
|
+
--combobox-option-selected-background: #1e1b4b;
|
|
521
|
+
|
|
522
|
+
/* CommandMenu */
|
|
523
|
+
--command-menu-background: #1e1e2e;
|
|
524
|
+
--command-menu-input-caret-color: #818cf8;
|
|
525
|
+
--command-menu-input-color: #d1d5db;
|
|
526
|
+
--command-menu-item-active-background: #252535;
|
|
527
|
+
--command-menu-item-active-color: #d1d5db;
|
|
528
|
+
--command-menu-item-color: #9ca3af;
|
|
529
|
+
--command-menu-kbd-background: #252535;
|
|
530
|
+
--command-menu-kbd-color: #9ca3af;
|
|
531
|
+
|
|
532
|
+
/* ContextMenu */
|
|
533
|
+
--context-menu-background-color: #1e1e2e;
|
|
534
|
+
--context-menu-item-color: #d1d5db;
|
|
535
|
+
--context-menu-item-danger-color: #f87171;
|
|
536
|
+
--context-menu-item-danger-focus-background-color: #33191c;
|
|
537
|
+
--context-menu-item-danger-hover-background-color: #3a1f22;
|
|
538
|
+
--context-menu-item-focus-background-color: #2a2a3c;
|
|
539
|
+
--context-menu-item-hover-background-color: #252535;
|
|
540
|
+
|
|
541
|
+
/* DateRangePicker */
|
|
542
|
+
--drp-apply-disabled-background: #3f3f4d;
|
|
543
|
+
--drp-apply-disabled-color: #d1d5db;
|
|
544
|
+
--drp-cancel-hover-background: #252535;
|
|
545
|
+
--drp-clear-hover-background: #252535;
|
|
546
|
+
--drp-date-input-background: #1e1e2e;
|
|
547
|
+
--drp-date-input-color: #d1d5db;
|
|
548
|
+
--drp-date-input-invalid-border: #f87171;
|
|
549
|
+
--drp-datetime-arrow-color: #9ca3af;
|
|
550
|
+
--drp-field-error-color: #f87171;
|
|
551
|
+
--drp-nav-btn-hover-background: #252535;
|
|
552
|
+
--drp-panel-background: #1e1e2e;
|
|
553
|
+
--drp-preset-hover-background: #252535;
|
|
554
|
+
--drp-time-field-color: #d1d5db;
|
|
555
|
+
--drp-time-input-background: #1e1e2e;
|
|
556
|
+
--drp-time-input-icon-color: #9ca3af;
|
|
557
|
+
--drp-time-input-invalid-border: #f87171;
|
|
558
|
+
--drp-time-toggle-active-color: #60a5fa;
|
|
559
|
+
--drp-time-toggle-background: #1a1a26;
|
|
560
|
+
--drp-time-toggle-color: #9ca3af;
|
|
561
|
+
--drp-trigger-open-border-color: #818cf8;
|
|
562
|
+
|
|
563
|
+
/* DeltaIndicator */
|
|
564
|
+
--delta-indicator-neutral-color: #9ca3af;
|
|
565
|
+
--delta-indicator-positive-color: #4ade80;
|
|
566
|
+
|
|
567
|
+
/* FileInput */
|
|
568
|
+
--file-input-error-color: #f87171;
|
|
569
|
+
--file-input-info-color: #9ca3af;
|
|
570
|
+
|
|
571
|
+
/* GridItem */
|
|
572
|
+
--grid-item-background-color: #252535;
|
|
573
|
+
|
|
574
|
+
/* Input */
|
|
575
|
+
--input-char-count-color: #9ca3af;
|
|
576
|
+
--input-focus-border-color: #818cf8;
|
|
577
|
+
|
|
578
|
+
/* InputButton */
|
|
579
|
+
--input-field-error-stroke: #f87171;
|
|
580
|
+
--inputbutton-mandatory-color: #f87171;
|
|
581
|
+
|
|
582
|
+
/* KeyValue */
|
|
583
|
+
--keyvalue-label-color: #d1d5db;
|
|
584
|
+
--keyvalue-value-color: #9ca3af;
|
|
585
|
+
|
|
586
|
+
/* KeyboardInput */
|
|
587
|
+
--keyboard-input-key-background: #1e1e2e;
|
|
588
|
+
--keyboard-input-key-color: #d1d5db;
|
|
589
|
+
--keyboard-input-separator-color: #9ca3af;
|
|
590
|
+
|
|
591
|
+
/* Label */
|
|
592
|
+
--label-required-color: #f87171;
|
|
593
|
+
|
|
594
|
+
/* ListItem */
|
|
595
|
+
--list-item-loader-background: #1a1a26;
|
|
596
|
+
|
|
597
|
+
/* MarkdownText */
|
|
598
|
+
--markdown-text-focus-outline-color: #818cf8;
|
|
599
|
+
--markdown-text-link-color: #a78bfa;
|
|
600
|
+
|
|
601
|
+
/* MediaUpload */
|
|
602
|
+
--media-upload-add-background-color: #1e1e2e;
|
|
603
|
+
/* The tile's own text, on that #1e1e2e tile. The light defaults (#6b7280 /
|
|
604
|
+
#9aa0a8) are tuned for a white tile and read at 3.4:1 and 3.8:1 here. */
|
|
605
|
+
--media-upload-add-color: #9ca3af;
|
|
606
|
+
--media-upload-add-hint-color: #9ca3af;
|
|
607
|
+
--media-upload-add-dragging-background-color: #262b4a;
|
|
608
|
+
--media-upload-add-dragging-color: #818cf8;
|
|
609
|
+
--media-upload-add-hover-background-color: #252535;
|
|
610
|
+
--media-upload-add-hover-color: #818cf8;
|
|
611
|
+
--media-upload-counter-color: #9ca3af;
|
|
612
|
+
--media-upload-description-color: #9ca3af;
|
|
613
|
+
--media-upload-error-color: #f87171;
|
|
614
|
+
--media-upload-file-meta-color: #9ca3af;
|
|
615
|
+
--media-upload-item-background-color: #1e1e2e;
|
|
616
|
+
|
|
617
|
+
/* Menu */
|
|
618
|
+
--menu-background-color: #1e1e2e;
|
|
619
|
+
--menu-item-color: #d1d5db;
|
|
620
|
+
--menu-item-danger-color: #f87171;
|
|
621
|
+
--menu-item-danger-focus-background-color: #2a1518;
|
|
622
|
+
--menu-item-danger-hover-background-color: #331519;
|
|
623
|
+
--menu-item-focus-background-color: #252535;
|
|
624
|
+
--menu-item-hover-background-color: #252535;
|
|
625
|
+
|
|
626
|
+
/* Modal */
|
|
627
|
+
--modal-content-background-color: #1e1e2e;
|
|
628
|
+
--modal-footer-background-color: #1a1a26;
|
|
629
|
+
--modal-footer-primary-button-color: #9ca3af;
|
|
630
|
+
--modal-footer-secondary-button-color: #9ca3af;
|
|
631
|
+
--modal-header-background-color: #1a1a26;
|
|
632
|
+
|
|
633
|
+
/* Pagination */
|
|
634
|
+
--pagination-button-hover-background: #252535;
|
|
635
|
+
--pagination-button-hover-color: #d1d5db;
|
|
636
|
+
--pagination-ellipsis-color: #9ca3af;
|
|
637
|
+
--pagination-load-more-hover-background: #252535;
|
|
638
|
+
--pagination-load-more-hover-color: #d1d5db;
|
|
639
|
+
|
|
640
|
+
/* PieChart */
|
|
641
|
+
--piechart-label-color: #d1d5db;
|
|
642
|
+
|
|
643
|
+
/* Pill -- deliberately NOT here. `--_pill-tone-*` is Pill's PRIVATE tone tier,
|
|
644
|
+
set by its own `.pill.tone-*` rules. Setting it on the theme root inherits it
|
|
645
|
+
into every pill, so an UNTONED pill resolved the muted tone's text colour
|
|
646
|
+
(#9ca3af) instead of the neutral tier's (#d1d5db) -- the background matched
|
|
647
|
+
only because muted and neutral share one. The neutral tokens live in their own
|
|
648
|
+
block further down, with the full explanation. */
|
|
649
|
+
|
|
650
|
+
/* Progress */
|
|
651
|
+
--progress-track-background: #2a2a3c;
|
|
652
|
+
|
|
653
|
+
/* ProportionBar */
|
|
654
|
+
--proportion-bar-track-bg: #2a2a3c;
|
|
655
|
+
|
|
656
|
+
/* Radio */
|
|
657
|
+
--radio-background: #1e1e2e;
|
|
658
|
+
--radio-disabled-background: #1a1a26;
|
|
659
|
+
--radio-selected-background: #1e1e2e;
|
|
660
|
+
|
|
661
|
+
/* SankeyChart */
|
|
662
|
+
--sankey-col-label-color: #9ca3af;
|
|
663
|
+
--sankey-label-color: #d1d5db;
|
|
664
|
+
|
|
665
|
+
/* Scroller */
|
|
666
|
+
--scroller-arrow-background: #1e1e2e;
|
|
667
|
+
--scroller-arrow-color: #d1d5db;
|
|
668
|
+
--scroller-arrow-hover-background: #252535;
|
|
669
|
+
|
|
670
|
+
/* Select */
|
|
671
|
+
--select-clear-pressed-background: #2a2a3c;
|
|
672
|
+
--select-menu-search-focus-border-color: #818cf8;
|
|
673
|
+
--select-option-pressed-background: #2a2a3c;
|
|
674
|
+
--select-option-selected-background: #2e304e;
|
|
675
|
+
--select-option-tick-color: #818cf8;
|
|
676
|
+
--select-pill-background: #252535;
|
|
677
|
+
--select-pill-color: #d1d5db;
|
|
678
|
+
--select-trigger-error-border-color: #f87171;
|
|
679
|
+
--select-trigger-focus-border-color: #818cf8;
|
|
680
|
+
|
|
681
|
+
/* Separator */
|
|
682
|
+
--separator-background: #2a2a3c;
|
|
683
|
+
|
|
684
|
+
/* Sheet */
|
|
685
|
+
--sheet-background: #1e1e2e;
|
|
686
|
+
--sheet-close-button-color: #9ca3af;
|
|
687
|
+
--sheet-close-button-hover-background: #252535;
|
|
688
|
+
--sheet-title-color: #e5e7eb;
|
|
689
|
+
|
|
690
|
+
/* Shimmer */
|
|
691
|
+
--shimmer-background: #2a2a3c;
|
|
692
|
+
|
|
693
|
+
/* Slider */
|
|
694
|
+
--slider-thumb-background: #d1d5db;
|
|
695
|
+
--slider-track-background: #2a2a3c;
|
|
696
|
+
|
|
697
|
+
/* SplitInput */
|
|
698
|
+
--field-group-label-color: #9ca3af;
|
|
699
|
+
|
|
700
|
+
/* StatCard */
|
|
701
|
+
--statcard-breakdown-heading-color: #9ca3af;
|
|
702
|
+
--statcard-breakdown-label-color: #9ca3af;
|
|
703
|
+
--statcard-delta-color: #9ca3af;
|
|
704
|
+
--statcard-delta-negative-color: #f87171;
|
|
705
|
+
--statcard-row-additional-color: #9ca3af;
|
|
706
|
+
--statcard-row-heading-color: #9ca3af;
|
|
707
|
+
--statcard-subtitle-color: #9ca3af;
|
|
708
|
+
--statcard-title-color: #9ca3af;
|
|
709
|
+
--statcard-value-warning-color: #fbbf24;
|
|
710
|
+
|
|
711
|
+
/* Stepper */
|
|
712
|
+
--step-index-container-muted-background-color: #2a2a3c;
|
|
713
|
+
--step-index-muted-color: #9ca3af;
|
|
714
|
+
--step-text-color: #9ca3af;
|
|
715
|
+
--step-text-muted-color: #9ca3af;
|
|
716
|
+
--step-text-pending-color: #9ca3af;
|
|
717
|
+
--stepper-separator-background-image-muted-color: #2a2a3c;
|
|
718
|
+
/* One hue, two roles -- the trap Stepper's own comments describe. These
|
|
719
|
+
--stepper-status-*-color values are the LABEL text, read against the dark
|
|
720
|
+
page, and they are also the fallback for the step circle's fill, which
|
|
721
|
+
carries a white number. Lifting them for the label alone put white on
|
|
722
|
+
#f87171 at 2.77:1, so the circle gets its own darker fill. */
|
|
723
|
+
--stepper-status-failure-color: #f87171;
|
|
724
|
+
--step-index-container-failure-background-color: #b91c1c;
|
|
725
|
+
--step-index-container-in-progress-background-color: #92400e;
|
|
726
|
+
--stepper-status-in-progress-color: #fbbf24;
|
|
727
|
+
|
|
728
|
+
/* Table */
|
|
729
|
+
--table-cell-icon-button-color: #9ca3af;
|
|
730
|
+
--table-checkbox-checked-border-color: #60a5fa;
|
|
731
|
+
--table-checkbox-hover-border-color: #d1d5db;
|
|
732
|
+
--table-checkbox-indeterminate-border-color: #60a5fa;
|
|
733
|
+
--table-content-border-bgcolor: #1a1a26;
|
|
734
|
+
--table-content-font-color: #d1d5db;
|
|
735
|
+
--table-filter-active-color: #60a5fa;
|
|
736
|
+
--table-focus-outline-color: #60a5fa;
|
|
737
|
+
--table-header-border-bgcolor: #1e1e2e;
|
|
738
|
+
--table-header-font-color: #9ca3af;
|
|
739
|
+
--table-inline-search-clear-color: #9ca3af;
|
|
740
|
+
--table-link-copy-color: #9ca3af;
|
|
741
|
+
--table-sort-active-color: #60a5fa;
|
|
742
|
+
--table-sort-hover-color: #9ca3af;
|
|
743
|
+
--table-toolbar-background: #1e1e2e;
|
|
744
|
+
--table-trend-flat-color: #9ca3af;
|
|
745
|
+
--table-trend-up-color: #4ade80;
|
|
746
|
+
|
|
747
|
+
/* Tabs */
|
|
748
|
+
--tabs-active-color: #818cf8;
|
|
749
|
+
--tabs-bar-background: #1e1e2e;
|
|
750
|
+
--tabs-hover-background: #252535;
|
|
751
|
+
--tabs-hover-color: #d1d5db;
|
|
752
|
+
--tabs-indicator-color: #818cf8;
|
|
753
|
+
--tabs-item-color: #9ca3af;
|
|
754
|
+
--tabs-item-status-default-color: #818cf8;
|
|
755
|
+
--tabs-item-status-error-color: #f87171;
|
|
756
|
+
|
|
757
|
+
/* ThemeSwitcher */
|
|
758
|
+
--theme-switcher-bg-hover: #252535;
|
|
759
|
+
--theme-switcher-bg-pressed: #2a2a3c;
|
|
760
|
+
--theme-switcher-icon-color: #9ca3af;
|
|
761
|
+
--theme-switcher-icon-color-active: #d1d5db;
|
|
762
|
+
--theme-switcher-segment-active-bg: #2a2a3c;
|
|
763
|
+
--theme-switcher-segment-bg: #1e1e2e;
|
|
764
|
+
|
|
765
|
+
/* ThinkingIndicator */
|
|
766
|
+
--thinking-indicator-elapsed-color: #9ca3af;
|
|
767
|
+
|
|
768
|
+
/* Toast */
|
|
769
|
+
--toast-background-color: #0369a1;
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
/* ----------------------------------------------------------------------------
|
|
773
|
+
Fourth pass — what was still measurably failing after the third.
|
|
774
|
+
---------------------------------------------------------------------------- */
|
|
775
|
+
[data-theme='dark'] {
|
|
776
|
+
--doc-text: #d1d5db;
|
|
777
|
+
--doc-text-secondary: #9ca3af;
|
|
778
|
+
}
|