Theming Bootstrap
قم بتخصيص Bootstrap 4 باستخدام متغيرات Sass المدمجة الجديدة لدينا لتفضيلات الأنماط العامة لتسهيل تغيير السمات والمكونات.
مقدمة
في Bootstrap 3 ، كانت السمات مدفوعة إلى حد كبير بالتجاوزات المتغيرة في LESS و CSS المخصص وورقة أنماط سمة منفصلة قمنا بتضمينها في dist
ملفاتنا. مع بعض الجهد ، يمكن للمرء إعادة تصميم مظهر Bootstrap 3 بالكامل دون لمس الملفات الأساسية. يوفر Bootstrap 4 نهجًا مألوفًا ولكنه مختلف قليلاً.
الآن ، يتم تنفيذ السمات بواسطة متغيرات Sass وخرائط Sass و CSS المخصص. لا يوجد أكثر من ورقة أنماط مخصصة للموضوع ؛ بدلاً من ذلك ، يمكنك تمكين السمة المضمنة لإضافة التدرجات والظلال والمزيد.
ساس
استخدم ملفات Sass المصدر الخاصة بنا للاستفادة من المتغيرات والخرائط والمزج والمزيد. في بنائنا ، قمنا بزيادة دقة تقريب Sass إلى 6 (افتراضيًا هي 5) لمنع حدوث مشكلات في تقريب المتصفح.
هيكل الملف
كلما أمكن ، تجنب تعديل ملفات Bootstrap الأساسية. بالنسبة إلى Sass ، يعني ذلك إنشاء ورقة أنماط خاصة بك تستورد Bootstrap حتى تتمكن من تعديلها وتوسيعها. بافتراض أنك تستخدم مدير حزم مثل npm ، سيكون لديك هيكل ملف يبدو كالتالي:
إذا قمت بتنزيل ملفات المصدر الخاصة بنا ولا تستخدم مدير الحزم ، فستحتاج إلى إعداد شيء مشابه لهذه البنية يدويًا ، مع الاحتفاظ بملفات مصدر Bootstrap منفصلة عن ملفاتك.
استيراد
في ملفك custom.scss
، ستقوم باستيراد ملفات Sass المصدر الخاصة بـ Bootstrap. لديك خياران: تضمين كل Bootstrap ، أو اختيار الأجزاء التي تريدها. نحن نشجع هذا الأخير ، على الرغم من إدراك أن هناك بعض المتطلبات والتبعيات عبر مكوناتنا. ستحتاج أيضًا إلى تضمين بعض JavaScript لملحقاتنا.
مع هذا الإعداد في مكانه ، يمكنك البدء في تعديل أي من متغيرات وخرائط Sass في ملف custom.scss
. يمكنك أيضًا البدء في إضافة أجزاء من Bootstrap أسفل // Optional
القسم حسب الحاجة. نقترح استخدام مكدس الاستيراد الكامل من ملفنا bootstrap.scss
كنقطة انطلاق لك.
افتراضات متغيرة
يتضمن كل متغير Sass في Bootstrap 4 !default
العلامة التي تتيح لك تجاوز القيمة الافتراضية للمتغير في Sass الخاص بك دون تعديل كود مصدر Bootstrap. انسخ المتغيرات والصقها حسب الحاجة وعدّل قيمها وأزل !default
العلامة. إذا تم تعيين متغير بالفعل ، فلن تتم إعادة تعيينه بالقيم الافتراضية في Bootstrap.
ستجد القائمة الكاملة لمتغيرات Bootstrap بتنسيق scss/_variables.scss
. يتم تعيين بعض المتغيرات على null
هذه المتغيرات لا تُخرج الخاصية ما لم يتم تجاوزها في التكوين الخاص بك.
يمكن أن تأتي التجاوزات المتغيرة داخل نفس ملف Sass قبل المتغيرات الافتراضية أو بعدها. ومع ذلك ، عند التجاوز عبر ملفات Sass ، يجب أن تأتي التجاوزات قبل استيراد ملفات Sass من Bootstrap.
في ما يلي مثال يغير لـ background-color
and عند استيراد Bootstrap وتجميعه عبر npm:color
<body>
كرر حسب الضرورة لأي متغير في Bootstrap ، بما في ذلك الخيارات العامة أدناه.
الخرائط والحلقات
يتضمن Bootstrap 4 عددًا قليلاً من خرائط Sass وأزواج القيمة الأساسية التي تسهل إنشاء مجموعات من CSS ذات الصلة. نستخدم خرائط Sass للألوان ونقاط توقف الشبكة والمزيد. تمامًا مثل متغيرات Sass ، تشتمل جميع خرائط Sass على !default
العلم ويمكن تجاوزها وتوسيعها.
يتم دمج بعض خرائط Sass الخاصة بنا في خرائط فارغة افتراضيًا. يتم ذلك للسماح بالتوسع السهل لخريطة Sass معينة ، ولكن يأتي على حساب جعل إزالة العناصر من الخريطة أكثر صعوبة قليلاً.
تعديل الخريطة
لتعديل لون موجود في $theme-colors
خريطتنا ، أضف ما يلي إلى ملف Sass المخصص الخاص بك:
أضف إلى الخريطة
لإضافة لون جديد إلى $theme-colors
، أضف المفتاح والقيمة الجديدين:
إزالة من الخريطة
لإزالة الألوان من $theme-colors
، أو أي خريطة أخرى ، استخدم map-remove
. كن على علم أنه يجب عليك إدخاله بين متطلباتنا وخياراتنا:
المفاتيح المطلوبة
يفترض Bootstrap وجود بعض المفاتيح المحددة داخل خرائط Sass كما استخدمناها ووسعناها بأنفسنا. أثناء تخصيص الخرائط المضمنة ، قد تواجه أخطاء عند استخدام مفتاح خريطة Sass معين.
primary
على سبيل المثال ، نستخدم المفاتيح success
و و و من للروابط والأزرار وحالات النموذج. يجب ألا يؤدي استبدال قيم هذه المفاتيح إلى حدوث مشكلات ، ولكن قد تتسبب إزالتها في حدوث مشكلات في تجميع Sass. في هذه الحالات ، ستحتاج إلى تعديل كود Sass الذي يستخدم هذه القيم.danger
$theme-colors
المهام
يستخدم Bootstrap العديد من وظائف Sass ، ولكن مجموعة فرعية فقط قابلة للتطبيق على السمات العامة. لقد قمنا بتضمين ثلاث وظائف للحصول على القيم من خرائط الألوان:
يتيح لك ذلك اختيار لون واحد من خريطة Sass يشبه إلى حد كبير كيفية استخدام متغير اللون من v3.
لدينا أيضًا وظيفة أخرى للحصول على مستوى معين من الألوان من $theme-colors
الخريطة. ستعمل قيم المستوى السالب على تفتيح اللون ، بينما تغمق المستويات الأعلى.
من الناحية العملية ، يمكنك استدعاء الوظيفة وتمرير معلمتين: اسم اللون من $theme-colors
(على سبيل المثال ، أساسي أو خطر) ومستوى رقمي.
يمكن إضافة وظائف إضافية في المستقبل أو Sass المخصص الخاص بك لإنشاء وظائف المستوى لخرائط Sass الإضافية ، أو حتى وظيفة عامة إذا كنت تريد أن تكون أكثر تفصيلاً.
تباين اللون
وظيفة إضافية ندرجها في Bootstrap هي وظيفة تباين الألوان ، color-yiq
. يستخدم مساحة اللون YIQ لإرجاع لون فاتح ( #fff
) أو غامق ( #111
) تلقائيًا استنادًا إلى اللون الأساسي المحدد. هذه الوظيفة مفيدة بشكل خاص للمزج أو الحلقات حيث تقوم بإنشاء فئات متعددة.
على سبيل المثال ، لإنشاء عينات ألوان من $theme-colors
خريطتنا:
يمكن استخدامه أيضًا لتلبية احتياجات التباين لمرة واحدة:
يمكنك أيضًا تحديد لون أساسي من خلال وظائف خريطة الألوان الخاصة بنا:
هروب SVG
نستخدم escape-svg
الوظيفة للهروب من <
، >
وحروف #
صور خلفية SVG. يجب تخطي هذه الأحرف لعرض صور الخلفية بشكل صحيح في IE.
إضافة وطرح وظائف
نستخدم الدوال add
و subtract
التفاف calc
وظيفة CSS. الغرض الأساسي من هذه الوظائف هو تجنب الأخطاء عند تمرير 0
قيمة "بدون وحدة" في calc
تعبير. ستعرض تعبيرات مثل calc(10px - 0)
خطأ في جميع المتصفحات ، على الرغم من كونها صحيحة حسابيًا.
مثال حيث يكون الحساب صحيحًا:
مثال حيث الحساب غير صالح:
خيارات ساس
قم بتخصيص Bootstrap 4 باستخدام ملف المتغيرات المخصصة المضمنة لدينا وتبديل تفضيلات CSS العامة بسهولة باستخدام $enable-*
متغيرات Sass الجديدة. تجاوز قيمة متغير وأعد التحويل البرمجي باستخدامه npm run test
حسب الحاجة.
يمكنك العثور على هذه المتغيرات وتخصيصها للخيارات العامة الرئيسية في scss/_variables.scss
ملف Bootstrap.
عامل | قيم | وصف |
---|---|---|
$spacer |
1rem (افتراضي) ، أو أي قيمة> 0 |
يحدد قيمة الفاصل الافتراضية لإنشاء أدوات المباعد المساعدة برمجيًا . |
$enable-rounded |
true (افتراضي) أوfalse |
لتمكين border-radius أنماط محددة مسبقًا على مكونات مختلفة. |
$enable-shadows |
true أو false (افتراضي) |
لتمكين box-shadow أنماط محددة مسبقًا على مكونات مختلفة. |
$enable-gradients |
true أو false (افتراضي) |
لتمكين التدرجات المحددة مسبقًا عبر background-image الأنماط على المكونات المختلفة. |
$enable-transitions |
true (افتراضي) أوfalse |
تمكن transition s المعرفة مسبقًا على مكونات مختلفة. |
$enable-prefers-reduced-motion-media-query |
true (افتراضي) أوfalse |
يُمكّن استعلام prefers-reduced-motion الوسائط ، الذي يمنع حركات / انتقالات معينة بناءً على تفضيلات متصفح / نظام التشغيل للمستخدمين. |
$enable-hover-media-query |
true أو false (افتراضي) |
إهمال |
$enable-grid-classes |
true (افتراضي) أوfalse |
يُمكّن من إنشاء فئات CSS لنظام الشبكة (على سبيل المثال ، .container ، .row ، .col-md-1 ، إلخ). |
$enable-caret |
true (افتراضي) أوfalse |
تفعيل علامة الإقحام الزائفة .dropdown-toggle . |
$enable-pointer-cursor-for-buttons |
true (افتراضي) أوfalse |
أضف مؤشر "اليد" إلى عناصر الزر غير المعطلة. |
$enable-print-styles |
true (افتراضي) أوfalse |
تمكن الأنماط لتحسين الطباعة. |
$enable-responsive-font-sizes |
true أو false (افتراضي) |
لتمكين أحجام الخطوط سريعة الاستجابة . |
$enable-validation-icons |
true (افتراضي) أوfalse |
لتمكين background-image الرموز داخل المدخلات النصية وبعض النماذج المخصصة لحالات التحقق من الصحة. |
$enable-deprecation-messages |
true أو false (افتراضي) |
قم true بالتعيين لإظهار التحذيرات عند استخدام أي من الخلطات والوظائف المهملة التي تم التخطيط للإزالة فيها v5 . |
اللون
يتم إنشاء العديد من المكونات والأدوات المساعدة المختلفة لـ Bootstrap من خلال سلسلة من الألوان المحددة في خريطة Sass. يمكن تكرار هذه الخريطة في Sass لإنشاء سلسلة من مجموعات القواعد بسرعة.
جميع الالوان
تتوفر جميع الألوان المتوفرة في Bootstrap 4 كمتغيرات Sass وخريطة Sass في scss/_variables.scss
الملف. سيتم توسيع هذا في الإصدارات الثانوية اللاحقة لإضافة ظلال إضافية ، مثل لوحة درجات الرمادي التي قمنا بتضمينها بالفعل.
إليك كيف يمكنك استخدام هذه في Sass الخاص بك:
تتوفر أيضًا فئات الأدوات المساعدة للونcolor
للإعداد و background-color
.
في المستقبل ، سنهدف إلى توفير خرائط ومتغيرات Sass لظلال كل لون كما فعلنا مع الألوان الرمادية أدناه.
ألوان الموضوع
نستخدم مجموعة فرعية من جميع الألوان لإنشاء لوحة ألوان أصغر لإنشاء أنظمة ألوان ، وهي متوفرة أيضًا كمتغيرات Sass وخريطة Sass في scss/_variables.scss
ملف Bootstrap.
جرايز
مجموعة موسعة من المتغيرات الرمادية وخريطة Sass scss/_variables.scss
للحصول على ظلال متناسقة من الرمادي عبر مشروعك. لاحظ أن هذه هي "درجات الرمادي الهادئة" ، والتي تميل نحو اللون الأزرق الخفيف ، بدلاً من الرمادي المحايد.
في الداخل scss/_variables.scss
، ستجد متغيرات ألوان Bootstrap وخريطة Sass. فيما يلي مثال على $colors
خريطة Sass:
قم بإضافة القيم أو إزالتها أو تعديلها داخل الخريطة لتحديث كيفية استخدامها في العديد من المكونات الأخرى. لسوء الحظ في هذا الوقت ، لا يستخدم كل مكون خريطة Sass هذه. ستسعى التحديثات المستقبلية لتحسين هذا. حتى ذلك الحين ، خطط للاستفادة من ${color}
المتغيرات وخريطة Sass هذه.
عناصر
تم إنشاء العديد من مكونات وأدوات Bootstrap باستخدام @each
حلقات تتكرر عبر خريطة Sass. هذا مفيد بشكل خاص لتوليد متغيرات للمكون من خلال $theme-colors
إنشاء متغيرات سريعة الاستجابة لكل نقطة توقف. أثناء قيامك بتخصيص خرائط Sass وإعادة تجميعها ، سترى تلقائيًا تغييراتك تنعكس في هذه الحلقات.
الصفات التعريفية
تم تصميم العديد من مكونات Bootstrap باستخدام نهج فئة معدِّل القاعدة. هذا يعني أن الجزء الأكبر من التصميم موجود في فئة أساسية (على سبيل المثال ، .btn
) بينما تنحصر اختلافات النمط في فئات المعدلات (على سبيل المثال ، .btn-danger
). تم إنشاء فئات المُعدِلات هذه من $theme-colors
الخريطة لإجراء تخصيص رقم واسم فئات المُعدِّل لدينا.
فيما يلي مثالان على كيفية قيامنا بعمل حلقة فوق $theme-colors
الخريطة لإنشاء مُعدِّلات .alert
للمكوِّن وجميع أدواتنا .bg-*
المساعدة في الخلفية.
متجاوب
لا تقتصر حلقات Sass هذه على الخرائط الملونة أيضًا. يمكنك أيضًا إنشاء أشكال متجاوبة لمكوناتك أو أدواتك المساعدة. خذ على سبيل المثال أدوات محاذاة النص سريعة الاستجابة حيث نمزج @each
حلقة $grid-breakpoints
لخريطة Sass مع استعلام وسائط.
إذا كنت بحاجة إلى تعديل الخاص بك $grid-breakpoints
، فسيتم تطبيق تغييراتك على جميع الحلقات التي تتكرر على تلك الخريطة.
متغيرات CSS
يتضمن Bootstrap 4 حوالي عشرين من خصائص CSS المخصصة (المتغيرات) في CSS المترجم. يوفر ذلك وصولاً سهلاً إلى القيم شائعة الاستخدام مثل ألوان السمات ونقاط التوقف ومجموعات الخطوط الأساسية عند العمل في فاحص المتصفح أو صندوق حماية الكود أو النماذج الأولية العامة.
المتغيرات المتاحة
فيما يلي المتغيرات التي نقوم بتضمينها (لاحظ أن :root
المطلوب). إنها موجودة في _root.scss
ملفنا.
أمثلة
توفر متغيرات CSS مرونة مماثلة لمتغيرات Sass ، ولكن دون الحاجة إلى التجميع قبل تقديمها إلى المتصفح. على سبيل المثال ، نقوم هنا بإعادة تعيين أنماط الخط والارتباط الخاصة بصفحتنا باستخدام متغيرات CSS.
متغيرات نقطة التوقف
بينما قمنا في الأصل بتضمين نقاط التوقف في متغيرات CSS الخاصة بنا (على سبيل المثال ، --breakpoint-md
) ، إلا أنها غير مدعومة في استعلامات الوسائط ، ولكن لا يزال من الممكن استخدامها ضمن مجموعات القواعد في استعلامات الوسائط. تظل متغيرات نقطة التوقف هذه في CSS المترجمة للتوافق مع الإصدارات السابقة نظرًا لإمكانية استخدامها بواسطة JavaScript. تعلم المزيد في المواصفات .
فيما يلي مثال لما هو غير مدعوم:
وإليك مثال على ما هو مدعوم: