Import
import { Avatar } from '@contentful/f36-avatar';
import { Avatar } from '@contentful/f36-component';
Examples
Variants
The Avatar can be rendered in different variants:
- User - default variant
 - App
 
function AvatarVariantsExample() {
  return (
    <Stack>
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        variant="user"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        variant="app"
      />
    </Stack>
  );
}
Sizes
The Avatar can be rendered in different sizes:
- Tiny - 20px
 - Small - 24px
 - Medium - 32px, default size
 - Large - 48px
 
function AvatarVariantsExample() {
  return (
    <Stack>
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="tiny"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="small"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="medium"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="large"
      />
    </Stack>
  );
}
Color Border
By default, the Avatar is rendered with a thin gray border. You can change the border to be one of 9 different colors: blue, purple, orchid, strawberry, orange, gold, olive, green, ocean
function AvatarColorBordersExample() {
  return (
    <Stack>
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="large"
        colorVariant="gray"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="large"
        colorVariant="green"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="large"
        colorVariant="yellow"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="large"
        colorVariant="orange"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="large"
        colorVariant="purple"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="large"
        colorVariant="pink"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="large"
        colorVariant="lavender"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="large"
        colorVariant="emerald"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="large"
        colorVariant="primary"
      />
    </Stack>
  );
}
Special style variant muted
This property modifies the opacity of the Avatar component to indicate activity state.
function AvatarActiveExample() {
  return (
    <Stack>
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="medium"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="medium"
        colorVariant="muted"
      />
    </Stack>
  );
}
Icons
An Avatar can display an icon on top of the image
function AvatarIconExamples() {
  return (
    <Stack>
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="medium"
      />
      <Avatar
        src="https://images.ctfassets.net/iq4lnigp6fgt/2EEEk92Kiz6KxREsjBLPAN/810d5a21650d91abad12e95da4cd3beb/2021-06_Everyone_is_Welcome_here_1_.png?fit=fill&f=top_left&w=100&h=100"
        size="medium"
        icon={<CheckCircleIcon variant="positive" />}
      />
    </Stack>
  );
}
Fallback
In some cases a user or an app will have no avatar to display. Instead, a fallback can be rendered when the src property is undefined (or an empty string "") and the loading state is not true.
function AvatarFallbackExample() {
  return <Avatar />;
}
Loading skeleton
When the avatar image is loading, a loading skeleton will be shown automatically. You can also force the loading state with the isLoading prop.
function AvatarLoadingExample() {
  return <Avatar isLoading />;
}
Name | Type | Default | 
|---|
| alt  | string  |  | 
| className  | string CSS class to be appended to the root element  |  | 
| colorVariant  | "primary" "muted" "green" "orange" "yellow" "purple" "gray" "pink" "emerald" "lavender"  | 'gray'  | 
| icon  | ReactElement<any, string | JSXElementConstructor<any>>  |  | 
| initials  | string  |  | 
| isLoading  | false true  | false  | 
| size  | "small" "tiny" "medium" "large" `${number}px` Use the available sizes or a numerical custom one, e.g. '52px'  | 'medium'  | 
| src  | string  |  | 
| testId  | string A [data-test-id] attribute used for testing purposes  |  | 
| tooltipProps  | CommonProps & WithEnhancedContent & Omit<TooltipInternalProps, "children"> A tooltipProps attribute used to conditionally render the tooltip around root element  |  | 
| variant  | "app" "user"  | 'user'  | 
Accessibility
Make sure to pass a fitting alt property, especially if the avatar is used by itself without the user's name next to it.