Halo
Halo frames an icon with a transparent gap and a low-opacity ring derived from the icon’s color. Use it to give a meaningful status or outcome more presence without adding a filled tile.
Colors
Set one CSS color; the icon uses it directly and the halo derives the same color at 20% opacity. Without color, the component inherits currentColor.
Pair Halo with a circular icon. The round ring reinforces circular glyphs; triangles and other silhouettes look disconnected from it.
Sizes
Each size owns the icon, transparent gap, halo thickness, and total footprint as one visual recipe.
| Size | Icon | Clear gap | Halo | Footprint |
|---|---|---|---|---|
sm | 16px | 2px | 5px | 28px |
md | 24px | 2px | 7px | 40px |
lg | 32px | 4px | 11px | 56px |
Notice
Halo works best in spacious, durable feedback such as resolved states, service notices, and full-page outcomes. Compact alerts, status rows, and routine toasts usually need a smaller visual footprint.
No incidents declared
We are not actively mitigating any known incidents at this time.
Usage
import { Halo } from '@vesyl/ui-next'
import { CircleCheck } from 'lucide-react'
<Halo color="var(--status-success)" size="md">
<CircleCheck />
</Halo>Reference
Extends <span> props.
| Prop | Type | Default | Description |
|---|---|---|---|
color | CSS color | currentColor | Base color shared by the icon and translucent halo |
size | "sm" | "md" | "lg" | "md" | Controls the complete icon, gap, halo, and footprint recipe |