Animations & transitions for ambitious Ember applications.
JavaScript HTML CSS
Clone or download
Latest commit f3b29bf Jul 31, 2018
Permalink
Failed to load latest commit information.
addon drop ie9-isms Jul 28, 2018
app stricter coding standard Oct 31, 2017
blueprints stricter coding standard Oct 31, 2017
config Fix remaining eslint rule violations. Jun 16, 2018
fastboot-tests Update design for liquidfire website. Jun 4, 2018
tests fix meta bug on ember-2.4 and older Jul 28, 2018
vendor Fixes #513 always import velocity shim and use a noop in the shim for… Oct 20, 2016
version-specific-1.13 stricter coding standard Oct 31, 2017
version-specific-2.9 refactoring implementation from previous version Sep 9, 2016
.bowerrc updating for newer addon format Nov 16, 2014
.editorconfig updating ember-cli Sep 18, 2016
.ember-cli updating for newer addon format Nov 16, 2014
.eslintignore stricter coding standard Oct 31, 2017
.eslintrc.js satisfy new eslint rules Jun 16, 2018
.gitignore Update to Ember-cli 2.14 family Aug 4, 2017
.npmignore ember-cli upgrade Feb 12, 2018
.travis.yml ember-cli upgrade Feb 12, 2018
.watchmanconfig ember-cli update Mar 29, 2016
CHANGELOG.md releasing Jul 31, 2018
LICENSE license Jul 10, 2014
LICENSE.md ember-cli upgrade Feb 12, 2018
README.md Adding additional documentation for testing with environment variables Aug 17, 2017
ember-cli-build.js Merge branch 'master' into eslint-rules Jul 28, 2018
index.js satisfy new eslint rules Jun 16, 2018
package.json releasing Jul 31, 2018
testem.js satisfy new eslint rules Jun 16, 2018
yarn.lock Merge pull request #608 from brettburley/update-style Jul 28, 2018

README.md

Liquid Fire

Build Status

Comprehensive animation support for ambitious Ember applications. Interactive Documentation is here.

Features

  • Animated transitions between routes that work seamlessly with the Ember router.

  • A DSL for laying out your spatial route relationships, cleanly separated from view-layer implementation details.

  • Animated transitions between models within a single route.

  • Animated transitions between individual scalar values within a template.

  • Promise-driven API to control your animation flow.

  • Backed by velocity.js, but easy to extend to other animation drivers if there's interest.

Ember Compatibility Table

We support a wide range of Ember versions, but you must choose the correct version of liquid-fire:

Ember Version Liquid Fire Branch Liquid Fire Release
1.8 through 1.10 oldstable 0.17.x
1.11 through 1.12 stable 0.19.x
1.13 and beyond master latest

stable and oldstable branches still receive bugfixes and PRs are welcome, but new feature work happens on master.

Installation

This is an ember-cli addon, so all you need is an npm install. For Ember 1.13 or newer, use:

ember install liquid-fire

For older ember versions, consult the compatibility table above to pick the right liquid-fire version and then install with one of these:

ember install liquid-fire@^0.17.0
ember install liquid-fire@^0.19.0

Documentation

Liquid Fire website is an ember-cli application that contains an interactive demo & documentation. It runs from Liquid Fire's test dummy app.

You can also see some examples in my Ember Animation Demo repo, and this video presentation from the Boston Ember Meetup.

Development

Source Organization

This repo contains both the liquid-fire library and a demo application that presents interactive documentation. It follows standard ember-cli addon format.

  • app: is code that's loaded directly into the user's application
  • addon: is code that can be imported by the user from the liquid-fire namespace
  • tests/dummy: is the testing, demo, and documentation application

Selecting Ember Versions

Liquid Fire is tested against many versions of Ember using ember-try. The oldest supported version is listed in versionCompatibility in package.json, and in CI we test every minor release since then, through beta and canary.

Testing

When running tests you'll want to set your transition speeds to 0 so they don't slow down your tests. This can be accomplished by using an Environment variable.

// Import the Environment 
import ENV from 'your-application-name/config/environment';

// If Testing Environment
if (ENV.environment === 'test') {
  var customDuration = 0; // set to 0 seconds
} else {
  var customDuration = 200; // set to 200 miliseconds
}

this.transition(
  this.toRoute('foo'),
  this.use('toLeft', { duration: customDuration }) // Use customDuration
);