diff --git a/demo/Semi.Avalonia.Demo/Pages/HighContrastTheme.axaml b/demo/Semi.Avalonia.Demo/Pages/HighContrastTheme.axaml
new file mode 100644
index 0000000..01b2d1b
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo/Pages/HighContrastTheme.axaml
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Pages/HighContrastTheme.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/HighContrastTheme.axaml.cs
new file mode 100644
index 0000000..1146f5c
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo/Pages/HighContrastTheme.axaml.cs
@@ -0,0 +1,28 @@
+using System.Collections.Generic;
+using Avalonia.Controls;
+using Avalonia.Styling;
+using CommunityToolkit.Mvvm.ComponentModel;
+
+namespace Semi.Avalonia.Demo.Pages;
+
+public partial class HighContrastTheme : UserControl
+{
+ public HighContrastTheme()
+ {
+ InitializeComponent();
+ this.DataContext = new HighContrastThemeViewModel();
+ }
+}
+
+public partial class HighContrastThemeViewModel : ObservableObject
+{
+ [ObservableProperty] private ThemeVariant? _selectedThemeVariant = SemiTheme.Aquatic;
+
+ public IEnumerable ThemeVariants =>
+ [
+ SemiTheme.Aquatic,
+ SemiTheme.Desert,
+ SemiTheme.Dust,
+ SemiTheme.NightSky,
+ ];
+}
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Views/MainView.axaml b/demo/Semi.Avalonia.Demo/Views/MainView.axaml
index 376aee0..ce949a5 100644
--- a/demo/Semi.Avalonia.Demo/Views/MainView.axaml
+++ b/demo/Semi.Avalonia.Demo/Views/MainView.axaml
@@ -109,6 +109,9 @@
+
+
+