Shared/Icon Wrapper

Icon Wrapper

A standardized icon renderer that maps semantic size tokens to Tailwind size-* utilities. Accepts both lucide-react icons and custom SVGR components. Handles accessibility via aria-label / aria-hidden.

Sizes

All six semantic size tokens mapped to pixel values.

xs12px
sm16px
md20px
lg24px
xl32px
2xl40px

Icons Gallery

Any lucide-react icon works — pass the component reference directly.

Stroke Width

Adjust the lucide stroke weight for different visual styles.

sw 1
sw 1.5
sw 2
sw 2.5

Color Tokens

Override color via className using semantic tokens.

primary
muted
destructive
foreground

Accessibility

Decorative icons use aria-hidden. Interactive icons require aria-label.

Decorative (aria-hidden)

No aria-label — rendered with aria-hidden="true".

This icon is decorative

Meaningful (aria-label)

Pass aria-label when the icon conveys meaning without adjacent text.