@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.
- package/README.md +1 -1
- package/package.json +19 -11
- package/src/styles/README.md +74 -510
- package/src/styles/{base.css → css/base.css} +1 -1
- package/src/styles/css/presets/default.css +1 -0
- package/src/styles/css/presets/dense.css +36 -0
- package/src/styles/css/presets/django-cfg.css +44 -0
- package/src/styles/css/presets/high-contrast.css +24 -0
- package/src/styles/css/presets/ios.css +120 -0
- package/src/styles/css/presets/macos.css +138 -0
- package/src/styles/css/presets/soft.css +52 -0
- package/src/styles/css/presets/windows.css +140 -0
- package/src/styles/{utilities → css/utilities}/glass.css +16 -0
- package/src/styles/presets/index.ts +2 -15
- package/src/styles/presets/presets.ts +0 -3
- package/src/styles/presets/types.ts +4 -148
- package/src/theme/README.md +36 -64
- package/src/theme/TROUBLESHOOTING.md +4 -0
- package/src/styles/presets/build.ts +0 -64
- package/src/styles/presets/themes/default.ts +0 -6
- package/src/styles/presets/themes/dense.ts +0 -31
- package/src/styles/presets/themes/django-cfg.ts +0 -62
- package/src/styles/presets/themes/high-contrast.ts +0 -35
- package/src/styles/presets/themes/index.ts +0 -24
- package/src/styles/presets/themes/ios.ts +0 -114
- package/src/styles/presets/themes/macos.ts +0 -190
- package/src/styles/presets/themes/soft.ts +0 -48
- package/src/styles/presets/themes/types.ts +0 -6
- package/src/styles/presets/themes/windows.ts +0 -154
- /package/src/styles/{full.css → css/full.css} +0 -0
- /package/src/styles/{globals.css → css/globals.css} +0 -0
- /package/src/styles/{index.css → css/index.css} +0 -0
- /package/src/styles/{sources.css → css/sources.css} +0 -0
- /package/src/styles/{theme → css/theme}/animations.css +0 -0
- /package/src/styles/{theme → css/theme}/dark.css +0 -0
- /package/src/styles/{theme → css/theme}/light.css +0 -0
- /package/src/styles/{theme → css/theme}/tokens.css +0 -0
- /package/src/styles/{theme.css → css/theme.css} +0 -0
- /package/src/styles/{utilities → css/utilities}/animations.css +0 -0
- /package/src/styles/{utilities → css/utilities}/controls.css +0 -0
- /package/src/styles/{utilities → css/utilities}/display.css +0 -0
- /package/src/styles/{utilities → css/utilities}/divider.css +0 -0
- /package/src/styles/{utilities → css/utilities}/marquee.css +0 -0
- /package/src/styles/{utilities → css/utilities}/overlay.css +0 -0
- /package/src/styles/{utilities → css/utilities}/step.css +0 -0
- /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,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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|