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

https://github.com/scriptex/svg-symbol-sprite

A script to generate a symbol sprite from SVG files
https://github.com/scriptex/svg-symbol-sprite

sprite-generator spritesheet svg-icons svg-sprites

Last synced: 10 months ago
JSON representation

A script to generate a symbol sprite from SVG files

Awesome Lists containing this project

README

          

[![Github Build](https://github.com/scriptex/svg-symbol-sprite/workflows/Build/badge.svg)](https://github.com/scriptex/svg-symbol-sprite/actions?query=workflow%3ABuild)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/34d3d75710534dc6a38c3584a1dcd068)](https://www.codacy.com/gh/scriptex/svg-symbol-sprite/dashboard?utm_source=github.com&utm_medium=referral&utm_content=scriptex/svg-symbol-sprite&utm_campaign=Badge_Grade)
[![Codebeat Badge](https://codebeat.co/badges/d765a4c8-2c0e-44f2-89c3-fa364fdc14e6)](https://codebeat.co/projects/github-com-scriptex-svg-symbol-sprite-master)
[![CodeFactor Badge](https://www.codefactor.io/repository/github/scriptex/svg-symbol-sprite/badge)](https://www.codefactor.io/repository/github/scriptex/svg-symbol-sprite)
[![DeepScan grade](https://deepscan.io/api/teams/3574/projects/5257/branches/40799/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=3574&pid=5257&bid=40799)
[![Analytics](https://ga-beacon-361907.ew.r.appspot.com/UA-83446952-1/github.com/scriptex/svg-symbol-sprite/README.md?pixel)](https://github.com/scriptex/svg-symbol-sprite/)

# SVG Symbol Sprite

> Create an SVG symbol sprite from your SVG files.

![GitHub stars](https://img.shields.io/github/stars/scriptex/svg-symbol-sprite?style=social)
![GitHub forks](https://img.shields.io/github/forks/scriptex/svg-symbol-sprite?style=social)
![GitHub watchers](https://img.shields.io/github/watchers/scriptex/svg-symbol-sprite?style=social)
![GitHub followers](https://img.shields.io/github/followers/scriptex?style=social)

## Code stats

![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/scriptex/svg-symbol-sprite)
![GitHub repo size](https://img.shields.io/github/repo-size/scriptex/svg-symbol-sprite?style=plastic)
![GitHub language count](https://img.shields.io/github/languages/count/scriptex/svg-symbol-sprite?style=plastic)
![GitHub top language](https://img.shields.io/github/languages/top/scriptex/svg-symbol-sprite?style=plastic)
![GitHub last commit](https://img.shields.io/github/last-commit/scriptex/svg-symbol-sprite?style=plastic)

A Node.js CLI tool which creates an optimized SVG symbol sprite out of a folder full of SVG files.

Provides handy defaults so you don't have to waste time.

All available options can be tweaked. You can even supply your own SVGO config.

**This tool is heavily inspried by [sprite.sh](https://github.com/edenspiekermann/sprite.sh)**

## Installation

```sh
npm i svg-symbol-sprite -g

# or

yarn global add svg-symbol-sprite
```

## Options

| Argument | Description | Default value |
| ----------------- | ------------------------------------------------ | ------------------------------------------ |
| `-i`, `--input` | Specifies input dir | "." (current directory) |
| `-o`, `--output` | Specifies output file | "./sprite.svg" |
| `-v`, `--viewbox` | Specifies viewBox attribute | (parsed from each icon) |
| `-p`, `--prefix` | Specifies prefix for id attribute | "icon-" |
| `-c`, `--config` | Absolute path to the SVGO config file or "false" | - |
| `-a`, `--attrs` | Attributes for the SVG element | "aria-hidden="true"" |
| `-s`, `--style` | Inline style for the SVG element | "width: 0; height: 0; position: absolute;" |

```sh
Usage: svg-symbol-sprite [options]

Options:
-i, --input Specifies input dir (current dir by default)
-o, --output Specifies output file ("./sprite.svg" by default)
-v, --viewbox Specifies viewBox attribute (parsed by default)
-p, --prefix Specifies prefix for id attribute ("icon-" by default)
-c, --config Absolute path to the SVGO config file or "false"
-a, --attrs Attributes for the SVG element ('xmlns="http://www.w3.org/2000/svg" aria-hidden="true"' by default)
-s, --style Inline style for the SVG element ("width: 0; height: 0; position: absolute;" by default)
```

## Usage as a package.json script

The tool can be also used as a `package.json` script. You need to add it to the `devDependencies` of your project's `package.json`.

```json
{
"scripts": {
"svg-sprite": "svg-symbol-sprite -i ./assets/svgs -o ./dist/sprite.svg"
}
}
```

```sh
npm run svg-sprite

# or

yarn svg-sprite
```

## Usage without installation (with `npx`)

The tool can be also used without installing it:

```sh
npx svg-symbol-sprite -i ./assets/svgs -o ./dist/sprite.svg
```

## SVG Optimization

`svg-symbol-sprite` optimizes the input SVG files using [SVGO](https://github.com/svg/svgo) and an opinionated configuration file. In order to customize the SVGO config, one can do so by using the `-c` or `--config` option and an absolute path to the SVGO config file.

**If you wish to completely disable the SVGO files optimization, pass "false" to the `--config` option.**

## Accessibility

`svg-symbol-sprite` does not help with SVG icons' accessibility. This is your responsibility as a developer - you should make sure that your SVGs contain relevant `title` and `id` attributes.

## LICENSE

MIT

---


Connect with me:






 



 



 



 



 



 



 



 



 



 



 



---


Support and sponsor my work: