۞ قُرْطُبَة
M4 · Migration Guide

الترحيل من Bootstrap إلى قُرْطُبَة

قُرْطُبَة تتشرّب مفاهيم Bootstrap المألوفة (الأصناف، نقاط التوقّف، الشبكة) لكنها تضيف بادئة q- وتُعيد التركيز على العربية والإسلام. هذه الخريطة تُسخّن الانتقال.

1. اختلافات جوهرية

النقطةBootstrapقُرْطُبَة
البادئةبدون (btn)q- (q-btn)
الاتجاهRTL إضافة ثانويةRTL أصلي بخصائص منطقية
الثيماتمتغيّرات Sass فقطمتغيّرات CSS وقت التشغيل + ثيمات جاهزة
التباين النصييدويمحسوب تلقائياً (color-contrast)
المكوّنات الإسلاميةغير متوفرةقرآن، هجري، صلاة، قبلة، زكاة…
الاعتمادياتPopper في بعض المكوّناتصفر

2. خريطة الأصناف (Class Mapping)

ابحث عن صنف Bootstrap واستبدله بنظيره في قُرْطُبَة.

Bootstrapقُرْطُبَةملاحظة
containerq-containerعرض أقصى متجاوب
row / col-*q-row / q-col-*شبكة CSS Grid بـ 12 عمود
btnq-btn
btn-primaryq-btn-primary+ secondary, gold, ghost
btn-outline-primaryq-btn-outline-primary
btn-sm / btn-lgq-btn-sm / q-btn-lg
cardq-card+ q-card-body, q-card-title
alert alert-successq-alert q-alert-success+ warning, danger, info
badgeq-badge+ q-badge-pill, q-badge-*
form-controlq-form-control+ q-form-select, q-form-label
form-checkq-form-check+ q-form-check-input/label
navbarq-navbar+ q-navbar-brand, q-navbar-nav
nav-link activeq-nav-link q-activeactiveq-active
tableq-table
accordionq-accordiondata-API مماثل
progress / progress-barq-progress / q-progress-bar
spinner-borderq-spinner+ q-spinner-grow
modalq-modal
dropdownq-dropdown
toastq-toast
breadcrumbq-breadcrumb
text-mutedq-text-muted
text-centerq-text-center
d-flexq-d-flex+ q-items-center, q-gap-*
mt-3 / mb-2q-mt-3 / q-mb-2مقياس مسافة موحّد
⚠️
الحالة النشطة
Bootstrap يستخدم .active؛ قُرْطُبَة تستخدم .q-active لتفادي التعارض مع أدوات أخرى. انتبه لهذا عند الترحيل.

3. مثال قبل وبعد

نفس البطاقة مكتوبة بالأسلوبين:

Bootstrap

<div class="card" style="max-width:18rem">
  <div class="card-body">
    <h5 class="card-title">عنوان</h5>
    <p class="card-text text-muted">وصف.</p>
    <a href="#" class="btn btn-primary">تفاصيل</a>
  </div>
</div>

قُرْطُبَة

<div class="q-card" style="max-width:18rem">
  <div class="q-card-body">
    <h5 class="q-card-title">عنوان</h5>
    <p class="q-text-muted">وصف.</p>
    <a href="#" class="q-btn q-btn-primary">تفاصيل</a>
  </div>
</div>
النتيجة
عنوان

وصف.

تفاصيل

4. تغيير استدعاء JavaScript

<!-- Bootstrap -->
<script src="bootstrap.bundle.min.js"></script>

<!-- قُرْطُبَة (ملف واحد، صفر اعتماديات) -->
<script src="dist/js/qrtoba.js"></script>

معظم الإضافات تعمل عبر Data-API بنفس منطق Bootstrap (مثل data-bs-toggledata-q-toggle).

💡
خطوة إضافية للعرب
بعد الترحيل، فعّل ثيم قُرْطُبَة المناسب (data-q-theme="...") ومكوّنات الإسلام (القرآن، الهجري) التي لا نظير لها في Bootstrap — وهنا تظهر قوة الإطار فعلاً.

5. ما بعد الترحيل