ThemeIcon
Data DisplayIcon inside a rounded container with brand-colour fills.
Wraps any icon in a sized, styled shell for use in feature lists, stats, or navigation decorators. Not clickable — pair with ActionIcon for interactive icon buttons.
Usage
import { ThemeIcon } from "nosible-ux"
import { TrendingUp } from "lucide-react"
export default function Example() {
return (
<ThemeIcon variant="filled" size="md">
<TrendingUp size={16} />
</ThemeIcon>
)
}Examples
Variants
Sizes
Accessibility
Decorative icons inside ThemeIcon should have aria-hidden="true". If the icon conveys meaning, add aria-label to the wrapping element.
Props
| Name | Type | Default | Description |
|---|---|---|---|
asChild | boolean | undefined | false | When true, renders the child element as the root (polymorphic). |
color | "default" | "critical" | null | undefined | — | |
size | "xs" | "sm" | "md" | "lg" | "xl" | null | undefined | — | |
variant | "default" | "ghost" | "filled" | "outline" | "subtle" | "transparent" | null | undefined | — |