Path

أنشئ مسارات باستخدام أوامر مثل النقل والخط والرباعي والمكعب والقوس والإغلاق. مناسب لتخصيص المؤشرات والمنحنيات والمخططات التفصيلية المدمجة وتعيين قواعد التعبئة والحدود.

مثال

function main() {
  return (
    <Path
      commands={[
        { op: 'move', x: 10, y: 80 },
        { op: 'line', x: 60, y: 10 },
        { op: 'line', x: 110, y: 80 },
        { op: 'close' },
      ]}
      background={$env.accent}
      stroke={$env.foreground}
      lineWidth={2}
    />
  );
}

الاستخدام

  • commands تنفذ بالتتابع: move يبدأ، line/quad/cubic/arc يضيف، close يغلق. x/y في arc هو المركز. evenOdd يسمح بفتحات متداخلة. العودة للبداية ليست close.
  • contentAnimation للنص والصورة والبيانات المركبة. interpolate يحتاج توافق عدد نقاط Polyline وclosed أو أوامر Path أو عينات المخطط. تغيّر البنية يحدث فورًا.

الخصائص

commandsReadonlyArray<PathCommand>

أوامر المسار المحلية بوحدة pt. لا ترسم المصفوفة الفارغة شيئًا.

مثال[{op: "move", x: 0, y: 0}, {op: "line", x: 100, y: 80}]
fillRule?"nonZero" | "evenOdd"

قاعدة تعبئة المسار: nonZero أو evenOdd.

مثال"nonZero"
background?Paint

تعبئة داخل المسار. شفافة افتراضيًا.

مثال"clear"
stroke?Paint

لون أو تدرج للخط؛ clear يخفيه.

مثالHDR($env.dark ? "white" : "black")
lineWidth?number

سماكة الخط بالنقاط؛ 0 لا يرسم خطاً.

مثال2
lineCap?"round" | "butt" | "square"

نهاية الخط: butt يقطع، square يمدد بشكل مربع، round يدوّر.

مثال"round"
lineJoin?"round" | "miter" | "bevel"

شكل وصلات الخط: miter أو round أو bevel.

مثال"round"
dash?number[]

أطوال متناوبة للرسم والفراغ بالنقاط؛ المصفوفة الفارغة خط متصل.

مثال[]
dashPhase?number

إزاحة نمط الشرطات بالنقاط.

مثال0
trimStart?number

جزء المسار المرئي بين trimStart وtrimEnd ضمن 0–1. تستخدم Circle/Ellipse/Arc الزوايا.

مثال0
trimEnd?number

جزء المسار المرئي بين trimStart وtrimEnd ضمن 0–1. تستخدم Circle/Ellipse/Arc الزوايا.

مثال1
contentAnimation?ContentAnimation

انتقال محتوى اختياري. يتطلب interpolate تساوي عدد الأوامر وتسلسل العمليات؛ وإلا يُحدَّث المحتوى فورًا.

مثال{type: "interpolate", duration: 0.25}
الخصائص المشتركة
width?number | "auto" | "fill"

العرض بالنقاط أو الحجم التلقائي أو ملء العنصر الأب.

مثال"fill"
height?number | "auto" | "fill"

الارتفاع بالنقاط أو الحجم التلقائي أو ملء العنصر الأب.

مثال"fill"
x?number

إزاحة بصرية بالنقاط: x يميناً وy لأسفل، دون تغيير المساحة في التخطيط.

مثال0
y?number

إزاحة بصرية بالنقاط: x يميناً وy لأسفل، دون تغيير المساحة في التخطيط.

مثال0
transform?ViewTransform

تحويل View كله دون تغيير التخطيط. الإزاحة بالنقاط، الدوران والميل بالدرجات، المقياس 1 بلا تغيير، والمرساة 0–1.

مثال{rotation: 0}
opacity?number

عتامة View بالكامل: 0 شفاف و1 معتم.

مثال1
clipped?boolean

قص الرسم الذي يتجاوز حدود View.

مثالfalse
clip?"rectangle" | "ellipse"

شكل القص rectangle أو ellipse؛ يقبل Material أيضاً false لتعطيله.

مثال"rectangle"
mask?View | null

عرض قناع ألفا. يتم توسيطه دون التأثير على التخطيط؛ تعطل null القناع.

مثال<Circle width="fill" height="fill" background="white"/>
zIndex?number

ترتيب الرسم بين العناصر الشقيقة؛ القيم الأكبر في الأمام.

مثال0
blur?number

نصف قطر التمويه بالنقاط؛ 0 يعطّله.

مثال4
innerShadow?DrawingEffect

لون التأثير وعتامته ونصف قطر تمويهه وإزاحة x/y؛ المسافات بالنقاط.

مثال{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}

لون التأثير وعتامته ونصف قطر تمويهه وإزاحة x/y؛ المسافات بالنقاط.

مثال{color: HDR("cyan"), radius: 8, opacity: 0.8}
shadowColor?Color

لون الظل الخارجي.

مثالHDR("black")
shadowOpacity?number

عتامة الظل من 0 إلى 1؛ 0 يخفيه.

مثال0
shadowRadius?number

نصف قطر تمويه الظل الخارجي بالنقاط.

مثال4
shadowX?number

إزاحة الظل بالنقاط: x يميناً وy لأسفل.

مثال0
shadowY?number

إزاحة الظل بالنقاط: x يميناً وy لأسفل.

مثال2
animations?Animation[]

تحريك تغير الخاصية. duration/delay بالثواني، from/to للنهايات، repeat/autoreverse للتكرار وwrap للدورة.

مثال[{property: "opacity", duration: 0.25, curve: "easeInOut"}]
key?string | number

معرّف ثابت بين العناصر الشقيقة.

مثال عملي

function main() {
  return (
    <Path
      width={140}
      height={100}
      fillRule="evenOdd"
      background={$env.accent}
      commands={[
        { op: 'move', x: 0, y: 0 },
        { op: 'line', x: 140, y: 0 },
        { op: 'line', x: 140, y: 100 },
        { op: 'line', x: 0, y: 100 },
        { op: 'close' },
        { op: 'move', x: 35, y: 25 },
        { op: 'line', x: 105, y: 25 },
        { op: 'line', x: 105, y: 75 },
        { op: 'line', x: 35, y: 75 },
        { op: 'close' },
      ]}
    />
  );
}

الحركة

الحركة

widthheightxyopacitybackgroundblurshadowColorshadowOpacityshadowRadiusshadowXshadowYtrimStarttrimEnddashPhasestrokelineWidthtransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorY

عند الإغفال

الجدول يوضح سلوك الإغفال المتحقق من التنفيذ؛ الأمثلة ليست افتراضيات. لنتيجة ثابتة مرر قيمة صريحة؛ الأبعاد وألوان الثيم متغيرة بحسب السياق.

الخصائصعند الإغفال
commands[]
fillRule"nonZero"
background"clear"
lineWidth2
strokeHDR($env.dark ? 'white' : 'black')