انتقل إلى المحتوى
TopClass UI

صورة رمزية

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

split - الحجم لم يُقَس بعد

صورة رمزية

split - الحجم لم يُقَس بعد

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

تثبيت
Omar Abed

جرّبه

size

الشيفرة

avatar.tsx
import { AvatarFallback, AvatarImage, AvatarRoot } from 'topclassui/avatar'

<AvatarRoot>
  <AvatarImage src={PORTRAIT} alt="Omar Abed" />
  <AvatarFallback>OA</AvatarFallback>
</AvatarRoot>

يظهر البديل أثناء تحميل الصورة وبعد فشلها؛ والأحرف الأولى هي محتواه.

كل الحالات، بدون تمرير الفأرة

5 حالات
Omar AbedImage
Initials
Icon
Sara KhalilFailed
Loading

أو استورده من الحزمة

topclassui/avatar
import { AvatarRoot, AvatarImage, AvatarFallback, AvatarSkeleton } from 'topclassui/avatar'

ثبّت مرة واحدة:npm i topclassui@beta zod

أمثلة

  • كل جزء مُصدَّر باسم مستقل: AvatarRoot وAvatarImage وAvatarFallback وAvatarSkeleton. لا يوجد Avatar، ووحده AvatarRoot يأخذ size.
  • اعرض البديل دائمًا: الصورة توضع فوقه، فيظهر حتى تُرسم الصورة، بلا JavaScript.
  • AvatarImage هو جزء العميل الوحيد. الصورة التي تفشل تصبح شفافة وتبقى، فيظل alt يسمّي الصورة الرمزية ويظهر البديل.
  • الصورة الرمزية بالأحرف الأولى أو بأيقونة تبقى HTML من الخادم. وكل صورة رمزية فيها صورة تمر بالترطيب، فجدول من خمسين صفًا بالصور يعني خمسين جزءًا في المتصفح.
  • لاستخدام next/image مرّره عبر render في AvatarImage؛ فهو يحمل صورته ونصه البديل.
basic
Omar Abed
with-name
Omar AbedMaintainer
sizes
icon
failed
Omar AbedOmar AbedOmar AbedOmar AbedOmar Abed
skeleton
custom-size
Omar Abed
بالعربية، من اليمين إلى اليسار
عمر فتحي وليلى حسن

الخصائص

AvatarRoot

خصائص AvatarRoot
الخاصيةالنوعالافتراضيالحدودالوصف
childrenReactNode--The parts: an AvatarFallback, and an AvatarImage when there is a picture.
sizexs | sm | md | lg | xl | custom"md"-The control scale on both axes, so an avatar lines up with a button of the same size; custom emits no size classes.

AvatarImage

خصائص AvatarImage
الخاصيةالنوعالافتراضيالحدودالوصف
altstring--Who the picture shows. Pass an empty string when the name is written beside it.
renderReactElement--Render the picture as another element, such as next/image, which carries its own src and alt.

AvatarFallback

خصائص AvatarFallback
الخاصيةالنوعالافتراضيالحدودالوصف
childrenReactNode--Initials or an Svg icon, shown until the image paints. Decorative: aria-hidden unless you pass false.

AvatarSkeleton

خصائص AvatarSkeleton
الخاصيةالنوعالافتراضيالحدودالوصف
sizexs | sm | md | lg | xl | custom"md"-The control scale on both axes, so an avatar lines up with a button of the same size; custom emits no size classes.

لوحة المفاتيح وإمكانية الوصول

لا شيء يُشغَّل: ليس تفاعليًا بمفرده.

  • يتطلب AvatarImage قيمة alt، أو عنصر render يحمل نصه البديل. مرّر alt="" عندما يكون الاسم مكتوبًا بجانب الصورة الرمزية، كي لا يُقرأ مرتين.
  • يُعرض البديل مع aria-hidden="true"، فيكون alt الصورة هو الاسم الوحيد الذي يقرؤه قارئ الشاشة.
  • إن لم تكن هناك صورة ولا اسم بجانبها، ضع aria-label على AvatarRoot: عندها يضيف role="img" بنفسه.

من اليمين إلى اليسار

لا جهة في الدائرة تنعكس؛ في الصف تأتي الصورة الرمزية عند بداية السطر، والأحرف الأولى العربية تُقرأ من اليمين إلى اليسار.

الخادم والمتصفح

يُعرض على الخادم، والجزء التفاعلي مكوّن متصفح لا يُرسل إلا عند استخدامه.

الملفات: index.tsx, client.tsx.

على الشارة: split - الحجم لم يُقَس بعد.