@abi-software/svg-sprite

An npm package used to bundle svg icons into the a Vite-Vue3 build. This is opposed to loading svg's from the server at runtime, which can end up SVGs loading last on a site.
11,194
Install
npm install @abi-software/svg-sprite
Latest Version:1.4.0
Vue:3
Older releases:2
License:Apache-2.0
Last Updated:Sep 21, 2026
Links: GitHub  ·  npm
Maintainer: hsorby

svg-sprite npm version

An npm package used to bundle svg icons into the a Vite-Vue3 build. This is opposed to loading svg's from the server at runtime, which can end up SVGs loading last on a site.

View the a live demo and documentation at: https://abi-software.github.io/svg-sprite/

Using svg-sprite

svg-sprite currently only works for SVGs included in the assets/icons directory

It can however be forked to include any set of SVGs, or in future we can modify svg-sprite to take a prop input that points to an svg folder

Installation

npm install @abi-software/svg-sprite

Setup

To use svg-sprite, we need to load it before any of the SVGs will be loaded in components. A method guaranteed to do this is loading it on the first line of app.py

In App.vue - (Options API)
<template>
    <div ref="root">
      <MapSvgSpriteColor />
      ... Rest of app ...
    </div>
</template>

<script>
import { MapSvgSpriteColor } from '@abi-software/svg-sprite';
export default {
  name: "App",
  components: {
    SvgSpriteColor,
  },
  ...
}
When using an svg (this example is in a component)
<template>
  <MapSvgIcon icon="close" @click="close"/>
</template>


<script>
/* eslint-disable no-alert, no-console */
import { MapSvgIcon } from '@abi-software/svg-sprite';
import "@abi-software/svg-sprite/dist/style.css";

Change the icon colours

<style>
.map-icon {
  color: red;
}
</style>

Customize configuration

See Vite Configuration Reference.

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Create bundle for npm and publish

npm run build-bundle
npm publish

Lints and fixes files

npm run lint

API Documentation

The API documentation is developed with vitepress and vuese. Documentation pages are in the docs folder.

To run in local development mode

npm run docs:watch

This will start the documentation server with vitepress on port :5173 and watch the components' changes.

Related Packages

@abi-software/gallery

This component is now built with Vue3 and Vite, Vue2 is no longer maintained but...

6,273 0
@abi-software/flatmapvuer

View the a live demo and documentation at: https://abi-software.github.io/flatma...

27,944 0
@abi-software/scaffoldvuer

This project aims to provide high-level 3D physiological models viewing capabili...

19,157 0

Version History

Version Released Vue License
1.4.0 ^3.5.41 Apache-2.0
1.3.0 ^3.5.41 Apache-2.0
1.2.0 ^3.5.41 Apache-2.0
1.1.0 ^3.4.21 Apache-2.0
1.0.4 ^3.4.21 Apache-2.0
Pre-releases (8)
Version Released Vue License
1.0.2-beta.1 ^3.4.21
1.0.2-beta.0 ^3.4.21
0.4.0-vue3.3 ^3.3.13
0.4.0-vue3.2 ^3.3.13
0.4.0-vue3.1 ^3.3.13