Material Motion Exploring solutions that will empower creators with the tools needed to describe and implement rich, interactive motion on any platform. Edit this page · History

December 08-14, 2016

Want to contribute? Check out our Android and iOS milestones, many of which are ready for someone to take ownership of. Also check out our newbie-friendly tasks.

This weekly update captures what changed in a given week across the Material Motion ecosystem.

Check out current focus to see what we’re working on next.

Check out stability to learn about the current state of each feature.


Team is on the tail end of Springs explorations. Exploration thus far has been promising.

We have a new contributor! Welcome tofuness :D

View all of our contributors


📝 Indefinite Observable guide split into pages. Read it.


🎉 New specs for essential stream operators, stream gesture sources, and stream spring sources.

🎉 Every doc now has a quick link to its history.

🎉 Spec pages now link to both implementation source and tests, when available.

Team docs

🎉 Simplified our team documentation hierarchy.

🎉 Added culture guide on “Giving helpful feedback”. Read it.

Android platform

📝 Continued work on Streams MVP.

Apple platforms

📝 Streams MVP nearly in place including gestures and springs.

Web frameworks

🎉 First contributions from a non-Googler, courtesy of @tofuness

📝 Iterating on testing infrastructure and tooling

🎉 MotionObservable with foundational operators landed.


🎉 mdm git, a tool to make Phabricator and Git play more nicely with each other for projects with linear history. Read about it.

📝 Sublime integration for mdm git


Android platform support

Library Build status Coverage Version Issues
catalog-android       0 open
conventions-android       0 open
experiments-android       0 open
expression-android       2 open
family-direct-manipulation-android passing 100% v1.2.0 2 open
family-rebound-android passing 100% v1.1.0 3 open
family-tween-android passing 100% v2.1.0 2 open
gestures-android passing 95% v1.0.0 [-2-]{+3+} open
indefinite-observable-android {+failing+} {+95%+} [-v1.0.0-]{+v2.0.0+} [-0-]{+1+} open
runtime-android passing [-99%-]{+95%+} v6.0.1 [-11-]{+12+} open
streams-android {+passing+} {+100%+} {+v1.0.0+} [-0-]{+3+} open
transitions-android       9 open

Apple platform support

Library Build status Coverage Version Platforms Docs Issues
catalog-swift passing         10 open
conventions-objc           0 open
coreanimation-swift passing 61% v2.0.0 ios   6 open
coreanimation-transitions-swift passing 84% v1.0.0 ios -1% 0 open
direct-manipulation-swift passing 84% v1.1.0 ios   5 open
indefinite-observable-swift passing 100% [-v2.0.0-]{+v3.1.0+} ios / osx [-50%-]{+54%+} [-2-]{+0+} open
pop-swift passing 42% v1.1.0 ios 21% 6 open
pop-transitions-swift passing 71% v1.0.0 ios   0 open
runtime-objc passing 91% v6.0.1 ios 100% 16 open
streams-swift {+passing+} {+51%+}       5 open
transitions-objc passing 48% v1.1.0 ios 90% 5 open

Web platform support

Library Build status Coverage Version Issues
indefinite-observable-js {+passing+} {+100%+} [-v0.1.0-]{+v0.3.0+} 4 open
material-motion-js       [-48-]{+54+} open
streams-experiment-js       1 open

Misc libraries

Library Build status Coverage Version Issues  
apidiff passing 86% v1.0.0 [-10-]{+11 open +}
chrome-inspector       4+ open  
direct-web       0 open  
hubot       0 open  
material-motion       16 open  
milemarker       18 open  
sprints       32 open  
starmap       [-44-]{+43+} open  
sublime       [-0-]{+1+} open  
tools       [-93-]{+96+} open  

Learn more

Join us on Discord!