使用高级 Chakra UI 组件更快地构建 💎

了解更多
跳到内容
文档演示指南博客
赞助商

头像

用于表示用户个人资料图片或姓名缩写

源码StorybookRecipeArk
SA

用法

import { Avatar, AvatarGroup } from "@chakra-ui/react"
<AvatarGroup>
  <Avatar.Root>
    <Avatar.Fallback />
    <Avatar.Image />
  </Avatar.Root>
</AvatarGroup>
信息
如果您倾向于使用封闭式组件组合,请查看下面的代码片段

示例

尺寸

使用 size 属性来改变头像的尺寸

SA
SA
SA
SA
SA
SA

变体

使用 variant 属性来改变头像的变体

SA
SA
SA

形状

使用 shape 属性来改变头像的形状,从 rounded(圆形)到 square(方形)

DA
SA
RU

颜色

使用 colorPalette 属性来改变头像的颜色

灰色

SA
SA

红色

SA
SA

绿色

SA
SA

蓝色

SA
SA

青色

SA
SA

粉色

SA
SA

紫色

SA
SA

青绿色

SA
SA

橙色

SA
SA

黄色

SA
SA

回退

当未提供名称或图片加载失败时,将 Avatar.Icon 作为回退渲染。

OK
SU

随机颜色

结合 colorPalette 属性和一些自定义逻辑,动态改变头像的颜色

SN
BL
JL

边框

使用 outline* 属性来为头像添加边框

R
R
R

分组

使用 Group 组件将多个头像分组显示

US
BA
UC
+3

堆叠

使用 AvatarGroup 组件时,您可以使用 stacking 属性来改变头像的堆叠顺序

US
BA
UC
+3
US
BA
UC
+3
US
BA
UC
+3

人物形象

这里是使用 Avatar 组件显示用户人物形象的示例。

JM

John Mason

john.mason@example.com

MJ

Melissa Jones

melissa.jones@example.com

徽章

通过组合 FloatCircle 组件,在头像右下角显示一个徽章

DA

溢出

这里是使用 MenuAvatar 组件处理头像溢出情况的示例。

NU
SH
KH

Next.js

这里是使用 Next.js Image 组合头像的示例。

import { getImageProps } from "next/image"

function Demo() {
  const imageProps = getImageProps({
    src: "/image.png",
  })
  return (
    <Avatar.Root>
      <Avatar.Fallback name="Segun Adebayo" />
      <Avatar.Image {...imageProps} />
    </Avatar.Root>
  )
}

状态管理

访问头像状态和方法的另一种方式是使用 RootProvider 组件和 useAvatar 状态管理钩子。

SA
未加载

封闭式组件

这里是如何为封闭式组件组合设置头像的示例。

import {
  Avatar as ChakraAvatar,
  AvatarGroup as ChakraAvatarGroup,
} from "@chakra-ui/react"
import * as React from "react"

type ImageProps = React.ImgHTMLAttributes<HTMLImageElement>

export interface AvatarProps extends ChakraAvatar.RootProps {
  name?: string
  src?: string
  srcSet?: string
  loading?: ImageProps["loading"]
  icon?: React.ReactElement
  fallback?: React.ReactNode
}

export const Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(
  function Avatar(props, ref) {
    const { name, src, srcSet, loading, icon, fallback, children, ...rest } =
      props
    return (
      <ChakraAvatar.Root ref={ref} {...rest}>
        <ChakraAvatar.Fallback name={name}>
          {fallback || icon}
        </ChakraAvatar.Fallback>
        <ChakraAvatar.Image src={src} srcSet={srcSet} loading={loading} />
        {children}
      </ChakraAvatar.Root>
    )
  },
)

export const AvatarGroup = ChakraAvatarGroup

如果您想自动将封闭式组件添加到您的项目,请运行以下命令

npx @chakra-ui/cli snippet add avatar

属性

根组件

属性默认值类型
colorPalette '灰色'
'灰色' | '红色' | '橙色' | '黄色' | '绿色' | '青色' | '蓝色' | '青绿色' | '紫色' | '粉色'

组件的颜色调色板

size 'md'
'full' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'

组件的尺寸

variant 'subtle'
'solid' | 'subtle' | 'outline'

组件的变体

shape 'full'
'square' | 'rounded' | 'full'

组件的形状

asChild
boolean

使用提供的子元素作为默认渲染元素,并结合其属性和行为。

欲了解更多详情,请阅读我们的 组合 指南。
ids
Partial<{ root: string; image: string; fallback: string }>

头像中元素的 ID。有助于组合。

onStatusChange
(details: StatusChangeDetails) => void

当图片加载状态改变时调用的函数。

borderless
'true' | 'false'

组件的无边框状态

as
React.ElementType

要渲染的底层元素。

unstyled
boolean

是否移除组件的样式。

回退

属性默认值类型
asChild
boolean

使用提供的子元素作为默认渲染元素,并结合其属性和行为。

欲了解更多详情,请阅读我们的 组合 指南。
name
string

icon
React.ReactElement

图片

属性默认值类型
asChild
boolean

使用提供的子元素作为默认渲染元素,并结合其属性和行为。

欲了解更多详情,请阅读我们的 组合 指南。

上一页

Alert

下一页

徽章