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 @@ + +