barba.js
Create badass, fluid and smooth transitions between your website’s pages.
README
# barba.js [v2]
Barba.js is a small (7kb minified and compressed) and easy-to-use library that helps you create fluid and smooth transitions between your website's pages.
It helps reduce the delay between your pages, minimize browser HTTP requests and enhance your user's web experience.
Documentation
- Site
What's new?
- Simplified API
- Hook system for transitions and views
- _Transition resolution_: declare your transitions and let Barba pick the right one
- Use of data-barba attributes
- Sync mode
- Plugin system
- @barba/router: use of routes for _transition resolution_
- @barba/css: automatic addition of CSS classes
- @barba/prefetch: automatic pages prefetching (and caching), based on viewport
- `@barba/head`: update your `` _(coming soon)_ - @barba/preset: ready-to-use basic transitions pack (fade, slide, …) _(coming soon)_
Main changes (TL;DR)
- Barba now use data-barba-* attributes:
- data-barba-wrapper for the wrapper
- data-barba-container for the container
- data-barba-namespace for the namespace
- 2 main methods:
- barba.init() for transitions, views and Barba core settings
- barba.use() for plugins (router, css, prefetch, etc.)
- Transitions:
- are plain JS objects
- are declared via the barba.init({ transitions })
- use "hooks" corresponding to animation steps
- hooks can be synchronous or asynchronous (via this.async() or Promise based)
- all hooks receive same [data argument](https://barba.js.org/docs/advanced/hooks/#data-argument)
- use "rules" to select which transition to use
- default rules are namespace and custom
- @barba/router adds route rule
- they can be combined within from and to properties
- Views:
- are plain JS objects
- are declared via the barba.init({ views })
- use a subset of animation "hooks":
- beforeOnce, afterOnce, beforeLeave, afterLeave, beforeEnter, afterEnter
- receive the same [data argument](https://barba.js.org/docs/advanced/hooks/#data-argument)
How to contribute
If you want to report a bug or if you just want to request for a new feature/improvement, please follow those instructions before.
Thanks for taking time to contribute to Barba :tada: :+1:
Contributors
Next steps
- [x] CI setup (PR, publish, …)
- [x] Write manual documentation
- [x] Generate code documentation
- [x] New website
- [ ] More Testing, debugging, fixing, testing…