Bug 1186329 (motion-1)

[META] Implement Motion Path Module Level 1

NEW
Unassigned

Status

()

P3
enhancement
3 years ago
9 days ago

People

(Reporter: yiorsi, Unassigned)

Tracking

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

Trunk
dev-doc-needed, DevAdvocacy, meta
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [DevRel:P2], URL)

Attachments

(1 attachment)

Comment hidden (obsolete)
(Reporter)

Comment 1

3 years ago
The editors' draft specification is available at
http://dev.w3.org/fxtf/motion-1/

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>

Updated

3 years ago
Severity: normal → enhancement
Component: Untriaged → CSS Parsing and Computation
OS: Unspecified → All
Product: Firefox → Core
Hardware: Unspecified → All
Version: 42 Branch → Trunk
Keywords: dev-doc-needed

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
Created attachment 8753754 [details]
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.
Status: UNCONFIRMED → NEW
Ever confirmed: true

Comment 8

2 years ago
The specification has now been greatly changed:

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

Add:

offset-position
offset-anchor

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

Updated

2 years ago
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.

Sebastian
Blocks: 1323667
Summary: Support CSS motion path animation → [META] Implement Motion Path Module Level 1

Updated

11 months ago
Component: CSS Parsing and Computation → Layout

Updated

11 months ago
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
Depends on: 1480649
Depends on: 1480665
Depends on: 1484780
Depends on: 1485433
Depends on: 1486094
Depends on: 1489392
Depends on: 1491954
Keywords: meta
You need to log in before you can comment on or make changes to this bug.