UNPKG

vuebars

Version:

Simple, elegant spark bars for Vue.js

82 lines (58 loc) 8.1 kB
<div align="center"> <img src="https://raw.githubusercontent.com/deviavir/vue-bar/master/media/logo.png" width="500" alt="Vue Bars"> <br> <h1>Vue Bars</h1> <p>🌈 Simple, elegant spark bars for Vue.js</p> <br> <a href="https://www.npmjs.org/package/vuebars"><img src="https://img.shields.io/npm/v/vuebars.svg?style=flat-square" alt="npm"></a> <img src="https://img.shields.io/badge/vue-^2.2-4fc08d.svg?colorA=2c3e50&style=flat-square" alt="vue"> </div> <br> ## Installation ```shell npm i vuebars -S ``` ## Usage ```js import Vue from 'vue' import Bars from 'vuebars' Vue.use(Bars) ``` [Live Demo](https://jsfiddle.net/h1o5z4xe/) *vue template* ```vue <bars :data="[1, 2, 5, 9, 5, 10, 3, 5, 2, 5, 1, 8, 2, 9, 0]" :gradient="['#6fa8dc', '#42b983']"> </bars> ``` ## Inspired by [vuetrend](https://www.npmjs.org/package/vuetrend) - 📈 Simple, elegant spark lines ## Props | Name | Type | Default | Description | Example | | ----------------- | -------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | | data | Number\|Object | `undefined` | The data accepted by Vue Bars is incredibly simple: An array of y-axis values to graph. | `[120, 149, 193.4, 200, 92]` or `[{ value: 4 }, { value: 6 }, { value: 8 }]` | | gradient | String | `['#000']` | Colour can be specified as any SVG-supported format (named, rgb, hex, etc). | `['#0FF', '#F0F', '#FF0']` | | width | Number | auto | Set an explicit width for your SVG. | - | | height | Number | auto | Set an explicit height for your SVG. | - | | padding | Number | `8` | If you set a very large `strokeWidth` on your line, you may notice that it gets "cropped" towards the edges. | - | | rounding | Number | `2` | To control radius on each bar's corners | - | | barWidth | Number | `4` | Set width of each bar | - | | labelRotate | Number | `-45` | To control rotation of labels | - | | labelSize | Number | `0.7` | To control size of labels | - | | labelColor | String | `#999` | To control color of labels | - | | labelData | String | `[]` | Array of strings | `['label1','label2','label3']` | | minBarHeight | Number | `3` | Minimum height | - | | autoDraw | Boolean | `false` | Allow the line to draw itself on mount. Set to `true` to enable, and customize using `autoDrawDuration` and `autoDrawEasing`. | - | | growDuration | Number | `0.5` | The amount of time, in seconds, that the autoDraw animation should span. This prop has no effect if `autoDraw` isn't set to `true`. | - | | max | Number | `-Infinity` | Specify max value | - | | min | Number | `Infinity` | Specify min value, This is useful if you have multiple lines. See [#8](https://github.com/QingWei-Li/vue-trend/issues/8) | - | #### SVG Props By default, all properties not recognized by Vue Bars will be delegated to the SVG. The line inherits these properties if none of its own override them. ## On-the-fly reloading Make sure you use pass the same variable for your `data` as for the `key`, this will make sure Vue recognizes changes to your data array, and consequently forces a reload of the instance. ## TODO - Unit test ## License MIT