EduFlow

الوحدة 2 · التخطيط

الـ Auto layout: الاتجاه والـ Gap والـ Padding

18 دقراءة 4 داملأ الفراغات

الدرس في لمحة

حوّل الـ frames الثابتة إلى frames بـ Auto layout ترصّ أبناءها باتّجاه محدّد وgap وpadding ومحاذاة، وضع بعضها داخل بعض لتبني صف العادة وقائمة العادات في Steady.

  1. 1الإعدادات الثلاثة الأهم
  2. 2بناء صف العادة
  3. 3المحاذاة

لا فيديو هنا، بل الشيء الحقيقي: درس مكتوب وأمثلة قابلة للتشغيل واختبار وتدريب.

في الدرس السابق بنيت صف عادة بوضع أيقونة واسم وstreak وزر تعليم يدويًا. الآن غيّر “Read” إلى “Read 20 pages before bed”. يصطدم الاسم بزر التعليم. أضف سطرًا ثانيًا فيتداخل الـ streak مع الصف التالي. كل تغيير في المحتوى يعني تحريك الطبقات، وفي التطبيق الحقيقي يتغيّر المحتوى كل يوم.

الـ Auto layout هو إجابة Figma: تخبر الـ frame كيف يرتّب أبناءه، فيضعهم في أماكنهم نيابة عنك، في كل مرة يتغيّر فيها أي شيء.

الإعدادات الثلاثة الأهم

حدّد طبقات صف العادة واضغط Shift+A، أو انقر Add auto layout في الشريط الجانبي الأيمن. يلفّها Figma في frame بـ Auto layout ويخمّن الإعدادات مبدئيًا. ثلاثة منها تؤدّي معظم العمل.

الـ Flow هو الاتّجاه الذي يُوضع فيه الأبناء. وقت كتابة هذا الدرس، يقدّم Figma الخيارات Vertical وHorizontal وGrid. الـ Vertical يرصّ الأبناء من الأعلى إلى الأسفل، مثل قائمة العادات. والـ Horizontal يصفّهم جنبًا إلى جنب، مثل محتوى صف واحد. والـ Grid يضعهم في صفوف وأعمدة، وهذا يناسب تخطيطًا ثنائي البعد مثل منتقي الأيقونات في لوحة New habit.

الـ Gap هو المسافة بين الأبناء. إنه رقم واحد للـ frame كله، فيكون كل ابن على المسافة نفسها من الذي يليه. يمكنك أيضًا اختيار التوزيع التلقائي، الذي يقدّم وقت الكتابة الخيارات Between وAround وEvenly، لتوزيع المساحة المتبقية بدل تثبيتها. استخدم رقمًا ثابتًا في أغلب الحالات؛ فالتوزيع التلقائي لحالات مثل شريط التبويبات حيث تنتشر العناصر على كامل العرض.

الـ Padding هو المسافة بين الأبناء وحوافّ الـ frame نفسه. يمكنك ضبطه لكل الجهات دفعة واحدة، أو للأفقي والعمودي كلٌّ على حدة، أو لكل جهة منفردة.

بناء صف العادة

هذا هو الصف كـ frames متداخلة بـ Auto layout. لكل frame وظيفة واحدة.

Text
Habit row        Horizontal · gap 12 · padding 12 top/bottom, 16 left/right · align center
├─ Icon          32 × 32
├─ Text stack    Vertical · gap 4
│  ├─ Habit name   Headline 17/24
│  └─ Streak       Caption 13/16
└─ Check button  32 × 32 circle

كومة النصوص frame عمودي مستقلّ لأن الاسم والـ streak مجموعة واحدة (الدرس 1.2: فجوة صغيرة في الداخل، وأكبر في الخارج). والصف أفقي لأن الأيقونة والنص والزر تجلس جنبًا إلى جنب. الـ 4 px داخل كومة النصوص أصغر من الـ 12 px بين عناصر الصف، وهذه أصغر من المسافة بين الصفوف. صار القُرب الآن جزءًا من البنية نفسها، لا شيئًا تحافظ عليه يدويًا.

frame لصف عادة فيه padding بمقدار 16 بكسل يسارًا ويمينًا و12 بكسل أعلى وأسفل. في داخله أيقونة وكومة نصوص وزر تعليم تفصل بينها فجوات 12 بكسل. وتضمّ كومة النصوص الاسم والـ streak بفجوة 4 بكسل. 16 16 أيقونة 12 Read 20 pages 12-day streak gap 4 12 padding علوي 12 padding سفلي 12
تشريح صف العادة: الـ padding في الخارج، والـ gap بين الأبناء

الآن رُصّ الصفوف. حدّد كل الصفوف واضغط Shift+A مرة أخرى: يلفّها Figma في frame عمودي، هو Habit list، بـ gap مقداره 8 px. لُفّ كتلة التقدّم والقائمة في frame عمودي بـ gap مقداره 24 px، ثم لُفّ الترويسة وذلك الـ frame في frame عمودي آخر بـ padding أفقي 20 px وgap مقداره 32 px. مستويان من الـ gap يعطيانك المسافات المتدرّجة من الدرس 1.2، وصارت شاشة Today كلها مبنية بالـ Auto layout. غيّر أي اسم، أو أضف عادة سادسة، أو احذف واحدة، وسيتحرّك كل ما تحتها ليفسح المجال.

المحاذاة

كل frame بـ Auto layout يتحكّم أيضًا في كيفية اصطفاف أبنائه على المحور المعاكس للـ flow. في الصف الأفقي، تختار هل يجلس الأبناء في أعلى الصف أم وسطه أم أسفله؛ وفي الكومة العمودية، هل يلتصقون باليسار أم الوسط أم اليمين. صف العادة يستخدم المحاذاة في الوسط حتى تصطفّ الأيقونة وزر التعليم مع منتصف النص، سواء كان الاسم سطرًا واحدًا أم سطرين.

ولصفوف النصوص ذات الأحجام المختلفة، تقدّم الـ frames الأفقية وقت الكتابة محاذاة على خط الأساس (baseline)، التي تصفّ أسفل الحروف بدل أسفل الصناديق. وهي مثالية لتسمية وقيمة جنبًا إلى جنب، مثل “Streak” و"12 days".

صار صف العادة يتراصّ بشكل صحيح. ما لا يفعله بعد هو التمدّد ليملأ عرض الشاشة، أو السماح للأسماء الطويلة بالالتفاف في المكان الصحيح. هذا هو تغيير الحجم (resizing)، موضوع الدرس التالي.

أهم النقاط

  • الـ Auto layout يجعل الـ frame يرتّب أبناءه نيابة عنك، فلا يعني تغيير المحتوى بعد الآن تحريك الطبقات يدويًا.
  • الـ Flow يحدّد الاتّجاه (عمودي أو أفقي أو شبكي)، والـ gap يحدّد المسافة بين الأبناء، والـ padding يحدّد المسافة بين الأبناء وحوافّ الـ frame.
  • المسافات مسؤولية الـ frame الأب، لا مستطيلات فارغة تُستخدم كفواصل ولا إزاحات على الأبناء.
  • الـ components الحقيقية frames متداخلة بـ Auto layout، مثل صف أفقي يحتوي على كومة نصوص عمودية.
  • معظم أخطاء الـ Auto layout تأتي من إعدادات على المستوى الخطأ من التداخل، فافحص الأب قبل أن تلوم الابن.

قراءات إضافية

تحقّق من فهمك

4 أسئلة

السؤال 1 من 4

تغيّر اسم عادة من “Run” إلى “Run 5 km before work” داخل صف عادة يستخدم Auto layout. ماذا يحدث لزر التعليم على اليمين؟

السؤال 2 من 4

كومة النصوص داخل صف العادة فيها gap بمقدار 4 px، وللصف padding أيسر بمقدار 16 px. أضاف مصمّم مستطيلًا فارغًا بعرض 16 px قبل الأيقونة ليدفعها إلى اليمين. ما الخطأ؟

السؤال 3 من 4

أيّ بنية تصف صف العادة في Steady على أفضل وجه؟

السؤال 4 من 4

داخل صف عادة أفقي، تجلس الأيقونة في الأعلى بينما النص وزر التعليم في المنتصف. أين تصلح ذلك؟

تدريب

املأ الفراغات

اضبط شرائح التكرار

في لوحة New habit صفّ من شرائح التكرار (chips): Daily وWeekdays وWeekends وCustom. كل شريحة أيقونة بحجم 16 × 16 تليها تسميتها. من مواصفات المطوّر (redline):

  • في كل شريحة، تفصل 4 px بين الأيقونة والتسمية، وهما متوسّطتان عموديًا إحداهما بالنسبة للأخرى.
  • محتوى الشريحة يبعد 12 px عن حافّتيها اليسرى واليمنى و6 px عن حافّتيها العليا والسفلى.
  • الشرائح متجاورة، وبين كل اثنتين 8 px.

أكمل إعدادات الـ Auto layout لشريحة واحدة وللصف الذي يحمل الشرائح الأربع. استخدم الأسماء كما يعرضها Figma (Vertical أو Horizontal أو Grid للـ flow، وTop أو Center أو Bottom للمحاذاة) والأرقام بالـ px.

Chip (auto layout) Flow: Gap between items: Padding left/right: Padding top/bottom: Align children: Frequency chips (auto layout) Flow: Gap between items: