إطار عمل Flamingo CSS
إطار عمل CSS خفيف الوزن، يعتمد على السمات، من تصميم عمرو خالد.
مقدمة
butterfly CSS هو إطار عمل CSS خفيف الوزن يعتمد على السمات، ومصمم لتبسيط مهام التنسيق الشائعة وإضافة تأثيرات بصرية جذابة لمشاريع الويب الخاصة بك. ببساطة عن طريق إضافة سمات محددة إلى عناصر HTML الخاصة بك، يمكنك تطبيق أنماط محددة مسبقًا للخلفيات، الأشكال، الرسوم المتحركة، تأثيرات التمرير، الأزرار، ومجموعة واسعة من الألوان.
يوفر هذا التوثيق دليلاً شاملاً لجميع السمات المتاحة، من التثبيت إلى الوصف التفصيلي والأمثلة.
التثبيت
لاستخدام butterfly CSS، ما عليك سوى إضافة وسم <link> في قسم <head> من مستند HTML الخاص بك، يشير إلى ملف float.css المستضاف:
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>مشروعي بـ butterfly</title>
<!-- تضمين خط Inter لطباعة أفضل -->
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;700;800&display=swap" rel="stylesheet">
<!-- رابط لملف butterfly CSS الخاص بك -->
<link rel="stylesheet" href="float.css">
</head>
<body>
<!-- محتواك هنا -->
</body>
</html>
ملاحظة هامة حول السمات: لكي يعمل butterfly CSS، تقوم بتطبيق سماته المخصصة مباشرةً على عناصر HTML الخاصة بك، بدون أقواس مربعة في وسم HTML نفسه.
على سبيل المثال، لتطبيق أنماط flexbox لصف، ستكتب:
<div flex-row>...</div>ولزر أرجواني، سيكون:
<button btn='purple'>...</button>
يحتوي ملف `float.css` على قواعد CSS مصممة داخليًا للتعرف على هذه السمات دون الحاجة إلى أقواس مربعة في HTML الخاص بك. يتيح ذلك طريقة نظيفة وبديهية لإضافة الأنماط. يرجى التأكد من استخدام السمات تمامًا كما هو موضح في الأمثلة أدناه لكي تعمل بشكل صحيح!
أدوات التخطيط
تطبق display: flex مع flex-direction: row، وتوسّط العناصر أفقياً وعمودياً.
<div flex-row>...</div>
تطبق display: flex مع flex-direction: column، وتوسّط العناصر أفقياً وعمودياً.
<div flex-column>...</div>
توسّط عنصراً داخل حاوية flex الخاصة به (align-self: center; justify-self: center;).
<div flex-row><span center>...</span></div>
أدوات الخلفية
تضبط الخلفية على center، no-repeat، و cover.
<div bg='auto'></div>
تطبق ظل صندوق داخلي مع تدرج خطي، مما يخلق تأثير توهج.
<div glow></div>
أشكال Clip-Path
تطبق هذه السمات أشكالاً هندسية مختلفة باستخدام clip-path.
تقص العنصر على شكل دائرة مثالية.
<div circle></div>
تقص العنصر على شكل مثلث.
<div triangle></div>
تقص العنصر على شكل بيضاوي.
<div ellipse></div>
تضمن أن يكون العنصر مسار قص مربع (inset 0).
<div square></div>
تقص العنصر على شكل مستطيل (بإزاحة 10% من الأعلى/الأسفل).
<div rectangle></div>
تقص العنصر على شكل ماسة.
<div diamond></div>
تقص العنصر على شكل سداسي.
<div hexagon></div>
تقص العنصر على شكل متوازي أضلاع.
<div parallelogram></div>
تقص العنصر على شكل نجمة.
<div star></div>
تقص العنصر على شكل شبه منحرف.
<div trapezoid></div>
تطبق مسار قص معقد ومسنن.
<div sharp></div>
تطبق مسار قص على شكل موجة في الأعلى.
<div wave></div>
تقص العنصر على شكل منزل كلاسيكي.
<div home></div>
تضبط ارتفاع وعرض ثابتين مع نصف قطر حدود ليشبه الهاتف المحمول.
<div mobile></div>
تقص العنصر على شكل شاشة تلفزيون.
<div tv></div>
تقص العنصر على شكل متوازي أضلاع مائل.
<div slope></div>
تقص العنصر على شكل قلب.
<div heart></div>
تطبق مسار قص متقطع ومكسور.
<div broken></div>
الرسوم المتحركة القياسية
تطبق هذه السمات رسومًا متحركة مستمرة مختلفة على العناصر. هذه هي تأثيرات حركة عامة.
تدوّر العنصر باستمرار 360 درجة.
<div spin></div>
تجعل العنصر يرتد عمودياً.
<div bounce></div>
تجعل العنصر ينمو قليلاً ويظهر/يختفي.
<div pulse></div>
تجعل العنصر يتأرجح من جانب إلى آخر.
<div swing></div>
تظهر العنصر تدريجياً أثناء الانزلاق لأعلى.
<div fadein></div>
تقلب العنصر أفقياً.
<div flip></div>
تجعل العنصر يهتز أفقياً.
<div shake></div>
تجعل العنصر ينمو ويتقلص باستمرار.
<div grow></div>
تجعل العنصر يتقلص وينمو باستمرار.
<div shrink></div>
تحرك العنصر أفقياً لليمين واليسار.
<div slide-x></div>
تحرك العنصر عمودياً لأعلى ولأسفل.
<div slide-y></div>
رسوم متحركة لتغيير الألوان
تطبق هذه السمات تغييرات متحركة لألوان الخلفية باستخدام لوحات ألوان محددة مسبقاً.
تطبق رسوم متحركة عامة للون الخلفية (تتغير كل 1 ثانية).
<div coloring></div>
تطبق كل سمة رسوم متحركة محددة للخلفية بثلاثة ألوان. إليك مثال:
<div coloring-1></div>
رسوم متحركة محددة للخلفية بثلاثة ألوان (أخضر، أصفر، برتقالي).
<div coloring-2></div>
رسوم متحركة محددة للخلفية بثلاثة ألوان (أحمر، سماوي، أرجواني فاتح).
<div coloring-3></div>
... وهكذا، لـ `coloring-4` حتى `coloring-50`، لكل منها لوحة ألوان فريدة.
رسوم متحركة للكرات العائمة
تنشئ هذه السمات كرات متوهجة متحركة تطفو عبر العنصر باستخدام عناصر زائفة ::before. يجب أن يكون للعنصر الأب position: relative و overflow: hidden للحصول على أفضل النتائج.
رسوم متحركة لكرة متوهجة بمسار وسرعة محددين.
<div style="position: relative; overflow: hidden; height: 150px; width: 100%;" ball-move-1></div>
رسوم متحركة أخرى لكرة متوهجة بمسار وسرعة مختلفين.
<div style="position: relative; overflow: hidden; height: 150px; width: 100%;" ball-move-2></div>
رسوم متحركة لكرة متوهجة أكبر.
<div style="position: relative; overflow: hidden; height: 150px; width: 100%;" ball-move-3></div>
رسوم متحركة لكرة متوهجة أصغر وأسرع.
<div style="position: relative; overflow: hidden; height: 150px; width: 100%;" ball-move-4></div>
رسوم متحركة لكرة متوهجة كبيرة جداً وبطيئة.
<div style="position: relative; overflow: hidden; height: 150px; width: 100%;" ball-move-5></div>
... وهكذا، لـ `ball-move-6` حتى `ball-move-50`، لكل منها مسارات وأحجام وسرعات مختلفة (بافتراض أن CSS الخاص بها معرف في `float.css`).
رسوم متحركة لتأثيرات خاصة
تطبق هذه السمات تأثيرات بصرية فريدة على العناصر، غالباً ما تستخدم عناصر زائفة أو فلاتر SVG.
تنشئ رسوم متحركة لورق متساقط يشبه قصاصات الأعياد فوق العنصر. يجب أن يكون للعنصر الأب position: relative و overflow: hidden.
<div style="position: relative; overflow: hidden; height: 200px;" birthday-paper></div>
تطبق تأثير إضاءة خفيف ومتحرك على العنصر. يجب أن يكون للعنصر نفسه لون خلفية ليكون التأثير مرئياً. يتطلب position: relative و overflow: hidden.
<div style="height: 150px; background-color: #e3f2fd;" lightfouce></div>
تمنح العنصر مظهراً مرسوماً يدوياً أو تخطيطياً باستخدام فلتر SVG، مع تأثير عند التمرير.
<div handdrawn></div>
أدوات التدوير (Rotate Utilities)
تطبيق دورات محددة للعناصر. تتراوح القيم من rotate='1' إلى rotate='360' للتدوير ثنائي الأبعاد، و rotate-x، rotate-y، rotate-z للتدوير ثلاثي الأبعاد.
تدور العنصر 45 درجة على المحور Z (ثنائي الأبعاد).
<div rotate='45'></div>
تدور العنصر 90 درجة على المحور Z (ثنائي الأبعاد).
<div rotate'90'></div>
لوحات الألوان (Color Palettes)
يوفر إطار عمل لوحات ألوان جاهزة للاستخدام. تطبق هذه السمات مجموعة متناسقة من الألوان، عادةً كخلفية أو لون نص، مصممة لتتناسب جيداً معاً. وهي تختلف عن سمات [color] المحددة التي تطبق لوناً واحداً.
تطبق لوحة ألوان خلفية محددة مسبقاً على العنصر. تمثل كل سمة color-X لون خلفية فريداً ومنسقاً.
<div color-50></div> <div color-5></div>
تطبق لوحة ألوان نص محددة مسبقاً على نص العنصر. تمثل كل سمة tcolor-X لون نص فريداً ومنسقاً مصمماً ليتناسب جيداً مع الخلفيات المختلفة.
<p tcolor-1>نص بلوحة 1</p> <span tcolor-5>نص بلوحة 5</span>
تأثيرات التمرير (Hover Effects)
تطبق هذه السمات تأثيراً محدداً عند التمرير فوق العنصر.
تكبر العنصر قليلاً عند التمرير.
<div hover-1></div>
تصغر العنصر قليلاً عند التمرير.
<div hover-2></div>
تدور العنصر 8 درجات عند التمرير.
<div hover-3></div>
تطبق تأثير انبثاق الظل عند التمرير.
<div hover-4></div>
تطبق تأثير توهج عند التمرير.
<div hover-5></div>
تغير لون الحدود عند التمرير.
<div hover-6></div>
تطبق خلفية متدرجة عند التمرير.
<div hover-7></div>
تطبق تأثير تمويه (ضبابية) عند التمرير.
<div hover-8></div>
تحرف العنصر عند التمرير.
<div hover-9></div>
تقلل العتامة عند التمرير.
<div hover-10></div>
تطبق رسومًا متحركة نبضية عند التمرير.
<div hover-11></div>
تطبق رسومًا متحركة متمايلة عند التمرير.
<div hover-12></div>
تطبق رسومًا متحركة ارتدادية عند التمرير.
<div hover-13></div>
تقلب العنصر عند التمرير.
<div hover-14></div>
تحرك العنصر لليمين عند التمرير.
<div hover-15></div>
تحرك العنصر لليسار عند التمرير.
<div hover-16></div>
تحرك العنصر لأعلى عند التمرير.
<div hover-17></div>
تحرك العنصر لأسفل عند التمرير.
<div hover-18></div>
تغير لون النص عند التمرير.
<div hover-19></div>
تطبق ظلاً داخليًا عند التمرير.
<div hover-20></div>
تغير نصف قطر الحدود إلى 50px عند التمرير.
<div hover-21></div>
تطبق فلتر تدرج رمادي عند التمرير.
<div hover-22></div>
تزيد التشبع عند التمرير.
<div hover-23></div>
تدور Hue بمقدار 90 درجة عند التمرير.
<div hover-24></div>
تطبق ظلاً نيونياً عند التمرير.
<div hover-25></div>
تغير الحدود إلى متقطعة عند التمرير.
<div hover-26></div>
تغير الحدود إلى منقطة عند التمرير.
<div hover-27></div>
تطبق تأثير زجاجي خفيف عند التمرير.
<div hover-28></div>
تغير لون الظل عند التمرير.
<div hover-29></div>
تأثيرات تحويل الشكل عند التمرير (Morph Hover Effects)
تسمح هذه السمات بتحول مسار قص العنصر بسلاسة إلى شكل مختلف عند التمرير.
عند التمرير، يتحول العنصر إلى شكل نجمة.
<div morph-hover="star" circle></div>
عند التمرير، يتحول العنصر إلى شكل دائرة.
<div morph-hover="circle" square></div>
عند التمرير، يتحول العنصر إلى شكل سداسي.
<div morph-hover="hexagon" triangle></div>
عند التمرير، يتحول العنصر إلى شكل ماسة.
<div morph-hover="diamond" ellipse></div>
التدرجات اللونية (Gradients)
تطبيق تدرجات خطية حديثة كألوان خلفية.
تدرج من #
<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}` بألوان محددة مسبقًا مثل `purple`، `blue`، `red`، إلخ.
<button btn='purple'>أرجواني</button> <button btn='green'>أخضر</button>
ألوان الخلفية
تعيين ألوان الخلفية باستخدام محددات السمات للألوان الأساسية والتدرجات المختلفة (على سبيل المثال، red، red-500).
الألوان الأساسية
تضبط الخلفية إلى أحمر نابض بالحياة.
<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>
تضبط الخلفية إلى أرجواني/رمادي فاتح جداً.
<div light></div>
تضبط الخلفية إلى رمادي/أزرق داكن.
<div dark></div>
تدرجات الألوان (على سبيل المثال، `red-100` إلى `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).
ألوان النصوص الأساسية
تضبط لون النص إلى أحمر نابض بالحياة.
<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-100` إلى `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>