diff --git a/demo/Semi.Avalonia.Demo/Pages/LabelDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/LabelDemo.axaml
index d5adc3d..7fddd0b 100644
--- a/demo/Semi.Avalonia.Demo/Pages/LabelDemo.axaml
+++ b/demo/Semi.Avalonia.Demo/Pages/LabelDemo.axaml
@@ -7,77 +7,218 @@
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ Classes
+ -
+ Secondary
+ Tertiary
+ Quaternary
+ Warning
+ Danger
+ Success
+ Mark
+ Code
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Classes
+ H1
+ H2
+ H3
+ H4
+ H5
+ H6
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/demo/Semi.Avalonia.Demo/Pages/SelectableTextBlock.axaml b/demo/Semi.Avalonia.Demo/Pages/SelectableTextBlock.axaml
new file mode 100644
index 0000000..0de5617
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo/Pages/SelectableTextBlock.axaml
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+ Classes
+ -
+ Secondary
+ Tertiary
+ Quaternary
+ Warning
+ Danger
+ Success
+ Mark
+ Underline
+ Delete
+
+ Text
+
+ Secondary
+
+
+ Tertiary
+
+
+ Quaternary
+
+
+ Warning
+
+
+ Danger
+
+
+ Success
+
+
+ Default Mark
+
+
+ Underline
+
+
+ Delete
+
+
+
+
+
+ Classes
+ H1
+ H2
+ H3
+ H4
+ H5
+ H6
+
+ Header 1
+
+
+ Header 2
+
+
+ Header 3
+
+
+ Header 4
+
+
+ Header 5
+
+
+ Header 6
+
+
+
+
+
+
diff --git a/demo/Semi.Avalonia.Demo/Pages/SelectableTextBlock.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/SelectableTextBlock.axaml.cs
new file mode 100644
index 0000000..b4cc6d7
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo/Pages/SelectableTextBlock.axaml.cs
@@ -0,0 +1,18 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace Semi.Avalonia.Demo.Pages;
+
+public partial class SelectableTextBlockDemo : UserControl
+{
+ public SelectableTextBlockDemo()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+}
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Pages/TextBlockDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/TextBlockDemo.axaml
index 7aca219..1125ce4 100644
--- a/demo/Semi.Avalonia.Demo/Pages/TextBlockDemo.axaml
+++ b/demo/Semi.Avalonia.Demo/Pages/TextBlockDemo.axaml
@@ -7,82 +7,155 @@
d:DesignHeight="600"
d:DesignWidth="800"
mc:Ignorable="d">
-
-
- Styles for TextBlock
- Header 1
- Header 1
- Header 1
- Header 1
- Header 1
- Header 1
+
+
+
+
+
+
+
+ Classes
+ -
+ Secondary
+ Tertiary
+ Quaternary
+ Warning
+ Danger
+ Success
+ Mark
+ Underline
+ Delete
- Text
- Secondary
- Tertiary
- Quaternary
- Warning
- Warning disabled
- Danger
- Success
- Disabled
- Default Mark
- Underline
- Delete
- Underline and Delete
-
-
- Styles for SelectableTextBlock
- Header 1
- Header 1
- Header 1
- Header 1
- Header 1
- Header 1
+ Text
+
+ Secondary
+
+
+ Tertiary
+
+
+ Quaternary
+
+
+ Warning
+
+
+ Danger
+
+
+ Success
+
+
+ Default Mark
+
+
+ Underline
+
+
+ Delete
+
+
+
+
+
+ Classes
+ H1
+ H2
+ H3
+ H4
+ H5
+ H6
+
+ Header 1
+
+
+ Header 2
+
+
+ Header 3
+
+
+ Header 4
+
+
+ Header 5
+
+
+ Header 6
+
+
- Text
- Secondary
- Tertiary
- Quaternary
- Warning
- Warning disabled
- Danger
- Success
- Disabled
- Default Mark
- Underline
- Delete
- Underline and Delete
+
-
- Styles for Label
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/demo/Semi.Avalonia.Demo/Views/MainView.axaml b/demo/Semi.Avalonia.Demo/Views/MainView.axaml
index 13b37f7..a87d488 100644
--- a/demo/Semi.Avalonia.Demo/Views/MainView.axaml
+++ b/demo/Semi.Avalonia.Demo/Views/MainView.axaml
@@ -159,6 +159,9 @@
+
+
+