data-display / stable
Icon
Optically sized Lucide glyphs and tinted tiles with semantic tones and accessible labels.
LIVE PREVIEW
Loading preview…
When to use
- Icon beside text, in a labelled action, or as a standalone labelled image.
- IconTile for empty states, settings rows, notifications and entity markers.
Consider an alternative
- Actions without a Button — these display primitives have no keyboard interaction.
- Colour alone to communicate status — keep a visible text label.
Import
import { Icon } from '@revido-llc/kit';Props
Props documented by the Kit. Refer to the TypeScript types for the complete interface, including inherited props.
Related exports
IconTile
Examples
Sizes × tones
12 / 14 / 16 / 20 / 24px glyphs use non-scaling 1.25 / 1.5 / 1.75px strokes.
<Icon as={Inbox} />
<Icon as={Sparkles} size="xl" tone="primary" label="AI assistance" />Tile shapes × variants
Soft tints, outlined markers and solid fills, with square or circular containers.
<IconTile as={Inbox} tone="primary" />
<IconTile as={Check} tone="success" shape="circle" variant="solid" />Tile sizes
24 / 32 / 40px containers use 12 / 16 / 20px glyphs by default.
<IconTile as={Inbox} size="sm" />
<IconTile as={Inbox} size="lg" />Named glyphs
Registered Lucide kebab names compose from JSON without importing components.
<Icon name="inbox" label="Inbox" />
<IconTile name="folder-open" tone="primary" label="Projects" />In context
An empty inbox, a settings row and a notification keep their meaning in nearby text.
<IconTile as={Settings} tone="primary" />
<span>Workspace settings</span>
// Preserve stored identification colors; ordinary UI uses semantic tone.
<IconTile as={Layers} colors={{ background: moduleBackground, foreground: moduleForeground }} />
<IconTile variant="dot" colors={{ background: moduleColor }} />