Pre-built Iconify icon sets as ESM with TypeScript declarations.
This library is a workaround for how Rolldown was not correctly converting the original iconify packages from CJS to ESM.
| Export Path | Source Package | Icons |
|---|---|---|
ant-design |
@iconify/icons-ant-design |
Ant Design Icons |
bytesize |
@iconify/icons-bytesize |
Bytesize Icons |
carbon |
@iconify/icons-carbon |
Carbon Icons |
cil |
@iconify/icons-cil |
CoreUI Free Icons |
dashicons |
@iconify/icons-dashicons |
Dashicons |
fa |
@iconify/icons-fa |
Font Awesome 4 |
gridicons |
@iconify/icons-gridicons |
Gridicons |
ic |
@iconify/icons-ic |
Google Material Icons |
ion |
@iconify/icons-ion |
IonIcons |
maki |
@iconify/icons-maki |
Maki Icons |
mdi |
@iconify/icons-mdi |
Material Design Icons |
oi |
@iconify/icons-oi |
Open Iconic |
raphael |
@iconify/icons-raphael |
Raphael Icons |
vaadin |
@iconify/icons-vaadin |
Vaadin Icons |
whh |
@iconify/icons-whh |
WebHostingHub Glyphs |
import adjust from '@inkarnaterpg/icons/fa/adjust';import { align_center, adjust } from '@inkarnaterpg/icons/fa';Each icon is an IconifyIcon object from @iconify/types.
pnpm install
pnpm run buildThe build script reads the CJS icon files from each iconify package and writes self-contained ESM files with the icon data inlined. Package-level barrel files re-export from the individual icon files.
-
Install the Iconify package:
pnpm add @iconify/icons-<name>
-
Add an entry to the
packagesarray inscripts/build.mjs:{ pkg: "@iconify/icons-<name>", name: "<name>" },
-
Add export paths to
package.jsonunderexports:"./<name>": { "types": "./dist/<name>.d.mts", "import": "./dist/<name>.mjs" }, "./<name>/*": { "types": "./dist/icon.d.mts", "import": "./dist/<name>/*.mjs" }
-
Rebuild:
pnpm run build
Icon names are derived from the original filenames with hyphens replaced by underscores:
address-book->address_bookmenu-alt-2->menu_alt_2500px->_500px(leading digits get a_prefix)