ما هو الحرف؟
📦 النحو الواضح
✨ The Prompt Phrase
كل ~لفظ~ لا يظهر معناه كاملا إلا ~مع غيره~ وهذا هو الحرف
💻 Code Preview
📦 All-in-One Code
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ما هو الحرف؟ - Interactive Tutorial</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Amiri:wght@400;700&family=Tajawal:wght@300;400;500;700;800&display=swap" rel="stylesheet">
<style>
/* =============================================
CSS CUSTOM PROPERTIES
============================================= */
:root {
--primary: #a855f7;
--primary-dark: #9333ea;
--secondary: #3b82f6;
--accent: #14b8a6;
--accent-light: #2dd4bf;
--warning: #f59e0b;
--danger: #ef4444;
--success: #22c55e;
--bg-dark: #0c0a1d;
--bg-darker: #06050f;
--bg-card: rgba(26, 20, 54, 0.85);
--bg-glass: rgba(255, 255, 255, 0.04);
--text-primary: #f1f5f9;
--text-secondary: #a1a1aa;
--text-muted: #71717a;
--border-color: rgba(168, 85, 247, 0.2);
--glow-primary: rgba(168, 85, 247, 0.35);
--glow-accent: rgba(20, 184, 166, 0.35);
--radius-sm: 8px;
--radius-md: 14px;
--radius-lg: 22px;
--radius-xl: 30px;
--radius-full: 9999px;
--shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.25);
--shadow-md: 0 8px 30px rgba(0, 0, 0, 0.35);
--shadow-lg: 0 20px 50px rgba(0, 0, 0, 0.45);
--shadow-glow: 0 0 50px var(--glow-primary);
--transition-fast: 0.15s ease;
--transition-normal: 0.3s ease;
--transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
--font-arabic: 'Amiri', serif;
--font-ui: 'Tajawal', sans-serif;
}
/* =============================================
RESET & BASE
============================================= */
*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
font-size: 16px;
}
body {
font-family: var(--font-ui);
background: var(--bg-dark);
color: var(--text-primary);
line-height: 1.85;
min-height: 100vh;
overflow-x: hidden;
}
/* Animated gradient background */
body::before {
content: '';
position: fixed;
inset: 0;
background:
radial-gradient(ellipse 70% 50% at 15% 20%, rgba(168, 85, 247, 0.12), transparent),
radial-gradient(ellipse 60% 45% at 85% 75%, rgba(59, 130, 246, 0.1), transparent),
radial-gradient(ellipse 50% 35% at 50% 50%, rgba(20, 184, 166, 0.08), transparent);
pointer-events: none;
z-index: -1;
animation: bgFloat 20s ease-in-out infinite alternate;
}
@keyframes bgFloat {
0% { opacity: 1; transform: scale(1); }
100% { opacity: 0.85; transform: scale(1.05); }
}
/* =============================================
TYPOGRAPHY
============================================= */
h1, h2, h3, h4, h5, h6 {
font-family: var(--font-arabic);
font-weight: 700;
line-height: 1.4;
color: var(--text-primary);
}
h1 { font-size: clamp(2.2rem, 6vw, 4rem); }
h2 { font-size: clamp(1.6rem, 4.5vw, 2.8rem); }
h3 { font-size: clamp(1.3rem, 3.5vw, 1.9rem); }
h4 { font-size: clamp(1.1rem, 2.5vw, 1.5rem); }
p {
color: var(--text-secondary);
margin-bottom: 1rem;
}
a {
color: var(--accent);
text-decoration: none;
transition: var(--transition-fast);
}
a:hover {
color: var(--accent-light);
}
.arabic-large {
font-family: var(--font-arabic);
font-size: 1.4em;
line-height: 2.3;
}
/* =============================================
UTILITIES
============================================= */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 1.5rem;
}
.text-center { text-align: center; }
.gradient-text {
background: linear-gradient(135deg, var(--primary), var(--secondary), var(--accent));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* =============================================
GLASS CARD
============================================= */
.glass-card {
background: var(--bg-glass);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid var(--border-color);
border-radius: var(--radius-lg);
padding: 2rem;
transition: var(--transition-normal);
}
.glass-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-md), var(--shadow-glow);
border-color: rgba(168, 85, 247, 0.4);
}
/* =============================================
NAVIGATION
============================================= */
.navbar {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
background: rgba(12, 10, 29, 0.92);
backdrop-filter: blur(15px);
border-bottom: 1px solid var(--border-color);
padding: 0.8rem 0;
}
.nav-content {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 1rem;
}
.nav-logo {
font-family: var(--font-arabic);
font-size: 1.5rem;
font-weight: 700;
background: linear-gradient(135deg, var(--primary), var(--accent));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
display: flex;
align-items: center;
gap: 0.5rem;
}
.nav-links {
display: flex;
gap: 0.5rem;
list-style: none;
flex-wrap: wrap;
}
.nav-links a {
color: var(--text-secondary);
padding: 0.5rem 1rem;
border-radius: var(--radius-sm);
font-size: 0.9rem;
transition: var(--transition-fast);
}
.nav-links a:hover {
color: var(--text-primary);
background: var(--bg-glass);
}
/* =============================================
HERO SECTION
============================================= */
.hero {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 7rem 1.5rem 5rem;
position: relative;
overflow: hidden;
}
.hero-content {
text-align: center;
max-width: 1000px;
animation: heroReveal 1.2s ease-out;
}
@keyframes heroReveal {
from {
opacity: 0;
transform: translateY(50px) scale(0.95);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.hero-badge {
display: inline-flex;
align-items: center;
gap: 0.6rem;
background: var(--bg-glass);
border: 1px solid var(--border-color);
border-radius: var(--radius-full);
padding: 0.7rem 1.6rem;
font-size: 0.95rem;
color: var(--text-secondary);
margin-bottom: 2rem;
animation: badgeGlow 3s ease-in-out infinite;
}
@keyframes badgeGlow {
0%, 100% { box-shadow: 0 0 0 0 var(--glow-primary); }
50% { box-shadow: 0 0 0 15px transparent; }
}
.hero-title {
margin-bottom: 1.5rem;
text-shadow: 0 0 80px var(--glow-primary);
}
.hero-subtitle {
font-size: 1.25rem;
color: var(--text-secondary);
margin-bottom: 2rem;
max-width: 700px;
margin-left: auto;
margin-right: auto;
}
/* Main phrase box */
.phrase-box {
background: linear-gradient(135deg, rgba(168, 85, 247, 0.1), rgba(59, 130, 246, 0.1));
border: 2px solid var(--border-color);
border-radius: var(--radius-xl);
padding: 3rem;
margin: 2.5rem 0;
position: relative;
overflow: hidden;
}
.phrase-box::before {
content: '❝';
position: absolute;
top: -30px;
right: 30px;
font-size: 8rem;
opacity: 0.06;
color: var(--primary);
}
.phrase-box::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, var(--primary), var(--secondary), var(--accent));
border-radius: 0 0 var(--radius-xl) var(--radius-xl);
}
.phrase-text {
font-family: var(--font-arabic);
font-size: clamp(1.2rem, 3vw, 1.8rem);
line-height: 2.5;
color: var(--text-primary);
}
/* Highlighted terms */
.term {
display: inline-block;
padding: 0.2rem 0.9rem;
margin: 0.2rem;
border-radius: var(--radius-sm);
font-weight: 700;
transition: var(--transition-normal);
cursor: default;
}
.term:hover {
transform: scale(1.1) rotate(-2deg);
}
.term-word {
background: rgba(168, 85, 247, 0.2);
color: var(--primary);
border: 1px solid rgba(168, 85, 247, 0.4);
}
.term-dependent {
background: rgba(20, 184, 166, 0.2);
color: var(--accent);
border: 1px solid rgba(20, 184, 166, 0.4);
}
.term-harf {
background: rgba(59, 130, 246, 0.2);
color: var(--secondary);
border: 1px solid rgba(59, 130, 246, 0.4);
}
/* Floating decorations */
.floating-shapes {
position: absolute;
inset: 0;
pointer-events: none;
overflow: hidden;
}
.shape {
position: absolute;
font-size: 2.5rem;
opacity: 0.2;
animation: shapeFloat 10s ease-in-out infinite;
}
.shape:nth-child(1) { top: 12%; left: 8%; animation-delay: 0s; }
.shape:nth-child(2) { top: 22%; right: 10%; animation-delay: 2s; }
.shape:nth-child(3) { bottom: 30%; left: 12%; animation-delay: 4s; }
.shape:nth-child(4) { bottom: 18%; right: 8%; animation-delay: 1s; }
.shape:nth-child(5) { top: 50%; left: 4%; animation-delay: 3s; }
.shape:nth-child(6) { top: 40%; right: 4%; animation-delay: 5s; }
@keyframes shapeFloat {
0%, 100% { transform: translateY(0) rotate(0deg); }
33% { transform: translateY(-20px) rotate(10deg); }
66% { transform: translateY(10px) rotate(-5deg); }
}
/* Stats */
.hero-stats {
display: flex;
justify-content: center;
gap: 3.5rem;
margin-top: 3rem;
flex-wrap: wrap;
}
.stat {
text-align: center;
}
.stat-value {
font-size: 3rem;
font-weight: 800;
background: linear-gradient(135deg, var(--primary), var(--accent));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stat-label {
font-size: 0.9rem;
color: var(--text-muted);
margin-top: 0.25rem;
}
/* =============================================
SECTIONS
============================================= */
.section {
padding: 5.5rem 0;
position: relative;
}
.section-header {
text-align: center;
margin-bottom: 3.5rem;
}
.section-icon {
font-size: 4rem;
display: block;
margin-bottom: 1rem;
animation: iconPop 2.5s ease-in-out infinite;
}
@keyframes iconPop {
0%, 100% { transform: translateY(0) scale(1); }
50% { transform: translateY(-15px) scale(1.1); }
}
.section-title {
margin-bottom: 0.5rem;
}
.section-subtitle {
color: var(--text-muted);
font-size: 1.15rem;
}
/* =============================================
CONCEPT CARDS
============================================= */
.concepts-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.75rem;
}
.concept-card {
background: var(--bg-glass);
border: 1px solid var(--border-color);
border-radius: var(--radius-lg);
padding: 2.25rem;
text-align: center;
position: relative;
overflow: hidden;
transition: var(--transition-normal);
}
.concept-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 5px;
background: linear-gradient(90deg, var(--primary), var(--accent));
transform: scaleX(0);
transform-origin: right;
transition: var(--transition-normal);
}
.concept-card:hover::before {
transform: scaleX(1);
transform-origin: left;
}
.concept-card:hover {
transform: translateY(-10px) scale(1.02);
box-shadow: var(--shadow-lg), var(--shadow-glow);
border-color: var(--primary);
}
.concept-icon {
font-size: 3.5rem;
margin-bottom: 1.25rem;
}
.concept-title {
font-size: 1.4rem;
margin-bottom: 0.75rem;
color: var(--text-primary);
}
.concept-desc {
color: var(--text-secondary);
font-size: 1rem;
}
/* =============================================
VISUAL DEMO - Particle Connection
============================================= */
.demo-container {
background: var(--bg-glass);
border: 1px solid var(--border-color);
border-radius: var(--radius-xl);
padding: 3rem;
margin: 2.5rem 0;
}
.demo-title {
text-align: center;
margin-bottom: 2.5rem;
}
.connection-demo {
display: flex;
flex-direction: column;
gap: 2.5rem;
}
.demo-row {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
flex-wrap: wrap;
}
.demo-word {
background: var(--bg-card);
border: 2px solid var(--border-color);
border-radius: var(--radius-md);
padding: 1.25rem 2rem;
font-family: var(--font-arabic);
font-size: 1.5rem;
font-weight: 700;
text-align: center;
min-width: 100px;
transition: var(--transition-normal);
}
.demo-word:hover {
transform: scale(1.08);
}
.demo-word.particle {
background: rgba(168, 85, 247, 0.15);
border-color: var(--primary);
color: var(--primary);
}
.demo-word.particle.alone {
opacity: 0.5;
border-style: dashed;
}
.demo-word.noun {
background: rgba(20, 184, 166, 0.15);
border-color: var(--accent);
color: var(--accent);
}
.demo-word.complete {
background: rgba(34, 197, 94, 0.15);
border-color: var(--success);
color: var(--success);
}
.demo-connector {
font-size: 2rem;
color: var(--primary);
animation: connectorPulse 1.5s ease-in-out infinite;
}
@keyframes connectorPulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.5; transform: scale(1.3); }
}
.demo-result {
text-align: center;
padding: 1rem;
border-radius: var(--radius-md);
font-size: 1.1rem;
}
.demo-result.incomplete {
background: rgba(239, 68, 68, 0.1);
border: 1px solid rgba(239, 68, 68, 0.3);
color: var(--danger);
}
.demo-result.complete {
background: rgba(34, 197, 94, 0.1);
border: 1px solid rgba(34, 197, 94, 0.3);
color: var(--success);
}
/* =============================================
ACCORDION
============================================= */
.accordion {
display: flex;
flex-direction: column;
gap: 1rem;
}
details {
background: var(--bg-glass);
border: 1px solid var(--border-color);
border-radius: var(--radius-md);
overflow: hidden;
transition: var(--transition-normal);
}
details:hover {
border-color: rgba(168, 85, 247, 0.5);
}
details[open] {
box-shadow: var(--shadow-md);
}
summary {
padding: 1.4rem 1.75rem;
cursor: pointer;
font-weight: 600;
font-size: 1.15rem;
display: flex;
align-items: center;
gap: 1rem;
list-style: none;
transition: var(--transition-fast);
color: var(--text-primary);
}
summary::-webkit-details-marker {
display: none;
}
summary::before {
content: '◀';
font-size: 0.8rem;
color: var(--primary);
transition: var(--transition-fast);
}
details[open] summary::before {
transform: rotate(-90deg);
}
summary:hover {
background: rgba(168, 85, 247, 0.1);
}
.details-content {
padding: 0 1.75rem 1.75rem;
animation: contentSlide 0.35s ease-out;
}
@keyframes contentSlide {
from {
opacity: 0;
transform: translateY(-15px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* =============================================
TABS (CSS-Only)
============================================= */
.tabs-wrapper {
margin: 2.5rem 0;
}
.tabs-nav {
display: flex;
gap: 0.5rem;
flex-wrap: wrap;
}
.tab-input {
position: absolute;
opacity: 0;
pointer-events: none;
}
.tab-label {
padding: 1.1rem 2rem;
background: var(--bg-glass);
border: 1px solid var(--border-color);
border-bottom: none;
border-radius: var(--radius-md) var(--radius-md) 0 0;
cursor: pointer;
font-weight: 500;
color: var(--text-secondary);
transition: var(--transition-fast);
display: inline-flex;
align-items: center;
gap: 0.6rem;
}
.tab-label:hover {
background: rgba(168, 85, 247, 0.12);
color: var(--text-primary);
}
.tab-input:checked + .tab-label {
background: linear-gradient(135deg, var(--primary), var(--primary-dark));
color: white;
border-color: var(--primary);
}
.tabs-content {
position: relative;
min-height: 320px;
}
.tab-panel {
display: none;
background: var(--bg-glass);
border: 1px solid var(--border-color);
border-radius: 0 var(--radius-md) var(--radius-md) var(--radius-md);
padding: 2.25rem;
animation: panelFade 0.4s ease-out;
}
@keyframes panelFade {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
#tab-jar:checked ~ .tabs-content .panel-jar,
#tab-nasb:checked ~ .tabs-content .panel-nasb,
#tab-other:checked ~ .tabs-content .panel-other {
display: block;
}
/* =============================================
EXAMPLES TABLE
============================================= */
.examples-table-wrapper {
overflow-x: auto;
margin: 2rem 0;
}
.examples-table {
width: 100%;
border-collapse: collapse;
background: var(--bg-glass);
border-radius: var(--radius-lg);
overflow: hidden;
}
.examples-table th,
.examples-table td {
padding: 1.4rem 1.75rem;
text-align: center;
border-bottom: 1px solid var(--border-color);
}
.examples-table th {
background: rgba(168, 85, 247, 0.2);
font-weight: 700;
font-size: 1.1rem;
color: var(--text-primary);
}
.examples-table tbody tr {
transition: var(--transition-fast);
}
.examples-table tbody tr:hover {
background: rgba(168, 85, 247, 0.08);
}
.examples-table tbody tr:last-child td {
border-bottom: none;
}
.table-particle {
font-family: var(--font-arabic);
font-size: 1.3rem;
font-weight: 700;
color: var(--primary);
}
.table-example {
font-family: var(--font-arabic);
font-size: 1.15rem;
color: var(--text-primary);
}
.table-meaning {
color: var(--text-secondary);
font-size: 0.95rem;
}
/* =============================================
QUIZ (CSS-Only)
============================================= */
.quiz-container {
max-width: 800px;
margin: 0 auto;
}
.quiz-question {
background: var(--bg-glass);
border: 1px solid var(--border-color);
border-radius: var(--radius-lg);
padding: 2.25rem;
margin-bottom: 2rem;
position: relative;
overflow: hidden;
}
.quiz-badge {
position: absolute;
top: -15px;
right: 25px;
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
width: 50px;
height: 50px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 800;
font-size: 1.2rem;
box-shadow: var(--shadow-md);
}
.quiz-text {
font-size: 1.25rem;
font-family: var(--font-arabic);
margin-bottom: 1.75rem;
color: var(--text-primary);
padding-top: 0.75rem;
}
.quiz-options {
display: flex;
flex-direction: column;
gap: 0.85rem;
}
.quiz-radio {
position: absolute;
opacity: 0;
pointer-events: none;
}
.quiz-label {
display: block;
padding: 1.15rem 1.75rem;
padding-right: 4rem;
background: rgba(255, 255, 255, 0.03);
border: 2px solid var(--border-color);
border-radius: var(--radius-md);
cursor: pointer;
transition: var(--transition-fast);
position: relative;
font-family: var(--font-arabic);
font-size: 1.1rem;
}
.quiz-label::before {
content: '';
position: absolute;
right: 1.25rem;
top: 50%;
transform: translateY(-50%);
width: 24px;
height: 24px;
border: 2px solid var(--border-color);
border-radius: 50%;
transition: var(--transition-fast);
}
.quiz-label:hover {
border-color: var(--primary);
background: rgba(168, 85, 247, 0.08);
}
.quiz-radio:checked + .quiz-label {
border-color: var(--primary);
background: rgba(168, 85, 247, 0.12);
}
.quiz-radio:checked + .quiz-label::before {
background: var(--primary);
border-color: var(--primary);
box-shadow: inset 0 0 0 4px var(--bg-dark);
}
/* Quiz Feedback */
.quiz-feedback {
margin-top: 1.5rem;
padding: 1.25rem 1.5rem;
border-radius: var(--radius-md);
display: none;
animation: feedbackBounce 0.5s ease-out;
}
@keyframes feedbackBounce {
0% { transform: scale(0.85); opacity: 0; }
50% { transform: scale(1.05); }
100% { transform: scale(1); opacity: 1; }
}
.feedback-correct {
background: rgba(34, 197, 94, 0.15);
border: 1px solid rgba(34, 197, 94, 0.4);
color: var(--success);
}
.feedback-wrong {
background: rgba(239, 68, 68, 0.15);
border: 1px solid rgba(239, 68, 68, 0.4);
color: var(--danger);
}
/* Quiz 1 */
#q1b:checked ~ .q1-correct { display: block; }
#q1a:checked ~ .q1-wrong,
#q1c:checked ~ .q1-wrong { display: block; }
/* Quiz 2 */
#q2a:checked ~ .q2-correct { display: block; }
#q2b:checked ~ .q2-wrong,
#q2c:checked ~ .q2-wrong { display: block; }
/* Quiz 3 */
#q3c:checked ~ .q3-correct { display: block; }
#q3a:checked ~ .q3-wrong,
#q3b:checked ~ .q3-wrong { display: block; }
/* Confetti */
.confetti-wrap {
position: absolute;
inset: 0;
pointer-events: none;
overflow: hidden;
opacity: 0;
}
#q1b:checked ~ .confetti-wrap,
#q2a:checked ~ .confetti-wrap,
#q3c:checked ~ .confetti-wrap {
opacity: 1;
}
.confetti {
position: absolute;
width: 12px;
height: 12px;
top: 0;
}
.confetti:nth-child(1) { left: 8%; background: var(--primary); animation: confettiDrop 2s ease-out forwards; animation-delay: 0s; border-radius: 50%; }
.confetti:nth-child(2) { left: 18%; background: var(--secondary); animation: confettiDrop 2s ease-out forwards; animation-delay: 0.1s; }
.confetti:nth-child(3) { left: 28%; background: var(--accent); animation: confettiDrop 2s ease-out forwards; animation-delay: 0.2s; border-radius: 50%; }
.confetti:nth-child(4) { left: 38%; background: var(--warning); animation: confettiDrop 2s ease-out forwards; animation-delay: 0.15s; }
.confetti:nth-child(5) { left: 48%; background: var(--primary); animation: confettiDrop 2s ease-out forwards; animation-delay: 0.25s; border-radius: 50%; }
.confetti:nth-child(6) { left: 58%; background: var(--danger); animation: confettiDrop 2s ease-out forwards; animation-delay: 0.08s; }
.confetti:nth-child(7) { left: 68%; background: var(--secondary); animation: confettiDrop 2s ease-out forwards; animation-delay: 0.3s; border-radius: 50%; }
.confetti:nth-child(8) { left: 78%; background: var(--accent); animation: confettiDrop 2s ease-out forwards; animation-delay: 0.12s; }
.confetti:nth-child(9) { left: 88%; background: var(--warning); animation: confettiDrop 2s ease-out forwards; animation-delay: 0.22s; border-radius: 50%; }
.confetti:nth-child(10) { left: 95%; background: var(--primary); animation: confettiDrop 2s ease-out forwards; animation-delay: 0.18s; }
@keyframes confettiDrop {
0% {
transform: translateY(-30px) rotate(0deg) scale(1);
opacity: 1;
}
100% {
transform: translateY(400px) rotate(1080deg) scale(0.3);
opacity: 0;
}
}
/* =============================================
TIPS CARDS
============================================= */
.tips-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 1.75rem;
}
.tip-card {
background: var(--bg-glass);
border: 1px solid var(--border-color);
border-radius: var(--radius-lg);
padding: 2rem;
position: relative;
overflow: hidden;
transition: var(--transition-normal);
}
.tip-card::before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 120px;
height: 120px;
background: linear-gradient(135deg, var(--primary), transparent);
opacity: 0.08;
border-radius: 0 0 0 100%;
}
.tip-card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-md);
border-color: var(--primary);
}
.tip-number {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
border-radius: 50%;
font-weight: 800;
font-size: 1rem;
margin-bottom: 1.25rem;
}
.tip-title {
font-size: 1.2rem;
margin-bottom: 0.6rem;
color: var(--text-primary);
}
.tip-desc {
color: var(--text-secondary);
font-size: 1rem;
}
/* =============================================
MISTAKES SECTION
============================================= */
.mistake-card {
background: var(--bg-glass);
border: 1px solid var(--border-color);
border-radius: var(--radius-lg);
padding: 2rem;
margin-bottom: 1.75rem;
display: grid;
grid-template-columns: auto 1fr;
gap: 1.75rem;
align-items: flex-start;
transition: var(--transition-normal);
}
.mistake-card:hover {
border-color: rgba(239, 68, 68, 0.5);
box-shadow: 0 0 30px rgba(239, 68, 68, 0.1);
}
.mistake-icon {
font-size: 3rem;
}
.mistake-title {
color: var(--danger);
margin-bottom: 0.6rem;
font-size: 1.15rem;
}
.mistake-desc {
color: var(--text-secondary);
margin-bottom: 1.25rem;
}
.mistake-fix {
background: rgba(34, 197, 94, 0.1);
border: 1px solid rgba(34, 197, 94, 0.25);
border-radius: var(--radius-sm);
padding: 1.25rem;
}
.mistake-fix-title {
color: var(--success);
font-weight: 600;
margin-bottom: 0.5rem;
display: flex;
align-items: center;
gap: 0.5rem;
}
/* =============================================
SUMMARY CARD
============================================= */
.summary-card {
background: linear-gradient(135deg, rgba(168, 85, 247, 0.12), rgba(59, 130, 246, 0.12), rgba(20, 184, 166, 0.12));
border: 2px solid rgba(168, 85, 247, 0.35);
border-radius: var(--radius-xl);
padding: 3.5rem;
position: relative;
overflow: hidden;
}
.summary-card::before {
content: '📋';
position: absolute;
top: -50px;
left: -50px;
font-size: 200px;
opacity: 0.04;
}
.summary-header {
text-align: center;
margin-bottom: 3rem;
}
.summary-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2.25rem;
}
.summary-item {
background: rgba(255, 255, 255, 0.05);
border-radius: var(--radius-md);
padding: 1.75rem;
}
.summary-item-title {
color: var(--accent);
font-size: 1.15rem;
margin-bottom: 1rem;
display: flex;
align-items: center;
gap: 0.6rem;
}
.summary-list {
list-style: none;
}
.summary-list li {
padding: 0.6rem 0;
padding-right: 2rem;
position: relative;
color: var(--text-secondary);
}
.summary-list li::before {
content: '✓';
position: absolute;
right: 0;
color: var(--success);
font-weight: 700;
}
/* =============================================
TOOLTIP (CSS-Only)
============================================= */
.tooltip {
position: relative;
display: inline-block;
border-bottom: 2px dotted var(--primary);
cursor: help;
}
.tooltip::after {
content: attr(data-tip);
position: absolute;
bottom: calc(100% + 12px);
left: 50%;
transform: translateX(-50%);
background: var(--bg-darker);
color: var(--text-primary);
padding: 0.85rem 1.15rem;
border-radius: var(--radius-sm);
font-size: 0.9rem;
white-space: nowrap;
max-width: 300px;
white-space: normal;
text-align: center;
opacity: 0;
visibility: hidden;
transition: var(--transition-fast);
z-index: 100;
border: 1px solid var(--border-color);
box-shadow: var(--shadow-md);
}
.tooltip::before {
content: '';
position: absolute;
bottom: calc(100% + 4px);
left: 50%;
transform: translateX(-50%);
border: 8px solid transparent;
border-top-color: var(--bg-darker);
opacity: 0;
visibility: hidden;
transition: var(--transition-fast);
}
.tooltip:hover::after,
.tooltip:hover::before {
opacity: 1;
visibility: visible;
}
/* =============================================
FOOTER
============================================= */
.footer {
background: rgba(6, 5, 15, 0.7);
border-top: 1px solid var(--border-color);
padding: 3.5rem 0;
margin-top: 5rem;
}
.footer-content {
text-align: center;
}
.footer-logo {
font-family: var(--font-arabic);
font-size: 1.75rem;
font-weight: 700;
background: linear-gradient(135deg, var(--primary), var(--accent));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 1rem;
}
.footer-text {
color: var(--text-muted);
font-size: 1rem;
margin-bottom: 1.75rem;
}
.footer-badge {
display: inline-flex;
align-items: center;
gap: 0.6rem;
background: var(--bg-glass);
border: 1px solid var(--border-color);
border-radius: var(--radius-full);
padding: 0.7rem 1.75rem;
font-size: 0.9rem;
color: var(--text-secondary);
}
/* =============================================
RESPONSIVE
============================================= */
@media (max-width: 768px) {
.nav-links {
display: none;
}
.hero {
padding: 5.5rem 1rem 3.5rem;
}
.phrase-text {
font-size: 1.1rem;
}
.phrase-box {
padding: 2rem;
}
.hero-stats {
gap: 2rem;
}
.section {
padding: 4rem 0;
}
.glass-card {
padding: 1.75rem;
}
.demo-row {
flex-direction: column;
}
.demo-connector {
transform: rotate(90deg);
}
.tab-label {
padding: 0.85rem 1.25rem;
font-size: 0.9rem;
}
.mistake-card {
grid-template-columns: 1fr;
text-align: center;
}
.summary-card {
padding: 2.5rem 1.75rem;
}
}
@media (max-width: 480px) {
html {
font-size: 14px;
}
.term {
display: block;
margin: 0.5rem auto;
max-width: fit-content;
}
.tabs-nav {
flex-direction: column;
}
.tab-label {
border-radius: var(--radius-md);
border: 1px solid var(--border-color);
}
.tab-panel {
border-radius: var(--radius-md);
}
}
/* =============================================
ANIMATIONS
============================================= */
.fade-in {
animation: fadeInUp 0.8s ease-out both;
}
.fade-in:nth-child(1) { animation-delay: 0.1s; }
.fade-in:nth-child(2) { animation-delay: 0.2s; }
.fade-in:nth-child(3) { animation-delay: 0.3s; }
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(35px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Achievement */
.achievement {
display: inline-flex;
align-items: center;
gap: 0.5rem;
background: linear-gradient(135deg, var(--success), #059669);
color: white;
padding: 0.6rem 1.4rem;
border-radius: var(--radius-full);
font-size: 0.95rem;
font-weight: 600;
box-shadow: var(--shadow-sm);
}
</style>
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="container nav-content">
<div class="nav-logo">🔤 الحرف</div>
<ul class="nav-links">
<li><a href="#what">ما هو؟</a></li>
<li><a href="#why">لماذا؟</a></li>
<li><a href="#how">كيف يعمل؟</a></li>
<li><a href="#examples">أمثلة</a></li>
<li><a href="#quiz">اختبار</a></li>
</ul>
</div>
</nav>
<!-- Hero Section -->
<header class="hero" id="top">
<div class="floating-shapes">
<span class="shape">🔗</span>
<span class="shape">✨</span>
<span class="shape">📝</span>
<span class="shape">🎯</span>
<span class="shape">💡</span>
<span class="shape">🌟</span>
</div>
<div class="hero-content">
<span class="hero-badge">🎓 درس تفاعلي في النحو العربي</span>
<h1 class="hero-title">
<span class="gradient-text">الحرف في اللغة العربية</span>
</h1>
<p class="hero-subtitle">
الكلمة التي لا يكتمل معناها إلا مع غيرها — الرابط الخفي في بناء الجمل
</p>
<div class="phrase-box">
<p class="phrase-text">
كل
<span class="term term-word">لفظ</span>
لا يظهر معناه كاملاً إلا
<span class="term term-dependent">مع غيره</span>
وهذا هو
<span class="term term-harf">الحرف</span>
</p>
</div>
<div class="hero-stats">
<div class="stat">
<div class="stat-value">80+</div>
<div class="stat-label">حرف في العربية</div>
</div>
<div class="stat">
<div class="stat-value">3</div>
<div class="stat-label">أنواع رئيسية</div>
</div>
<div class="stat">
<div class="stat-value">∞</div>
<div class="stat-label">استخدامات</div>
</div>
</div>
</div>
</header>
<!-- What Is It Section -->
<section class="section" id="what">
<div class="container">
<div class="section-header">
<span class="section-icon">🤔</span>
<h2 class="section-title">ما هو الحرف؟</h2>
<p class="section-subtitle">فهم القسم الثالث من أقسام الكلام العربي</p>
</div>
<div class="glass-card" style="margin-bottom: 2.5rem;">
<p class="arabic-large" style="color: var(--text-primary); margin-bottom: 1.5rem;">
الحرف هو <strong>كلمة لا تدل على معنى مستقل بذاتها</strong>، بل تحتاج إلى كلمات أخرى (اسم أو فعل) لتكتسب معناها.
</p>
<p style="color: var(--text-secondary); font-size: 1.15rem;">
تخيل الحرف كـ<strong>جسر</strong> يربط بين الكلمات — الجسر وحده لا قيمة له، لكنه يصبح ضرورياً عندما يربط بين ضفتين. كذلك الحرف: "في" وحدها لا معنى لها، لكن "الكتاب <strong>في</strong> الحقيبة" تصبح جملة مفيدة.
</p>
</div>
<div class="concepts-grid">
<div class="concept-card fade-in">
<div class="concept-icon">🔗</div>
<h3 class="concept-title">الربط والوصل</h3>
<p class="concept-desc">
الحرف يربط بين الكلمات والجمل، مثل: "و"، "أو"، "ثم"، "لكن"...
</p>
</div>
<div class="concept-card fade-in">
<div class="concept-icon">🚫</div>
<h3 class="concept-title">لا معنى مستقل</h3>
<p class="concept-desc">
على عكس الاسم والفعل، الحرف لا يدل على شيء بمفرده. "من" وحدها لا تعني شيئاً.
</p>
</div>
<div class="concept-card fade-in">
<div class="concept-icon">⚙️</div>
<h3 class="concept-title">التأثير النحوي</h3>
<p class="concept-desc">
بعض الحروف تؤثر في إعراب ما بعدها: حروف الجر تجر، وحروف النصب تنصب...
</p>
</div>
</div>
<!-- Visual Demo -->
<div class="demo-container">
<h3 class="demo-title">🎨 شاهد الفرق: الحرف وحده vs الحرف مع غيره</h3>
<div class="connection-demo">
<!-- Alone -->
<div class="demo-row">
<div class="demo-word particle alone">في</div>
<div class="demo-result incomplete">❌ لا معنى — ماذا "في"؟ أين؟</div>
</div>
<!-- Connected -->
<div class="demo-row">
<div class="demo-word particle">في</div>
<span class="demo-connector">+</span>
<div class="demo-word noun">البيت</div>
<span class="demo-connector">=</span>
<div class="demo-word complete">في البيت</div>
</div>
<div class="demo-result complete" style="max-width: 400px; margin: 0 auto;">
✅ الآن اكتمل المعنى: مكان محدد!
</div>
</div>
</div>
</div>
</section>
<!-- Why Section -->
<section class="section" id="why">
<div class="container">
<div class="section-header">
<span class="section-icon">💡</span>
<h2 class="section-title">لماذا نتعلم الحروف؟</h2>
<p class="section-subtitle">أهمية الحروف في بناء اللغة العربية</p>
</div>
<div class="accordion">
<details open>
<summary>🏗️ بناء الجمل الصحيحة</summary>
<div class="details-content">
<p>الحروف هي الغراء الذي يلصق الكلمات ببعضها. بدونها، تبقى الكلمات منفصلة بلا ترابط. "ذهب محمد المدرسة" جملة ناقصة، لكن "ذهب محمد <strong>إلى</strong> المدرسة" جملة كاملة.</p>
</div>
</details>
<details>
<summary>📖 فهم القرآن والنصوص</summary>
<div class="details-content">
<p>القرآن الكريم مليء بالحروف التي تغير المعنى تماماً. فرق كبير بين "آمن <strong>بـ</strong>الله" و"آمن <strong>لـ</strong>له". فهم الحروف ضروري لفهم النصوص الدينية والأدبية.</p>
</div>
</details>
<details>
<summary>✍️ الكتابة الدقيقة</summary>
<div class="details-content">
<p>استخدام الحرف الصحيح يعطي المعنى الدقيق. "سافرت <strong>من</strong> مصر" (ابتداء) تختلف عن "سافرت <strong>عن</strong> مصر" (مجاوزة). الحرف الخاطئ = معنى خاطئ.</p>
</div>
</details>
<details>
<summary>🎯 إتقان الإعراب</summary>
<div class="details-content">
<p>كثير من الحروف تؤثر في إعراب ما بعدها. حروف الجر تجر الاسم، وحروف النصب تنصب الفعل المضارع. معرفة الحروف = إعراب صحيح.</p>
</div>
</details>
<details>
<summary>🌟 البلاغة والفصاحة</summary>
<div class="details-content">
<p>البلغاء يختارون الحروف بعناية للتأثير في المعنى. "واو" العطف تفيد الجمع، و"ثم" تفيد الترتيب مع التراخي، و"الفاء" تفيد الترتيب مع التعقيب. كل حرف له نكهته الخاصة.</p>
</div>
</details>
</div>
</div>
</section>
<!-- How It Works Section -->
<section class="section" id="how">
<div class="container">
<div class="section-header">
<span class="section-icon">⚙️</span>
<h2 class="section-title">أنواع الحروف</h2>
<p class="section-subtitle">تصنيف الحروف حسب عملها ومعناها</p>
</div>
<!-- Tabs -->
<div class="tabs-wrapper">
<input type="radio" name="particle-tabs" id="tab-jar" class="tab-input" checked>
<label for="tab-jar" class="tab-label">📍 حروف الجر</label>
<input type="radio" name="particle-tabs" id="tab-nasb" class="tab-input">
<label for="tab-nasb" class="tab-label">📐 حروف النصب</label>
<input type="radio" name="particle-tabs" id="tab-other" class="tab-input">
<label for="tab-other" class="tab-label">🔀 حروف أخرى</label>
<div class="tabs-content">
<!-- Panel: حروف الجر -->
<div class="tab-panel panel-jar">
<h4 style="color: var(--text-primary); margin-bottom: 1.25rem;">📍 حروف الجر — تجر الاسم بعدها</h4>
<p style="margin-bottom: 1.5rem;">هذه الحروف تدخل على الأسماء فتجرها (تجعل آخرها مكسوراً أو ما ينوب عنه).</p>
<div class="examples-table-wrapper">
<table class="examples-table">
<thead>
<tr>
<th>الحرف</th>
<th>مثال</th>
<th>المعنى</th>
</tr>
</thead>
<tbody>
<tr>
<td class="table-particle">مِن</td>
<td class="table-example">خرجتُ مِن البيتِ</td>
<td class="table-meaning">ابتداء الغاية</td>
</tr>
<tr>
<td class="table-particle">إلى</td>
<td class="table-example">ذهبتُ إلى المدرسةِ</td>
<td class="table-meaning">انتهاء الغاية</td>
</tr>
<tr>
<td class="table-particle">في</td>
<td class="table-example">الكتابُ في الحقيبةِ</td>
<td class="table-meaning">الظرفية</td>
</tr>
<tr>
<td class="table-particle">على</td>
<td class="table-example">الكتابُ على الطاولةِ</td>
<td class="table-meaning">الاستعلاء</td>
</tr>
<tr>
<td class="table-
Live Preview