F5Shipped
Iconography
Lucide React is the sole icon library. Size and color follow design tokens — never one-off pixel values in product code.
Library
Import from lucide-react (also a dependency of @charply/design).
import { ArrowRight, Sparkles } from "lucide-react"
<Button>
Continue <ArrowRight className="size-4" />
</Button>Sizing
size-3·12px — Micro icons in badgessize-4·16px — Default inside Button / inlinesize-5·20px — Standalone icons, StatusBadgesize-6·24px — Section iconssize-8·32px — Empty state / feature iconsColor
Icons inherit currentColor. Set color via text-* utilities.
In context
Guidelines
docs/design/foundation/iconography.mdDo
- ✓Use `lucide-react` for all product icons.
- ✓Size icons explicitly with `size-*` when they appear outside a Button.
- ✓Color icons with `text-*` token utilities.
Don't
- ✗Import SVG files directly — use lucide components for consistency.
- ✗Mix icon libraries (e.g. Heroicons, Phosphor) on the same surface.
- ✗Use decorative icons without `aria-hidden="true"` or a paired visible label.
- ✗---