diff --git a/demo/Ursa.Demo/Pages/TimelineDemo.axaml b/demo/Ursa.Demo/Pages/TimelineDemo.axaml
index 1906f87..39e428a 100644
--- a/demo/Ursa.Demo/Pages/TimelineDemo.axaml
+++ b/demo/Ursa.Demo/Pages/TimelineDemo.axaml
@@ -32,9 +32,9 @@
>
-
-
-
+
+
+
diff --git a/src/Ursa/Controls/Timeline/Timeline.cs b/src/Ursa/Controls/Timeline/Timeline.cs
index e6d25f3..1586733 100644
--- a/src/Ursa/Controls/Timeline/Timeline.cs
+++ b/src/Ursa/Controls/Timeline/Timeline.cs
@@ -83,6 +83,9 @@ public class Timeline: ItemsControl
base.PrepareContainerForItemOverride(container, item, index);
if (container is TimelineItem t)
{
+ bool start = index == 0;
+ bool end = index == ItemCount - 1;
+ t.SetEnd(start, end);
if (IconMemberBinding != null)
{
t.Bind(TimelineItem.IconProperty, IconMemberBinding);
diff --git a/src/Ursa/Controls/Timeline/TimelineItem.cs b/src/Ursa/Controls/Timeline/TimelineItem.cs
index 9fe8af4..20e57d6 100644
--- a/src/Ursa/Controls/Timeline/TimelineItem.cs
+++ b/src/Ursa/Controls/Timeline/TimelineItem.cs
@@ -8,6 +8,7 @@ using Avalonia.Media;
namespace Ursa.Controls;
+[PseudoClasses(":first", ":last")]
public class TimelineItem: HeaderedContentControl
{
public static readonly StyledProperty