diff --git a/demo/Semi.Avalonia.Demo/Pages/ButtonDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/ButtonDemo.axaml
index 72cc9df..9b5023d 100644
--- a/demo/Semi.Avalonia.Demo/Pages/ButtonDemo.axaml
+++ b/demo/Semi.Avalonia.Demo/Pages/ButtonDemo.axaml
@@ -6,174 +6,369 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- Light (Default)
-
-
-
-
-
-
-
-
-
- Solid
-
-
-
-
-
-
-
-
-
- Outline
-
-
-
-
-
-
-
-
-
- Borderless
-
-
-
-
-
-
-
-
-
- Disabled
-
-
-
-
-
-
- Size Classes
-
-
-
-
-
+
+
+
+
+
+
+
+
- DropDownButton
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- SplitButton
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- ToggleSplitButton
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml
deleted file mode 100644
index a9045c9..0000000
--- a/demo/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
- Light (Default)
-
- Primary
- Secondary
- Tertiary
- Success
- Warning
- Danger
- Disabled
-
- Solid
-
- Primary
- Secondary
- Tertiary
- Success
- Warning
- Danger
-
- Disabled
-
-
- Outline
-
- Primary
- Secondary
- Tertiary
- Success
- Warning
- Danger
-
- Disabled
-
-
- Borderless
-
- Primary
- Secondary
- Tertiary
- Success
- Warning
- Danger
-
- Disabled
-
-
- Disabled
-
-
-
-
-
-
- Size Classes
-
- Small
- Default
- Large
-
-
-
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml.cs
deleted file mode 100644
index 3c0a63e..0000000
--- a/demo/Semi.Avalonia.Demo/Pages/RepeatButtonDemo.axaml.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Avalonia.Controls;
-
-namespace Semi.Avalonia.Demo.Pages;
-
-public partial class RepeatButtonDemo : UserControl
-{
- public RepeatButtonDemo()
- {
- InitializeComponent();
- }
-}
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Pages/ToggleButtonDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/ToggleButtonDemo.axaml
deleted file mode 100644
index a954a7b..0000000
--- a/demo/Semi.Avalonia.Demo/Pages/ToggleButtonDemo.axaml
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
-
- Default
- Primary
- Secondary
- Tertiary
- Success
- Warning
- Danger
- Disabled
-
-
-
- Default
- Primary
- Secondary
- Tertiary
- Success
- Warning
- Danger
-
- Disabled
-
-
-
-
- Default
-
- Primary
-
-
- Secondary
-
-
- Tertiary
-
-
- Success
-
-
- Warning
-
-
- Danger
-
-
- Disabled
-
-
-
-
- Default
- Checked
- Indeterminate
-
-
-
- Small
- Default
- Large
-
-
-
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Pages/ToggleButtonDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/ToggleButtonDemo.axaml.cs
deleted file mode 100644
index 643ed31..0000000
--- a/demo/Semi.Avalonia.Demo/Pages/ToggleButtonDemo.axaml.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Avalonia.Controls;
-
-namespace Semi.Avalonia.Demo.Pages;
-
-public partial class ToggleButtonDemo : UserControl
-{
- public ToggleButtonDemo()
- {
- InitializeComponent();
- }
-}
\ 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 639de3c..fa86d0c 100644
--- a/demo/Semi.Avalonia.Demo/Views/MainView.axaml
+++ b/demo/Semi.Avalonia.Demo/Views/MainView.axaml
@@ -161,15 +161,9 @@
-
-
-
-
-
-
diff --git a/src/Semi.Avalonia/Controls/Button.axaml b/src/Semi.Avalonia/Controls/Button.axaml
index 7218632..ad4c871 100644
--- a/src/Semi.Avalonia/Controls/Button.axaml
+++ b/src/Semi.Avalonia/Controls/Button.axaml
@@ -1,11 +1,97 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -68,6 +154,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/src/Semi.Avalonia/Controls/DropDownButton.axaml b/src/Semi.Avalonia/Controls/DropDownButton.axaml
index 2dfc3c0..befda5c 100644
--- a/src/Semi.Avalonia/Controls/DropDownButton.axaml
+++ b/src/Semi.Avalonia/Controls/DropDownButton.axaml
@@ -2,16 +2,90 @@
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -36,13 +110,12 @@
Padding="{TemplateBinding Padding}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -277,6 +390,16 @@
+
+
+
+
diff --git a/src/Semi.Avalonia/Controls/ToggleButton.axaml b/src/Semi.Avalonia/Controls/ToggleButton.axaml
index 11e1c96..d607361 100644
--- a/src/Semi.Avalonia/Controls/ToggleButton.axaml
+++ b/src/Semi.Avalonia/Controls/ToggleButton.axaml
@@ -2,20 +2,67 @@
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-
- Toggle
- Toggle
- Toggle
- Toggle
- Toggle
- Toggle
-
- Toggle 3
- Toggle 3
- Toggle 3
- Toggle 3
- Toggle 3
- Toggle 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+