Icons
Icon set and usage guidelines.
Why Carbon?
- Consistent visual weight — all icons share the same stroke width and optical sizing.
- Multiple sizes — 16, 20, 24, and 32px variants available for every icon.
- Accessible by default — each icon component accepts
aria-labeland title props. - Tree-shakeable — only the icons you import are included in the bundle.
Usage
Import icons directly from @carbon/icons-react:
tsx
import { Add, Search, Close } from "@carbon/icons-react" function Toolbar() { return ( <div className="flex gap-2"> <button aria-label="Add item"><Add size={20} /></button> <button aria-label="Search"><Search size={20} /></button> <button aria-label="Close"><Close size={20} /></button> </div> ) }
11 lines of tsx code
Size conventions
| Context | Size | Example |
|---|---|---|
| Inline with text | 16px | Breadcrumb chevrons, status indicators |
| Toolbar buttons | 20px | Action bar icons |
| Standalone buttons | 24px | Navigation icons, card actions |
| Hero or empty states | 32px | Illustration-style usage |
Always pair icons with visible text labels or aria-label attributes for accessibility. Avoid using icons as the sole means of conveying meaning.