📋 محتويات الصفحة
📖 الوصف
Bulma هو إطار CSS حر ومفتوح المصدر يعتمد على Flexbox. ما يميزه أنه CSS فقط - لا JavaScript! هذا يجعله خفيفاً وبسيطاً، لكن يعني أن المكونات التفاعلية (Modals, Dropdowns) تحتاج JavaScript خاص بك. يستخدم Bulma classes دلالية واضحة (مثل `button`, `card`, `hero`) وسهل التعلم. يدعم Sass للتخصيص المتقدم.
🎯 يستخدم في
مجالات استخدام هذه الأداة
مواقع ستاتيكية (Static Sites)
مشاريع تحتاج CSS فقط بدون JS
Rapid Prototyping
مطورين يفضلون التحرك الكامل على JavaScript
مواقع بسيطة إلى متوسطة التعقيد
✨ المميزات
أبرز مميزات هذه الأداة
CSS فقط - لا JavaScript (خفيف جداً)
Flexbox-based - تخطيط حديث وقوي
Classes دلالية وواضحة
Modular - استخدم ما تحتاج فقط
Responsive مع modifiers (مثل `is-mobile`
`is-tablet`)
Sass Variables للتخصيص
Documentation ممتازة
مجتمع نشط وإضافات كثيرة
⚠️ العيوب
نقاط يجب مراعاتها
لا JavaScript - تحتاج كتابة كل التفاعلات بنفسك
مكونات تفاعلية (Modals
Dropdowns) تحتاج عمل إضافي
مجتمع أصغر من Bootstrap
أقل Components من Bootstrap
لا Icons مدمج
لا RTL support افتراضي (يمكن إضافته)
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
<!-- تحميل Bulma -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css">
<!-- Hero Section -->
<section class="hero is-primary is-bold">
<div class="hero-body">
<div class="container">
<h1 class="title">مرحباً بالعالم</h1>
<h2 class="subtitle">وصف فرعي</h2>
</div>
</div>
</section>
<!-- Card -->
<div class="card">
<div class="card-image">
<figure class="image is-4by3">
<img src="image.jpg" alt="صورة">
</figure>
</div>
<div class="card-content">
<div class="media">
<div class="media-left">
<figure class="image is-48x48">
<img src="avatar.jpg" alt="صورة شخصية">
</figure>
</div>
<div class="media-content">
<p class="title is-4">أحمد محمد</p>
<p class="subtitle is-6">@ahmed</p>
</div>
</div>
<div class="content">
محتوى البطاقة هنا
<br>
<time datetime="2024-1-1">1 يناير</time>
</div>
</div>
<footer class="card-footer">
<a href="#" class="card-footer-item">حفظ</a>
<a href="#" class="card-footer-item">تعديل</a>
<a href="#" class="card-footer-item">حذف</a>
</footer>
</div>
<!-- Columns (Grid) -->
<div class="columns">
<div class="column is-4">
<div class="box">العمود 1</div>
</div>
<div class="column is-4">
<div class="box">العمود 2</div>
</div>
<div class="column is-4">
<div class="box">العمود 3</div>
</div>
</div>
<!-- Buttons -->
<button class="button is-primary">زر أساسي</button>
<button class="button is-link">زر رابط</button>
<button class="button is-info">زر معلومات</button>
<button class="button is-success">زر نجاح</button>
<button class="button is-warning">زر تحذير</button>
<button class="button is-danger">زر خطر</button>
<button class="button is-primary is-large">زر كبير</button>
<button class="button is-primary is-outlined">مخطط</button>
<button class="button is-primary is-loading">جاري التحميل</button>
<!-- Modal (لازم JavaScript) -->
<div class="modal" id="myModal">
<div class="modal-background"></div>
<div class="modal-card">
<header class="modal-card-head">
<p class="modal-card-title">عنوان</p>
<button class="delete" aria-label="close"></button>
</header>
<section class="modal-card-body">
<p>محتوى النافذة</p>
</section>
<footer class="modal-card-foot">
<button class="button is-success">حفظ</button>
<button class="button">إلغاء</button>
</footer>
</div>
</div>
<script>
// JavaScript للتحكم بـModal
document.querySelectorAll('.modal-background, .delete').forEach(el => {
el.addEventListener('click', () => {
el.closest('.modal').classList.remove('is-active');
});
});
</script>
📚 أدوات أخرى في CSS
قد يعجبك أيضاً
Bootstrap
⭐إطار CSS للمكونات الجاهزة (Component-Based CSS Framework)
Foundation
إطار CSS متقدم للشركات (Advanced CSS Framework for Enterprise)
Pico CSS
إطار CSS خفيف وبسيط بدون Classes (Classless CSS Framework)
Tailwind CSS
⭐إطار CSS يعتمد على Utility Classes (Utility-First CSS Framework)