This package provides a custom field for Strapi that lets us select an icon. It uses the IconPicker
component inside Strapi and a collection of generated SVG icons.
- List icons: to see them all.
- Search icons: to see just a few.
To install this plugin simply run this command in the Strapi project:
yarn add @jonssonworkwear/strapi-plugin-icon-picker
When adding a new field to a content type, select CUSTOM (instead of DEAFULT), then select Icon picker.
Inside a content-type, we can use the following schema:
"icon": {
"type": "customField",
"customField": "plugin::icon-picker.IconPicker"
}
- Icon selection: Click on one of the icons from the grid.
- Search icon: Click on the magnifying glass to search by the name of the icon.
- Remove selection: Click on the trash bin icon, this will leave the value of the field empty (unless required).
The plugin will store the name of the icon in a text field.
Clone this repository in the Strapi directory.
git clone https://github.com/JonssonWorkwear/strapi-plugin-icon-picker.git src/plugins/strapi-plugin-icon-picker
Add the plugin to the yarn workspace, inside ./package.json
file, so we won't need to use yarn
inside plugin itself.
"workspaces": ["./src/plugins/strapi-plugin-icon-picker"]
Install dependencies.
yarn
Register the plugin so Strapi can use it. Inside ./config/plugins.js
file add an entry:
module.exports = ({ env }) => ({
"icon-picker": {
enabled: true,
resolve: "./src/plugins/strapi-plugin-icon-picker"
},
});
Rebuild the project and start the server.
yarn build
yarn develop
Or perhaps use the --watch-admin
flag to toggle hot reloading of the admin panel.
yarn develop --watch-admin
All the icons inside admin/src/components/IconPicker/icons
are generated from SVG files using svgr. The index file containing the COMPONENT_ICONS
list is also generated.
All the changes are commited and pushed to this repository (or its forks), independently from the Strapi directory. The changes on the release
branch will be published in the @jonssonworkwear/strapi-plugin-icon-picker
package. If there is a new release published, plugins inside the Strapi project might need their version bumped.