تخطَّ إلى المحتوى

Avatar

صورة شخص أو أحرفه الأولى أو أيقونة عامة. سبعة أحجام، دائري أو مربع، ومجموعات الصور الرمزية.

الإصدار 0.2.0 ·

Avatar
الاتجاه
السمة
حجم العرض

التثبيت

bunx --bun shadcn@latest add @dga/avatar

الاستخدام

page.tsx
tsx
import { Avatar, AvatarGroup } from "@/components/ui/avatar";

<Avatar src="/people/noura.jpg" alt="نورة القحطاني" initials="ن ق" />

<AvatarGroup>
  <Avatar size={32} src="/people/noura.jpg" alt="نورة" />
  <Avatar size={32} initials="+3" aria-label="3 أشخاص آخرون" />
</AvatarGroup>

مبني على Base UI Avatar، الذي يعرض البديل أثناء تحميل الصورة وعند فشلها.

البنية

  • Avatar: الجذر، وفيه الصورة أو البديل.
  • Image: الصورة.
  • Fallback: الأحرف الأولى، أو أيقونة مستخدم عامة.
  • AvatarGroup: صف من الصور الرمزية، متراكبة أو متباعدة.

أمثلة

الأحجام والشكل

الأحجام 24 و32 و40 (الافتراضي) و48 و64 و80 و120px. يستخدم square القيمة radius-md؛ ويضيف bordered حلقة بيضاء.

المجموعات

يُراكب AvatarGroup عناصره بمقدار 4px مع حلقة بيضاء (stacked، وهو الافتراضي). اضبط stacked={false} للتباعد.

اتجاه RTL

تتراكب المجموعة من جهة البداية، فينقلب اتجاه التراكب في العربية.

LTR (الإنجليزية)
RTL (العربية)

إمكانية الوصول

  • أعطِ الصورة alt باسم الشخص، إلا إذا كان الاسم ظاهرًا بجوارها (فاستخدم alt="").
  • تُقرأ الأحرف الأولى كنص. وللصورة الرمزية التي تشير إلى الزائد مثل «+3»، أضف aria-label مثل «3 أشخاص آخرون».
  • أيقونة البديل مخفية عن قارئات الشاشة.

مرجع API

Avatar

صورة شخص أو الأحرف الأولى من اسمه أو أيقونة مستخدم عامة.

خصائص Avatar
الخاصيةالنوعالقيمة الافتراضية
24 | 32 | 40 | 48 | 64 | 80 | 120

الحجم بالبكسل.

40
boolean

مربع بزوايا مستديرة بدل الدائرة.

false
boolean

يضيف حلقة حول الصورة الرمزية.

false
string

حرف أو حرفان يظهران عند عدم وجود صورة.

لا توجد قيمة افتراضية
string

رابط الصورة. إن غاب الرابط أو فشل تحميل الصورة تظهر الأحرف الأولى أو الأيقونة.

لا توجد قيمة افتراضية
string

النص البديل للصورة. استخدم اسم الشخص.

""

يقبل أيضًا جميع خصائص Base UI Avatar (يفتح في نافذة جديدة).

AvatarGroup

صف من الصور الرمزية. ضع Avatar بأحرف مثل "+3" في النهاية للدلالة على الباقي.

خصائص AvatarGroup
الخاصيةالنوعالقيمة الافتراضية
boolean

تداخل الصور الرمزية (في Figma: Stacked).

true

يقبل أيضًا جميع خصائص Base UI Avatar (يفتح في نافذة جديدة).

الاختلافات عن DGA

التغييرالسبب
Avatar: sizes and textOne text size cannot fit avatars from 24 to 120px.

عرض جميع الاختلافات (1) لهذا المكوّن أسباب الاختلافات مكتوبة بالإنجليزية.

التباين

12 زوجًا لونيًا فُحص · جميعها تجتاز WCAG 2.1 AAعرض 2 حالة
النمط / الحالةالفاتحالداكن
initials / text16.44:1 AAA12.71:1 AAA
icon / icon16.44:1 3:112.71:1 3:1

يحتاج النص إلى تباين 4.5:1، والأيقونات وحلقات التركيز إلى 3:1. الحالات المعطّلة مستثناة. تقرير التباين الكامل