vue2-transitions
Elegant, reusable Vue 2 transitions components.
Why question
-
Brings only the code that you need. Many alternative solutions import the whole animate.css library. Vue2-transitions is minimalistic and lets you import only the transitions that you need in your app
-
Each transition component has ~2kb (non-minified js+css or ~400 bytes gzipped) and you can import only the ones you really need.
-
Configurable. You can configure animation enter and leave durations as well as all the props of the native Vue transition components through props
-
Easy to use. No extra classes
Install :coffee:
CDN: UNPKG | jsDelivr (available as window.Vue2Transitions
)
Usage :rocket:
Global usage
List of available transitions
- FadeTransition
- ZoomCenterTransition
- ZoomXTransition
- ZoomYTransition
- ZoomUpTransition
- CollapseTransition
- ScaleTransition
- SlideXLeftTransition
- SlideXRightTransition
- SlideXUpTransition
- SlideXDownTransition
Props
Group transitions
Each transition can be used as a transition-group
by adding the group
prop to one of the desired transitions.
Gotchas/things to watch:
- Elements inside
group
transitions should havedisplay: inline-block
or must be placed in a flex context:
Vue.js docs reference - Each transition has a
move
class move class docs.
Unfortunately the duration for the move transition cannot be configured through props. By default each transition has amove
class associated
with.3s
transition duration:
- Zoom
- Slide
- Scale
- Fade
If you want to configure the duration, just redefine the class for the transition you use with the desired duration.
Contribution
Defining a new transition
The codebase is fairly simple and contains mostly .vue
components. If you want to add a new transition to the collection follow these steps:
- Fork the repo.
- Create a new branch.
- Create a new
.vue
file (together with a folder if necessary) - Define the transition.
- Import the transition in
src/index.js
and place it in theexport default
object. - Add the name of the new transition (camelCase) in the
transitionOptions
array insideexample/App.vue