diff --git a/src/Semi.Avalonia.Demo/MainWindow.axaml b/src/Semi.Avalonia.Demo/MainWindow.axaml
index 5e601d2..54b97ad 100644
--- a/src/Semi.Avalonia.Demo/MainWindow.axaml
+++ b/src/Semi.Avalonia.Demo/MainWindow.axaml
@@ -29,5 +29,8 @@
+
+
+
diff --git a/src/Semi.Avalonia.Demo/Pages/ButtonDemo.axaml b/src/Semi.Avalonia.Demo/Pages/ButtonDemo.axaml
index 6c2ec75..db55b78 100644
--- a/src/Semi.Avalonia.Demo/Pages/ButtonDemo.axaml
+++ b/src/Semi.Avalonia.Demo/Pages/ButtonDemo.axaml
@@ -1,5 +1,11 @@
+ x:Class="Semi.Avalonia.Demo.Pages.ButtonDemo"
+ xmlns="https://github.com/avaloniaui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ d:DesignHeight="450"
+ d:DesignWidth="800" mc:Ignorable="d">
Light (Default)
diff --git a/src/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml b/src/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml
new file mode 100644
index 0000000..9e4de28
--- /dev/null
+++ b/src/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml
@@ -0,0 +1,37 @@
+
+
+ Light (Default)
+
+ Primary
+ Secondary
+ Tertiary
+ Warning
+ Danger
+ Danger
+
+ Solid
+
+ Primary
+ Secondary
+ Tertiary
+ Warning
+ Danger
+ Danger
+
+ Borderless
+
+ Primary
+ Secondary
+ Tertiary
+ Warning
+ Danger
+ Danger
+
+
+
diff --git a/src/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml.cs b/src/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml.cs
new file mode 100644
index 0000000..68c130f
--- /dev/null
+++ b/src/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml.cs
@@ -0,0 +1,18 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace Semi.Avalonia.Demo.Pages;
+
+public partial class RepeatButtonDemo : UserControl
+{
+ public RepeatButtonDemo()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+}
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Controls/Controls.axaml b/src/Semi.Avalonia/Controls/Controls.axaml
index 9846461..8d57c8d 100644
--- a/src/Semi.Avalonia/Controls/Controls.axaml
+++ b/src/Semi.Avalonia/Controls/Controls.axaml
@@ -6,6 +6,7 @@
+
diff --git a/src/Semi.Avalonia/Controls/RepeatButton.axaml b/src/Semi.Avalonia/Controls/RepeatButton.axaml
new file mode 100644
index 0000000..f1279d1
--- /dev/null
+++ b/src/Semi.Avalonia/Controls/RepeatButton.axaml
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Semi.Avalonia/Semi.Avalonia.csproj b/src/Semi.Avalonia/Semi.Avalonia.csproj
index 24aa0da..5158939 100644
--- a/src/Semi.Avalonia/Semi.Avalonia.csproj
+++ b/src/Semi.Avalonia/Semi.Avalonia.csproj
@@ -3,6 +3,7 @@
net6.0;netstandard2.0
10
+ 0.1.0-preview1