mojs is a free, open source design & prototyping project written in CoffeeScript and released under MIT. It has 18,778 GitHub stars, 888 forks and 37 open issues, and was last pushed 2 months ago. On this registry it ranks #13 of 38 tracked projects in Design & Prototyping, with 5 head-to-head comparisons available.

What is mojs?

mojs is a JavaScript motion graphics library, published on the npm registry as @mojs/core, that gives web developers a declarative API and built-in components for animating HTML, shapes, swirls, bursts and staggers on the web.

What it is

mo · js is an open-source motion graphics library for the web, written in CoffeeScript and released under the MIT licence. It is published on the npm registry as @mojs/core and lives in the JavaScript front-end ecosystem, where it is consumed either through a bundler such as webpack or rollup, or through a plain script tag that loads the UMD build. The project carries 18,778 stars and 888 forks on GitHub, with 37 open issues and its most recent push dated 30 July 2026. The README describes it as fast, retina ready, modular and open source, and notes that in comparison to other libraries it takes a different syntax and code animation structure approach.

The concrete problem it solves is the authoring of motion on the web. Instead of hand-building animation structure, a developer declares an animation and the library provides complete control over it through that declarative API. mo · js ships built-in components — html, shape, swirl, burst and stagger — so that animation can be started from scratch, and it also carries tools for crafting motion in a more natural way. Alongside the core library sit companion packages, @mojs/player, @mojs/curve-editor and @mojs/timeline-editor, which extend authoring beyond the library itself.

Key capabilities

  • A declarative API that gives complete control over the animation, making it customizable with ease.
  • Built-in components to start animating from scratch: html, shape, swirl, burst and stagger.
  • Installation from the npm registry as @mojs/core through either npm install @mojs/core or yarn add @mojs/core.
  • Bundler-friendly consumption that supports output compression, code splitting and tree shaking, and an import form of import mojs from '@mojs/core';.
  • CDN delivery of the minified production file, defaulting to the @latest version and loading the UMD build from dist/mo.umd.js.
  • Companion tooling in @mojs/player, @mojs/curve-editor and @mojs/timeline-editor.
  • Documentation including a Get started guide, API documentation and dedicated Shape & Swirl and Burst tutorials.

Who uses it and how

  • Front-end developers who work with JavaScript bundlers such as webpack or rollup and want compression, code splitting and tree shaking, which the README explicitly encourages.
  • Teams that need motion on a page without a build step, who load the UMD build from a CDN with a generic script tag and then instantiate new mojs.Html({ ... });.
  • Designers and developers producing icon animations, as demonstrated by the Codrops tutorial "Icon animations powered by mo.js".
  • Authors who craft motion with the auxiliary tools, as shown by the Vimeo video on playing with @mojs/player and @mojs/curve-editor.
  • The contributor community, which files issues and pull requests on GitHub and coordinates in the project's Slack workspace via an invite link; a CI workflow and a Coveralls coverage badge track the codebase.

Getting started

Install from the npm registry with npm install @mojs/core or yarn add @mojs/core, then import it as a module and instantiate a component such as new mojs.Html({ ... });. Alternatively, load the UMD build from a CDN with a single script tag to include the minified production file directly in a page.

How it compares

No comparable or paid products are named in the material available here, so this entry stands alone in this registry on that axis. The only comparative claim the facts support is the project's own: that it uses a different syntax and code animation structure approach from other libraries.

When to use it — and when not to

There is no database, storage layer or mail service to operate, because mo · js is a client-side library that runs in the browser; the operational work is limited to adding the dependency or the script tag. A developer who does not want to work with a bundler, or who needs the source in JavaScript rather than CoffeeScript, should weigh that the library's own source is CoffeeScript even though it is consumed as @mojs/core. The README is documentation-light on internals and leans on external tutorials, videos and CodePen showcases, so anyone who needs everything explained in the repository itself should expect to follow those links.

project readme (upstream, from github) — read inline

mo · js – npm ci Coverage Status Slack

The motion graphics toolbelt for the web.

mo · js

Intro

mo · js is a javascript motion graphics library that is a fast, retina ready, modular and open source. In comparison to other libraries, it has a different syntax and code animation structure approach. The declarative API provides you a complete control over the animation, making it customizable with ease.

The library provides built-in components to start animating from scratch like html, shape, swirl, burst and stagger, but also bring you tools to help craft your animation in a most natural way. Using mojs on your site will enhance the user experience, enrich your content visually and create delightful animations precisely.

Install

Use with a bundler

Mojs is published on the NPM registry, so you can install it through the command line interpreter using your favorite package manager. This is the best way to install the library if you are comfortable with javascript bundlers like webpack or rollup.

# npm
npm install @mojs/core

# yarn
yarn add @mojs/core

Then import it like any other module inside your build:

import mojs from '@mojs/core';

new mojs.Html({
  // ...
});

Using a bundler has many advantages like output compression, code splitting, tree shaking, etc., so we encourage you to use this kind of tool with mojs.

Use with a CDN

To rapidly include the minified production file in your web page, load the latest build from your favorite CDN using a generic script markup:

<!-- unpkg -->
<script src="https://unpkg.com/@mojs/core"></script>

<!-- jsdelivr -->
<script src="https://cdn.jsdelivr.net/npm/@mojs/core"></script>

Then instanciate using:

<script>
  new mojs.Html({
    // ...
  });
</script>

By default, if no one is specified, the CDN will automatically target the @latest version of mojs and load the UMD build from dist/mo.umd.js.

User guide

The base documentation you need to get started with mojs.

Learn

Discover the amazing things that mojs can do!

Developer

Get technical informations, open an issue/pull request or join the (amazing) community!

Showcase

Browser support

  • Chrome 49+
  • Firefox 70+
  • Opera 36+
  • Safari 8+
  • Edge 79+

Many other browsers may work, but are not extensively tested.

Maintainers

Since 2019, mojs ecosystem is maintained and developed by:

Contribute

If you want to report a bug or request a new feature/improvement, please read the project contributors guidelines before. Thanks for taking time to contribute.

Frequently asked questions

Is mojs free to use?

mojs is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does mojs do?

The motion graphics toolbelt for the web

What is mojs written in?

mojs is primarily written in CoffeeScript. Its source is publicly available at https://github.com/mojs/mojs, and it has 18,778 GitHub stars.