@getprovi/fizz-icons
v1.8.0
Published
An icon library for Fizz.
Downloads
147
Keywords
Readme
Fizz Icons
An icon library for Fizz.
Updating Icons
- Add a new file named for the icon to
_src/assets/icons
folder. - Copy and paste the SVG code from the Figma icon into the new file and remove any
g
,defs
, andrect
tags as well as thexlmns
url, and anywidth
,height
, andfill
attributes. Also make sure there is aviewBox="0 0 24 24"
on thesvg
. This will generate the name into the array in_src/_data/icons.json
. You can further optimize the SVG with SVGOMG. - Bump the version in
package.json
and runpnpm run build:icons
from the root of the monorepo to generate the new icon files. - Publish the new version of the icon package to NPM by running
pnpm run pub:icons
from the root of the monorepo. - Update the icon package in the styles package by running
pnpm up --filter @getprovi/fizz @getprovi/fizz-icons
from the root of the monorepo. This can also be accomplished by changing the version in the styles package'spackage.json
and runningpnpm i
from the root of the monorepo.
Usage
The icons are generated by using a shortcode in eleventy.js and a template in layouts. The shortcode takes the name of the icon and the class name. The template uses the name to pull the svg from the sprite.svg file.
.eleventy.js
has shortcode for svgbase.html
insrc/_includes/layouts
has an svg template that pulls in the sprite.svg file generated by theeleventy-plugin-svg-sprite
plugin in the icon package.<div hidden> {% include '../../../node_modules/@getprovi/fizz-icons/_src/assets/sprite.svg' %} </div>
- The
iconlist.js
insrc/_data
runs a function that looks for all the icons in the fizz-icons package and generates an array of icon names. - The icons page in
src/pages
uses the shortcode to generate the icons{% for svg in iconlist %} <li class="fizz-text-center"> {% icon svg, "fizz-icon-32 fizz-margin-auto fizz-stack-4" %} <span>{{ svg }}</span> </li> {% endfor %}