Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

logo Material Motion for JavaScript

Current version: Test status Code coverage
HEAD: Test status Code coverage


This repo houses the JavaScript implementation of Material Motion. For more information about the project as a whole, check the Starmap.

High-level Goals

  • To make gestural interactions as easy to reuse across applications as UI components already are.

  • To enable the motions and gestures described in the Material Spec to be easily implemented by application authors in the JS ecosystem.

  • To make prototyping new animated experiences simpler.

  • To yield a system that feels robust by default. Fragile interactions erode user trust in the overall system: “should I enter my password in a glitchy app?”

  • To allow interactions to be inspected and tweaked with visual tools.

  • To allow interactions to be easily ported across platforms.

  • To allow authors to write views in terms of URLs, and have the system guide the transitions between them.

    • Note: This is an eventual goal. In the near term, Material Motion is focused specifically on aiding the creation of reusable gestural interactions.


Want to contribute? Awesome - thanks for helping!

To get started, just run these commands:

git clone
cd material-motion-js
$( yarn bin )/lerna bootstrap

They will check out the repo, install the dependencies for each package, and link the packages to one another. Then, find the package you want to work on in packages and start coding!


Apache 2.0