Vanilla Javascript Icon Picker (made with Typescript)
- Vanilla Javascript
- Fully customizable (custom iconset, custom style)
- Dark/Light mode
- Lightweight (24 KB gzipped)
npm i @davicotico/iconpicker
Using a div element (inline)
<div style="250px" id="element-id"></div>
Or using a button (open a popover)
<button id="element-id" class="btn btn-primary"></button>
import { IconPicker } from "@davicotico/iconpicker";
import '@davicotico/iconpicker/css/styles.css';
import '@davicotico/iconpicker/css/themes/dark.css';
import '@davicotico/iconpicker/css/themes/light.css';
import { bi } from '@davicotico/iconpicker/iconsets/bi'; /* bootstrap iconset */
// or
/*const iconset = ['fa-solid fa-home', 'fa-solid fa-star',...]; */
const iconPicker = new IconPicker('element-id', bi, 20, { iconButtonClass: 'btn btn-secondary' });
iconPicker.onChange((params) => {
console.log(params.icon);
});
iconPicker.mount();
{
iconButtonClass: string;
selectedIconButtonClass: string;
navButtonClass: string;
inputPlaceholder: string;
inputClass: string;
arrowPrevIconClass: string;
arrowNextIconClass: string;
templateFooter: string;
placement: PopOverPlacement; // 'bottom' | 'top' | 'left' | 'right'
popoverTheme: string;
}
//const iconset = ['fa-solid fa-home', 'fa-solid fa-star',...];
var iconPicker = new IconPicker('element-id', iconset, 30, {});
iconPicker.setSelected('fa-solid fa-home');
Only when the icon picker is a button
iconPicker.setPopoverTheme('dark'); // 'dark' | 'light'
Build and renderize the icon picker
iconPicker.mount();
iconPicker.onChange((params) => {
console.log('Icon: ' + params.icon);
});
MIT
- fix: styles path
- fix: iconsets path, styles path
- First release