displaytexulinot agent-emittableapp
Avatar
avatar
A face or initials for one person, with an optional presence status.
One token contract, every theme. Display components take color, radius, density and state styling from the --tx-* token contract — the same variables the theme strip below overrides — so a theme swap re-colors them without per-component fixes.
Live examples
Named person
Named person
Loading demo…
In your theme
This page renders in the site theme, enterprise-neutral. Every one of the 210 library themes re-colors every component through the --tx-* contract. The three below carry real token values from the library, rendered at build — no island, no extra requests.
Violet
backgroundsurfaceprimaryaccentborder
Monochrome
backgroundsurfaceprimaryaccentborder
Accessible Dark Contrast
backgroundsurfaceprimaryaccentborder
Props
| Name | Kind | Required | Default | Description |
|---|---|---|---|---|
name | string | yes | — | — |
src | string | no | — | — |
srcTrust | enum (developer, untrusted) | no | "untrusted" | — |
srcset | string | no | — | — |
sizes | string | no | — | — |
size | enum (xs, sm, md, lg) | no | "md" | — |
tone | enum (primary, success, warning, destructive, info, neutral) | no | — | — |
color | enum (none, chart-1, chart-2, chart-3, chart-4, chart-5, chart-6, chart-7, chart-8) | no | "none" | — |
shape | enum (circle, square) | no | — | — |
status | enum (online, away, busy, offline) | no | — | — |
decorative | boolean | no | false | — |
delayMs | number | no | 0 | — |
initials | string | no | — | — |
class | string | no | — | — |
Keyboard
| Key | Action |
|---|---|
— | See accessibility notes for keyboard behavior. |
Accessibility
- Named by the person unless decorative.
- Image URLs pass the untrusted image policy.
Evidence for avatar
Latest committed gates for avatar (as of 2026-10-23). Static snapshot — not live CI.
Behavior
checkedscenario avatar
Rows in tests/behavior/scenarios/avatar.spec.ts, held to the WAI-ARIA APG pattern, run on Chromium and WebKit, and its touch rows on the Pixel 7.
Size (gzip)
@texuli/primitives/avatar · budget 4.00 KiB
Budget from texuli.budgets.json; re-measure with `pnpm size --filter <entry>`.
Axe
documented
tests/e2e/site-component-pages.spec.tsdocs/quality (a11y-*)
Site component pages axe gate; package-level a11y docs under docs/quality when present.
Browsers
chromiumwebkitmobile
Playwright projects: Desktop Chrome, Desktop Safari, Pixel 7. Firefox is a known gap on this host.
When to use
Use when
- Show who wrote a message, who owns a task, or who is in a thread
Don’t use when
Prefer another component
- A group of faces in one circle (use avatar-group-grid)

