로고SEED Design

Avatar

Avatar는 사용자, 조직과 같은 고유한 아이덴티티를 표현하는 컴포넌트입니다.

import { Flex } from "@seed-design/react";
import { Avatar, AvatarBadge } from "seed-design/ui/avatar";
import { IdentityPlaceholder } from "seed-design/ui/identity-placeholder";

export default function AvatarPreview() {
  return (
    <Flex gap="x4">
      <Avatar
        size="80"
        src="https://avatars.githubusercontent.com/u/54893898?v=4"
        fallback={<IdentityPlaceholder />}
      >
        <AvatarBadge>
          <div style={{ background: "green", width: 20, height: 20, borderRadius: 9999 }} />
        </AvatarBadge>
      </Avatar>
      <Avatar size="80" src={undefined} fallback={<IdentityPlaceholder />} />
    </Flex>
  );
}

Installation

npx @seed-design/cli@latest add avatar
pnpm dlx @seed-design/cli@latest add avatar
yarn dlx @seed-design/cli@latest add avatar
bun x @seed-design/cli@latest add avatar

Props

PropTypeDefault
asChild?
boolean
false
onLoadingStatusChange?
((status: LoadingStatus) => void)
-
badgeMask?
"none" | "circle" | "flower" | "shield"
none
size?
"20" | "24" | "36" | "42" | "48" | "64" | "80" | "96"
48
fallback?
ReactNode
-
alt?
string
-
src?
string
-

Examples

Size

L
L
L
L
L
L
L
import { Flex } from "@seed-design/react";
import { Avatar } from "seed-design/ui/avatar";

export default function AvatarSize() {
  return (
    <Flex gap="x4">
      <Avatar size="20" src="https://avatars.githubusercontent.com/u/54893898?v=4" fallback="L" />
      <Avatar size="24" src="https://avatars.githubusercontent.com/u/54893898?v=4" fallback="L" />
      <Avatar size="36" src="https://avatars.githubusercontent.com/u/54893898?v=4" fallback="L" />
      <Avatar size="48" src="https://avatars.githubusercontent.com/u/54893898?v=4" fallback="L" />
      <Avatar size="64" src="https://avatars.githubusercontent.com/u/54893898?v=4" fallback="L" />
      <Avatar size="80" src="https://avatars.githubusercontent.com/u/54893898?v=4" fallback="L" />
      <Avatar size="96" src="https://avatars.githubusercontent.com/u/54893898?v=4" fallback="L" />
    </Flex>
  );
}

Badge (Circle)

import { IdentityPlaceholder } from "seed-design/ui/identity-placeholder";
import { Avatar, AvatarBadge } from "seed-design/ui/avatar";
import { Box } from "@seed-design/react";

export default function AvatarBadgeCircle() {
  return (
    <Avatar
      size="80"
      badgeMask="circle"
      src="https://avatars.githubusercontent.com/u/54893898?v=4"
      fallback={<IdentityPlaceholder />}
    >
      <AvatarBadge asChild>
        <Box bg="palette.green600" borderRadius="full" />
      </AvatarBadge>
    </Avatar>
  );
}

Badge (Flower)

뱃지를 설명하는 대체 텍스트를 제공해야 합니다.
import { IdentityPlaceholder } from "seed-design/ui/identity-placeholder";
import { Avatar, AvatarBadge } from "seed-design/ui/avatar";

export default function AvatarBadgeFlower() {
  return (
    <Avatar
      size="80"
      badgeMask="flower"
      src="https://avatars.githubusercontent.com/u/54893898?v=4"
      fallback={<IdentityPlaceholder />}
    >
      <AvatarBadge asChild>
        <img
          src="/flower_green_checkmark.svg"
          alt="뱃지를 설명하는 대체 텍스트를 제공해야 합니다."
        />
      </AvatarBadge>
    </Avatar>
  );
}

Badge (Shield)

뱃지를 설명하는 대체 텍스트를 제공해야 합니다.
import { Avatar, AvatarBadge } from "seed-design/ui/avatar";
import { IdentityPlaceholder } from "seed-design/ui/identity-placeholder";

export default function AvatarBadgeShield() {
  return (
    <Avatar
      size="80"
      badgeMask="shield"
      src="https://avatars.githubusercontent.com/u/54893898?v=4"
      fallback={<IdentityPlaceholder />}
    >
      <AvatarBadge asChild>
        <img
          src="/shield_blue_checkmark.svg"
          alt="뱃지를 설명하는 대체 텍스트를 제공해야 합니다."
        />
      </AvatarBadge>
    </Avatar>
  );
}

Stack

import { Avatar, AvatarStack } from "seed-design/ui/avatar";
import { IdentityPlaceholder } from "seed-design/ui/identity-placeholder";

export default function AvatarStackExample() {
  return (
    <AvatarStack size="64">
      <Avatar
        src="https://avatars.githubusercontent.com/u/54893898?v=4"
        fallback={<IdentityPlaceholder />}
      />
      <Avatar
        src="https://avatars.githubusercontent.com/u/54893898?v=4"
        fallback={<IdentityPlaceholder />}
      />
      <Avatar
        src="https://avatars.githubusercontent.com/u/54893898?v=4"
        fallback={<IdentityPlaceholder />}
      />
      <Avatar
        src="https://avatars.githubusercontent.com/u/54893898?v=4"
        fallback={<IdentityPlaceholder />}
      />
    </AvatarStack>
  );
}

Last updated on