Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/g-makarov/vite-plugin-svg-spritemap

This vite plugin generates a single SVG spritemap containing multiple elements from all .svg files in a directory.
https://github.com/g-makarov/vite-plugin-svg-spritemap

icon icons sprite spritemap sprites svg svg-sprite svg-symbol symbol symbols typescript vite-plugin

Last synced: about 2 months ago
JSON representation

This vite plugin generates a single SVG spritemap containing multiple elements from all .svg files in a directory.

Awesome Lists containing this project

README

        

# vite-plugin-svg-spritemap

This [vite](https://vitejs.dev/) plugin generates a single SVG spritemap containing multiple elements from all `.svg` files in a directory.


npm version


npm downloads

## Features

- Easily generate the SVG spritemap as part of your build process
- Supports ``, so you can use gradients, patterns, and masks
- Works with dev server 🔥

If you find this plugin useful, why not

Buy Me A Coffee

## Installation

```bash
# using npm
npm install -D vite-plugin-svg-spritemap
# using pnpm
pnpm install -D vite-plugin-svg-spritemap
# using yarn
yarn add --dev vite-plugin-svg-spritemap
```

## Usage

**Vite config**

```ts
import { svgSpritemap } from 'vite-plugin-svg-spritemap';

export default defineConfig({
plugins: [
svgSpritemap({
pattern: 'src/icons/*.svg',
}),
],
});
```

**SVG element**

```html

```

**React component example**

```tsx
export const Icon: React.FC<{ name: string }> = ({ name }) => (



);

const App = () => {
return ;
};
```

## Options

| Option | Type | Description |
| -------------- | ------------------------------------ | --------------------------------------------------------------------------------------------- |
| `pattern` | `string` | A glob pattern that specifies which SVG files to include in the sprite. |
| `prefix` | `string` (optional) | A string that is added to the beginning of each SVG icon's ID when it is added to the sprite. |
| `filename` | `string` (optional) | The name of the output file that contains the SVG sprite. Default is `spritemap.svg`. |
| `currentColor` | `boolean` (optional) | Replace colors in the SVGs with the `currentColor` value by SVGO. Default is `true`. |
| `svgo` | `SVGOConfig` or `boolean` (optional) | Use SVGO for optimization. Default is `true`. |