diff --git a/src/Avalonia.Visuals/Animation/Transitions/BoxShadowsTransition.cs b/src/Avalonia.Visuals/Animation/Transitions/BoxShadowsTransition.cs
new file mode 100644
index 0000000000..008613fb40
--- /dev/null
+++ b/src/Avalonia.Visuals/Animation/Transitions/BoxShadowsTransition.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Reactive.Linq;
+
+using Avalonia.Animation.Animators;
+using Avalonia.Media;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Transition class that handles with type.
+ ///
+ public class BoxShadowsTransition : Transition
+ {
+ private static readonly BoxShadowsAnimator s_animator = new BoxShadowsAnimator();
+
+ ///
+ public override IObservable DoTransition(IObservable progress, BoxShadows oldValue, BoxShadows newValue)
+ {
+ return progress
+ .Select(progress => s_animator.Interpolate(Easing.Ease(progress), oldValue, newValue));
+ }
+ }
+}