{ "$schema": "../../schemas/code-crispies-module-schema.json", "id": "html-elements", "title": "HTML Block & Inline", "description": "فهم الفرق الأساسي بين عناصر الحاويات (الكتلية) والعناصر السطرية", "mode": "html", "difficulty": "beginner", "lessons": [ { "id": "block-vs-inline-intro", "title": "العناصر الكتلية vs السطرية", "description": "تنقسم عناصر HTML إلى فئتين رئيسيتين:

العناصر الكتلية (الحاويات) تبدأ في سطر جديد وتأخذ العرض الكامل. أمثلة: <div>, <p>, <h1>, <section>

العناصر السطرية تتدفق داخل النص وتأخذ العرض المطلوب فقط. أمثلة: <span>, <a>, <strong>, <em>", "task": "أحط الكلمة مهمة بوسوم <strong> لجعلها عريضة. لاحظ كيف يأخذ الفقرة (كتلي) العرض الكامل بينما strong (سطري) يتدفق مع النص.", "previewHTML": "", "previewBaseCSS": "body { font-family: system-ui, sans-serif; padding: 20px; } p { background: #e3f2fd; padding: 10px; } strong { background: #ffecb3; }", "sandboxCSS": "", "initialCode": "

هذه فقرة تحتوي على كلمة مهمة.

", "solution": "

هذه فقرة تحتوي على كلمة مهمة.

", "previewContainer": "preview-area", "validations": [ { "type": "element_exists", "value": "p", "message": "أضف عنصر فقرة <p>" }, { "type": "parent_child", "value": { "parent": "p", "child": "strong" }, "message": "أحط الكلمة مهمة بوسوم <strong>" } ] }, { "id": "semantic-containers", "title": "الوسوم الدلالية", "description": "يستخدم HTML الحديث حاويات دلالية تصف محتواها:

<header> - رأس الصفحة أو القسم
<nav> - روابط التنقل
<main> - منطقة المحتوى الرئيسي
<section> - تجميع موضوعي
<article> - محتوى مستقل
<footer> - تذييل الصفحة أو القسم", "task": "أنشئ هيكل صفحة أساسي:
1. أضف <header> مع <h1> يحتوي على النص موقعي
2. أضف عنصر <main> مع فقرة تقول مرحباً بك في موقعي!
3. أضف <footer> مع فقرة تقول Copyright 2026", "previewHTML": "", "previewBaseCSS": "body { font-family: system-ui; margin: 0; } header { background: #1976d2; color: white; padding: 15px; } main { padding: 20px; min-height: 100px; } footer { background: #424242; color: white; padding: 10px; text-align: center; }", "sandboxCSS": "", "initialCode": "", "solution": "
\n

موقعي

\n
\n
\n

مرحباً بك في موقعي!

\n
\n", "previewContainer": "preview-area", "validations": [ { "type": "element_exists", "value": "header", "message": "أضف عنصر <header>" }, { "type": "element_exists", "value": "main", "message": "أضف عنصر <main>" }, { "type": "element_exists", "value": "footer", "message": "أضف عنصر <footer>" }, { "type": "parent_child", "value": { "parent": "header", "child": "h1" }, "message": "أضف عنوان <h1> داخل header" } ] } ] }