Iconography
BrainStorm uses Font Awesome Sharp Solid exclusively across the platform UI. Sharp is the squared, angular variant of FA Solid — it matches DM Sans's geometric character and reads clearly at small sizes in dense enterprise interfaces. The Free solid style is visually close and used in these demos; production requires FA Pro.
Why Sharp Solid
Brand alignment
Sharp's squared corners mirror DM Sans's geometric letterforms. Regular Solid icons have rounded terminations that read as softer — Sharp maintains consistent visual tension across type and icon.
Legibility at 12–16px
Rounded terminals blur at small sizes on non-retina screens. Sharp's flat endpoints fill the optical target more completely, improving recognition in table cells, chips, and nav items at 12–16px.
Practical consistency
A single icon style (Sharp Solid) eliminates per-engineer decisions about outline vs filled vs duotone. Solid icons are unambiguous about state; Sharp keeps the set visually unified.
Anti-patterns — never do
fa-sharp<i class="fa-solid fa-bolt"> — silently renders the rounded Free Solid variant, not Sharp. Every icon must include both bsn-icon and fa-sharp fa-solid:<i class="bsn-icon fa-sharp fa-solid fa-bolt fa-sm" style="color:var(--color-alpine);" aria-hidden="true"></i>
fill instead of colorcurrentColor. fill has no effect. Always set style="color:var(--token);" or inherit from a parent element.
style="color:#23403b" — never. Use CSS tokens: style="color:var(--color-alpine);". This keeps icons theme-able and auditable.
font-sizestyle="font-size:13px" — use only the seven documented FA sizing classes. If a new size is genuinely needed, add it as a scale stop — don't scatter ad-hoc overrides through pages.
Icon sizes — mapped to spacing scale
Use FA sizing classes or explicit font-size. Always pair icon size with context — a 12px icon in a 13px body sentence, a 16px icon in a 44px button, a 24px icon in an empty state.
Icon color — semantic usage
color (not fill) for FA icons — they inherit via CSS currentColor. Never hard-code a hex value inline; always reference a CSS token or inherit from a parent with a semantic class.
3a — Navigation icons
3b — Action icons
3c — Status & feedback icons
3d — Content type icons
3e — Agentic UX icons BrainStorm AI
Placement rules
padding-left:36px to prevent text overlap.fa-arrow-up-right-from-square).title and aria-label.Icon Component
The shared icon primitive. Every other component emits icons through bsnIcon so the Font Awesome Sharp Solid class chain stays consistent.
<div class="bsn-icon-mount" data-bsn-icon='{…}'></div> — rendered via buildIcon(). Auto-generated from ssot/components/icon/.