The neetoIcons and neetoIconsRN library are a collection of SVG React component icons that drives the experience in the neeto products built at BigBinary.
Web:
yarn add @bigbinary/neeto-icons
React Native:
yarn add @bigbinary/neeto-icons-rn
Check the Frontend package development guide for step-by-step instructions to develop the frontend package.
-
Add the SVG file - Place the SVG file for the new icon in the appropriate folder under the
sourcedirectory. For example:icons/for normal iconslogos/for product logostypefaceLogos/for product typeface logosappIcons/for app iconsmisc/for miscellaneous iconselements/for elements
-
Name the file appropriately - Use PascalCase for the file name (e.g.,
NewIcon.svg). -
Verify the icon - Run the
yarn startcommand to verify the React component for the new icon:
Web:
import { Clock } from "@bigbinary/neeto-icons";React Native:
import { Clock } from "@bigbinary/neeto-icons-rn";Anywhere in your React file
<Clock color="#1e1e20" size={24} />import { Neeto } from "@bigbinary/neeto-icons/logos";import { NeetoSite } from "@bigbinary/neeto-icons/app-icons";| Name | Type | Default | Description |
|---|---|---|---|
| color | string | currentColor | CSS color value for the icon. |
| size | string, number | 24 | Value supplied to height and width attributes of SVG element. |
| className | string | Classes supplied to the SVG element. |
import { Windows } from "@bigbinary/neeto-icons/misc";
<Windows size={36} />import { Razorpay } from "@bigbinary/neeto-icons/misc";
<Razorpay width={100} height={32} />
<Razorpay width={100} />| Name | Type | Default | Description |
|---|---|---|---|
| size | string, number | 24 | Value supplied to height and width attributes of SVG element. |
| height | string, number | - | Value supplied to height attribute of SVG element. |
| width | string, number | - | Value supplied to width attribute of SVG element. |
| className | string | Classes supplied to the SVG element. |
import { Neeto } from "@bigbinary/neeto-icons/typeface-logos";Anywhere in your React file
<Neeto height={24} width={48} />| Name | Type | Default | Description |
|---|---|---|---|
| height | string, number | 20 | Value supplied to height attribute of SVG element. |
| width | string, number | 100% | Value supplied to width attribute of SVG element. |
| className | string | Classes supplied to the SVG element. |
import { Keyboard } from "@bigbinary/neeto-icons/elements";Anywhere in your React file
<Keyboard height={80} width={41} />| Name | Type | Default | Description |
|---|---|---|---|
| height | string, number | 26 | Value supplied to height attribute of SVG element. |
| width | string, number | 80 | Value supplied to width attribute of SVG element. |
| className | string | Classes supplied to the SVG element. |
-
We use a custom rollup plugin (which can be found in
build/index.mjs) to take all the.svgfiles from thesourcefolder and convert them to React components that render the respective SVG icon. -
The plugin accepts a configuration object as an argument which can contain the following keys:
Name Type Description options objectOptions passed to the transform function from react-svgr. (See full opions list) additionTransformations functionAdditional string transformation that can be applied to the generated React code. source stringPath to the folder where the SVG files are located destination stringPath to the folder to place the generated react code -
For each icon, a React icon file will be generated in
generate/iconsfolder. -
From there babel through rollup takes the wheel and generates the bundles.
Consult the building and releasing packages guide for details on how to publish.