
Icon library
Lucide.dev
@servicetitan/anvil2-icons. Import icons from that package, not directly from lucide-react. See Getting Started for the import path.
Icon size and usage
Match the icon size to its surrounding text or control size. Don’t mix a 24px icon into a 14px-text row.
Scaling up
Never stretch or freehand-resize an icon. Start from the base spec (24px at 2px stroke) and scale using the library’s fixed steps (12 / 16 / 24 / 32px) only. Stroke scales proportionally with size, so don’t manually thicken or thin it.Style
Always outlined. Lucide icons in this system are used exclusively in their stroke/outline form (2px stroke, 24×24 native grid). Never use the filled or solid variant, even where Lucide offers one. This keeps Lucide icons visually consistent with the existing Anvil2 stroke-only icon set rather than introducing a second, filled visual language.Request new icons
Need an icon that’s not in the library? Request it in the #ask-vizd Slack
channel.