Decorates an svg icon with automatic sizing. Useful when applying base styles to phosphor icons.
import { Icon } from "@ngrok/mantle/icon";
import { FireIcon } from "@phosphor-icons/react/Fire";
<Icon svg={<FireIcon />} />
<Icon className="text-danger-600" svg={<FireIcon weight="fill" />} />Examples
Merging classNames
The Icon merges className selectors with the following order of precedence (last one wins):
- SvgOnly base classes (only
"shrink-0") - Icon base classes
- Icon className
- svg className
When className is not specified:
When className is only specified on svg:
When className is only specified on Icon:
When className is specified on both svg and Icon:
import { Icon } from "@ngrok/mantle/icon"
import { FireIcon } from "@phosphor-icons/react/Fire";
<Icon svg={<FireIcon />} />
<Icon svg={<FireIcon className="size-12 sm:size-16" />} />
<Icon className="size-20 sm:size-28" svg={<FireIcon />} />
<Icon className="size-20 sm:size-28" svg={<FireIcon className="size-12 sm:size-16" />} />API Reference
The Icon accepts the following props: