Icon font repository for Digital.ai UX β used standalone or with dot-components.
π Browse the demo β
DotIcon via dot-componentsimport { DotIcon } from '@digital-ai/dot-components';
<DotIcon iconId="home" />
<DotIcon iconId="settings" fontSize="large" tooltip="Settings" />
<DotIcon iconId="ai" ai={true} />
Full DotIcon documentation β
<link rel="stylesheet" href="./index.css" />
<span class="dot-icon">
<i class="icon-home"></i>
</span>
Never add the
icon-prefix to theiconIdprop βDotIconadds it automatically.
https://digital-ai.github.io/dot-icons/demo/
The demo lets you:
<DotIcon iconId="..." />), and HTML Code β all copyableThe demo includes a built-in upload flow that handles everything automatically.
Run the local proxy once so the demo can authenticate as you without entering a token:
# From the repo root (requires gh CLI authenticated: gh auth login)
node demo/local-proxy.js
http://localhost:<port>/demo/ locally)my-new-icon)gh auth session (no token input if the local proxy is running)The PR is created automatically. Once merged, the GitHub Actions workflow (.github/workflows/generate-icon-font.yml) regenerates the icon font (dot.woff, dot.ttf) and updates index.css β no IcoMoon step required.
Note: The SVG is committed to
fonts/svg/new/. After the font is regenerated it moves tofonts/svg/. You can review the generated font in the PR before merging.
Use this if the upload UI is not available or you need to bulk-add icons.
selection.json (Main Menu β Manage Projects β Import Project)fonts/dot.wofffonts/dot.ttffonts/dot.svgselection.jsonstyle.css into index.css:
.dot-icon i.icon-my-new-icon:before {
content: '\eXXX';
}
demo/script.js in the ICONS array under the correct category, alphabetically ordered within the category:
// ββ Actions βββββββββββββββββββββββββββββββββββ
{ id: 'abort', cat: 'actions' },
{ id: 'add', cat: 'actions' },
{ id: 'my-new-icon', cat: 'actions' }, // β inserted alphabetically
{ id: 'save', cat: 'actions' },
dot-icons uses @font-face which Jest/jsdom cannot process. Add a style mock:
jest.config.js
moduleNameMapper: {
'@digital-ai/dot-icons': '<rootDir>/testing-utils/style-mock.ts',
}
testing-utils/style-mock.ts
module.exports = {};
Latest dot-icons not picked up by dot-components
Add a resolutions entry to your package.json:
"resolutions": {
"@digital-ai/dot-icons": "latest"
}
More information: dot design system β Icons