|
1 | | -# vue-motion |
| 1 | +# 🌀 Vue Motion |
2 | 2 |
|
3 | | -This template should help get you started developing with Vue 3 in Vite. |
| 3 | +**Vue Motion** is a lightweight animation library built on top of Vue’s native [`<Transition>`](https://vuejs.org/guide/built-ins/transition.html) component — making it **powerful**, **easy to use**, and **fully customizable**. |
4 | 4 |
|
5 | | -## Recommended IDE Setup |
| 5 | +With **flexible props** and **Quality Animations** for fine-tuning, Vue Motion makes it effortless to bring your Vue components to life. |
6 | 6 |
|
7 | | -[VS Code](https://code.visualstudio.com/) + [Vue (Official)](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). |
| 7 | +--- |
8 | 8 |
|
9 | | -## Recommended Browser Setup |
| 9 | +## 🚀 Features |
10 | 10 |
|
11 | | -- Chromium-based browsers (Chrome, Edge, Brave, etc.): |
12 | | - - [Vue.js devtools](https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd) |
13 | | - - [Turn on Custom Object Formatter in Chrome DevTools](http://bit.ly/object-formatters) |
14 | | -- Firefox: |
15 | | - - [Vue.js devtools](https://addons.mozilla.org/en-US/firefox/addon/vue-js-devtools/) |
16 | | - - [Turn on Custom Object Formatter in Firefox DevTools](https://fxdx.dev/firefox-devtools-custom-object-formatters/) |
| 11 | +- ✅ Built directly on top of Vue’s core `<Transition>` component |
| 12 | +- ✅ Zero dependencies — just Vue |
| 13 | +- ✅ Simple prop-based customization (duration, delay, easing, etc.) |
| 14 | +- ✅ Works seamlessly with **Vue 3** |
| 15 | +- ✅ Lightweight — less than **2KB gzipped** |
| 16 | +- ✅ Open for contributions & custom animation extensions |
17 | 17 |
|
18 | | -## Customize configuration |
| 18 | +--- |
19 | 19 |
|
20 | | -See [Vite Configuration Reference](https://vite.dev/config/). |
| 20 | +## 📦 Installation |
21 | 21 |
|
22 | | -## Project Setup |
| 22 | +```bash |
| 23 | +# npm |
| 24 | +npm install vue-motion |
| 25 | +``` |
| 26 | + |
| 27 | +--- |
| 28 | + |
| 29 | +## 🧩 Basic Usage |
| 30 | + |
| 31 | +-First Import the styles into you main.js |
23 | 32 |
|
24 | | -```sh |
25 | | -npm install |
| 33 | +```main.js |
| 34 | + |
| 35 | +import { createApp } from 'vue' |
| 36 | +import App from './App.vue' |
| 37 | +import '@/styles/animations.css' |
| 38 | + |
| 39 | +createApp(App).mount('#app') |
26 | 40 | ``` |
27 | 41 |
|
28 | | -### Compile and Hot-Reload for Development |
| 42 | +-Then you can import each animation as a component in your files and use it |
| 43 | + |
| 44 | +```app.vue |
| 45 | +<template> |
| 46 | + <div style="padding: 2rem"> |
| 47 | + <button @click="show = !show">Toggle Fade</button> |
| 48 | + <!-- Use the component --> |
| 49 | + <Fade :duration="600" :appear="true"> |
| 50 | + <p v-if="show">✨ Hello World from Fade Animation !</p> |
| 51 | + </Fade> |
| 52 | + <!-- Use these props to change the behavior of your animation --> |
| 53 | + </div> |
| 54 | +</template> |
| 55 | +
|
| 56 | +<script setup> |
| 57 | +import { ref } from 'vue' |
| 58 | +// Import the component |
| 59 | +import { Fade } from '../../src/components/Fade.vue' |
| 60 | +const show = ref(true) |
| 61 | +</script> |
29 | 62 |
|
30 | | -```sh |
31 | | -npm run dev |
32 | 63 | ``` |
33 | 64 |
|
34 | | -### Compile and Minify for Production |
| 65 | +--- |
| 66 | + |
| 67 | +## ⚙️ Props |
| 68 | + |
| 69 | +-Library is fully prop based so you can customize the animations based on your need |
| 70 | + |
| 71 | +| Prop | Type | Default | Description | |
| 72 | +| ------------ | --------- | --------- | ------------------------------------------------------------------------------------- | |
| 73 | +| **appear** | `boolean` | `'false'` | If true animation will run on load | |
| 74 | +| **duration** | `number` | `500` | Duration of the animation in milliseconds. | |
| 75 | +| **delay** | `number` | `0` | Delay before the animation starts in milliseconds. | |
| 76 | +| **easing** | `string` | `'ease'` | CSS easing function to control the transition curve(CSS acceptable timing functions). | |
| 77 | + |
| 78 | +--- |
| 79 | + |
| 80 | +## 🧑💻 Contributing |
35 | 81 |
|
36 | | -```sh |
37 | | -npm run build |
| 82 | +Contributions are welcome ! |
| 83 | +If you’d like to add a new animation, improve docs, or fix a bug: |
| 84 | + |
| 85 | +1. **Fork** the repository. |
| 86 | +2. **Create** your feature branch. |
| 87 | + |
| 88 | +```bash |
| 89 | + git checkout -b feat/animation-name |
38 | 90 | ``` |
| 91 | + |
| 92 | +3. **Commit** your changes. |
| 93 | +4. **Push** to your brach. |
| 94 | +5. **Open** a PR |
| 95 | + |
| 96 | +-💡 Before submitting, make sure your code follows the existing structure and passes any lint or build checks.Be sure to follow the naming convetion. |
| 97 | + |
| 98 | +-All Vue files and animations use PascalCase |
| 99 | +-All Class prefixes use the camelCase |
| 100 | + |
| 101 | +--- |
| 102 | + |
| 103 | +## 🌟 Support & Feedback |
| 104 | + |
| 105 | +If you like **Vue Motion**, please consider supporting the project: |
| 106 | + |
| 107 | +- ⭐ **Star** the repo on [GitHub](https://github.com/Redskullvue/vue-motion) — it helps others discover the library |
| 108 | +- 🐞 **Open an issue** or suggest new features |
| 109 | +- 🧩 **Share it** with other Vue developers and the community |
| 110 | + |
| 111 | +Your support helps keep the project active and growing 💚 |
| 112 | + |
| 113 | +--- |
| 114 | + |
| 115 | +## 🖼️ Demo & Playground |
| 116 | + |
| 117 | +Coming Soon ! :) |
0 commit comments