diff --git a/src/Avalonia.Themes.Fluent2/Accents/BaseResources.xaml b/src/Avalonia.Themes.Fluent2/Accents/BaseResources.xaml
index 5328a71b3c..31c3ebcf01 100644
--- a/src/Avalonia.Themes.Fluent2/Accents/BaseResources.xaml
+++ b/src/Avalonia.Themes.Fluent2/Accents/BaseResources.xaml
@@ -9,16 +9,16 @@
True
1
- 2
- 10,6,6,5
+ 1,1,1,2
+ 10,5,6,6
20
20
24
- 8,5,8,6
+ 11,5,11,6
-
- 3
- 5
+
+ 4
+ 8
scaleX(0.125) translateX(-2px)
@@ -99,8 +99,8 @@
Color="{StaticResource SystemChromeMediumLowColor}" />
-
-
+
+
@@ -260,8 +260,8 @@
Color="{StaticResource SystemChromeMediumLowColor}" />
-
-
+
+
diff --git a/src/Avalonia.Themes.Fluent2/Accents/Fluent2ColorPalette.xaml b/src/Avalonia.Themes.Fluent2/Accents/Fluent2ColorPalette.xaml
new file mode 100644
index 0000000000..09684eaad9
--- /dev/null
+++ b/src/Avalonia.Themes.Fluent2/Accents/Fluent2ColorPalette.xaml
@@ -0,0 +1,174 @@
+
+
+
+
+ #E4000000
+ #9E000000
+ #72000000
+ #5C000000
+ #FFFFFF
+ #5C000000
+ #FFFFFF
+ #FFFFFF
+ #B3FFFFFF
+ #FFFFFF
+ #B3FFFFFF
+ #80F9F9F9
+ #4DF9F9F9
+ #4DF9F9F9
+ #00FFFFFF
+ #FFFFFF
+ #72000000
+ #51000000
+ #FFFFFF
+ #00FFFFFF
+ #09000000
+ #06000000
+ #00FFFFFF
+ #00FFFFFF
+ #06000000
+ #0F000000
+ #18000000
+ #00FFFFFF
+ #C9FFFFFF
+ #F3F3F3
+ #EBEBEB
+ #00FFFFFF
+ #37000000
+ #0F000000
+ #29000000
+ #14FFFFFF
+ #66000000
+ #37000000
+ #0F000000
+ #59FFFFFF
+ #0F000000
+ #EBEBEB
+ #72000000
+ #37000000
+ #66757575
+ #0F000000
+ #15FFFFFF
+ #0F000000
+ #E4000000
+ #B3FFFFFF
+ #B3FFFFFF
+ #80F6F6F6
+ #4D000000
+ #80FFFFFF
+ #FFFFFF
+ #40FFFFFF
+ #40FFFFFF
+ #B3FFFFFF
+ #0A000000
+ #F9F9F9
+ #00000000
+ #F3F3F3
+ #EEEEEE
+ #F9F9F9
+ #FFFFFF
+ #00F3F3F3
+ #DADADA
+ #0F7B0F
+ #9D5D00
+ #C42B1C
+ #72000000
+ #8A8A8A
+ #80F6F6F6
+ #DFF6DD
+ #FFF4CE
+ #FDE7E9
+ #06000000
+ #F7F7F7
+ #F3F3F3
+
+
+ #FFFFFF
+ #C5FFFFFF
+ #87FFFFFF
+ #5DFFFFFF
+ #E4000000
+ #5DFFFFFF
+ #FFFFFF
+ #000000
+ #80000000
+ #87FFFFFF
+ #0FFFFFFF
+ #15FFFFFF
+ #08FFFFFF
+ #0BFFFFFF
+ #00FFFFFF
+ #B31E1E1E
+ #8BFFFFFF
+ #3FFFFFFF
+ #454545
+ #00FFFFFF
+ #0FFFFFFF
+ #0AFFFFFF
+ #00FFFFFF
+ #00FFFFFF
+ #19000000
+ #0BFFFFFF
+ #12FFFFFF
+ #00FFFFFF
+ #B31C1C1C
+ #1A1A1A
+ #131313
+ #1E1E1E
+ #28FFFFFF
+ #12FFFFFF
+ #18FFFFFF
+ #14FFFFFF
+ #23000000
+ #37000000
+ #33000000
+ #6B000000
+ #19000000
+ #1C1C1C
+ #8BFFFFFF
+ #28FFFFFF
+ #66757575
+ #33000000
+ #0F000000
+ #15FFFFFF
+ #FFFFFF
+ #B3000000
+ #0DFFFFFF
+ #08FFFFFF
+ #4D000000
+ #4C3A3A3A
+ #0DFFFFFF
+ #09FFFFFF
+ #09FFFFFF
+ #733A3A3A
+ #0FFFFFFF
+ #2C2C2C
+ #00FFFFFF
+ #202020
+ #1C1C1C
+ #282828
+ #2C2C2C
+ #00202020
+ #0A0A0A
+ #6CCB5F
+ #FCE100
+ #FF99A4
+ #8BFFFFFF
+ #9D9D9D
+ #08FFFFFF
+ #393D1B
+ #433519
+ #442726
+ #08FFFFFF
+ #2E2E2E
+ #2E2E2E
+
+
+
diff --git a/src/Avalonia.Themes.Fluent2/Accents/Fluent2TokenResources.xaml b/src/Avalonia.Themes.Fluent2/Accents/Fluent2TokenResources.xaml
new file mode 100644
index 0000000000..ed1a5f5104
--- /dev/null
+++ b/src/Avalonia.Themes.Fluent2/Accents/Fluent2TokenResources.xaml
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0,0,0,1
+ 00:00:00.250
+ 00:00:00.167
+ 00:00:00.168
+ 00:00:00.083
+
diff --git a/src/Avalonia.Themes.Fluent2/Accents/SystemAccentColors.cs b/src/Avalonia.Themes.Fluent2/Accents/SystemAccentColors.cs
index aa1d9d7f88..5d6749f9cd 100644
--- a/src/Avalonia.Themes.Fluent2/Accents/SystemAccentColors.cs
+++ b/src/Avalonia.Themes.Fluent2/Accents/SystemAccentColors.cs
@@ -18,6 +18,15 @@ internal sealed class SystemAccentColors : ResourceProvider
public const string AccentLight3Key = "SystemAccentColorLight3";
private static readonly Color s_defaultSystemAccentColor = Color.FromRgb(0, 120, 215);
+ // Static shade values from WinUI (matching the Uno/WinUI SystemResources defaults). Used when
+ // the platform provides no accent color, so the out-of-the-box palette matches WinUI exactly.
+ // OS-provided accent colors get computed shades instead.
+ private static readonly Color s_defaultSystemAccentColorDark1 = Color.FromUInt32(0xFF005A9E);
+ private static readonly Color s_defaultSystemAccentColorDark2 = Color.FromUInt32(0xFF004275);
+ private static readonly Color s_defaultSystemAccentColorDark3 = Color.FromUInt32(0xFF002642);
+ private static readonly Color s_defaultSystemAccentColorLight1 = Color.FromUInt32(0xFF429CE3);
+ private static readonly Color s_defaultSystemAccentColorLight2 = Color.FromUInt32(0xFF76B9ED);
+ private static readonly Color s_defaultSystemAccentColorLight3 = Color.FromUInt32(0xFFA6D8FF);
private bool _invalidateColors = true;
private Color _systemAccentColor;
private Color _systemAccentColorDark1, _systemAccentColorDark2, _systemAccentColorDark3;
@@ -109,10 +118,25 @@ internal sealed class SystemAccentColors : ResourceProvider
_invalidateColors = false;
var platformSettings = GetFromOwner(Owner);
-
+
_systemAccentColor = platformSettings?.GetColorValues().AccentColor1 ?? s_defaultSystemAccentColor;
- (_systemAccentColorDark1,_systemAccentColorDark2, _systemAccentColorDark3,
- _systemAccentColorLight1, _systemAccentColorLight2, _systemAccentColorLight3) = CalculateAccentShades(_systemAccentColor);
+
+ if (_systemAccentColor == s_defaultSystemAccentColor)
+ {
+ // Platforms without a real accent color report the default; use WinUI's static
+ // shade values so the out-of-the-box palette matches WinUI exactly.
+ _systemAccentColorDark1 = s_defaultSystemAccentColorDark1;
+ _systemAccentColorDark2 = s_defaultSystemAccentColorDark2;
+ _systemAccentColorDark3 = s_defaultSystemAccentColorDark3;
+ _systemAccentColorLight1 = s_defaultSystemAccentColorLight1;
+ _systemAccentColorLight2 = s_defaultSystemAccentColorLight2;
+ _systemAccentColorLight3 = s_defaultSystemAccentColorLight3;
+ }
+ else
+ {
+ (_systemAccentColorDark1, _systemAccentColorDark2, _systemAccentColorDark3,
+ _systemAccentColorLight1, _systemAccentColorLight2, _systemAccentColorLight3) = CalculateAccentShades(_systemAccentColor);
+ }
}
}
diff --git a/src/Avalonia.Themes.Fluent2/Controls/AdornerLayer.xaml b/src/Avalonia.Themes.Fluent2/Controls/AdornerLayer.xaml
index fefa1ea055..b232527fef 100644
--- a/src/Avalonia.Themes.Fluent2/Controls/AdornerLayer.xaml
+++ b/src/Avalonia.Themes.Fluent2/Controls/AdornerLayer.xaml
@@ -1,18 +1,24 @@
-
- 0
+
+ -3
2
1
-
+ 7
+ 5
+
+ BorderBrush="{DynamicResource SystemControlFocusVisualSecondaryBrush}"
+ CornerRadius="{DynamicResource FocusVisualInnerCornerRadius}" />
diff --git a/src/Avalonia.Themes.Fluent2/Fluent2Theme.xaml b/src/Avalonia.Themes.Fluent2/Fluent2Theme.xaml
index 749c29a1e1..ffe5d101c5 100644
--- a/src/Avalonia.Themes.Fluent2/Fluent2Theme.xaml
+++ b/src/Avalonia.Themes.Fluent2/Fluent2Theme.xaml
@@ -9,11 +9,13 @@
+
+