Canonical icon library used across the family design system. Every icon is a stroke-based SVG
derived from Lucide's
open-source set, optimized for inline use. Icons inherit color from currentColor
and respect the brand's primary text color when used inside [data-brand] scopes.
Copy the icon name and inline the SVG. This is what every modal in the playground does.
<span class="ux-icon">
<!-- icon: rotate-ccw -->
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="1 4 1 10 7 10"/>
<path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"/>
</svg>
</span>
| Use case | Size | Stroke width |
|---|---|---|
| Inline with body text | 16px | 2 |
| Buttons (sm) | 16px | 2 |
| Buttons (md/lg) | 18–20px | 2 |
| Modal header / nav | 20px | 2 |
| Icon-only button | 20–24px | 2 |
| Empty state | 32–48px | 1.5 |
| Hero / feature highlight | 48–64px | 1.5 |
Icons inherit color from currentColor. Set the parent's color to control them:
<span style="color: var(--brand-primary)"> <svg ...>...</svg> </span>
Within a [data-brand] scope, the brand-primary color comes from tokens automatically.
aria-hidden="true" on the SVGaria-label="…" on the buttonICONS map in modals-playground.html and ICONS here in icons.htmlwarning not triangle-exclaim)fill="#22c55e" hardcoded — use currentColor)