Avatar
Represents a user or entity with a recognizable image or placeholder in UI elements.
Structure
Reusable Components
You can create your own reusable components that combine the Avatar
primitives and simplify the usage throughout your application. In the following example, we're creating a reusable MyAvatar
component that takes in a src
and fallback
prop and renders an Avatar.Root
component with an Avatar.Image
and Avatar.Fallback
component.
You could then use the MyAvatar
component in your application like so:
API Reference
The root component used to set and manage the state of the avatar.
Property | Type | Description |
---|---|---|
loadingStatus bindable prop | enum | The loading status of the avatars source image. You can bind a variable to track the status outside of the component and use it to show a loading indicator or error message. Default: undefined |
onLoadingStatusChange | function | A callback function called when the loading status of the image changes. Default: undefined |
delayMs | number | How long to wait before showing the image after it has loaded. This can be useful to prevent a harsh flickering effect when the image loads quickly. Default: 0 |
ref bindable prop | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-status | enum | The loading status of the image. |
data-avatar-root | '' | Present on the root element. |
The avatar image displayed once it has loaded.
Property | Type | Description |
---|---|---|
ref bindable prop | HTMLImageElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-status | enum | The loading status of the image. |
data-avatar-image | '' | Present on the root element. |
The fallback displayed while the avatar image is loading or if it fails to load
Property | Type | Description |
---|---|---|
ref bindable prop | HTMLSpanElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-status | enum | The loading status of the image. |
data-avatar-fallback | '' | Present on the fallback element. |