Home

Awesome

npm (scoped) npm NPM

vue-gauge

This is a Vue JS component plugin to create gauge charts, which are dynamic and animated. Some styling can be customised to change the look and feel of the gauge to match your required look or theme.

'An example gauge component showing 0% to 100% and the pointer set at 64.6%'

Installation

This is available as an NPM package, it can be installed via one of the following.

NPM

npm i @chrisheanan/vue-gauge -S

Yarn

yarn add @chrisheanan/vue-gauge

Usage

This is a minumum working example:

<template>
    <gauge
        heading="A title goes here"
        :min="0"
        :max="100"
        :value="exampleValue"
    />
</template>

<script>
import Gauge from '@chrisheanan/vue-gauge';

export default {
  components: {
    Gauge
  },
  data() {
    return {
      exampleValue: 35
    };
  }
};

Demo

To run the demo for the package just run the serve script...

npm run serve

or if you use yarn...

yarn serve

Then visit the following in your browser

http://localhost:8080

Props

The gauge component has the following props

PropDescriptionTypeRequiredDefault
valueValue the pointer is set/pointing atNumberTRUE
headingSets the title/heading for the gauge chartStringFALSEnull
headingLevelSets the H tag with this number, so the default of 2 creates a <h2> title tagNumberFALSE2
paddingSets a default padding of 1em around the gauge componentBooleanFALSETRUE
fontSizeSets the base font size for the componentStringFALSE"1em"
minMinimum limit of the gauge valueNumberTRUE
minThresholdFillSet the colour for the arc, when in the value is within the minimum threshold limitStringFALSE"none"
minLabelIf used, overrides what is displayed at the maximum point labelStringFALSEnull
maxMaximum limit of the gauge valueNumberTRUE
maxThresholdFillSet the colour for the arc, when in the value is within the maximum threshold limitStringFALSE"none"
maxLabelIf used, overrides what is displayed at the mimimum point labelStringFALSEnull
maxThresholdSets the threshold limit on the maximum side of the arcNumberFALSEnull
minThresholdSets the threshold limit on the minimum side of the arcNumberFALSEnull
dpNumber of decimal places displayed on the value labelNumberFALSE0
unitUnit to be displayed after labelsStringFALSEnull
unitOnArcShow the unit, if set, on the min and max labelsBooleanFALSETRUE
labelsOnArcShow the min and max labelsBooleanFALSETRUE
valueToExceedLimitsIf set, the value will display above or below the min and max limitations, otherwise the display value will be cap to the min and max limitsBooleanFALSEFALSE
radiusSet the radius of the gauge chartNumberFALSE215
thicknessSets the thickness of the gauge arcNumberFALSE70
activeFillSet the colour for the used/active part of the arcStringFALSE"currentcolor"
inactiveFillSet the colour for the unused/unactive part of the arcStringFALSE"currentcolor"
pointerGapSet the angle in degrees for the gap between the pointer and the arcNumberFALSE4
pointerStrokeSet the colour storke/outline for the gauge needleStringFALSE"currentcolor"
pointerStrokeWidthSet the width/thickness for the gauge needleNumberFALSE14
pivotRadiusSets the radius for the gauge needle dotNumberFALSE20
pivotStrokeWidthSet the width/thickness for the gauge needle dotNumberFALSE2
pivotStrokeSet the colour storke/outline for the gauge needle dotStringFALSE"currentcolor"
pivotFillSet the colour fill for the gauge needle dotStringFALSE"currentcolor"
svgStyleSet additional css styling on the gague svg element, it is a JavaScript object You can use either camelCase or kebab-case (use quotes with kebab-case) for the CSS property namesObjectFALSE{}

Author

Christopher David Heanan

License

This project is licensed under the BSD-3-Clause

Copyright 2020 Christopher David Heanan

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.