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
Prop | Type | Default |
---|---|---|
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