تأتي أيقونات SDAIA UI من مصدر واحد هو مجموعة أيقونات DGA (@platformscode/icons)، وتُعرض بمكوّن واحد هو DgaIcon. استخدام المجموعة نفسها ورموز الأحجام نفسها في كل مكان يحافظ على اتساق الشاشات باللغتين وفي السمتين الفاتحة والداكنة.
تضم الحزمة @platformscode/icons نحو 4,400 أيقونة، ولكل أيقونة نمطان: …Stroke (خطّي) و…Solid (مصمت). يثبّت الأمر init الحزمة تلقائيًا.
search01Stroke وarrowLeft01Stroke وcalendar03Stroke وplaySolid.أضف المكوّن بأداة سطر الأوامر، ثم استورد بيانات الأيقونات التي تحتاجها. استورد كل أيقونة باسمها حتى لا يدخل في الحزمة النهائية إلا ما تستخدمه.
npx sdaia-ui@latest add dga-icon
import { DgaIcon } from '@/components/ui/DgaIcon'; import { search01Stroke } from '@platformscode/icons'; export function SearchGlyph() { return ( <span className="size-icon-lg text-icon-default"> <DgaIcon data={search01Stroke} /> </span> ); }
يملأ DgaIcon العنصر الذي يحتويه، فيُعرض بعرض العنصر الأب وارتفاعه كاملين. حدّد حجم الأيقونة بوضع صنف size-icon-* على العنصر الأب. تأخذ الأيقونة لونها من لون نص العنصر الأب، فتعمل أصناف text-* والسمة الداكنة دون خصائص إضافية.
أحجام الأيقونات رموز تصميم ثابتة، فهي نفسها على الحاسوب والجهاز اللوحي والهاتف. وحدها المسافات وأحجام الخطوط تتغير بين أحجام الشاشات.
| الصنف | الحجم |
|---|---|
| size-icon-xs | 12px |
| size-icon-sm | 16px |
| size-icon-lg | 20px |
| size-icon-xl | 24px |
| size-icon-2xl | 32px |
| size-icon-3xl | 40px |
لا يوجد حجم md للأيقونات. الصنف size-icon-md لا أثر له، فتتمدد الأيقونة لتملأ العنصر الذي يحتويها. استخدم size-icon-sm (16px) أو size-icon-lg (20px). لا يملك DgaIcon خاصية size، ولا تضع عرضًا أو ارتفاعًا على عنصر svg.
sm) بجانب النص الأساسي، وداخل الحقول والشرائح والأزرار الصغيرة.lg) في الأزرار المتوسطة والكبيرة والقوائم والتنبيهات.xl) في التنقّل وأزرار الأيقونات المستقلة.2xl و3xl) في الحالات الفارغة والأيقونات البارزة والرسوم التوضيحية.الأيقونات التي تدل على اتجاه يجب أن تنعكس في الواجهة العربية. أضف الخاصية flipOnRtl لتنعكس الأيقونة حين تحمل الصفحة أو أحد العناصر الأب dir="rtl".
import { DgaIcon } from '@/components/ui/DgaIcon'; import { arrowRight01Stroke } from '@platformscode/icons'; // تشير إلى اليمين في الإنجليزية وإلى اليسار في العربية. <span className="size-icon-sm"> <DgaIcon data={arrowRight01Stroke} flipOnRtl /> </span>
| تُعكس في RTL | لا تُعكس |
|---|---|
| أسهم الرجوع والتقدّم، وأسهم الشيفرون والأسهم الصغيرة | التشغيل والإيقاف المؤقت والتقديم السريع وسائر أزرار الوسائط |
| الصفحة السابقة والتالية | البحث والإعدادات والمستخدم والصفحة الرئيسية |
| الأيقونات التي تدل على اتجاه النص (المسافة البادئة، تعداد القوائم) | علامة الصح والزائد والناقص والإغلاق |
| الإرسال والرد، حين يُظهر التصميم اتجاهًا | الشعارات والأعلام وعلامات الهوية |
يعكس DgaIconByName الأسماء الاتجاهية تلقائيًا (أسهم اليمين واليسار بأنواعها، والتقدّم، والرجوع، والتالي، والسابق). لكنه يحمّل مجموعة الأيقونات كاملة، فلا تستخدمه إلا حين يأتي اسم الأيقونة من البيانات أثناء التشغيل.
بعض الرسوم ليست أيقونات عامة: شعارا سدايا وDGA، وعلم المملكة، ومؤشرات التلميحات، ورسوم مقتطفات الشيفرة ورفع الملفات، ووجوه التقييم وأيقونات الإعجاب، وأيقونات التشغيل في بطاقات الوسائط. هذه الرسوم موجودة في sdaia-assets على شكل مكوّنات React، وتنسخها أداة سطر الأوامر إلى components/ui/sdaia-assets/ حين تضيف مكوّنًا يستخدمها.
<svg> مباشرة داخل مكوّن. استخدم DgaIcon مع أيقونة من المجموعة، أو مكوّنًا مسمّى من sdaia-assets.حين لا تحمل DgaIcon عنوانًا (title) فهي زخرفية: تُعرض مع aria-hidden="true" ويتجاوزها قارئ الشاشة. وهذا هو الصواب حين يشرح نص ظاهر بجانبها معناها.
// زخرفية: بجانب نص ظاهر، ومخفية عن قارئ الشاشة (الوضع الافتراضي). <Button leadingIcon={<DgaIcon data={delete02Stroke} />}>حذف</Button> // لها معنى بمفردها: أعطِ الأيقونة عنوانًا. <span className="size-icon-sm"> <DgaIcon data={alertCircleStroke} title="خطأ" /> </span> // زر بأيقونة فقط: سمِّ الزر، لا الأيقونة. <Button iconOnly aria-label="إغلاق" leadingIcon={<DgaIcon data={cancel01Stroke} />} />
role="img" ويصبح العنوان اسمها.aria-label على الزر نفسه. لا تضع عنوانًا على الأيقونة أيضًا حتى لا يُقرأ الاسم مرتين.الأيقونة من @platformscode/icons أو من sdaia-assets، لا شيفرة SVG مضمّنة.
النمط الخطّي افتراضيًا، والمصمت فقط حيث يكون التصميم ممتلئًا.
الحجم بصنف size-icon-* على العنصر الأب (لا يوجد md).
الأيقونات الاتجاهية تستخدم flipOnRtl وتمت مراجعتها في العربية.
الأيقونات الزخرفية مخفية، والأيقونات ذات المعنى وأزرار الأيقونات لها اسم.
تمت المراجعة في السمتين الفاتحة والداكنة.