Skip to content
This repository has been archived by the owner on Mar 24, 2024. It is now read-only.

BenoitZugmeyer/preact-motion

Repository files navigation

Deprecation warning

Most of the changes are now present in react-motion. Just use preact-compat and everything should work out of the box. This module won't be maintained anymore.

Preact-Motion

Build Status

This is a fork of the well known React-Motion library customized to support Preact out of the box.

Please see the React-Motion documentation for usage instructions.

About this fork

Goals

  • Be compatible out of the box with Preact 8 and upper. No preact-compat requirement. No react dependency.

  • Stay as close as possible to React-Motion, including:

    • same API ;
    • same developpers tools (flow, prop-types) ;
    • same tests and demos.
  • Better, smaller packaging:

    • expose a jsnext:main entry point ;
    • use Rollup to provide smaller packages ;
    • other tweaks to make production bundles smaller.

Versioning

Due to semver limitations, this package won't follow the React-Motion versioning, so it can make major version bumps without waiting for a major version bump upstream. See CHANGELOG.md for informations about supported React-Motion version.

Bundle size

The current production-ready bundle is about 4KB (minified+gzip). This has been achieved by using Rollup instead of Webpack, and removing prop-types declarations and dependency.

Install

  • Npm: npm install --save preact-motion

The NPM package requires process.env.NODE_ENV to be defined, so you should look at stuff like webpack DefinePlugin or rollup-plugin-replace to be able to use it in a browser.

  • 1998 Script Tag:
<script src="https://unpkg.com/preact-motion/build/preact-motion.prod.js"></script>
(Module exposed as `PreactMotion`)

Demos