@djangocfg/ui-core 2.1.460 → 2.1.463

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 (46) hide show
  1. package/README.md +1 -1
  2. package/package.json +19 -11
  3. package/src/styles/README.md +74 -510
  4. package/src/styles/{base.css → css/base.css} +1 -1
  5. package/src/styles/css/presets/default.css +1 -0
  6. package/src/styles/css/presets/dense.css +36 -0
  7. package/src/styles/css/presets/django-cfg.css +44 -0
  8. package/src/styles/css/presets/high-contrast.css +24 -0
  9. package/src/styles/css/presets/ios.css +120 -0
  10. package/src/styles/css/presets/macos.css +138 -0
  11. package/src/styles/css/presets/soft.css +52 -0
  12. package/src/styles/css/presets/windows.css +140 -0
  13. package/src/styles/{utilities → css/utilities}/glass.css +16 -0
  14. package/src/styles/presets/index.ts +2 -15
  15. package/src/styles/presets/presets.ts +0 -3
  16. package/src/styles/presets/types.ts +4 -148
  17. package/src/theme/README.md +36 -64
  18. package/src/theme/TROUBLESHOOTING.md +4 -0
  19. package/src/styles/presets/build.ts +0 -64
  20. package/src/styles/presets/themes/default.ts +0 -6
  21. package/src/styles/presets/themes/dense.ts +0 -31
  22. package/src/styles/presets/themes/django-cfg.ts +0 -62
  23. package/src/styles/presets/themes/high-contrast.ts +0 -35
  24. package/src/styles/presets/themes/index.ts +0 -24
  25. package/src/styles/presets/themes/ios.ts +0 -114
  26. package/src/styles/presets/themes/macos.ts +0 -190
  27. package/src/styles/presets/themes/soft.ts +0 -48
  28. package/src/styles/presets/themes/types.ts +0 -6
  29. package/src/styles/presets/themes/windows.ts +0 -154
  30. /package/src/styles/{full.css → css/full.css} +0 -0
  31. /package/src/styles/{globals.css → css/globals.css} +0 -0
  32. /package/src/styles/{index.css → css/index.css} +0 -0
  33. /package/src/styles/{sources.css → css/sources.css} +0 -0
  34. /package/src/styles/{theme → css/theme}/animations.css +0 -0
  35. /package/src/styles/{theme → css/theme}/dark.css +0 -0
  36. /package/src/styles/{theme → css/theme}/light.css +0 -0
  37. /package/src/styles/{theme → css/theme}/tokens.css +0 -0
  38. /package/src/styles/{theme.css → css/theme.css} +0 -0
  39. /package/src/styles/{utilities → css/utilities}/animations.css +0 -0
  40. /package/src/styles/{utilities → css/utilities}/controls.css +0 -0
  41. /package/src/styles/{utilities → css/utilities}/display.css +0 -0
  42. /package/src/styles/{utilities → css/utilities}/divider.css +0 -0
  43. /package/src/styles/{utilities → css/utilities}/marquee.css +0 -0
  44. /package/src/styles/{utilities → css/utilities}/overlay.css +0 -0
  45. /package/src/styles/{utilities → css/utilities}/step.css +0 -0
  46. /package/src/styles/{utilities.css → css/utilities.css} +0 -0
@@ -1,190 +0,0 @@
1
- /**
2
- * macOS Sequoia/Sonoma: pixel-accurate Apple system colors.
3
- *
4
- * Light surfaces: systemGroupedBackground #F2F2F7, cards on pure white.
5
- * Dark surfaces: #141414 (deeper than stock #1C1C1E — matches Sequoia finder/mail dark chrome),
6
- * card #1E1E20, popover #2C2C2E, sidebar #0D0D0F (near-black vibrancy floor).
7
- * Borders: Apple uses a hairline separator — rgba(60,60,67,0.29) light / rgba(84,84,88,0.36) dark.
8
- * At HSL that's ~82% L light / ~22% L dark. Kept razor-thin intentionally.
9
- * Primary: #007AFF light / #0A84FF dark — exact Apple systemBlue.
10
- * Radius: 10px (HIG standard component), 12px popovers, 20px dialogs.
11
- * Source: Apple HIG Color — developer.apple.com/design/human-interface-guidelines/color
12
- */
13
- import type { ThemePreset } from './types';
14
-
15
- // SF Pro Text/Display + SF Mono — available natively in WebKit/Wails embedded views.
16
- // Size scale: Apple HIG points (1pt ≈ 1px at 1×).
17
- const appleTypography = {
18
- 'font-sans': '"SF Pro Text", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif',
19
- 'font-mono': '"SF Mono", ui-monospace, Menlo, "Courier New", monospace',
20
- 'font-size-base': '0.8125rem', // 13pt — HIG default body
21
- 'font-size-sm': '0.75rem', // 12pt — footnotes, secondary labels
22
- 'font-size-xs': '0.6875rem', // 11pt — captions, timestamps
23
- 'font-size-lg': '0.9375rem', // 15pt — subheadings
24
- 'font-size-xl': '1.0625rem', // 17pt — titles, nav bar
25
- 'line-height-base': '1.47', // HIG recommended for body text
26
- 'letter-spacing-base': '-0.022em', // SF Pro optical tracking at small sizes
27
- } as const;
28
-
29
- export const macosPreset: ThemePreset = {
30
- light: {
31
- // systemGroupedBackground #F2F2F7 — main page canvas
32
- background: 'hsl(240 17% 97%)',
33
- foreground: 'hsl(0 0% 7%)',
34
- // Cards: pure white elevated surface — standard Apple insetGrouped cell
35
- card: 'hsl(0 0% 100%)',
36
- 'card-foreground': 'hsl(0 0% 7%)',
37
- // Popovers / context menus: white with system drop shadow
38
- popover: 'hsl(0 0% 100%)',
39
- 'popover-foreground': 'hsl(0 0% 7%)',
40
- // systemBlue #007AFF
41
- primary: 'hsl(211 100% 50%)',
42
- 'primary-foreground': 'hsl(0 0% 100%)',
43
- // secondarySystemGroupedBackground #EFEFF4 — section headers, nested surfaces
44
- secondary: 'hsl(240 12% 95%)',
45
- 'secondary-foreground': 'hsl(0 0% 7%)',
46
- // tertiarySystemGroupedBackground #E5E5EA — chips, tag pills, disabled fills
47
- muted: 'hsl(240 8% 91%)',
48
- 'muted-foreground': 'hsl(240 3% 44%)',
49
- // Blue-tinted hover state — Apple uses a subtle blue wash, never plain grey
50
- accent: 'hsl(211 50% 96%)',
51
- 'accent-foreground': 'hsl(211 100% 36%)',
52
- // systemRed #FF3B30
53
- destructive: 'hsl(2 100% 59%)',
54
- 'destructive-foreground': 'hsl(0 0% 100%)',
55
- // Apple opaque separator: rgba(60,60,67,0.29) on white ≈ #C6C6C8 → HSL 240 3% 78%.
56
- // Kept at the Apple hairline value (78%). An earlier build nudged this darker
57
- // (78→74) to force outlines onto white cards, but that over-contrasted every
58
- // panel/header `border-b` on the grouped canvas — back to the HIG hairline.
59
- border: 'hsl(240 3% 78%)',
60
- input: 'hsl(240 8% 93%)',
61
- // Row hairline — a touch lighter than border so it reads on white cards
62
- divider: 'hsl(240 4% 83%)',
63
- ring: 'hsl(211 100% 50%)',
64
- radius: '0.625rem',
65
- // Modal scrim — lighter than the base 0.6 so the light grouped canvas still
66
- // reads behind the dialog (Apple sheets dim, they don't black out).
67
- overlay: 'hsl(240 6% 10% / 0.32)',
68
- // Sidebar: slighly darker than page, matches macOS sidebar material
69
- 'sidebar-background': 'hsl(240 12% 94%)',
70
- 'sidebar-foreground': 'hsl(0 0% 7%)',
71
- 'sidebar-primary': 'hsl(211 100% 50%)',
72
- 'sidebar-primary-foreground': 'hsl(0 0% 100%)',
73
- 'sidebar-accent': 'hsl(211 50% 93%)',
74
- 'sidebar-accent-foreground': 'hsl(211 100% 36%)',
75
- 'sidebar-border': 'hsl(240 3% 82%)',
76
- 'sidebar-ring': 'hsl(211 100% 50%)',
77
- // Chart: systemBlue + Apple tint palette
78
- 'chart-1': 'hsl(211 100% 50%)',
79
- 'chart-2': 'hsl(142 52% 40%)',
80
- 'chart-3': 'hsl(262 60% 56%)',
81
- 'chart-4': 'hsl(35 100% 48%)',
82
- 'chart-5': 'hsl(2 100% 59%)',
83
- // Status surfaces — Apple system colors (systemOrange/Green/Red/Blue) with
84
- // faint tinted banner fills that sit on the #F2F2F7 grouped canvas.
85
- warning: 'hsl(35 100% 48%)', // systemOrange #FF9500
86
- 'warning-background': 'hsl(35 100% 95%)',
87
- 'warning-foreground': 'hsl(28 80% 30%)',
88
- 'warning-border': 'hsl(35 90% 78%)',
89
- success: 'hsl(142 71% 45%)', // systemGreen #34C759
90
- 'success-background': 'hsl(142 60% 95%)',
91
- 'success-foreground': 'hsl(142 60% 24%)',
92
- 'success-border': 'hsl(142 55% 76%)',
93
- 'destructive-background': 'hsl(2 100% 96%)',
94
- 'destructive-border': 'hsl(2 90% 80%)',
95
- info: 'hsl(211 100% 50%)', // systemBlue #007AFF
96
- 'info-background': 'hsl(211 100% 96%)',
97
- 'info-foreground': 'hsl(211 80% 30%)',
98
- 'info-border': 'hsl(211 90% 80%)',
99
- ...appleTypography,
100
- },
101
- dark: {
102
- // Deeper than stock #1C1C1E — matches Sequoia dark finder/mail chrome (#141414)
103
- background: 'hsl(240 5% 8%)',
104
- foreground: 'hsl(0 0% 95%)',
105
- // secondarySystemBackground #1E1E20 — cards lifted above the #141414 page.
106
- // Bumped 12→15 so panels (dialog body, settings cards) visibly float off the
107
- // near-black canvas; on L≈8 a +4 lift is too subtle for the eye (Weber).
108
- card: 'hsl(240 3% 15%)',
109
- 'card-foreground': 'hsl(0 0% 95%)',
110
- // #2C2C2E — popovers, menus, dropdowns; kept a clear step above card.
111
- popover: 'hsl(240 3% 20%)',
112
- 'popover-foreground': 'hsl(0 0% 95%)',
113
- // systemBlue dark #0A84FF
114
- primary: 'hsl(211 100% 58%)',
115
- 'primary-foreground': 'hsl(0 0% 100%)',
116
- // Elevated neutral surface — slightly lighter than card
117
- secondary: 'hsl(240 3% 20%)',
118
- 'secondary-foreground': 'hsl(0 0% 88%)',
119
- // Recessed surface — a notch BELOW the page (bg 8%), like default's muted.
120
- // `--muted` is the "sunk" surface (input rest, nav rails, chips): it must
121
- // read as recessed vs `--card` (15%), not raised. Apple's #3A3A3C
122
- // tertiary fill (23%) sat *above* card and inverted the depth — the
123
- // SettingsDialog nav rail (bg-muted) then looked lighter than its panel.
124
- muted: 'hsl(240 3% 11%)',
125
- 'muted-foreground': 'hsl(240 4% 58%)',
126
- // Blue-tinted hover (Apple active state in dark)
127
- accent: 'hsl(211 25% 19%)',
128
- 'accent-foreground': 'hsl(211 100% 72%)',
129
- // systemRed dark #FF453A
130
- destructive: 'hsl(3 100% 62%)',
131
- 'destructive-foreground': 'hsl(0 0% 100%)',
132
- // Control/panel OUTLINE — input & card frames, not separators. Opaque 22%
133
- // reads cleanly as a control edge on card (L15) surfaces. Structural
134
- // separators (shell columns, headers, list rows) do NOT use this — they use
135
- // `--divider`, which is a softer translucent hairline (see below), so the
136
- // outline weight here never turns the chrome into a hard grid.
137
- border: 'hsl(240 3% 22%)',
138
- input: 'hsl(240 3% 22%)',
139
- // Separator hairline — TRANSLUCENT, mirroring Apple's rgba(84,84,88,0.36):
140
- // a light grey at low alpha that dissolves into whatever sits behind it
141
- // instead of a fixed opaque line. This is the token for ALL structural
142
- // separators — shell columns (rail↔list↔chat), header `border-b` rules, and
143
- // list-row hairlines — deliberately softer than the opaque `--border`
144
- // outline so the chrome never reads as a hard grid on the near-black canvas.
145
- // 46% L @ 0.18 alpha picked live in cmdop-web: a quiet, self-adapting
146
- // hairline (heavier over an elevated card, lighter on the page).
147
- divider: 'hsl(240 4% 46% / 0.18)',
148
- ring: 'hsl(211 100% 58%)',
149
- radius: '0.625rem',
150
- // Modal scrim — a touch lighter than the base 0.7. The page is already near
151
- // black (L≈8); 0.55 dims it enough to separate the dialog without crushing
152
- // the backdrop into a flat black slab the panel can't lift off of.
153
- overlay: 'hsl(0 0% 0% / 0.55)',
154
- // Sidebar: near-black floor — #0D0D0F
155
- 'sidebar-background': 'hsl(240 5% 5%)',
156
- 'sidebar-foreground': 'hsl(0 0% 90%)',
157
- 'sidebar-primary': 'hsl(211 100% 58%)',
158
- 'sidebar-primary-foreground': 'hsl(0 0% 100%)',
159
- 'sidebar-accent': 'hsl(211 22% 16%)',
160
- 'sidebar-accent-foreground': 'hsl(211 100% 72%)',
161
- // 22 — the sidebar rail floor is #0D0D0F (L5), darker than the page (L8), so
162
- // its edge needs a touch more lift than the page-calibrated `--border` (18)
163
- // to read at all. Still a hairline, not the hard rule an outline weight draws.
164
- 'sidebar-border': 'hsl(240 3% 22%)',
165
- 'sidebar-ring': 'hsl(211 100% 58%)',
166
- // Chart: brighter variants for contrast on dark
167
- 'chart-1': 'hsl(211 100% 58%)',
168
- 'chart-2': 'hsl(142 52% 50%)',
169
- 'chart-3': 'hsl(262 60% 65%)',
170
- 'chart-4': 'hsl(35 100% 56%)',
171
- 'chart-5': 'hsl(3 100% 62%)',
172
- // Status surfaces (dark) — Apple dark system colors, dim banner fills on the
173
- // #141414 canvas with raised foregrounds for contrast.
174
- warning: 'hsl(35 100% 56%)', // systemOrange dark #FF9F0A
175
- 'warning-background': 'hsl(35 70% 10%)',
176
- 'warning-foreground': 'hsl(35 95% 70%)',
177
- 'warning-border': 'hsl(35 50% 26%)',
178
- success: 'hsl(142 60% 50%)', // systemGreen dark #30D158
179
- 'success-background': 'hsl(142 50% 9%)',
180
- 'success-foreground': 'hsl(142 65% 68%)',
181
- 'success-border': 'hsl(142 40% 24%)',
182
- 'destructive-background': 'hsl(3 70% 11%)',
183
- 'destructive-border': 'hsl(3 55% 30%)',
184
- info: 'hsl(211 100% 58%)', // systemBlue dark #0A84FF
185
- 'info-background': 'hsl(211 70% 11%)',
186
- 'info-foreground': 'hsl(211 90% 72%)',
187
- 'info-border': 'hsl(211 50% 30%)',
188
- ...appleTypography,
189
- },
190
- };
@@ -1,48 +0,0 @@
1
- /**
2
- * soft — density/feel modifier (NOT a full color theme).
3
- *
4
- * Larger radius (1rem) + gently lifted neutral surfaces for friendly marketing
5
- * UIs. It deliberately only overrides the neutral chrome (background/card/muted/
6
- * accent/border/input/divider/radius + sidebar surfaces) and inherits brand
7
- * colors (primary/ring/charts/status) from whatever base or brand preset is
8
- * active, so `soft` composes with `django-cfg` etc. Light and dark are kept
9
- * symmetric — every key set in one mode is set in the other.
10
- */
11
- import type { ThemePreset } from './types';
12
-
13
- export const softPreset: ThemePreset = {
14
- light: {
15
- background: 'hsl(0 0% 98%)',
16
- foreground: 'hsl(240 6% 10%)',
17
- card: 'hsl(0 0% 100%)',
18
- 'card-foreground': 'hsl(240 6% 10%)',
19
- muted: 'hsl(240 5% 96%)',
20
- 'muted-foreground': 'hsl(240 4% 46%)',
21
- accent: 'hsl(240 5% 94%)',
22
- 'accent-foreground': 'hsl(240 6% 10%)',
23
- border: 'hsl(240 5% 91%)',
24
- input: 'hsl(240 5% 91%)',
25
- divider: 'hsl(240 5% 93%)',
26
- radius: '1rem',
27
- 'sidebar-background': 'hsl(0 0% 99%)',
28
- 'sidebar-accent': 'hsl(240 5% 94%)',
29
- 'sidebar-border': 'hsl(240 5% 91%)',
30
- },
31
- dark: {
32
- background: 'hsl(240 6% 8%)',
33
- foreground: 'hsl(0 0% 96%)',
34
- card: 'hsl(240 5% 12%)',
35
- 'card-foreground': 'hsl(0 0% 96%)',
36
- muted: 'hsl(240 4% 16%)',
37
- 'muted-foreground': 'hsl(240 5% 64%)',
38
- accent: 'hsl(240 5% 16%)',
39
- 'accent-foreground': 'hsl(0 0% 96%)',
40
- border: 'hsl(240 5% 20%)',
41
- input: 'hsl(240 5% 20%)',
42
- divider: 'hsl(240 5% 48% / 0.18)', // translucent hairline — dissolves into the page
43
- radius: '1rem',
44
- 'sidebar-background': 'hsl(240 6% 6%)',
45
- 'sidebar-accent': 'hsl(240 5% 14%)',
46
- 'sidebar-border': 'hsl(240 5% 20%)',
47
- },
48
- };
@@ -1,6 +0,0 @@
1
- import type { ThemeCssVarMap } from '../types';
2
-
3
- export interface ThemePreset {
4
- light: ThemeCssVarMap;
5
- dark: ThemeCssVarMap;
6
- }
@@ -1,154 +0,0 @@
1
- /**
2
- * Windows 11 Fluent Design: LayerFillColorDefault (#F3F3F3), AccentDark1 (#0067C0),
3
- * 6px radius (WinUI 3 cards), subtle Mica-style chrome.
4
- * Source: Microsoft Fluent 2 Design Tokens — https://fluent2.microsoft.design/color
5
- */
6
- import type { ThemePreset } from './types';
7
-
8
- /** Segoe UI Variable typography (Fluent Design: 14pt base, neutral spacing) */
9
- const fluentTypography = {
10
- 'font-sans': '"Segoe UI Variable", "Segoe UI", ui-sans-serif, system-ui, sans-serif',
11
- 'font-mono': '"Cascadia Code", "Cascadia Mono", Consolas, "Courier New", monospace',
12
- 'font-size-base': '0.875rem',
13
- 'font-size-sm': '0.8125rem',
14
- 'font-size-xs': '0.75rem',
15
- 'font-size-lg': '1rem',
16
- 'font-size-xl': '1.125rem',
17
- 'line-height-base': '1.5',
18
- 'letter-spacing-base': '0em',
19
- } as const;
20
-
21
- export const windowsPreset: ThemePreset = {
22
- light: {
23
- // #F3F3F3 — LayerFillColorDefault
24
- background: 'hsl(0 0% 95%)',
25
- foreground: 'hsl(0 0% 9%)',
26
- // CardBackgroundFillColorDefault
27
- card: 'hsl(0 0% 100%)',
28
- 'card-foreground': 'hsl(0 0% 9%)',
29
- popover: 'hsl(0 0% 100%)',
30
- 'popover-foreground': 'hsl(0 0% 9%)',
31
- // #0067C0 — AccentDark1 (WCAG AA on white)
32
- primary: 'hsl(210 100% 38%)',
33
- 'primary-foreground': 'hsl(0 0% 100%)',
34
- // SubtleFillColorSecondaryBackground #F0F0F0
35
- secondary: 'hsl(0 0% 94%)',
36
- 'secondary-foreground': 'hsl(0 0% 9%)',
37
- // SubtleFillColorTertiaryBackground #EBEBEB
38
- muted: 'hsl(0 0% 92%)',
39
- 'muted-foreground': 'hsl(0 0% 42%)',
40
- accent: 'hsl(210 60% 94%)',
41
- 'accent-foreground': 'hsl(210 100% 28%)',
42
- destructive: 'hsl(0 90% 55%)',
43
- 'destructive-foreground': 'hsl(0 0% 100%)',
44
- // ControlStrokeColorDefault: rgba(0,0,0,0.0578)
45
- border: 'hsl(0 0% 87%)',
46
- input: 'hsl(0 0% 90%)',
47
- // Hairline between rows — slightly lighter than border
48
- divider: 'hsl(0 0% 84%)',
49
- ring: 'hsl(210 100% 45%)',
50
- // Fluent SmokeFillColorDefault — content dialogs dim the layer beneath.
51
- overlay: 'hsl(0 0% 0% / 0.4)',
52
- // WinUI 3: 4px controls, 8px cards/dialogs
53
- radius: '0.375rem',
54
- 'sidebar-background': 'hsl(0 0% 92%)',
55
- 'sidebar-foreground': 'hsl(0 0% 9%)',
56
- 'sidebar-primary': 'hsl(210 100% 38%)',
57
- 'sidebar-primary-foreground': 'hsl(0 0% 100%)',
58
- 'sidebar-accent': 'hsl(210 50% 93%)',
59
- 'sidebar-accent-foreground': 'hsl(210 100% 28%)',
60
- 'sidebar-border': 'hsl(0 0% 86%)',
61
- 'sidebar-ring': 'hsl(210 100% 45%)',
62
- 'chart-1': 'hsl(210 100% 38%)',
63
- 'chart-2': 'hsl(145 63% 38%)',
64
- 'chart-3': 'hsl(262 83% 55%)',
65
- 'chart-4': 'hsl(35 100% 48%)',
66
- 'chart-5': 'hsl(346 77% 50%)',
67
- // Status surfaces — Fluent system colors
68
- warning: 'hsl(38 92% 50%)',
69
- 'warning-background': 'hsl(38 100% 95%)',
70
- 'warning-foreground': 'hsl(30 80% 28%)',
71
- 'warning-border': 'hsl(38 85% 78%)',
72
- success: 'hsl(120 78% 27%)',
73
- 'success-background': 'hsl(120 55% 95%)',
74
- 'success-foreground': 'hsl(120 60% 28%)',
75
- 'success-border': 'hsl(120 45% 78%)',
76
- 'destructive-background': 'hsl(0 90% 96%)',
77
- 'destructive-border': 'hsl(0 85% 78%)',
78
- info: 'hsl(210 100% 38%)',
79
- 'info-background': 'hsl(210 100% 95%)',
80
- 'info-foreground': 'hsl(210 90% 28%)',
81
- 'info-border': 'hsl(210 80% 78%)',
82
- // On-fill ink: Fluent's light success/info fills are DARK (27%/38% L), so
83
- // near-black (base --on-*) fails — these two need WHITE ink instead.
84
- // on-success vs success (120 78% 27%) → 5.5:1 (AA)
85
- // on-info vs info (210 100% 38%) → 6.0:1 (AA)
86
- // warning/destructive light fills stay near-black (base value is correct).
87
- 'on-success': 'hsl(0 0% 100%)',
88
- 'on-info': 'hsl(0 0% 100%)',
89
- ...fluentTypography,
90
- },
91
- dark: {
92
- // #202020 — SolidBackgroundFillColorBase dark
93
- background: 'hsl(0 0% 13%)',
94
- foreground: 'hsl(0 0% 96%)',
95
- // #2B2B2B — CardBackgroundFillColorDefault dark
96
- card: 'hsl(0 0% 17%)',
97
- 'card-foreground': 'hsl(0 0% 96%)',
98
- // #323232 — elevated surface
99
- popover: 'hsl(0 0% 20%)',
100
- 'popover-foreground': 'hsl(0 0% 96%)',
101
- // #60CDFF — AccentLight2 dark mode
102
- primary: 'hsl(200 100% 69%)',
103
- 'primary-foreground': 'hsl(0 0% 9%)',
104
- secondary: 'hsl(0 0% 22%)',
105
- 'secondary-foreground': 'hsl(0 0% 90%)',
106
- // Recessed surface — below the page (bg 13%) and below card (17%), so
107
- // bg-muted rails/chips read as sunk, not raised above the panel.
108
- muted: 'hsl(0 0% 15%)',
109
- 'muted-foreground': 'hsl(0 0% 62%)',
110
- accent: 'hsl(210 25% 20%)',
111
- 'accent-foreground': 'hsl(200 100% 75%)',
112
- destructive: 'hsl(0 90% 62%)',
113
- 'destructive-foreground': 'hsl(0 0% 100%)',
114
- // ControlStrokeColorDefault dark: rgba(255,255,255,0.0837)
115
- border: 'hsl(0 0% 28%)',
116
- input: 'hsl(0 0% 24%)',
117
- // Hairline between rows — softer than border
118
- divider: 'hsl(0 0% 46% / 0.18)', // translucent hairline — dissolves into the page
119
- ring: 'hsl(200 100% 69%)',
120
- // Fluent SmokeFillColorDefault dark — dims the dark page behind the dialog.
121
- overlay: 'hsl(0 0% 0% / 0.55)',
122
- radius: '0.375rem',
123
- // NavigationView pane background
124
- 'sidebar-background': 'hsl(0 0% 10%)',
125
- 'sidebar-foreground': 'hsl(0 0% 90%)',
126
- 'sidebar-primary': 'hsl(200 100% 69%)',
127
- 'sidebar-primary-foreground': 'hsl(0 0% 9%)',
128
- 'sidebar-accent': 'hsl(210 20% 18%)',
129
- 'sidebar-accent-foreground': 'hsl(200 100% 75%)',
130
- 'sidebar-border': 'hsl(0 0% 22%)',
131
- 'sidebar-ring': 'hsl(200 100% 69%)',
132
- 'chart-1': 'hsl(200 100% 69%)',
133
- 'chart-2': 'hsl(145 65% 50%)',
134
- 'chart-3': 'hsl(262 83% 65%)',
135
- 'chart-4': 'hsl(35 100% 58%)',
136
- 'chart-5': 'hsl(346 77% 58%)',
137
- // Status surfaces — Fluent system colors
138
- warning: 'hsl(38 95% 58%)',
139
- 'warning-background': 'hsl(38 60% 10%)',
140
- 'warning-foreground': 'hsl(38 90% 72%)',
141
- 'warning-border': 'hsl(38 50% 28%)',
142
- success: 'hsl(120 60% 55%)',
143
- 'success-background': 'hsl(120 40% 10%)',
144
- 'success-foreground': 'hsl(120 55% 72%)',
145
- 'success-border': 'hsl(120 35% 28%)',
146
- 'destructive-background': 'hsl(0 60% 11%)',
147
- 'destructive-border': 'hsl(0 50% 30%)',
148
- info: 'hsl(200 100% 69%)',
149
- 'info-background': 'hsl(200 60% 11%)',
150
- 'info-foreground': 'hsl(200 90% 74%)',
151
- 'info-border': 'hsl(200 50% 30%)',
152
- ...fluentTypography,
153
- },
154
- };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes