نظام التصميم العام
قواعد التجاوب
افتراضيات الموبايل أولاً، سياسة نقاط التوقّف، والحراسات العامة في CSS.
مكتمل
الموبايل أولاً افتراضياً. 14 حارس CSS عالمي + طبقة §15 لتحسين الموبايل + رقعة §17 لتضييق الهوامش تتعامل مع كل قضية تجاوب شائعة دون كتابة لكل صفحة.
نقاط التوقّف
- ≥1440px · ديسكتوب
- شبكة كاملة: كروت 3-up أو 4-up، شريط جانبي ثابت، كل الـ chrome.
- 1024px · لابتوب
- الأشرطة الجانبية الثابتة تنشط (مثل sidebar الـ docs). شبكات قوائم 3-up.
- 768px · تابلت بورتريه
- شبكات قوائم 2-up. قائمة الموبايل لا تزال نشطة في الـ header.
- 640px · موبايل كبير
- طبقة التحسين §15 تنشط تحت هذا. كل `py-*`, `gap-*`, `mb-*` تتضاغط.
- 375px · موبايل صغير
- القسم §16 يضاغط أكثر. حشو الكروت 0.75rem. سقف على عدد كروت swipe-scroll.
14 حارس CSS عالمي (§14 في styles.scss)
- `html, body { max-width: 100%; overflow-x: hidden }` — يلغي horizontal scroll العَرَضي.
- `body { word-wrap: break-word }` — الـ URLs / hashtags الطويلة تلتفّ بدل الفيض.
- `img, svg, video, iframe { max-width: 100%; height: auto }` — الـ media لا تخرج أبداً.
- منع iOS auto-zoom: حقول النماذج بـ `font-size: 16px` تحت 640px.
- أهداف لمس 44px عبر `@media (hover: none) and (pointer: coarse)`.
- ارتفاع سطر الـ hero يضيق إلى 1.1 على الموبايل.
- أداة `.no-mobile` تخفي المحتوى الزخرفي تحت 640px.
- momentum scroll ناعم على iOS للأشرطة الأفقية.
- الأشرطة الجانبية الثابتة تُحرَّر إلى `position: static` تحت 1024px.
- RTL `.icon-flip` يعكس الأسهم تلقائياً.
- تحوّلات hover معطّلة على أجهزة اللمس.
- نص روابط الـ footer يلتفّ بنظافة عبر `overflow-wrap: anywhere`.
- أداة `.btn-mobile-full` تمدّ الأزرار إلى 100% تحت 480px.
- `.grid > * { min-width: 0 }` عالمي — يمنع فيض شبكة grid من المحتوى الطويل.
