Rectangle

يرسم مستطيلاً بزوايا دائرية اختيارية لاستخدامه مع الخلفيات وأشرطة التقدم والحدود. background يملأ الجزء الداخلي، stroke حدود، lineWidth و strokePosition يتحكم في عرض وموضع الحد.

مثال

function main() {
  return (
    <Rectangle
      width={160}
      height={80}
      cornerRadius={16}
      background={LinearGradient(['#A9E56F', '#30B3A2'])}
      stroke={$env.foreground}
      lineWidth={2}
      strokePosition="inside"
    />
  );
}

الاستخدام

  • background يملأ وstroke يرسم الحد. cornerRadius لا يتجاوز نصف الضلع القصير. inside داخلي وcenter على الحد وoutside خارجي؛ قد يقص الأب الحدود الخارجية.
  • mask يستخدم ألفا: المعتم يُظهر والشفاف يُخفي. الأسود والأبيض بألفا متساوية متماثلان. لا يغير التخطيط؛ حدّد أبعاده وميّزه عن clipped.
  • background/stroke يقبلان Color أو Gradient. استخدم دوال Gradient الثلاث: المواقع والمراكز 0–1، وأنصاف الأقطار بالنقاط. HDR يغلف لونًا واحدًا وسطوعه يعتمد على الجهاز والعرض.

الخصائص

background?Paint

لون أو تدرج للخلفية؛ clear يجعلها شفافة.

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

نصف قطر الزوايا بالنقاط.

مثال0
stroke?Paint

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

مثال"clear"
lineWidth?number

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

مثال2
strokePosition?"inside" | "center" | "outside"

موضع الخط بالنسبة للمحيط: inside أو center أو outside.

مثال"inside"
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
الخصائص المشتركة
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 (
    <HStack spacing={20}>
      <Rectangle
        width={90}
        height={60}
        background="clear"
        stroke={$env.accent}
        lineWidth={8}
        strokePosition="inside"
      />
      <Rectangle
        width={90}
        height={60}
        background="clear"
        stroke={$env.accent}
        lineWidth={8}
        strokePosition="outside"
      />
    </HStack>
  );
}

الحركة

الحركة

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

عند الإغفال

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

الخصائصعند الإغفال
cornerRadius0
lineWidth2
strokePosition"inside"
trimStart0
trimEnd1
backgroundHDR($env.dark ? 'white' : 'black')