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.