.container {
max-width: 1200px;
margin: 20px auto;
background: rgba(255, 255, 255, 0.9);
padding: 30px;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
backdrop-filter: blur(10px);
}
h1 {
text-align: center;
color: #2575fc;
font-size: 2.5rem;
margin-bottom: 30px;
}
/* شريط البحث */
.search-bar {
margin-bottom: 30px;
text-align: center;
}
.search-bar input {
width: 100%;
max-width: 500px;
padding: 10px 20px;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 25px;
font-size: 1rem;
background: rgba(255, 255, 255, 0.8);
transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.search-bar input:focus {
border-color: #2575fc;
box-shadow: 0 0 10px rgba(37, 117, 252, 0.3);
outline: none;
}
/* بطاقات المواقع */
.card-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 20px;
margin-bottom: 40px;
}
.card {
background: white;
padding: 20px;
border-radius: 10px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.card h3 {
margin: 0 0 10px;
color: #2575fc;
}
.card p {
margin: 0 0 15px;
color: #666;
}
.card a {
display: inline-block;
padding: 10px 20px;
background: #2575fc;
color: white;
border-radius: 5px;
text-decoration: none;
transition: background 0.3s ease;
}
.card a:hover {
background: #1a5bbf;
}
/* قسم التعليقات */
.comments-section {
margin-top: 50px;
padding: 20px;
background: white;
border-radius: 10px;
}
.comment-form {
margin-bottom: 30px;
}
.comment-form input,
.comment-form textarea {
width: 100%;
padding: 10px;
margin: 10px 0;
border: 1px solid #ddd;
border-radius: 5px;
}
.comment-form button {
padding: 10px 20px;
background: #2575fc;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background 0.3s ease;
}
.comment-form button:hover {
background: #1a5bbf;
}
.comment-list {
max-height: 400px;
overflow-y: auto;
}
.comment {
background: #f8f9fa;
padding: 15px;
border-radius: 5px;
margin-bottom: 15px;
animation: fadeIn 0.5s ease;
}
.comment strong {
color: #2575fc;
}
.comment small {
display: block;
margin-top: 5px;
color: #888;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
</style>
<!-- شريط البحث -->
<div class="search-bar">
<input type="text" id="searchInput" placeholder="ابحث عن موقع...">
</div>
<!-- قائمة المواقع (20 موقعًا) -->
<div class="card-container" id="cardContainer">
<!-- المواقع المضافة -->
<div class="card" data-category="web">
<h3>CodePen</h3>
<p>أشهر منصة لتجربة أكواد الويب مباشرة.</p>
<a href="https://codepen.io" target="_blank">زيارة الموقع</a>
</div>
<div class="card" data-category="python">
<h3>Python Tutor</h3>
<p>تصور تنفيذ كود البايثون خطوة بخطوة.</p>
<a href="https://pythontutor.com" target="_blank">زيارة الموقع</a>
</div>
<!-- ... إضافة 18 موقعًا أخرى بنفس النمط ... -->
</div>
<!-- قسم التعليقات -->
<div class="comments-section">
<h2>آراء المستخدمين 💬</h2>
<form class="comment-form" id="commentForm">
<input type="text" placeholder="اسمك" required>
<textarea placeholder="تعليقك..." rows="4" required></textarea>
<button type="submit">إرسال التعليق</button>
</form>
<div class="comment-list" id="commentList">
<!-- التعليقات تظهر هنا -->
</div>
</div>
</div>
<script>
// وظيفة البحث
const searchInput = document.getElementById('searchInput');
const cards = document.querySelectorAll('.card');
searchInput.addEventListener('input', () => {
const searchTerm = searchInput.value.toLowerCase();
cards.forEach(card => {
const title = card.querySelector('h3').textContent.toLowerCase();
const description = card.querySelector('p').textContent.toLowerCase();
if (title.includes(searchTerm) || description.includes(searchTerm)) {
card.style.display = 'block';
} else {
card.style.display = 'none';
}
});
});
// إدارة التعليقات
const commentForm = document.getElementById('commentForm');
const commentList = document.getElementById('commentList');
commentForm.addEventListener('submit', (e) => {
e.preventDefault();
const name = e.target[0].value;
const text = e.target[1].value;
const comment = document.createElement('div');
comment.className = 'comment';
comment.innerHTML = `
<strong>${name}</strong>
<p>${text}</p>
<small>${new Date().toLocaleString()}</small>
`;
commentList.prepend(comment);
e.target.reset();
});
</script>