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

Link

ينقل المستخدم إلى صفحة أو قسم آخر. بنمط primary وneutral وللخلفيات الملونة، وحجمان، ومضمّن وخارجي.

الإصدار 0.2.0 ·

الأنماط والأحجام
الاتجاه
السمة
حجم العرض

التثبيت

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

الاستخدام

app/page.tsx
tsx
import NextLink from "next/link";
import { Link } from "@/components/ui/link";

<Link render={<NextLink href="/services" />}>الخدمات</Link>

بلا render يعرض Link عنصر <a> عاديًا. استخدم Button للإجراءات.

البنية

  • Root: عنصر <a>، أو أي عنصر عبر render.
  • Label: نص الرابط.
  • External icon (للروابط الخارجية): تنقلب في RTL.

أمثلة

المضمّن

داخل النص الجاري، اضبط inline. الروابط المضمّنة تحتها خط دائمًا، فيمكن تمييزها دون الاعتماد على اللون (WCAG 1.4.1).

المضمّن

الخارجي

يفتح external علامة تبويب جديدة مع rel="noopener noreferrer"، ويضيف أيقونة الرابط الخارجي، ويُعلم قارئات الشاشة. ترجم التنبيه عبر externalLabel:

page.tsx
tsx
<Link href="https://dga.gov.sa" external externalLabel="(يفتح في علامة تبويب جديدة)">
  هيئة الحكومة الرقمية
</Link>

اتجاه RTL

يتبع النص وأيقونة الرابط الخارجي اتجاه القراءة؛ وتنقلب الأيقونة في العربية.

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

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

المفتاحالإجراء
Tabينقل التركيز إلى الرابط.
Enterيتبعه.
  • عنصر <a href> حقيقي: يعمل بلوحة المفاتيح، والنقر الأوسط، و«فتح في علامة تبويب جديدة».
  • يتغير لون الروابط التي سبقت زيارتها (link-primary-visited). ويضاف خط تحتها عند التمرير والضغط.
  • حلقة التركيز على :focus-visible فقط: حد border-black بسمك 2px، وإزاحة 2px، وبيضاء على تعبئات العلامة.
  • الرابط المعطّل بلا href، فلا يتلقى التركيز ويُعلن على أنه معطّل.

مرجع API

رابط نصي بألوان الروابط في DGA. يعمل مع `Link` من Next.js عبر `render`.

خصائص Link
الخاصيةالنوعالقيمة الافتراضية
ReactElement | function

يتيح لك استبدال عنصر HTML الخاص بالمكوّن بوسم آخر، أو تركيبه مع مكوّن آخر. يقبل `ReactElement` أو دالة تعيد العنصر المراد عرضه.

لا توجد قيمة افتراضية
"on-color" | "primary" | "neutral"

اللون. `on-color` للروابط على خلفيات لون العلامة.

"primary"
"sm" | "md"

حجم النص: `sm` ‏14px، و`md` ‏16px.

"md"
boolean

مسطّر دائمًا، للروابط داخل النص المتصل (WCAG 1.4.1).

false
boolean

يفتح في نافذة جديدة، ويضيف rel="noopener noreferrer" وأيقونة الرابط الخارجي.

false
string

نص لقارئ الشاشة يُضاف إلى الروابط الخارجية. ترجمه في الصفحات العربية.

"(opens in a new tab)"
string

الوجهة.

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

يُعرض بلا href ومع aria-disabled.

false

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

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

التغييرالسبب
--link-oncolor-hovered (light) و5 غيرهاTranslucent white (60–90%) on the brand fill is 2.73–4.21:1. On-colour links stay white; hovered and pressed are shown by the underline.
Link: focus ring and disabledKeyboard-only focus (WCAG 2.4.7). A link without an href cannot be followed or focused.
Link: externalWCAG 3.2.5: warn before opening a new window.

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

التباين

96 زوجًا لونيًا فُحص · جميعها تجتاز WCAG 2.1 AAعرض 18 حالة
النمط / الحالةالفاتحالداكن
primary / default4.54:1 AA7.73:1 AAA
primary / hovered6.31:1 AA10.38:1 AAA
primary / pressed8.18:1 AAA13.05:1 AAA
primary / visited8.18:1 AAA13.05:1 AAA
primary / focused4.54:1 AA7.73:1 AAA
primary / focus ring17.31:1 3:117.49:1 3:1
neutral / default9.73:1 AAA12.04:1 AAA
neutral / hovered4.57:1 AA6.32:1 AA
neutral / pressed7.04:1 AAA6.32:1 AA
neutral / visited8.18:1 AAA13.05:1 AAA
neutral / focused9.73:1 AAA12.04:1 AAA
neutral / focus ring17.31:1 3:117.49:1 3:1
on-color / default4.74:1 AA4.74:1 AA
on-color / hovered4.74:1 AA4.74:1 AA
on-color / pressed4.74:1 AA4.74:1 AA
on-color / visited4.74:1 AA4.74:1 AA
on-color / focused4.74:1 AA4.74:1 AA
on-color / focus ring4.74:1 3:14.74:1 3:1

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