Bug 1186329 (motion-1)

[META] Implement Motion Path Module Level 1




4 years ago
6 months ago


(Reporter: yiorsi, Unassigned)


(Depends on 7 bugs, Blocks 1 bug, {dev-doc-needed, DevAdvocacy, meta})

Dependency tree / graph

Firefox Tracking Flags

(Not tracked)


(Whiteboard: [DevRel:P2], URL)


(1 attachment)

Comment hidden (obsolete)

Comment 1

4 years ago
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>


4 years ago
Severity: normal → enhancement
Component: Untriaged → CSS Parsing and Computation
OS: Unspecified → All
Product: Firefox → Core
Hardware: Unspecified → All
Version: 42 Branch → Trunk

Comment 2

3 years ago
@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.

Comment 4

3 years ago
Posted image Chrome-test.png

Comment 5

3 years ago
Chrome 46+ and Opera 33+ support this, but not fully supported.

They only support motion-path: none|path(). See https://bug1186329.bmoattachments.org/attachment.cgi?id=8753754

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

Comment 8

3 years ago
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: https://groups.google.com/a/chromium.org/forum/#!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:
> https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/o1C5NzGf9Q0/
> 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


a year ago
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.

[1] https://public.etherpad-mozilla.org/p/motionpath
Depends on: 1429298
Depends on: 1429299
Depends on: 1429301
Depends on: 1429303
Depends on: 1429305


10 months ago
Depends on: 1480649


10 months ago
Depends on: 1480665


9 months ago
Depends on: 1484780


9 months ago
Depends on: 1485433


9 months ago
Depends on: 1486094


9 months ago
Depends on: 1489392


8 months ago
Depends on: 1491954
You need to log in before you can comment on or make changes to this bug.