Icons skill
The bestax-icons
skill teaches an agent to use icons in an app built with @allxsmith/bestax-bulma: the
Icon/IconText components, the five supported icon libraries and their setup, the
per-library name formats and variants, and decorative-vs-labeled accessibility.
Install
npx skills add https://github.com/allxsmith/bestax --skill bestax-icons
What it teaches
- One library, set once —
ConfigProvider iconLibrary('fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols'), so no per-Iconlibraryprop. Including the classic trap: the Ionicons value is'ion', not'ionicons'. - Per-library name formats — the same glyph is
rocket(Font Awesome),rocket-launch(MDI), androcket_launch(Material Icons/Symbols, which render the name as a font-ligature text node). The wrong format is the #1 cause of blank icons. - Variants and features — Font Awesome's
solid/regular/brands, Material Icons'roundvs Material Symbols'rounded, Ionicons'outline/sharpname suffixes, and glyph scaling viafeatures('fa-2x','fa-spin'). - Accessibility — a descriptive
ariaLabelfor meaningful standalone icons;aria-hiddenfor decorative icons that sit next to visible text.
Meaningful vs decorative
<Block> <Icon name="triangle-exclamation" textColor="warning" ariaLabel="Warning" /> <IconText iconProps={{ name: 'star', 'aria-hidden': 'true' }}> Starred </IconText> </Block>
Sizes, variants, features
<Block> <Icon name="rocket" size="large" features="fa-2x" ariaLabel="Launch" /> <Icon name="bell" variant="regular" ariaLabel="Notifications" /> <Icon name="github" variant="brands" ariaLabel="GitHub" /> <Icon name="spinner" features="fa-spin" textColor="info" ariaLabel="Loading" /> </Block>
Reference material the agent reads on demand
references/icon-libraries.md— per-library setup (npm package / CDN script), full name-format and variant tables, and the blank-icon troubleshooting checklist.examples/icon-usage.tsx— the canonical runnable example.
Related
- Icon API reference · IconText API reference
- Configuration guide —
ConfigProviderin depth.