Avatar

Brand avatar used as a logo across the site. Two variants: photo with a profile image and rotating accent-gradient border, and icon with an animated accent-gradient orb.

Variants

Gabriel Hidalgo
Photo
Icon
tsx
<Avatar variant="photo" />
<Avatar variant="icon" />

Sizes

Gabriel Hidalgo
32px (default)
Gabriel Hidalgo
40px (lg)
32px (default)
40px (lg)
tsx
<Avatar variant="photo" />          {/* 32px default */}
<Avatar variant="photo" size="lg" /> {/* 40px */}

Shapes

The circle is what the header wears once the nav has morphed into its floating pill — there it's animated by a clipping wrapper rather than this prop, since a class swap can't be sprung.

Gabriel Hidalgo
rounded (default)
Gabriel Hidalgo
circle
circle, lg
tsx
<Avatar variant="photo" />
<Avatar variant="photo" shape="circle" />

Use Cases

Photo

Gabriel Hidalgo

Gabriel Hidalgo

UX/UI Designer

Icon

Gabriel Hidalgo

UX/UI Designer

Props

PropTypeDefaultDescription
variant"photo" | "icon""photo"Photo shows the profile image with a rotating accent-gradient border. Icon shows an animated accent-gradient orb inside a dark container.
size"default" | "lg""default""default" renders at 32×32 with rounded-sm. "lg" renders at 40×40 with a slightly larger radius.
shape"rounded" | "circle""rounded"Corner treatment. "rounded" uses the radius that comes with the size; "circle" overrides it to a full circle. The header animates between the two with a clipping wrapper as the nav morphs into its floating pill.
classNamestring-Additional classes merged onto the outer container — for one-off tweaks (hover effects, etc.). Do not override size here; use the size prop.

Import

tsx
import { Avatar } from '@/components/ui/Avatar'