Skip to content

Search documentation

Type to search the documentation.

Documentation

Angular Movement documentation

Guides for animating Angular with directives and signals, the stability policy, and the generated API reference.

Start hereIntroduction

Angular Movement is a motion library for Angular 21 and 22 — declarative directives, state-driven animation and Web Animations API playback.

Read guide →
Start hereGet started

Install Angular Movement, optionally configure it once, and animate your first element.

Read guide →
Start hereChoose the right tool

CSS, Angular's native animate.enter and animate.leave, Angular Movement and raw WAAPI all have a place. Use the simplest one that does the job.

Read guide →
GuidesAnimate on enter and leave

Animate an element when Angular creates it, shape the timing, and let it finish leaving before it is removed.

Read guide →
GuidesHover, tap and focus feedback

Give buttons, links and cards hover, press and focus feedback that behaves correctly on touch, and reveal content as it scrolls into view.

Read guide →
GuidesReactive animation and variants

Animate an element between states whenever a signal changes, with a single target or with named variants.

Read guide →
GuidesPresence: animate things leaving

Keep a view or a keyed list row mounted until its leave animation finishes, including nested children and rows that return mid-exit.

Read guide →
GuidesStagger, scroll and loops

Coordinate sibling delays by DOM order, bind motion to scroll position, and repeat a short animation.

Read guide →
GuidesMotion values and imperative animation

Derive continuous motion from signals with moveValue, moveTransform and moveSpringValue, or animate an element you hold a reference to with MoveAnimator.

Read guide →
GuidesExperimental: layout and drag

Layout transitions, drag gestures, boolean targets and smooth scrolling are experimental — what they do, and why they have dedicated playgrounds instead of embedded ones.

Read guide →
GuidesLayout motion

Animate reflow, resizing and shared-element handovers from application state — what the experimental moveLayout contract guarantees, what it measures, and what it does not support.

Read guide →
ConceptsChoose an API

Several Movement APIs overlap on purpose. This page says which to pick, and which ones play once versus follow state.

Read guide →
ConceptsAPI overview and stability

How the API is organised, which parts are stable or experimental, and which directives read their inputs once.

Read guide →
ConceptsAngular patterns

The patterns real apps reach for most — hover and press feedback, reveal-on-scroll, staggered lists, imperative animation — and how Movement behaves alongside the Angular features you already use.

Read guide →
ConceptsPresets

Named animations for common product UI moments. Use them when the desired motion is already known and you do not need custom state logic.

Read guide →
ConceptsAccessibility and troubleshooting

How Movement treats reduced motion, SSR and hydration, and what to check when an animation does not behave.

Read guide →
AdoptMigrate from legacy animations

Assess an existing app, then migrate trigger by trigger. Some triggers convert cleanly, some need design decisions, and some should stay in CSS.

Read guide →
AdoptAI agent setup

Give Claude Code (or any MCP-compatible agent) ground-truth access to every directive, input and preset — no more guessed selectors.

Read guide →
ReferenceAPI reference

73 public symbols generated from the TypeScript declarations of the library.

Read guide →
ReferenceMoveAnimateDirective

Plays an entrance when the element is created and, inside movePresence, a leave before it is removed — the one-attribute [move] / [moveAnimate] shorthand.

Read guide →
ReferenceMoveAnimationDirective

Framer Motion-style state animation: give it initial, animate and optional exit states, and it animates to animate whenever the bound object changes.

Read guide →
ReferenceMoveDragDirective

Makes the element draggable with pointer events, with optional axis lock, constraints, snap points and momentum.

Read guide →
ReferenceMoveEnterDirective

Plays a preset or keyframes once, when the element is created.

Read guide →
ReferenceMoveFocusDirective

Plays while the element has keyboard focus and reverses when focus leaves.

Read guide →
ReferenceMoveHoverDirective

Plays while a hover-capable pointer is over the element, and reverses when it leaves.

Read guide →
ReferenceMoveInViewDirective

Plays when the element scrolls into view, once or every time, using an IntersectionObserver.

Read guide →
ReferenceMoveLayoutDirective

Animates the element from its previous position and size to its new layout (FLIP), including shared-element transitions by moveLayoutId.

Read guide →
ReferenceMoveLeaveDirective

Plays a preset or keyframes before the element is removed; inside movePresence the view waits for it to finish.

Read guide →
ReferenceMoveLoopDirective

Repeats a preset or keyframes — endlessly or a set number of times, restarting or reversing each cycle.

Read guide →
ReferenceMoveParallaxDirective

Moves the element at a different speed from the scroll, deriving the travel from its size and the viewport.

Read guide →
ReferenceMovePresenceDirective

Structural directive that keeps its view mounted until every registered leave animation inside it has finished.

Read guide →
ReferenceMovePresenceForDirective

Keyed-list counterpart to movePresence.

Read guide →
ReferenceMoveScrollDirective

Scrubs keyframes with scroll position between two offsets, and exposes the progress as a signal.

Read guide →
ReferenceMoveSmoothScrollDirective

Directive that enables smooth scrolling on a specific scrollable container.

Read guide →
ReferenceMoveStaggerDirective

Gives each animated child a delay from its DOM order, from the first, last or centre child, so lists cascade without index bookkeeping.

Read guide →
ReferenceMoveTapDirective

Plays while the element is pressed with a pointer and reverses on release — press feedback that also works on touch, where there is no hover.

Read guide →
ReferenceMoveTargetDirective

Plays keyframes or a preset on its host when the bound boolean turns true, and plays them in reverse when it turns false.

Read guide →
ReferenceMoveTextDirective

Splits the host's text content into animated spans/words.

Read guide →
ReferenceMoveTriggerDirective

Plays keyframes on its host when a boolean flips to true, and resets when it flips back — the declarative trigger side of moveTarget/moveTrigger.

Read guide →
ReferenceMoveVariantsDirective

Animates between named states: bind moveVariant to a signal and the element animates whenever the name changes.

Read guide →
ReferenceMoveAnimator

The supported way to animate from TypeScript — sequencing phases, reacting to a server response, driving a node the template does not own, View Transitions.

Read guide →
ReferenceSmoothScrollService

SmoothScrollService — Lenis-inspired smooth scroll for Angular.

Read guide →
ReferencemoveIconBounce

Returns keyframes for a subtle bounce animation on an icon.

Read guide →
ReferencemoveIconPulse

Returns keyframes for a subtle pulse animation on an icon.

Read guide →
ReferencemoveIconRotate

Returns keyframes for a subtle rotate animation on an icon.

Read guide →
ReferencemoveIconShake

Returns keyframes for a subtle shake animation on an icon.

Read guide →
ReferencemovePathDraw

Returns keyframes for a path-drawing animation.

Read guide →
ReferencemoveSpringValue

Creates a signal that follows a source signal with spring physics, for values that should settle instead of jump.

Read guide →
ReferencemoveTimeToMs

Converts a MoveTime to milliseconds: moveTimeToMs('0.08s') === 80, moveTimeToMs(80) === 80.

Read guide →
ReferencemoveTransform

Derives a signal by mapping another signal's value from one range onto another (clamped by default), like Framer Motion's useTransform.

Read guide →
ReferencemoveValue

Creates a writable signal meant to drive motion, to bind into animation inputs or derive with moveTransform.

Read guide →
ReferenceprovideMovement

Sets library-wide animation defaults.

Read guide →
ReferenceAnimationControls

The universal handle every animation returns, whether it comes from a directive internally or from MoveAnimator.animate().

Read guide →
ReferenceMoveAnimateOptions

Options for one imperative animation — the same vocabulary MoveTriggerDirective.play() takes.

Read guide →
ReferenceMoveAnimationConfig

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveDragEvent

Experimental API — may change significantly between minor versions.

Read guide →
ReferenceMoveDragSnapPoint

Experimental API — may change significantly between minor versions.

Read guide →
ReferenceMoveKeyframeProperties

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveKeyframeState

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMovePresenceForContext

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMovePresetDefinition

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMovePropertyTransition

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveRepeatOptions

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveSpring

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveSpringValueConfig

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveTransformOptions

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMovementConfig

The resolved, library-wide animation defaults — what MOVEMENT_CONFIG injects.

Read guide →
ReferenceMoveAnimationTarget

Anything MoveAnimator can animate: an element, or the ElementRef a viewChild() already gives you.

Read guide →
ReferenceMoveDragAxis

Experimental API — may change significantly between minor versions.

Read guide →
ReferenceMoveDragConstraints

Experimental API — may change significantly between minor versions.

Read guide →
ReferenceMoveKeyframes

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMovePresenceForMode

'sync' — entering and leaving items animate at the same time.

Read guide →
ReferenceMovePresenceForTrackBy

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMovePreset

Named animation presets.

Read guide →
ReferenceMoveRepeatType

'loop' restarts from the first keyframe each cycle.

Read guide →
ReferenceMoveStaggerDirection

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveStateValue

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveTime

A duration or delay.

Read guide →
ReferenceMoveTransformValue

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveTransitionConfig

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveValue

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveValuePair

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveVariant

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMoveVariantOrchestration

'beforeChildren' plays the parent first and offsets its children by the parent's duration.

Read guide →
ReferenceMoveVariantState

Stable API — covered by semantic-versioning guarantees.

Read guide →
ReferenceMovementConfigInput

What provideMovement() accepts: any subset of MovementConfig, with duration and delay taking a MoveTime (320, '320ms', '0.32s').

Read guide →
ReferenceMOVEMENT_CONFIG

Injection token for the resolved library-wide defaults; override them with provideMovement(config).

Read guide →
ReferenceMOVEMENT_DEFAULTS

The built-in timing defaults (duration, easing, delay) used when nothing is configured.

Read guide →
ReferenceMOVEMENT_DIRECTIVES

All directives the library ships (every MOVEMENT_STABLE_DIRECTIVES plus every MOVEMENT_EXPERIMENTAL_DIRECTIVES member), ready to spread into a standalone compo…

Read guide →
ReferenceMOVEMENT_EXPERIMENTAL_DIRECTIVES

Every experimental directive — may change or be removed in any 1.x minor.

Read guide →
ReferenceMOVEMENT_STABLE_DIRECTIVES

Every stable directive — none of these change behavior or shape outside a major version.

Read guide →
ReferenceMOVE_PRESETS

Constant reference for MOVE_PRESETS.

Read guide →