Docs Components Data Display

Avatar

React example follows below.
ts
const avatarFixture = {
id: "avatar",
name: "Ada Lovelace",
initials: "AL",
status: "online",
size: "md",
} satisfies {
id: string;
name: string;
initials: string;
status: "online";
size: "sm" | "md" | "lg";
};
import { Avatar } from "@grassroot/ui-react";
export default function AvatarDemo() {
return (
<div>
<Avatar
name={avatarFixture.name}
initials={avatarFixture.initials}
size={avatarFixture.size}
status={avatarFixture.status}
/>
</div>
);
}
ts
<script setup lang="ts">
const avatarFixture = {
id: "avatar",
name: "Ada Lovelace",
initials: "AL",
status: "online",
size: "md",
} satisfies {
id: string;
name: string;
initials: string;
status: "online";
size: "sm" | "md" | "lg";
};
import { Avatar } from "@grassroot/ui-vue";
</script>
<template>
<div>
<Avatar
:name="avatarFixture.name"
:initials="avatarFixture.initials"
:size="avatarFixture.size"
:status="avatarFixture.status"
/>
</div>
</template>
ts
import { Component } from "@angular/core";
const avatarFixture = {
id: "avatar",
name: "Ada Lovelace",
initials: "AL",
status: "online",
size: "md",
} satisfies {
id: string;
name: string;
initials: string;
status: "online";
size: "sm" | "md" | "lg";
};
import { GrassrootAvatar } from "@grassroot/ui-angular";
@Component({
selector: "app-avatar-demo",
standalone: true,
imports: [GrassrootAvatar],
template: `
<div>
<grassroot-avatar
[name]="fixture.name"
[initials]="fixture.initials"
[size]="fixture.size"
[status]="fixture.status"
/>
</div>
`,
})
export class AvatarDemoComponent {
protected readonly fixture = avatarFixture;
}
export default AvatarDemoComponent;
ts
<script lang="ts">
const avatarFixture = {
id: "avatar",
name: "Ada Lovelace",
initials: "AL",
status: "online",
size: "md",
} satisfies {
id: string;
name: string;
initials: string;
status: "online";
size: "sm" | "md" | "lg";
};
import { Avatar } from "@grassroot/ui-svelte";
</script>
<div>
<Avatar
name={avatarFixture.name}
initials={avatarFixture.initials}
size={avatarFixture.size}
status={avatarFixture.status}
/>
</div>
ts
/** @jsxImportSource solid-js */
import { Avatar } from "@grassroot/ui-solid";
const avatarFixture = {
id: "avatar",
name: "Ada Lovelace",
initials: "AL",
status: "online",
size: "md",
} satisfies {
id: string;
name: string;
initials: string;
status: "online";
size: "sm" | "md" | "lg";
};
import type { JSX } from "solid-js";
export default function AvatarDemo(): JSX.Element {
return (
<div>
<Avatar
name={avatarFixture.name}
initials={avatarFixture.initials}
size={avatarFixture.size}
status={avatarFixture.status}
/>
</div>
);
}

Installation

API Reference

Import

import { Avatar } from "@grassroot/ui-react";

Props

Prop
Type
Default
Requirement
Description
src
string | undefined
optional
Image URL; on error falls back to initials.
name
string | undefined
optional
Full name — initials are derived from it (also used as alt).
initials
string | undefined
optional
Explicit fallback text; overrides derived initials.
size
"sm" | "md" | "lg" | undefined
"md"
optional
status
AvatarStatus | undefined
optional
Presence dot.
Prop
src
Type
string | undefined
Default
Requirement
optional
Description
Image URL; on error falls back to initials.
Prop
name
Type
string | undefined
Default
Requirement
optional
Description
Full name — initials are derived from it (also used as alt).
Prop
initials
Type
string | undefined
Default
Requirement
optional
Description
Explicit fallback text; overrides derived initials.
Prop
size
Type
"sm" | "md" | "lg" | undefined
Default
"md"
Requirement
optional
Description
Prop
status
Type
AvatarStatus | undefined
Default
Requirement
optional
Description
Presence dot.

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.

Import

import { Avatar } from "@grassroot/ui-vue";

Props

Prop
Type
Default
Requirement
src
string | undefined
optional
name
string | undefined
optional
initials
string | undefined
optional
size
"sm" | "md" | "lg" | undefined
"md"
optional
status
AvatarStatus | undefined
optional
Prop
src
Type
string | undefined
Default
Requirement
optional
Prop
name
Type
string | undefined
Default
Requirement
optional
Prop
initials
Type
string | undefined
Default
Requirement
optional
Prop
size
Type
"sm" | "md" | "lg" | undefined
Default
"md"
Requirement
optional
Prop
status
Type
AvatarStatus | undefined
Default
Requirement
optional

Import

import { Component } from "@angular/core";
import { GrassrootAvatar } from "@grassroot/ui-angular";

Props

Prop
Type
Default
Requirement
src
string
optional
name
string
optional
initials
string
optional
size
"sm" | "md" | "lg"
"md"
optional
status
AvatarStatus
optional
Prop
src
Type
string
Default
Requirement
optional
Prop
name
Type
string
Default
Requirement
optional
Prop
initials
Type
string
Default
Requirement
optional
Prop
size
Type
"sm" | "md" | "lg"
Default
"md"
Requirement
optional
Prop
status
Type
AvatarStatus
Default
Requirement
optional

Import

import { Avatar } from "@grassroot/ui-svelte";

Props

Prop
Type
Default
Requirement
src
string
optional
name
string
optional
initials
string
optional
size
"sm" | "md" | "lg"
"md"
optional
status
AvatarStatus
optional
className
string
optional
Prop
src
Type
string
Default
Requirement
optional
Prop
name
Type
string
Default
Requirement
optional
Prop
initials
Type
string
Default
Requirement
optional
Prop
size
Type
"sm" | "md" | "lg"
Default
"md"
Requirement
optional
Prop
status
Type
AvatarStatus
Default
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional

Import

import { Avatar } from "@grassroot/ui-solid";
import type { JSX } from "solid-js";

Props

Prop
Type
Default
Requirement
src
string
optional
name
string
""
optional
initials
string
optional
size
"sm" | "md" | "lg"
"md"
optional
status
AvatarStatus
optional
className
string
optional
Prop
src
Type
string
Default
Requirement
optional
Prop
name
Type
string
Default
""
Requirement
optional
Prop
initials
Type
string
Default
Requirement
optional
Prop
size
Type
"sm" | "md" | "lg"
Default
"md"
Requirement
optional
Prop
status
Type
AvatarStatus
Default
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.