مقدمة
butterfly css هي طريقة جديدة لبناء مواقع الويب التي تحلّق من أول لحظة! عبر الكتابة السريعة المعتمدة على الخصائص (attributes)
يوفر هذا التوثيق دليلًا شاملًا لجميع الخصائص المتاحة، من التثبيت إلى الأوصاف التفصيلية والأمثلة. يمكنك مشاهدة عرض توضيحي للوضع الداكن وتأثير عيد الميلاد هنا.
التثبيت
لاستخدام butterfly CSS، ما عليك سوى إضافة الوسوم التالية داخل قسم <head> في مستند HTML الخاص بك. ملف iv.css مخصص للحركات والميزات الأساسية، وiv.js للتعامل مع الارتفاع والعرض والهوامش والحشوة، أما dark.js فهو مخصص للوضع الداكن فقط.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/AMR2010M/butterfly-css@latest/butterflycss.css">
<script src="https://cdn.jsdelivr.net/gh/AMR2010M/butterfly-css@latest/df.js"></script>
<script src="https://cdn.jsdelivr.net/gh/AMR2010M/butterfly-css@latest/vf.js"></script>
على سبيل المثال، لتحويل أي عنصر إلى فراشة:
<div butterfly='fly' ></div>
ولإنشاء زر:
<button btn='purple' handdrawn>...</button>
الصندوق المتجاوب
استخدمها على أي عنصر أب لتحويله إلى صندوق flex متجاوب (ملاحظة: استخدمها فقط إذا كانت العناصر الأبناء من نوع div فقط)
<div responsive> </div>
الحركات الأساسية
هذه الخصائص تُطبّق حركات مستمرة متنوعة على العناصر. وهي تأثيرات حركية للأغراض العامة.
تدوير العنصر 360 درجة بشكل مستمر.
<div spin></div>
🌍
تجعل العنصر يرتد رأسيًا.
<div bounce></div>
⚽
تجعل العنصر يكبر قليلًا ثم يتلاشى ويعود.
<div pulse></div>
💗
تجعل العنصر يتأرجح من جانب لآخر.
<div swing></div>
🧹
تقلب العنصر أفقيًا.
<div flip></div>
🃏
تجعل العنصر يهتز أفقيًا.
<div shake></div>
😵💫
تجعل العنصر يكبر ويصغر باستمرار.
<div grow></div>
🐣
تجعل العنصر يصغر ويكبر باستمرار.
<div shrink></div>
🛰️
تحرك العنصر أفقيًا يمينًا ويسارًا.
<div slide-x></div>
🛒
تحرك العنصر رأسيًا لأعلى ولأسفل.
<div slide-y></div>
🎈
الوضع الداكن
تضبط الخلفية على اللون البنفسجي الداكن عند تفعيل 'dark-btn'، واللون البنفسجي الفاتح في وضع النهار.
<div dpurple lpurple> </div>
لتحديد لون النص في الوضع الداكن والفاتح.
<p dtwhite tlblue></p>
<button dark-btn btn='black' ></button>
لتحديد لون النص في الوضع الداكن والفاتح.
<p dtwhite tlblue></p>
<button dark-btn btn='black' ></button>
document.addEventListener("darkModeApplied", (mode) => {
if (mode.detail.dark) {
console.log("Dark mode is active");
// custom dark mode logic
} else {
console.log("Light mode is active");
// custom light mode logic
}
});
حركات الكرة العائمة
هذه الخصائص تُنشئ كرات متوهجة ومتحركة تطفو عبر العنصر باستخدام الـ pseudo-element `::before`. ينبغي أن يحتوي العنصر الأب على `position: relative` و`overflow: hidden` للحصول على أفضل النتائج.
حركة كرة متوهجة بمسار وسرعة محددين.
<div style="..." ball-move-1></div>
حركة كرة متوهجة بمسار وسرعة مختلفين.
<div style="..." ball-move-2></div>
حركة كرة متوهجة أكبر حجمًا.
<div style="..." ball-move-3></div>
حركة كرة متوهجة أسرع وأصغر حجمًا.
<div style="..." ball-move-4></div>
حركة كرة متوهجة كبيرة جدًا وبطيئة جدًا.
<div style="..." ball-move-5></div>
التأثيرات الخاصة
هذه الخصائص تُطبّق تأثيرات بصرية فريدة على العناصر، وكثيرًا ما تستخدم pseudo-elements أو فلاتر SVG.
تُنشئ حركة أوراق تتساقط كالقصاصات الملونة (confetti) فوق العنصر. يجب أن يحتوي العنصر الأب على `position: relative` و`overflow: hidden`.
<div style="..." birthday-paper></div>
تمنح العنصر مظهرًا مرسومًا يدويًا أو خشنًا باستخدام فلتر SVG، مع تأثير عند التحويم.
<div handdrawn></div>
تُطبّق `filter: blur(2px)` على العنصر.
<div blur></div>
<div style="..." butterfly='fly'></div>
أدوات التدوير
تُطبّق زوايا تدوير محددة على العناصر. توفر هذه الخصائص تدويرًا بتدرج درجة واحدة من 0 إلى 360 درجة. كما تتوفر متغيرات متجاوبة.
تدوير العنصر بالدرجة المحددة (مثلًا `rotate="45"` للتدوير 45 درجة، و`rotate="180"` للتدوير 180 درجة). القيم بالدرجات بدون وحدات في الخاصية نفسها.
<div rotate="45"></div>
أدوات التخطيط
تُطبّق `display: flex` مع `flex-direction: row`، وتمركز العناصر أفقيًا ورأسيًا.
<div rows>...</div>
تُطبّق `display: flex` مع `flex-direction: column`، وتمركز العناصر أفقيًا ورأسيًا.
<div columns>...</div>
تمركز العنصر داخل حاوية flex الخاصة به (`align-self: center; justify-self: center;`).
<div flex-row><span center>...</span></div>
تتبدّل بين flex-row وflex-column عندما تكون الشاشة أكبر أو أصغر من 1200px للتخطيط العام لا للبطاقات. مثلًا يمكنك استخدامها إذا أردت نصًا بجانب صورة على الكمبيوتر، ويصبح النص تحت الصورة على الموبايل. لعناصر أو divs متجاوبة راجع قسم الصندوق المتجاوب.
<div flex-auto> </div>
أدوات العرض والارتفاع
هذه الخصائص تُتيح لك تحديد عرض وارتفاع ثابتين للعناصر بوحدة rem.
تضبط عرض العنصر من 1 rem إلى 999 rem. مثلًا `w-100` تضبط العرض على 100rem.
<div w-150></div>
تضبط ارتفاع العنصر من 1 rem إلى 999 rem. مثلًا `h-200` تضبط الارتفاع على 200rem.
<div h-120></div>
تضبط العرض بالنسبة المئوية.
<div w-80p></div>
تضبط الارتفاع بالنسبة المئوية.
<div h-90p></div>
أشكال Clip-Path
هذه الخصائص تُطبّق أشكالًا هندسية متنوعة باستخدام `clip-path`.
تقصّ العنصر على شكل دائرة مثالية.
<div circle></div>
تقصّ العنصر على شكل مثلث.
<div triangle></div>
تقصّ العنصر على شكل بيضاوي.
<div ellipse></div>
تجعل العنصر مقصوصًا على شكل مربع (inset 0).
<div square></div>
تقصّ العنصر على شكل مستطيل (مع inset بنسبة 10% أعلى وأسفل).
<div rectangle></div>
تقصّ العنصر على شكل معيّن.
<div diamond></div>
تقصّ العنصر على شكل سداسي.
<div hexagon></div>
تقصّ العنصر على شكل متوازي أضلاع.
<div parallelogram></div>
تقصّ العنصر على شكل نجمة.
<div star></div>
تقصّ العنصر على شكل شبه منحرف.
<div trapezoid></div>
تقصّ العنصر على شكل منزل كلاسيكي.
<div home></div>
تقصّ العنصر على شكل قلب.
<div heart></div>
تقصّ العنصر على شكل حرف 'X'.
<div x></div>
تقصّ العنصر على شكل فقاعة رسالة مع مؤشر في الأسفل.
<div message></div>
التدرجات اللونية
تُطبّق تدرجات خطية حديثة كألوان خلفية.
تدرج من #6600FF إلى #FF6FD8.
<div gradient-1></div>
تدرج من #43e97b إلى #38f9d7.
<div gradient-2></div>
تدرج من #f7971e إلى #ffd200.
<div gradient-3></div>
تدرج من #f953c6 إلى #b91d73.
<div gradient-4></div>
تدرج من #30cfd0 إلى #330867.
<div gradient-5></div>
تدرج من #5ee7df إلى #b490ca.
<div gradient-6></div>
تدرج من #ee9ca7 إلى #ffdde1.
<div gradient-7></div>
تدرج من #f6d365 إلى #fda085.
<div gradient-8></div>
تدرج من #6600ff إلى #c6e8f8.
<div gradient-9></div>
تدرج من #ffffff إلى #00c3ff.
<div gradient-10></div>
المكونات
البطاقة (Card)
مكوّن بطاقة منسّق بحشوة وزوايا مستديرة وظل، مع تأثير تحويم خفيف.
<div card>...</div>
عنوان البطاقة
هذا محتوى داخل بطاقة butterfly CSS.
الزر (Button)
زر منسّق بشكل أساسي مع حشوة وزوايا مستديرة وخلفية وتأثيرات تحويم.
<button button>اضغط هنا</button>
أزرار ملونة جاهزة. استبدل `{color}` بأي لون من مجموعة واسعة من الألوان. تأثيرات التحويم مضمّنة.
<button btn='purple'>Purple</button> <button btn='green'>Green</button> <button btn='rose'>Rose</button>
يشمل هذا طيفًا كاملًا من الألوان لخصائص `btn='{color}'`. يرجى الرجوع إلى ملف `float.css` للاطلاع على تعريفات الألوان الدقيقة.
ألوان الخلفية
اضبط ألوان الخلفية باستخدام محددات الخصائص للألوان الأساسية والظلال المختلفة (مثل `red`، `red-500`). تُطبّق هذه الخصائص `!important` للتغلب على الأنماط الأخرى.
الألوان الأساسية
تضبط الخلفية على اللون الأحمر الزاهي.
<div red></div>
تضبط الخلفية على اللون الوردي الزاهي.
<div pink></div>
تضبط الخلفية على اللون البنفسجي الغامق.
<div purple></div>
تضبط الخلفية على بنفسجي أكثر قتامة.
<div deep-purple></div>
تضبط الخلفية على اللون النيلي الأزرق.
<div indigo></div>
تضبط الخلفية على الأزرق العادي.
<div blue></div>
تضبط الخلفية على الأزرق الفاتح.
<div light-blue></div>
تضبط الخلفية على اللون السماوي الأزرق.
<div cyan></div>
تضبط الخلفية على اللون الزيتي الأخضر.
<div teal></div>
تضبط الخلفية على الأخضر الزاهي.
<div green></div>
تضبط الخلفية على الأخضر الفاتح.
<div light-green></div>
تضبط الخلفية على الأخضر الليموني.
<div lime></div>
تضبط الخلفية على الأصفر الذهبي.
<div yellow></div>
تضبط الخلفية على اللون الكهرماني الأصفر.
<div amber></div>
تضبط الخلفية على البرتقالي.
<div orange></div>
تضبط الخلفية على البرتقالي الغامق.
<div deep-orange></div>
تضبط الخلفية على البني.
<div brown></div>
تضبط الخلفية على الرمادي العادي.
<div gray></div>
تضبط الخلفية على الرمادي المزرق.
<div blue-gray></div>
تضبط الخلفية على الأسود الغامق.
<div black></div>
تضبط الخلفية على الأبيض.
<div white></div>
تضبط الخلفية على بنفسجي/رمادي فاتح جدًا (`#f8f7ff`).
<div light></div>
تضبط الخلفية على رمادي/أزرق داكن (`#22223b`).
<div dark></div>
الألوان بالظلال (مثل `red-50` إلى `red-900`)
كل لون رئيسي (أحمر، أزرق، أخضر، أصفر، بنفسجي، رمادي) له 10 ظلال من 50 (الأفتح) إلى 900 (الأغمق).
ظلال متنوعة من خلفية حمراء.
<div red-50></div> <div red-500></div> <div red-900></div>
ظلال متنوعة من خلفية زرقاء.
<div blue-50></div> <div blue-500></div> <div blue-900></div>
ظلال متنوعة من خلفية خضراء.
<div green-50></div> <div green-500></div> <div green-900></div>
ظلال متنوعة من خلفية صفراء.
<div yellow-50></div> <div yellow-500></div> <div yellow-900></div>
ظلال متنوعة من خلفية بنفسجية.
<div purple-50></div> <div purple-500></div> <div purple-900></div>
ظلال متنوعة من خلفية رمادية.
<div gray-50></div> <div gray-500></div> <div gray-900></div>
ألوان النص
اضبط ألوان النص باستخدام محددات الخصائص مسبوقة بـ `t` للألوان الأساسية والظلال المختلفة (مثل `tred`، `tred-500`). تُطبّق هذه الخصائص `!important` للتغلب على الأنماط الأخرى.
ألوان النص الأساسية
تضبط لون النص على الأحمر الزاهي.
<span tred>...</span>
نص أحمر
تضبط لون النص على الوردي الزاهي.
<span tpink>...</span>
نص وردي
تضبط لون النص على البنفسجي الغامق.
<span tpurple>...</span>
نص بنفسجي
تضبط لون النص على بنفسجي أكثر قتامة.
<span tdeep-purple>...</span>
نص بنفسجي غامق
تضبط لون النص على النيلي الأزرق.
<span tindigo>...</span>
نص نيلي
تضبط لون النص على الأزرق العادي.
<span tblue>...</span>
نص أزرق
تضبط لون النص على الأزرق الفاتح.
<span tlight-blue>...</span>
نص أزرق فاتح
تضبط لون النص على السماوي الأزرق.
<span tcyan>...</span>
نص سماوي
تضبط لون النص على الزيتي الأخضر.
<span tteal>...</span>
نص زيتي
تضبط لون النص على الأخضر الزاهي.
<span tgreen>...</span>
نص أخضر
تضبط لون النص على الأخضر الفاتح.
<span tlight-green>...</span>
نص أخضر فاتح
تضبط لون النص على الأخضر الليموني.
<span tlime>...</span>
نص ليموني
تضبط لون النص على الأصفر الذهبي.
<span tyellow>...</span>
نص أصفر
تضبط لون النص على الكهرماني الأصفر.
<span tamber>...</span>
نص كهرماني
تضبط لون النص على البرتقالي.
<span torange>...</span>
نص برتقالي
تضبط لون النص على البرتقالي الغامق.
<span tdeep-orange>...</span>
نص برتقالي غامق
تضبط لون النص على البني.
<span tbrown>...</span>
نص بني
تضبط لون النص على الرمادي العادي.
<span tgray>...</span>
نص رمادي
تضبط لون النص على الرمادي المزرق.
<span tblue-gray>...</span>
نص رمادي مزرق
تضبط لون النص على الأسود الغامق.
<span tblack>...</span>
نص أسود
تضبط لون النص على الأبيض.
<span twhite>...</span>
نص أبيض
تضبط لون النص على بنفسجي/رمادي فاتح جدًا.
<span tlight>...</span>
نص فاتح
تضبط لون النص على رمادي/أزرق داكن.
<span tdark>...</span>
نص داكن
ألوان النص بالظلال (مثل `tred-50` إلى `tred-900`)
كل لون رئيسي (أحمر، أزرق، أخضر، أصفر، بنفسجي، رمادي) له 10 ظلال من 50 (الأفتح) إلى 900 (الأغمق).
ظلال متنوعة من النص الأحمر.
<span tred-50>نص</span> <span tred-500>نص</span> <span tred-900>نص</span>
ظلال متنوعة من النص الأزرق.
<span tblue-50>نص</span>
ظلال متنوعة من النص الأخضر.
<span tgreen-50>نص</span>
ظلال متنوعة من النص الأصفر.
<span tyellow-50>نص</span>
ظلال متنوعة من النص البنفسجي.
<span tpurple-50>نص</span>
ظلال متنوعة من النص الرمادي.
<span tgray-50>نص</span>
أدوات التباعد
استخدمها للهامش (margin) والحشوة (padding) بوحدة rem.
<div m-10></div> أو <div p-20></div>
تضبط الخلفية على: توسيط، تغطية كاملة، بدون تكرار.
<div bg=auto></div>
تضيف ظلًا بنفس اللون المحدد.
<div sred></div>
تضيف ظلًا رماديًا افتراضيًا.
<div shadow></div>
تُطبّق ظل نص.
<h1 tshadow>عنوان</h1>
تُستخدم لتحديد موضع شريط التنقل.
<div navbar top></div>