📚 مكتبة القوالب التعليمية نسخة مطورة
1. بطاقة تعريف حديثة
مطور واجهات
بطاقة تعريف أنيقة وعملية
<div class="card modern-card"> <img src="https://placekitten.com/600/240" alt="صورة"> <h3>مطور واجهات</h3> <p>بطاقة تعريف أنيقة وعملية</p> <button class="btn">تواصل الآن</button> </div>
.card.modern-card{background:#fff;border:1px solid #e7eaf0;border-radius:12px;overflow:hidden;text-align:center} .card.modern-card img{width:100%;display:block} .card.modern-card h3{margin:14px 0 6px} .card.modern-card p{margin:0 0 12px;color:#6b7280} .card.modern-card .btn{margin-bottom:14px}
// لا يوجد جافاسكربت هنا
2. زر أنيميشن بسيط
<button class="animated-btn">اضغطني</button>
.animated-btn{padding:10px 18px;border:none;background:#e11d48;color:#fff;border-radius:8px;transition:transform .2s} .animated-btn:hover{transform:translateY(-1px)}
// لا يوجد جافاسكربت
3. شريط تنقل
<div class="navbar"> <a href="#">الرئيسية</a><a href="#">الدروس</a><a href="#">حول</a><a href="#">تواصل</a> </div>
.navbar{background:#1f2937;padding:10px;border-radius:10px;display:flex;gap:12px;flex-wrap:wrap} .navbar a{color:#fff;text-decoration:none;padding:6px 10px;border-radius:8px} .navbar a:hover{background:#111827}
4. مودال
<button class="btn" onclick="document.getElementById('modal').style.display='flex'">افتح المودال</button> <div class="modal" id="modal" onclick="this.style.display='none'"> <div class="modal-content" onclick="event.stopPropagation()">...</div> </div>
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);justify-content:center;align-items:center} .modal-content{background:#fff;padding:20px;border-radius:12px;width:min(92vw,360px);text-align:center}
5. أكوردين
<button class="btn" onclick="toggleAccordion(this)">اضغط لعرض المحتوى</button> <div class="accordion-content" style="display:none;">...</div>
.accordion-content{margin-top:10px;padding:10px;background:#f3f4f6;border-radius:8px;border:1px solid #e7eaf0}
function toggleAccordion(btn){ const c = btn.nextElementSibling; c.style.display = c.style.display === 'none' ? 'block' : 'none'; }
6. تبويبات
محتوى 1
<button class="btn" onclick="showTab('tab1')">محتوى 1</button> <button class="btn secondary" onclick="showTab('tab2')">محتوى 2</button> <div id="tab1" class="tab-content">...</div> <div id="tab2" class="tab-content" style="display:none;">...</div>
.tab-content{padding:10px;background:#f3f4f6;margin-top:10px;border-radius:8px;border:1px solid #e7eaf0}
function showTab(id){ document.querySelectorAll('.tab-content').forEach(e => e.style.display='none'); document.getElementById(id).style.display='block'; }
7. Tooltip حديث
؟معلومة مساعدة
<div class="tooltip-wrapper"> <span class="tooltip-target">؟</span> <span class="tooltip-new">معلومة مساعدة</span> </div>
.tooltip-wrapper{position:relative;display:inline-block;font-size:18px;line-height:1} .tooltip-target{background:#0ea5e9;color:#fff;border-radius:50%;padding:4px 10px;cursor:help} .tooltip-new{visibility:hidden;position:absolute;bottom:125%;right:0;background:#111827;color:#fff;padding:6px 10px;border-radius:6px;white-space:nowrap;opacity:0;transition:.2s;transform:translateY(5px)} .tooltip-wrapper:hover .tooltip-new{visibility:visible;opacity:1;transform:translateY(0)}
8. Loader
<div class="loader"></div>
.loader{border:6px solid #f3f3f3;border-top:6px solid #0ea5e9;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:auto} @keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
9. Flip Card
🟢 أمامي
🔄 خلفي
<div class="flip-card"> <div class="flip-inner"> <div class="flip-front">🟢 أمامي</div> <div class="flip-back">🔄 خلفي</div> </div> </div>
.flip-card{perspective:1000px;width:220px;height:130px;margin:auto} .flip-inner{position:relative;width:100%;height:100%;transition:transform .6s;transform-style:preserve-3d;border-radius:10px;overflow:hidden;border:1px solid #e7eaf0} .flip-card:hover .flip-inner{transform:rotateY(180deg)} .flip-front,.flip-back{position:absolute;inset:0;backface-visibility:hidden;color:#fff;display:grid;place-items:center;font-size:18px} .flip-front{background:linear-gradient(45deg,#0ea5e9,#2563eb)} .flip-back{background:linear-gradient(45deg,#111827,#374151);transform:rotateY(180deg)}
10. زر متدرج
<button class="glow-btn">اضغطني</button>
.glow-btn{padding:10px 18px;border:none;border-radius:999px;background:linear-gradient(90deg,#3b82f6,#0ea5e9);color:#fff;cursor:pointer}
11. شبكة (Grid)
1
2
3
4
<div class="grid-container"> <div class="grid-item">1</div> <div class="grid-item">2</div> <div class="grid-item">3</div> <div class="grid-item">4</div> </div>
.grid-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px} .grid-item{background:#0ea5e9;color:#fff;padding:18px;text-align:center;border-radius:10px}
12. نموذج تواصل
<form onsubmit="event.preventDefault()"> <input type="text" placeholder="الاسم" required> <input type="email" placeholder="البريد الإلكتروني" required> <textarea placeholder="رسالتك" required></textarea> <button class="btn" type="submit">إرسال</button> </form>
form input,form textarea{width:100%;padding:10px;margin-bottom:10px;border:1px solid #e7eaf0;border-radius:10px;background:#fff} form textarea{min-height:110px} form .btn{background:#0ea5e9}
13. بطاقة بديل اجتماعي
مصمم UX/UI
متحمس لبناء تجارب مستخدم ممتازة
<div class="card modern-card"> <img src="https://placekitten.com/600/240" alt="صورة"> <h3>مصمم UX/UI</h3> <p>متحمس لبناء تجارب مستخدم ممتازة</p> <div class="social-icons"><a href="#">🐦</a><a href="#">💼</a><a href="#">📷</a></div> </div>
.card .social-icons{display:flex;justify-content:center;gap:10px;margin:0 0 12px} .social-icons a{color:#0ea5e9;font-size:20px;text-decoration:none}
14. اقتباس بسيط
“التعليم هو أقوى سلاح يمكنك استخدامه لتغيير العالم.”
<blockquote class="quote-card"> "التعليم هو أقوى سلاح يمكنك استخدامه لتغيير العالم." <footer>— نيلسون مانديلا</footer> </blockquote>
.quote-card{background:#fff;padding:18px;border-radius:12px;border-inline-start:6px solid #0ea5e9;border:1px solid #e7eaf0} .quote-card footer{margin-top:8px;color:#6b7280}
15. عداد زمني تنازلي
تحميل العداد…
<div id="countdown" class="countdown">...</div>
.countdown{font-size:28px;background:#fff;display:inline-block;padding:16px 28px;border-radius:12px;border:1px solid #e7eaf0;box-shadow:0 2px 10px rgba(0,0,0,.06);color:#7c3aed}
const endTime = Date.now() + 24*60*60*1000; const countdown = document.getElementById('countdown'); function updateCountdown(){ const d = endTime - Date.now(); if (d<0){ countdown.textContent = "انتهى الوقت!"; clearInterval(t); return; } const days=Math.floor(d/86400000),hours=Math.floor(d%86400000/3600000),minutes=Math.floor(d%3600000/60000),seconds=Math.floor(d%60000/1000); countdown.textContent = `${days} يوم ${hours} ساعة ${minutes} دقيقة ${seconds} ثانية`; } const t=setInterval(updateCountdown,1000); updateCountdown();
16. بطاقات KPI مصغّرة
1,245
زائر/اليوم
3.2%
تحويل
+84
مشترك جديد
4.7★
تقييم
<div class="kpi-wrap"> <div class="kpi"><div class="val">1,245</div><div class="label">زائر/اليوم</div></div> <div class="kpi"><div class="val">3.2%</div><div class="label">تحويل</div></div> <div class="kpi"><div class="val">+84</div><div class="label">مشترك جديد</div></div> <div class="kpi"><div class="val">4.7★</div><div class="label">تقييم</div></div> </div>
.kpi-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px} .kpi{background:#fff;border:1px solid #e7eaf0;border-radius:10px;padding:12px;text-align:center} .kpi .val{font-size:22px;font-weight:700} .kpi .label{color:#6b7280;font-size:13px}
17. شريط خطوات (Stepper)
1
المعلومات
2
العنوان
3
الدفع
4
إتمام
<div class="stepper"> <div class="step active"><div class="dot">1</div><div class="name">المعلومات</div></div> <div class="step active"><div class="dot">2</div><div class="name">العنوان</div></div> <div class="step"><div class="dot">3</div><div class="name">الدفع</div></div> <div class="step"><div class="dot">4</div><div class="name">إتمام</div></div> </div>
.stepper{display:flex;gap:12px;align-items:center;flex-wrap:wrap} .step{display:flex;align-items:center;gap:8px} .step .dot{width:26px;height:26px;border-radius:50%;background:#e7eaf0;color:#374151;display:grid;place-items:center;font-size:13px} .step.active .dot{background:#0ea5e9;color:#fff} .step .name{font-size:14px} .step + .step::before{content:"";width:30px;height:2px;background:#e7eaf0;display:inline-block}
18. إشعار (Toast) بسيط
تم حفظ الإعدادات
<button class="btn" onclick="showToast()">أظهر الإشعار</button> <div id="toast" class="toast">تم حفظ الإعدادات <button class="close" onclick="hideToast()">✕</button></div>
.toast{position:fixed;bottom:18px;inset-inline:18px auto;background:#111827;color:#fff;padding:12px 14px;border-radius:10px;display:none;box-shadow:0 2px 10px rgba(0,0,0,.06);z-index:1000} .toast.show{display:block} .toast .close{background:transparent;border:none;color:#fff;font-size:16px;cursor:pointer;float:inline-end}
function showToast(){ const el=document.getElementById('toast'); el.classList.add('show'); setTimeout(()=>el.classList.remove('show'),3000); } function hideToast(){ document.getElementById('toast').classList.remove('show'); }
19. بطاقات أسعار بسيطة
أساسي
49 ر.س
- 1 موقع
- 5 قوالب
- دعم عبر البريد
احترافي
99 ر.س
- 5 مواقع
- 20 قالب
- دعم أولوية
شركة
199 ر.س
- غير محدود
- كل القوالب
- مدير حساب
<div class="pricing">... بطاقات </div>
.pricing{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px} .plan{background:#fff;border:1px solid #e7eaf0;border-radius:12px;padding:16px;text-align:center} .plan .price{font-size:28px;font-weight:800;margin:4px 0} .plan ul{list-style:none;padding:0;margin:10px 0;color:#6b7280;text-align:start} .plan li{margin:6px 0} .plan .btn{background:#0ea5e9} .plan.pop{border-color:#0ea5e9}
20. FAQ بدون JS (details/summary)
كيف أعدل الألوان؟
غيّر المتغيرات في :root مثل --accent
.
هل القوالب متجاوبة؟
نعم، أغلبها يستخدم Grid/Flex لاستجابة سريعة.
هل يوجد حركات ثقيلة؟
لا، أزلنا الخلفيات المتحركة والblur والmesh.
<div class="faq"> <details><summary>سؤال</summary><p>إجابة</p></details> </div>
.faq details{border:1px solid #e7eaf0;border-radius:10px;padding:10px;background:#fff} .faq details + details{margin-top:8px} .faq summary{cursor:pointer;font-weight:600}