Symbol
استخدم SF Symbols لرسم أيقونات النظام، مثل عداد السرعة ومقياس الحرارة. يمكن ضبط حجم خط الرمز ووزن الخط وطريقة التلوين. يعتمد توفر الرمز المحدد على نظام الجهاز.
مثال
function main() {
return (
<Symbol
name="speedometer"
fontSize={36}
renderingMode="hierarchical"
color={$env.accent}
/>
);
}
الاستخدام
- name اسم SF Symbols وليس ملفًا. fontSize لحجم الرمز وwidth/height للحاوية. paletteColors يلون الطبقات؛ الرمز غير المتاح في النظام لا يتحول إلى صورة.
- الأبعاد الرقمية بالنقاط. auto يقيس المحتوى وfill يستخدم المساحة المخصصة من الأب. حدّد حجم الحاوية أولًا؛ fill والنص الطويل لا يوسّعان أبًا ثابتًا.
الخصائص
namestringاسم SF Symbols مثل speedometer؛ التوفر يعتمد على النظام.
"location.north.fill"fontSize?numberحجم الخط بالنقاط.
14fontWeight?"ultraLight" | "thin" | "light" | "regular" | "medium" | "semibold" | "bold" | "heavy" | "black"وزن الخط من ultraLight إلى black؛ regular هو العادي.
"regular"imageScale?"small" | "medium" | "large"حجم نسبي small أو medium أو large مع fontSize.
"medium"renderingMode?"monochrome" | "hierarchical" | "palette" | "multicolor"monochrome لون واحد، hierarchical تدرجات، palette يستخدم paletteColors، multicolor يحفظ ألوان الرمز.
"monochrome"color?Paintلون الرسم، بما في ذلك ألوان HDR.
HDR($env.foreground)لون إلى ثلاثة ألوان لطبقات الرمز في وضع palette.
["red", "blue"]contentAnimation?ContentAnimationانتقال عند تغير المحتوى. اختر type المدعوم؛ duration/delay بالثواني.
{type: "fade", duration: 0.25}الخصائص المشتركة
width?number | "auto" | "fill"العرض بالنقاط أو الحجم التلقائي أو ملء العنصر الأب.
100height?number | "auto" | "fill"الارتفاع بالنقاط أو الحجم التلقائي أو ملء العنصر الأب.
80padding?numberالمساحة الداخلية للمحتوى بالنقاط.
0x?numberإزاحة بصرية بالنقاط: x يميناً وy لأسفل، دون تغيير المساحة في التخطيط.
0y?numberإزاحة بصرية بالنقاط: x يميناً وy لأسفل، دون تغيير المساحة في التخطيط.
0transform?ViewTransformتحويل View كله دون تغيير التخطيط. الإزاحة بالنقاط، الدوران والميل بالدرجات، المقياس 1 بلا تغيير، والمرساة 0–1.
{rotation: 0}background?Paintلون أو تدرج للخلفية؛ clear يجعلها شفافة.
"clear"opacity?numberعتامة View بالكامل: 0 شفاف و1 معتم.
1cornerRadius?numberنصف قطر الزوايا بالنقاط.
0clipped?booleanقص الرسم الذي يتجاوز حدود View.
falseclip?"rectangle" | "ellipse"شكل القص rectangle أو ellipse؛ يقبل Material أيضاً false لتعطيله.
"rectangle"mask?View | nullعرض قناع ألفا. يتم توسيطه دون التأثير على التخطيط؛ تعطل null القناع.
<Circle width="fill" height="fill" background="white"/>zIndex?numberترتيب الرسم بين العناصر الشقيقة؛ القيم الأكبر في الأمام.
0blur?numberنصف قطر التمويه بالنقاط؛ 0 يعطّله.
4innerShadow?DrawingEffectلون التأثير وعتامته ونصف قطر تمويهه وإزاحة x/y؛ المسافات بالنقاط.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectلون التأثير وعتامته ونصف قطر تمويهه وإزاحة x/y؛ المسافات بالنقاط.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?Colorلون الظل الخارجي.
HDR("black")shadowOpacity?numberعتامة الظل من 0 إلى 1؛ 0 يخفيه.
0shadowRadius?numberنصف قطر تمويه الظل الخارجي بالنقاط.
4shadowX?numberإزاحة الظل بالنقاط: x يميناً وy لأسفل.
0shadowY?numberإزاحة الظل بالنقاط: x يميناً وy لأسفل.
2animations?Animation[]تحريك تغير الخاصية. duration/delay بالثواني، from/to للنهايات، repeat/autoreverse للتكرار وwrap للدورة.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberمعرّف ثابت بين العناصر الشقيقة.
مثال عملي
function main() {
return (
<HStack alignment="firstTextBaseline" spacing={8}>
<Symbol
name="speedometer"
fontSize={32}
renderingMode="hierarchical"
color={$env.accent}
/>
<Text fontSize={40}>78</Text>
<Text fontSize={14}>km/h</Text>
</HStack>
);
}
الحركة
widthheightpaddingxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYfontSizecolortransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYعند الإغفال
الجدول يوضح سلوك الإغفال المتحقق من التنفيذ؛ الأمثلة ليست افتراضيات. لنتيجة ثابتة مرر قيمة صريحة؛ الأبعاد وألوان الثيم متغيرة بحسب السياق.
| الخصائص | عند الإغفال |
|---|---|
fontSize | 14 |
fontWeight | "regular" |
imageScale | "medium" |
renderingMode | "monochrome" |
color | HDR($env.foreground) |