Mercato

المكونات

بطاقة إحصائية

بلاطة موجزة لرقم واحد مهم: أيقونة، وتسمية، ورقم كبير، وقيمة فرعية. نغمة محايدة أو ملوّنة حسب الحالة. مبنية بالكامل من رموز الأساس.

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

نظرة عامة

البطاقة الإحصائية تلخّص مقياسا واحدا في لوحة المعلومات: الرقم هو البطل، والتسمية تشرحه، والقيمة الفرعية تعطي سياقا (مبلغ أو وحدة). استخدم النغمة المحايدة افتراضيا، والملوّنة حين تحمل الحالة معنى.

جرّبه
طلبات المذاخر145112,309 IRD
الأيقونة
التسمية
الرقم
القيمة الفرعية
النغمة

استخدامات متعددة

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

محايدة · لوحة

جاهزة459,234 IRD
المذاخر145112,309 IRD
تم التسليم422,567 IRD
متابعة1315,890 IRD

ملوّنة · مداخل تصنيف

قائمة النواقص45
المفضلة145
الطلبات45
السلات145
دفعات اليوم4
مذاخري13

التركيب

كل خاصية من طبقة أساس: التعبئة (الألوان)، والشكل (الاستدارة · control.soft)، والحشو والفجوة (المسافات)، والتسمية والرقم (الطباعة)، والأيقونة والنص (الألوان).

الجزءالطبقة والرمز
التعبئةColor · bg.base.section / bg.intent.*.subtle
الشكلRadius · shape.control.soft (12px)
الحشو والفجوةSpacing · inset.xs/sm + inline.md
التسميةTypography · caption/sm/strong + Color · fg.base.secondary
الرقمTypography · title/sm/strong + Color · fg.base.primary / intent
الأيقونةColor · fg.base.secondary / intent

السلوك

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

افعل ولا تفعل

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

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

  • اللون ليس الحامل الوحيد للمعنى؛ التسمية النصية تصف المقياس دائما.
  • الرقم والتسمية يحقّقان تباين النص المطلوب على تعبئتهما.

الشيفرة

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

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

<StatCard icon="inventory_2" label="طلبات المذاخر" value="145" sub="112,309 IRD" />
<StatCard icon="check_circle" label="تم التسليم" value="4" sub="22,567 IRD" />
<StatCard icon="star" label="قائمة النواقص" value="45" tone="warning" />
Implementation
// Per-tone token map. Intent tones are theme-aware via the Color layer.
const TONES = {
  neutral: { bg: "var(--color-bg-base-section)", label: "var(--color-fg-base-secondary)", num: "var(--color-fg-base-primary)" },
  warning: { bg: "var(--color-bg-intent-warning-subtle)", label: "var(--color-fg-intent-warning)", num: "var(--color-fg-intent-warning)" },
  // ...info / positive / negative / accent
};

const t = TONES[tone];

<div
  className="flex items-center justify-between"
  style={{
    gap: "var(--spacing-inline-md)",
    padding: "var(--spacing-inset-xs) var(--spacing-inset-sm)",
    borderRadius: "var(--shape-control-soft)",
    backgroundColor: t.bg,
  }}
>
  <span style={{ ...role("caption", "sm", "strong"), color: t.label }}>{label}</span>
  <span style={{ ...role("title", "sm", "strong"), color: t.num }}>{value}</span>
  <span className="material-symbol" style={{ color: t.label }}>{icon}</span>
</div>

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

الخطأما يفسدالصواب
قيمة لون خام حسب النغمةيكسر الوضع الداكن ويفقد المعنىvar(--color-bg-intent-warning-subtle)
استدارة 12px مباشرةينحرف عن سلّم الأشكالvar(--shape-control-soft)
حجم خط ثابت للرقم والتسميةينحرف عن سلّم الطباعةrole("title", "sm", "strong")
تلوين كل بطاقة على اللوحةيميّع النغمة فتفقد معناهامحايد افتراضا، ونغمة عند المعنى فقط