Minicons is an open-source SVG icon set drafted on an 24x24 sized grid aimed at unifying icon design across a website. Currently the first release is covering several categories of icons (86 total).
- Dead simple to set up
- Icon swap when an element is dynamically added
- Extensive, straight forward icon object API
- Over 80+ icons
- Uniform design
- Easily configurable
You can directly import minicons.js from the CDN:
https://unpkg.com/minicons@latest/dist/minicons.js
CDN links are also supported for older specified versions:
https://unpkg.com/minicons@_VERSION_/dist/minicons.js
Download the latest release.
Install Minicons using CDN
npm i minicons -S
This will create all dist files in the Minicons package folder in your roots' node modules.
βββ dist/
βββ icons/
βββ minicons.js
βββ minicons.min.js
βββ minicons.json
Get up and running within minutes inside your browser.
Include the CDN or the path to minicons.js at the end of your closing <body/>
tag in your markup:
<script src=https://unpkg.com/minicons@latest/dist/minicons.js"></script>
<!-- or use a relative path -->
<script src="path/to/dist/minicons.min.js"></script>
Now it's time to add an icon. Just create a tag with data-minicon
and the name:
<i data-minicon="chevron-right"/>
To display the Minicon we do to the swap:
minicons.swap();
All icons added dynamically will be swapped automagically for you. π
The minicons
object is exposed upon including/importing the Minicons package into your ecosystem.
Contains an array of data about every single icon.
Returns: An array of icon objects
Property | Type | Description |
---|---|---|
aliases |
array | List of alias names |
content |
string | SVG string of the icon |
name |
string | The name of the icon |
The config object Minicons was produced from.
Returns: Config object
Property | Type | Description |
---|---|---|
name |
string | The name of the config |
props |
object | The properties that will apply to the svg |
props.class |
string | Additional class to be added to the icon |
props.fill |
string | Fill to be added |
props.height |
number | Height of the icon |
props.stroke |
string | Stroke color of the icon |
props.stroke-linecap |
string | Linecap used to brush over |
props.stroke-linejoin |
string | How the lines will be joined together |
props.stroke-width |
number | Width of the stroke applied |
props.viewBox |
string | Viewbox of the SVG icon container |
props.width |
number | Width of the icon |
props.xmlns |
string | SVG namespace that is used |
Finds an icon by name or alias and returns the icon object.
Parameter | Type | Description |
---|---|---|
name |
string | The name or alias of an icon e.g add-circle |
minicons.find('plus')
// {name: "add-circle", content: "<circle cx="12" cy="12" r="10" data-name="--Circleβ¦><line x1="12" x2="12" y1="15.5" y2="8.5"></line>", aliases: Array(1)}
Creates and returns an SVG icon by passing name and prop parameters.
Returns: SVG element.
Parameter | Type | Description |
---|---|---|
name |
string | The name or alias of an icon e.g add-circle |
props |
object | Objects of props that will be translated to attributes on the SVG element. e.g { stroke: 'red' } will be converted to stroke="red" |
minicons.find('plus')
// {name: "add-circle", content: "<circle cx="12" cy="12" r="10" data-name="--Circleβ¦><line x1="12" x2="12" y1="15.5" y2="8.5"></line>", aliases: Array(1)}
Swaps elements in the DOM with the data-minicon
attribute into an SVG minicon. Only works in a browser environment.
<i data-minicon="plus"></i>
<script>
minicons.swap();
</script>
$ ./build.sh icons
$ ./build.sh
If you wish to contribute to the Minicons project please check out the contributing guidelines.
Minicons is licensed under the MIT License