Open Bug 1186329 (motion-1) Opened 8 years ago Updated 2 months ago

[META] Implement Motion Path Module Level 1


(Core :: Layout, enhancement, P3)





(Reporter: yiorsi, Unassigned)


(Depends on 13 open bugs, Blocks 1 open bug, )


(Keywords: dev-doc-needed, DevAdvocacy, meta, Whiteboard: [DevRel:P2])


(1 file)

The editors' draft specification is available at

Motion paths allow authors to animate elements along an author-specified path.

Motion path animation provides an easy way for authors to declaratively specify animation of an element along a sequence of lines, arcs or splines. This is a CSS equivalent to the animateMotion tag, but for all HTML and SVG elements. (animateMotion only works with SVG elements, and only in browsers that support SMIL.)

The following CSS properties are implemented and proposed for shipping:
motion-path: none | path(<string>)
motion-offset: <length> | <percentage>
motion-rotation: [ auto | reverse ] && <angle>
motion: <motion-path> && <motion-offset> && <motion-rotation>

When the motion-offset property is animated, for example using Web Animations, the element moves along the path.

When motion-rotation is 'auto' (the default), the element automatically rotates as it follows the path.

The following motion-path options from the spec are not implemented or proposing for shipping at this time:  <url> , <basic-shape> , <geometry-box> , path <fill-rule>
Severity: normal → enhancement
Component: Untriaged → CSS Parsing and Computation
OS: Unspecified → All
Product: Firefox → Core
Hardware: Unspecified → All
Version: 42 Branch → Trunk
@Astley Chen Are you going to support this feature?
(In reply to percyley from comment #2)
> @Astley Chen Are you going to support this feature?

It's under consideration now, would you like to share your thoughts against the spec stability and current support level of browsers ? Your feedback is welcome.
Attached image Chrome-test.png
Chrome 46+ and Opera 33+ support this, but not fully supported.

They only support motion-path: none|path(). See

I think the next CSS specification will have more SVG features, developers are also very much look forward to these characteristics, such as the recent mozilla implementation of the background-clip: text.
There were significant changes to this specification agreed at the CSS working group's face-to-face meeting last week, to merge this specification with the polar positioning feature in CSS round display.  We should wait until those changes shake out before working on an implementation here.
Ever confirmed: true
The specification has now been greatly changed:

motion-offset -> offset-distance
motion-path -> offset-path
motion-rotation -> offset-rotation
motion -> offset



offset-path(motion-path) add <angle> and <size>

Chrome has fully implemented the new specification:!msg/blink-dev/o1C5NzGf9Q0/sbaLF1MbAgAJ
Priority: -- → P3
Keywords: DevAdvocacy
Whiteboard: [DevRel:P2]
(In reply to percyley from comment #8)
> Chrome has fully implemented the new specification:
> sbaLF1MbAgAJ

As far as I can see, Chrome doesn't support the 'offset' shorthand as defined in the spec. yet.

Summary: Support CSS motion path animation → [META] Implement Motion Path Module Level 1
Component: CSS Parsing and Computation → Layout
Alias: motion-1
I'm working on this recently, and will file some bugs later. All my plans and ideas are in [1]. According to [1], I'd like to implement the following properties:
1. offset-path: path()
2. offset-distance
3. offset-rotate
Just as Chrome did at first. Also, we have to make offset-distance and offset-rotate animatable, so the basic target of motion-path could be achieved. After that, we could keep working on other values of offset-path (e.g. ray(), basic-shapes), and support offset-position and offset-anchor.

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.