تخطَّ إلى المحتوى

Tag

تسميات للفئات والمرشحات والحالات. Tag وStatus Tag، مملوءان أو بحد فقط، وثلاثة أحجام، وقابلان للإزالة اختياريًا.

الإصدار 0.2.0 ·

Tag
الاتجاه
السمة
حجم العرض

التثبيت

bunx --bun shadcn@latest add @dga/tag

الاستخدام

page.tsx
tsx
import { StatusTag, Tag } from "@/components/ui/tag";

<Tag variant="info">تقنية</Tag>
<StatusTag variant="success">مكتمل</StatusTag>

تصنّف Tag المحتوى حسب الفئة أو تعرض المرشحات التي اختارها المستخدم. وتعرض Status Tag حالة عنصر أو مهمة أو طلب.

البنية

  • Tag: عنصر <span> مع أيقونة وزر إغلاق اختياريين.
  • StatusTag: عنصر <span> فيه نقطة ملونة والتسمية.
  • Close button (اختياري): عنصر <button> حقيقي بمساحة نقر 24px.

أمثلة

القابل للإزالة

مرّر onDismiss لإضافة زر إغلاق. وأعطه اسمًا محددًا عبر dismissLabel، مثل «إزالة الرياض»، وانقل التركيز إلى موضع مناسب بعد إزالة الوسم.

القابل للإزالة

Status Tag

يقع subtle (الافتراضي) على تظليل خفيف، وinverted على تعبئة مصمتة، وghost بلا تعبئة. وتبدأ الثلاثة بنقطة ملونة.

Status Tag

اتجاه RTL

تقع النقطة والأيقونة وزر الإغلاق على جهتي البداية والنهاية المنطقيتين.

LTR (الإنجليزية)
RTL (العربية)

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

المفتاحالإجراء
Tabينقل التركيز إلى زر الإغلاق في الوسم القابل للإزالة.
Enter أو Spaceيزيل الوسم.
  • الوسوم عناصر <span> وتُقرأ كنص. ضع المعنى في التسمية؛ أما اللون والنقطة فإضافة (WCAG 1.4.1).
  • لزر الإغلاق اسمه الخاص ومساحة نقر 24px (WCAG 2.5.8).
  • استخدم Button مع aria-pressed للوسوم التي يبدّلها المستخدم.

مرجع API

StatusTag

حالة عنصر أو مهمة أو طلب، مع نقطة ملونة.

خصائص StatusTag
الخاصيةالنوعالقيمة الافتراضية
"neutral" | "success" | "error" | "warning" | "info"

عائلة اللون. `on-color` للوسوم على خلفيات لون العلامة.

"neutral"
"xs" | "sm" | "md"

الارتفاع: `xs` ‏20px، و`sm` ‏24px، و`md` ‏32px.

"sm"
"subtle" | "inverted" | "ghost"

`subtle` تعبئة مظلّلة، و`inverted` تعبئة مصمتة، و`ghost` بلا تعبئة.

"subtle"

يقبل أيضًا خصائص العنصر الذي يُصيّره.

Tag

وسم لتصنيف أو لمرشّح محدَّد. يمكن إزالته اختياريًا.

خصائص Tag
الخاصيةالنوعالقيمة الافتراضية
"on-color" | "neutral" | "success" | "error" | "warning" | "info"

عائلة اللون. `on-color` للوسوم على خلفيات لون العلامة.

"neutral"
"xs" | "sm" | "md"

الارتفاع: `xs` ‏20px، و`sm` ‏24px، و`md` ‏32px.

"sm"
boolean

بإطار فقط بدل التعبئة.

false
boolean

زوايا مستديرة بالكامل (على شكل حبة).

false
boolean

مربع بأيقونة فقط. يحتاج إلى `aria-label`.

false
() => void

يضيف زر إغلاق في النهاية.

لا توجد قيمة افتراضية
string

الاسم الذي يقرؤه قارئ الشاشة لزر الإغلاق. ترجمه في الصفحات العربية.

"Remove"

يقبل أيضًا خصائص العنصر الذي يُصيّره.

الاختلافات عن DGA

التغييرالسبب
--tag-background-on-color (light) و1 غيرهاWhite label on white-20 over the brand fill is 3.34:1. A black-20 tint keeps the tag visible and gives 6.30:1.
Tag: text sizeThe export lists one sample text style. A 10px label in a 32px tag is hard to read; the sizes follow the site CSS (.tag--lg uses 14px).
Tag: dismissRemovable filter tags need a real button for keyboard and screen-reader users.
Status Tag: ghost and dotGhost tags would otherwise all look the same; the dot is decorative and the label carries the status.

عرض جميع الاختلافات (5) لهذا المكوّن أسباب الاختلافات مكتوبة بالإنجليزية.

التباين

248 زوجًا لونيًا فُحص · جميعها تجتاز WCAG 2.1 AAعرض 42 حالة
النمط / الحالةالفاتحالداكن
neutral / filled13.91:1 AAA11.57:1 AAA
neutral / filled (icon)17.31:1 3:112.71:1 3:1
neutral / outlined13.91:1 AAA14.45:1 AAA
neutral / outlined (icon)17.31:1 3:115.87:1 3:1
status neutral / subtle13.91:1 AAA11.57:1 AAA
status neutral / ghost13.91:1 AAA14.45:1 AAA
status neutral / ghost (dot)17.31:1 3:115.87:1 3:1
status neutral / inverted7.36:1 AAA7.66:1 AAA
success / filled7.55:1 AAA7.88:1 AAA
success / filled (icon)7.55:1 3:17.88:1 3:1
success / outlined7.62:1 AAA10.80:1 AAA
success / outlined (icon)7.62:1 3:110.80:1 3:1
status success / subtle7.55:1 AAA7.88:1 AAA
status success / ghost13.91:1 AAA14.45:1 AAA
status success / ghost (dot)7.62:1 3:110.80:1 3:1
status success / inverted5.69:1 AA8.72:1 AAA
info / filled7.61:1 AAA7.49:1 AAA
info / filled (icon)7.61:1 3:17.49:1 3:1
info / outlined7.83:1 AAA9.88:1 AAA
info / outlined (icon)7.83:1 3:19.88:1 3:1
status info / subtle7.61:1 AAA7.49:1 AAA
status info / ghost13.91:1 AAA14.45:1 AAA
status info / ghost (dot)7.83:1 3:19.88:1 3:1
status info / inverted4.56:1 AA9.24:1 AAA
warning / filled7.20:1 AAA8.57:1 AAA
warning / filled (icon)7.20:1 3:18.57:1 3:1
warning / outlined7.19:1 AAA11.30:1 AAA
warning / outlined (icon)7.19:1 3:111.30:1 3:1
status warning / subtle7.20:1 AAA8.57:1 AAA
status warning / ghost13.91:1 AAA14.45:1 AAA
status warning / ghost (dot)7.19:1 3:111.30:1 3:1
status warning / inverted5.42:1 AA9.32:1 AAA
error / filled7.96:1 AAA7.04:1 AAA
error / filled (icon)7.96:1 3:17.04:1 3:1
error / outlined8.29:1 AAA9.01:1 AAA
error / outlined (icon)8.29:1 3:19.01:1 3:1
status error / subtle7.96:1 AAA7.04:1 AAA
status error / ghost13.91:1 AAA14.45:1 AAA
status error / ghost (dot)8.29:1 3:19.01:1 3:1
status error / inverted4.83:1 AA9.68:1 AAA
on-color / filled6.30:1 AA6.30:1 AA
on-color / outlined4.74:1 AA4.74:1 AA

يحتاج النص إلى تباين 4.5:1، والأيقونات وحلقات التركيز إلى 3:1. الحالات المعطّلة مستثناة. تقرير التباين الكامل