A simple Vue.js plugin that allows you to use a component that dynamically loads a .svg file as an inline SVG so you can easily control its style programmatically. No jQuery required.
I recommend using vue-svg-loader for many cases when you just need to load a SVG file as a component. This plugin is built to cover some other cases the library doesn't fit, which are:
$ npm install vue-simple-svg
// as a plugin
import VueSimpleSVG from 'vue-simple-svg'
Vue.use(VueSimpleSVG)
// or as a component import {SimpleSVG} from 'vue-simple-svg' Vue.component('simple-svg', SimpleSVG)
2. specify which elements in the SVG will be manipulated their fill and stroke colors by setting dedicated class names to them
```html
<svg xmlns="http://www.w3.org/2000/svg">
<g>
<path class="fill-to-change" d="XXXXX XXXXX XXXXX" />
<path class="stroke-to-change" d="XXXXX XXXXX XXXXX" />
</g>
</svg>
<simple-svg
:src="https://github.com/seiyable/vue-simple-svg/raw/master/svgSrc"
fill-class-name="fill-to-change"
:fill="svgFillColor"
stroke-class-name="stroke-to-change"
:stroke="svgFillColor"
width="100%"
height="100%"
custom-id="my-id"
custom-class-name="my-class"
@load="svgLoaded()"
/>
props | type | description | default |
---|---|---|---|
src | string | path to your SVG file | *required |
fillClassName | string | class name set to the elements in your SVG file whose fill color you want to change | '' |
fill | string | CSS-valid fill color value | '' |
strokeClassName | string | class name set to the elements in your SVG file whose stroke color you want to change | '' |
stroke | string | CSS-valid stroke color value | '' |
width | string | root SVG element's style width | 'auto' |
height | string | root SVG element's style height | 'auto' |
customId | string | root SVG element's id | '' |
customClassName | string | root SVG element's class | '' |
events | description |
---|---|
@load | called when the inline SVG is generated |
To run demo in your local environment,
$ npm run dev-demo
You can see the example of how to use simple-svg component at demo/components/SvgButton.vue