تصفّح التوثيق
الثيم كنز
Englishاحصل على Ritla UI

المكوّنات

عنصر جهة الاتصال

شخص بصورته واسمه وسطر واحد من السياق، مثل البريد أو آخر ظهور. وبطاقة جهة الاتصال تضيف إجراءً واحدًا: قائمة إجراءات، أو زر اختيار، أو رابط.

Figmaالمقابل في shadcnitem

المعاينة

«معكوس» هو المحتوى الإنجليزي نفسه من اليمين إلى اليسار، ليفصل خطأ الاتجاه عن خطأ الترجمة.

التثبيت

قريبًايُفتح التثبيت من السجل قريبًا، وهذه هي الأوامر التي ستشغّلها حينها.
npx ritla add contact-item

ويعمل أيضًا مع shadcn: npx shadcn@latest add @ritla/contact-item

التثبيت اليدوي ينسخ مصدر المكوّن إلى مشروعك. المصدر يأتي مع ترخيص Ritla UI، وأداة سطر الأوامر هي الطريق الأقصر إلى الملفات نفسها.

الاستخدام

import { ContactItem, ContactCard } from "@/components/ui/contact-item";
<ContactItem name="Layla Amiriah" supportingText="Active now" status="online" />
<ContactCard href="/contacts/layla" name="Layla Amiriah" supportingText="layla@kanz.example" action="View" />

أمثلة

بطاقات بإجراء واحد

زر أيقونة يفتح قائمة، واسمه يذكر صاحب الإجراءات («إجراءات أخرى لليلى»). وبطاقة «عرض» رابط واحد، فالبطاقة كلها تفتح جهة الاتصال.

احصل على الكود ›

اختيار المستلم

‏ContactRadioCard داخل RadioGroup: البطاقة كلها تسمية زر الاختيار، والاسم والحالة يسمّيانه والنص المساعد يصفه.

احصل على الكود ›

البريد والهاتف من اليسار إلى اليمين

النص المساعد يأخذ اتجاهه من نصه. البريد يحدده بنفسه، أما رقم الهاتف فلا حروف فيه، فضعه في <bdi dir="ltr">.

احصل على الكود ›

مرجع الخصائص

ContactItem

الخاصيةالنوعالافتراضيالوصف
namestringلا يوجدخاصية Name: الاسم الذي يعرفه الناس، بالخط الذي كتبه صاحبه.
supportingTextReactNodeلا يوجدخاصية Supporting text: سطر واحد مفيد، مثل البريد أو الدور أو آخر ظهور.
srcstringلا يوجدصورة الشخص. دونها تظهر الأحرف الأولى من اسمه.
status"none" | "online" | "away" | "offline" | "verified""none"خاصية Status: نقطة أو شارة على الصورة، وتُقرأ كلمةً بعد الاسم.
size"md" | "lg""lg"خاصية Size: صورة 40 أو 48 بكسل.

ContactCard

الخاصيةالنوعالافتراضيالوصف
actionReactNodeلا يوجدخاصية Action Type: زر أيقونة (Icon Button) أو كلمة قصيرة (Text)، تُنسَّق لك إن كانت نصًا.
hrefstringلا يوجديجعل البطاقة كلها رابطًا واحدًا يفتح جهة الاتصال.
renderReactElementلا يوجدرابط التوجيه (<Link>) بمظهر البطاقة.
…ContactItem propsلا يوجدكل خصائص ContactItem.

ContactRadioCard

الخاصيةالنوعالافتراضيالوصف
valuestringلا يوجدقيمة هذا الشخص في RadioGroup.
disabledbooleanلا يوجدلا يمكن اختياره، والنصوص باللون المعطّل.
…ContactItem propsلا يوجدكل خصائص ContactItem.

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

لوحة المفاتيح

المفاتيح مكتوبة للاتجاه من اليسار إلى اليمين. في الاتجاه من اليمين يتبادل السهمان دورهما: السهم المتجه مع اتجاه القراءة ينقلك إلى الأمام.

المفتاحما يفعله
Tabإلى البطاقة إن كانت رابطًا، أو زر الإجراء، أو مجموعة أزرار الاختيار.
Enterيفتح جهة الاتصال أو قائمة الإجراءات.
ArrowDownArrowUpبين الأشخاص في مجموعة الاختيار، ويختار من يصل إليه.

ARIA

  • الصورة زخرفية لأن الاسم ظاهر بجانبها، فلا يُقرأ الاسم مرتين.
  • الحالة كلمة تُقرأ بعد الاسم («ليلى العامرية، متصل»)، لا النقطة الملوّنة وحدها.
  • زر الإجراء له اسمه الخاص الذي يذكر الشخص («إجراءات أخرى لليلى»).
  • في بطاقة الاختيار يسمّي الاسمُ والحالة زرَّ الاختيار، ويصفه النص المساعد.

ملاحظات العربية والاتجاه

ينعكس

  • الصورة والاسم يبدآن من اليمين، والإجراء في النهاية على اليسار.
  • نقطة الحالة وشارة التوثيق تنتقلان إلى أسفل يسار الصورة.

لا ينعكس

  • البريد وأرقام الهاتف والحسابات في النص المساعد تبقى من اليسار إلى اليمين.
  • أيقونة النقاط الثلاث وشارة التوثيق.
الأرقام
الأرقام في النصوص كما تمرّرها؛ نسّق الأوقات والأعداد بـ formatNumber، واترك أرقام الهاتف والحسابات كما هي.
الخط العربي
الاسم body-18 بوزن Semibold والسطر body-14 في الحجم الكبير، وbody-14 وbody-12 في المتوسط. النصوص تلتف بدل أن تُقص، فالاسم العربي الأطول يبقى كاملًا.
النص ثنائي الاتجاه
الاسم والنص المساعد كلٌّ معزول بـ dir="auto"؛ ورقم الهاتف يحتاج <bdi dir="ltr">.