UNPKG

vue3-radial-progress

Version:

A smart and light radial progress bar component for Vue 3.

106 lines (77 loc) 3.58 kB
<img src="https://github.com/jairoblatt/vue3-radial-progress/blob/master/demo/src/assets/demo-1.png" alt="Demo"> <div align="center"> <img src="https://img.shields.io/badge/License-MIT-0aa8d2" alt="MIT"/> <img src="https://badge.fury.io/js/vue3-radial-progress.svg" alt="npm version" height="18"> <img src="https://snyk.io/test/github/jairoblatt/vue-material-tabs/badge.svg" alt="Vulnerabilities"> <p >A smart and light radial progress bar component for Vue 3.</p> <br/> </div> >[The original project](https://github.com/wyzantinc/vue-radial-progress) only works with Vue 1 and 2, so I decided to rewrite it for Vue 3. ### [Live Demo](https://vue3-radial-progress.vercel.app/) ## 🚚 Install ```d yarn add vue3-radial-progress // npm install --save vue3-radial-progress ``` ## 🚀 Usage ### Global ```javascript import { createApp } from 'vue'; import RadialProgress from "vue3-radial-progress"; const app = createApp(App); app.use(RadialProgress); ``` ### Local ```javascript import RadialProgress from "vue3-radial-progress"; export default { components: { RadialProgress }, }; ``` ## 📌 Examples ```html <template> <RadialProgress :diameter="200" :completed-steps="completedSteps" :total-steps="totalSteps"> <!-- Your inner content here --> </RadialProgress> </template> <script> import { ref, defineComponent } from "vue"; export default defineComponent({ setup(){ const completedSteps = ref(0); const totalSteps = ref(10); return { completedSteps, totalSteps } } }) </script> ``` ### Props | Name | type | Default | description | | ------------- | ---------------- | --------- | ------------------------------------------------- | |`diameter`| number | 200 | Sets width/diameter of the inner stroke. |`totalSteps`| number |10| Sets the total steps/progress to the end. |`completedSteps`| number |0| Sets the current progress of the inner stroke. |`startColor`| string |'#00C58E'| Sets the start color of the inner stroke (gradient). |`stopColor`| string |'#00E0A1'| Sets the end color of the inner stroke (gradient). |`innerStrokeColor`| string |'#2F495E'| Sets the color of the inner stroke to be applied to the shape. |`strokeWidth`| number |10| Sets the width of the stroke to be applied to the shape. see: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-width |`innerStrokeWidth`| number |10| Sets the width of the inner stroke to be applied to the shape. |`strokeLinecap`| string |'round'| Sets the shape to be used at the end of stroked. see: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap |`animateSpeed`| number |1000| Sets how long the animation should take to complete one cycle. see: https://www.w3schools.com/cssref/css3_pr_animation-duration.asp |`fps`| number |60 | Sets the frames per seconds to update inner stroke animation. |`timingFunc`| string |'linear'| Sets how the animation progresses through the duration of each cycle. see: https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function |`isClockwise`| boolean |true| Sets the inner stroke direction. ### Slots | Name | Description | | ---- | -------------------------- | | default | Sets the default slot inner the radial progress | ## 🔖 License [MIT](https://github.com/jairoblatt/vue3-radial-progress/blob/master/LICENSE)