Components · v0.1 · Stable
Avatar
A person or workspace representation. Falls back gracefully from photo to initials, and communicates presence with a corner status dot.
Example
An avatar with photo, name-derived initials fallback, and an online status dot.
Installation
Add via the Nova CLI, then import.
npx @novix-ui/cli add avatarimport { Avatar, AvatarGroup } from "@novix-ui/react";When to use
Use it for
- Comment authorship, mentions, and activity feeds
- Workspace and team switchers (squircle)
- Presence in collaboration tools
Reach for something else
- Product or file thumbnails — use a plain image with squircle radius
- Brand logos on marketing — use a Card cover, not an Avatar
Playground
Playground
Sizes
Shapes
Use squircle for workspaces, teams, and brand tiles. Circle stays reserved for people.
Status indicators
Groups
Overlap avatars for collaborators. The group announces the total count and shows a "+N" tile past the limit.
API
srcstring—Image URL. Falls back to initials on error.namestring—Full display name — used for initials and aria-label.size"xs" | "sm" | "md" | "lg" | "xl" | "2xl""md"Diameter of the avatar.shape"circle" | "squircle""circle"Circle for people, squircle for brands and workspaces.ring"none" | "subtle" | "strong" | "accent""subtle"Border treatment. Use accent for active-user emphasis.status"online" | "offline" | "busy" | "away"—Corner presence indicator.
Accessibility
- Always pass
name— it becomes the accessible label and initials fallback. - Status is exposed via a visually hidden
sr-onlystring ("online", "busy", …). - Images have empty alt attributes because the surrounding label is authoritative.
Design guidelines
Choose one shape per surface
Mixing circle and squircle in the same list reads as inconsistency, not variety.
Cap the group at 5
Beyond that the density is noise. Use +N and defer detail to a hover popover.
Initials are a fallback, not a style
Prefer real photos or generated art. Initials are the safety net when neither exists.
Ring communicates state
Reserve the accent ring for the active or speaking user in real-time surfaces.
Common mistakes
- Passing only an initial as
name. Nova computes initials for you — pass the full display name. - Using an Avatar as a button. Wrap it in an
IconButtonor Link so the interactive semantics are correct.