Mercato

المكونات

زر الأيقونة

زر بأيقونة وحدها، على شكل حبّة كاملة: إجراء مختصر لا يحتاج تسمية مرئية، مثل التصفية أو المزيد أو الإغلاق. أربع صيغ وثلاثة أحجام، وأيقونات جوجل الرسمية دائما، مع تسمية وصول إلزامية.

جاهز، الصيغة الخافتة مؤكّدة من فيغماأيقونة فقطاتجاه منطقي
النضج
جاهز
الإصدار
1.0
المالك
فريق نظام التصميم
المنصّة
الويب، React Native

نظرة عامة

جرّبه

زر الأيقونة إجراء واحد بأيقونة وحدها دون نص مرئي. يُستخدم حين تكون الأيقونة مفهومة بذاتها ومساحة الشاشة ضيقة: أزرار التصفية والبحث في الرأس، وزر المزيد، والإغلاق. لأنه بلا نص، تسمية الوصول إلزامية.

الصيغ

أربع صيغ. الخافتة هي الصيغة المؤكّدة من فيغما (زر التصفية في رأس البحث): حبّة رمادية مصنفرة بأيقونة خافتة. الباقي مبني من الرموز نفسها.

خافتشفّافأساسيمدمّر

الأحجام

ثلاثة أحجام: صغير ٣٢، ومتوسط ٤٠ (افتراضي فيغما)، وكبير ٤٨. استخدم الكبير حين تحتاج مساحة لمس ٤٤ بكسل على الأقل بمفردها.

32px40px48px

التركيب

الجزءالطبقة والرمز
الشكلRadius · shape.rounded (full pill)
التعبئة، خافتColor · bg.base.surface (Figma #f5f5f5)
التعبئة، أساسيColor · brand.primary + fg on-color
الأيقونةMaterial Symbols · 18 / 20 / 24px, muted
الحشوSpacing · centered, 32 / 40 / 48px box

السلوك

زر الأيقونة قابل للتركيز بلوحة المفاتيح ويُفعّل بمفتاحي Enter وSpace كأي زر. عند التحويم أو الضغط تتبدّل تعبئته عبر رموز الحركة (feedback)، وتظهر حلقة تركيز واضحة عند التنقّل بلوحة المفاتيح. لأنه بلا نص مرئي ينطق قارئ الشاشة تسمية الوصول الإلزامية لا اسم الأيقونة، وعند التعطيل يفقد التفاعل ويخفت. الأيقونات الاتجاهية مثل الأسهم تنعكس تلقائيا مع اتجاه الصفحة.

افعل ولا تفعل

افعل
  • أعطِ كل زر أيقونة تسمية وصول عربية واضحة تسمّي الإجراء.
  • استخدمه حين تكون الأيقونة مفهومة بذاتها فقط، مثل الإغلاق أو المزيد.
  • استخدم الصيغة الأساسية لإجراء واحد بارز، والخافتة لبقية الأزرار.
لا تفعل
  • لا ترسم الأيقونة يدويا؛ اخترها من Material Symbols.
  • لا تستخدمه لإجراء غامض يحتاج شرحا؛ استخدم زرا بنص.
  • لا تصفّ أزرار أيقونة كثيرة متجاورة بلا تمييز؛ يصعب تمييزها.

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

  • التسمية إلزامية: كل زر أيقونة يحمل aria-label عربية تسمّي الإجراء، لا اسم الأيقونة.
  • مساحة اللمس ٤٤ بكسل على الأقل؛ الحجم الكبير يحققها بمفرده، والأصغر يحتاج هامش لمس.
  • الأيقونات الاتجاهية (الأسهم) تنعكس مع اتجاه الصفحة تلقائيا.

الشيفرة

زر الأيقونة مكوّن واحد مشترك يُستورد من حزمة المكوّنات. التسمية خاصية إلزامية لأن الزر بلا نص مرئي. الاستخدام في React أولا، ثم عقد CSS الذي يضبط مساحة اللمس المربعة.

React
import { IconButton } from "@mercato/components";

<IconButton icon="filter_alt" label="تصفية" variant="subtle" />
<IconButton icon="search" label="بحث" size="lg" />
<IconButton icon="add" label="إضافة" variant="primary" />
<IconButton icon="delete" label="حذف" variant="danger" />
<IconButton icon="favorite" label="المفضلة" filled />
CSS
/* Icon-only control: a square touch target, authored from tokens only. */
.btn-icon { padding: var(--spacing-inset-xs); min-width: 44px; aspect-ratio: 1; }
.btn-sm.btn-icon { min-width: 36px; }

لا يحمل الزر قيمة لون أو حشو مباشرة: تبديل الوضع الداكن أو إعادة العلامة يسري تلقائيا لأن كل صيغة تمرّ عبر رمز دلالي.

الخطأما يفسدالصواب
زر أيقونة بلا تسمية وصولقارئ الشاشة لا ينطق أي شيءlabel="تصفية"
مقاس صندوق ثابت (h-10 w-10)ينحرف عن سلّم الأحجامsize="md"
لون أزرق ثابت للصيغة الأساسيةيكسر الوضع الداكن وإعادة العلامةvariant="primary"
أيقونة مرسومة يدويا بدل Material Symbolsيخرج عن مكتبة الأيقونات الموحّدةمرّر اسم رمز Material عبر icon