0xlocalhost commited on
Commit
296e4a0
·
verified ·
1 Parent(s): a332ada

# تحليل واجهات المستخدم (UI/UX) لمشروع MileTruck

Browse files

تم تحليل مجموعة من واجهات المستخدم (UI/UX) المقترحة لمشروع MileTruck، والتي تغطي واجهة الويب للعملاء (المصانع والشركات) وتطبيق الجوال للسائقين. يعكس هذا التحليل الوظائف والميزات الرئيسية التي تم تصميم النظام لتقديمها.

## 1. واجهة الويب للعميل (Shipper/Factory Web Interface)

تظهر واجهة الويب تركيزًا على إدارة الطلبات والملف الشخصي للعميل، مما يدعم نموذج العمل B2B للشركات التي تحتاج إلى إدارة عمليات نقل متكررة.

| الواجهة | الميزات المستخلصة | التركيز الوظيفي |
| :--- | :--- | :--- |
| **صفحة العميل ويب - الملف الشخصي** | - عرض تفاصيل الملف الشخصي للعميل (الاسم، جهات الاتصال). - إمكانية تعديل البيانات الشخصية. - قسم مخصص للوثائق (قد يشمل السجل التجاري، التراخيص). | إدارة الحساب والامتثال القانوني. |
| **صفحة العميل ويب - طلباتي** | - قائمة شاملة بجميع الطلبات السابقة والحالية. - عرض حالة كل طلب (قيد التنفيذ، مكتمل، ملغي). - إمكانية البحث والتصفية حسب الحالة أو التاريخ. | تتبع شامل للعمليات اللوجستية وإمكانية الرجوع إلى السجل. |
| **صفحة العميل ويب - تفاصيل الطلب** | - عرض مفصل لبيانات الرحلة (نقاط التحميل والتسليم). - تفاصيل الشاحنة والسائق المخصص للرحلة. - عرض حالة التتبع في الوقت الفعلي. - تفاصيل الفواتير والدفع. | شفافية كاملة في تنفيذ الرحلة وإدارة الفواتير. |
| **صفحة العميل ويب - إنشاء طلب جديد** | - واجهة سهلة لإنشاء طلب جديد خطوة بخطوة. - تحديد نوع الحمولة، نوع الشاحنة المطلوبة. - إدخال مواقع التحميل والتسليم (مع إمكانية تحديد أكثر من موقع). | سهولة الاستخدام وسرعة إدخال البيانات لطلب الشاحنة. |
| **صفحة العميل ويب - الصفحة الرئيسية** | - لوحة تحكم تلخيصية (Dashboard) تعرض أهم الإحصائيات (عدد الطلبات النشطة، المكتملة). - وصول سريع لأهم الوظائف (إنشاء طلب جديد، طلباتي). | نظرة عامة سريعة على حالة العمليات اللوجستية. |

## 2. تطبيق الجوال للسائق (Driver Mobile Application)

تظهر واجهة السائق تركيزًا على تسهيل العمليات الميدانية، وتوفير الشفافية في الرحلات، وضمان الامتثال.

| الواجهة | الميزات المستخلصة | التركيز الوظيفي |
| :--- | :--- | :--- |
| **الصفحة الرئيسية للسائقين (اتصال/عدم اتصال)** | - زر واضح لتغيير حالة السائق (Online/Offline) للدلالة على الاستعداد لاستقبال الرحلات. - عرض ملخص للرحلات القادمة أو الحالية. | إدارة توافر السائق وزيادة فرص الحصول على رحلات. |
| **صفحة السائق - الوثائق** | - عرض قائمة بالوثائق المطلوبة (رخصة القيادة، استمارة الشاحنة، التأمين). - نظام تنبيهات لتجديد الوثائق المنتهية (ميزة تنافسية مهمة). | ضمان الامتثال القانوني للسائقين وتسهيل عملية التحقق. |
| **صفحة السائق - الملف الشخصي** | - عرض تقييم السائق (مهم لنظام المكافآت). - عرض تفاصيل الشاحنة المربوطة بالحساب. - إمكانية تعديل البيانات الشخصية. | بناء الثقة والاحترافية بين السائق والمنصة. |
| **صفحة السائق - تنبيهات** | - إشعارات فورية بالرحلات الجديدة. - تنبيهات الصيانة والتجديدات. - إشعارات مهمة من الإدارة. | تواصل فعال ومباشر مع السائق لضمان استمرارية العمل. |
| **صفحة السائق - تفاصيل الرحلة** | - عرض مسار الرحلة على الخريطة. - تفاصيل الحمولة ونقاط التحميل والتسليم. - إمكانية بدء وإنهاء الرحلة (Start/End Trip). | توجيه دقيق للسائق وتوثيق مراحل تنفيذ الرحلة. |
| **صفحة السائق - طلباتي** | - سجل كامل للرحلات المكتملة والملغاة. - تفاصيل الأرباح والعمولات المستحقة من كل رحلة. | شفافية مالية للسائق وإمكانية تتبع الأداء. |

## 3. واجهات الدخول والدعم (Login and Support Interfaces)

* **صفحات تسجيل الدخول (للشركات والسائقين):** واجهات مخصصة لكل فئة مستخدم (شركات/سائقين) مما يؤكد على الفصل بين أنواع الحسابات وتخصيص التجربة.
* **صفحة الترحيب:** واجهة بسيطة وموجهة للمستخدم الجديد، مما يشير إلى سهولة عملية الإعداد (Onboarding).
* **صفحة الدعم الفني:** توفير قناة دعم مباشرة، مما يعزز الموثوقية ويقلل من الاحتكاك في حل المشكلات.
* **لوحة التحكم في الجوال للشركات:** وجود لوحة تحكم مصغرة للشركات على الجوال يشير إلى إمكانية إدارة الأسطول والطلبات أثناء التنقل، وهي ميزة حيوية لمديري العمليات.

## 4. استنتاج تحليل الـ UI/UX

يعكس التصميم المقترح لمشروع MileTruck تركيزًا قويًا على:
1. **الفصل بين المستخدمين:** تم تصميم واجهات مخصصة للعملاء (الشركات) والسائقين، مما يضمن تلبية احتياجات كل طرف بدقة.
2. **الشفافية والتتبع:** الميزات المتعلقة بتفاصيل الطلبات، تتبع الرحلات، وعرض الوثائق والتنبيهات، تؤكد على التزام المنصة بالشفافية والموثوقية.
3. **إدارة الأسطول:** وجود ميزات مثل إدارة الوثائق والتنبيهات في واجهة السائق، ولوحة التحكم في واجهة العميل، يدعم القيمة المضافة الأساسية للمشروع وهي **إدارة الأسطول الذكية**.

هذا التصميم المقترح يدعم بشكل كبير الميزات التنافسية التي تم تحديدها في تحليل المنافسين، خاصة فيما يتعلق بتوفير نظام متكامل لإدارة العمليات اللوجستية.

Files changed (6) hide show
  1. README.md +8 -5
  2. components/footer.js +298 -0
  3. components/navbar.js +234 -0
  4. index.html +294 -19
  5. script.js +308 -0
  6. style.css +136 -19
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: L4luv40
3
- emoji: 📉
4
- colorFrom: purple
5
- colorTo: indigo
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: ---------------------l4luv40
3
+ colorFrom: red
4
+ colorTo: purple
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
components/footer.js ADDED
@@ -0,0 +1,298 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ width: 100%;
9
+ }
10
+
11
+ .footer {
12
+ background: linear-gradient(135deg, #1F2937 0%, #111827 100%);
13
+ color: white;
14
+ }
15
+
16
+ .footer-link {
17
+ color: #D1D5DB;
18
+ transition: color 0.3s ease;
19
+ display: block;
20
+ padding: 0.25rem 0;
21
+ }
22
+
23
+ .footer-link:hover {
24
+ color: #F59E0B;
25
+ transform: translateX(-4px);
26
+ }
27
+
28
+ .social-icon {
29
+ width: 40px;
30
+ height: 40px;
31
+ background: rgba(255, 255, 255, 0.1);
32
+ border-radius: 50%;
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ transition: all 0.3s ease;
37
+ }
38
+
39
+ .social-icon:hover {
40
+ background: #F59E0B;
41
+ transform: translateY(-3px);
42
+ }
43
+
44
+ .newsletter-input {
45
+ background: rgba(255, 255, 255, 0.1);
46
+ border: 1px solid rgba(255, 255, 255, 0.2);
47
+ color: white;
48
+ padding: 0.75rem 1rem;
49
+ border-radius: 0.5rem;
50
+ width: 100%;
51
+ transition: all 0.3s ease;
52
+ }
53
+
54
+ .newsletter-input:focus {
55
+ outline: none;
56
+ border-color: #F59E0B;
57
+ background: rgba(255, 255, 255, 0.15);
58
+ }
59
+
60
+ .newsletter-input::placeholder {
61
+ color: #9CA3AF;
62
+ }
63
+
64
+ .payment-method {
65
+ height: 40px;
66
+ background: white;
67
+ border-radius: 0.5rem;
68
+ padding: 0.5rem;
69
+ display: flex;
70
+ align-items: center;
71
+ justify-content: center;
72
+ }
73
+
74
+ .back-to-top {
75
+ background: #F59E0B;
76
+ color: white;
77
+ width: 50px;
78
+ height: 50px;
79
+ border-radius: 50%;
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ position: fixed;
84
+ bottom: 2rem;
85
+ left: 2rem;
86
+ cursor: pointer;
87
+ opacity: 0;
88
+ transform: translateY(20px);
89
+ transition: all 0.3s ease;
90
+ z-index: 40;
91
+ }
92
+
93
+ .back-to-top.visible {
94
+ opacity: 1;
95
+ transform: translateY(0);
96
+ }
97
+
98
+ .back-to-top:hover {
99
+ background: #D97706;
100
+ transform: translateY(-3px);
101
+ }
102
+
103
+ .copyright {
104
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
105
+ padding: 1.5rem 0;
106
+ color: #9CA3AF;
107
+ }
108
+ </style>
109
+
110
+ <!-- Back to Top Button -->
111
+ <div class="back-to-top" id="backToTop">
112
+ <i data-feather="arrow-up" class="w-5 h-5"></i>
113
+ </div>
114
+
115
+ <!-- Footer Content -->
116
+ <footer class="footer pt-16 pb-8">
117
+ <div class="container mx-auto px-4">
118
+ <div class="grid md:grid-cols-2 lg:grid-cols-4 gap-8 mb-12">
119
+ <!-- Company Info -->
120
+ <div>
121
+ <div class="flex items-center space-x-3 space-x-reverse mb-6">
122
+ <div class="w-12 h-12 bg-primary rounded-lg flex items-center justify-center">
123
+ <i data-feather="truck" class="text-white w-6 h-6"></i>
124
+ </div>
125
+ <div>
126
+ <div class="text-xl font-bold">MileTruck</div>
127
+ <div class="text-sm text-gray-400">النقل البري الذكي</div>
128
+ </div>
129
+ </div>
130
+ <p class="text-gray-300 mb-6">
131
+ شريكك الموثوق للتميز التشغيلي في النقل البري والخدمات اللوجستية في المملكة العربية السعودية ودول الخليج.
132
+ </p>
133
+ <div class="flex space-x-4 space-x-reverse">
134
+ <a href="#" class="social-icon">
135
+ <i data-feather="twitter" class="w-5 h-5"></i>
136
+ </a>
137
+ <a href="#" class="social-icon">
138
+ <i data-feather="facebook" class="w-5 h-5"></i>
139
+ </a>
140
+ <a href="#" class="social-icon">
141
+ <i data-feather="linkedin" class="w-5 h-5"></i>
142
+ </a>
143
+ <a href="#" class="social-icon">
144
+ <i data-feather="instagram" class="w-5 h-5"></i>
145
+ </a>
146
+ </div>
147
+ </div>
148
+
149
+ <!-- Quick Links -->
150
+ <div>
151
+ <h3 class="text-lg font-semibold mb-6">روابط سريعة</h3>
152
+ <div class="space-y-2">
153
+ <a href="/" class="footer-link">الرئيسية</a>
154
+ <a href="#services" class="footer-link">خدماتنا</a>
155
+ <a href="/fleet.html" class="footer-link">أسطولنا</a>
156
+ <a href="/solutions.html" class="footer-link">حلول متكاملة</a>
157
+ <a href="/about.html" class="footer-link">عنّا</a>
158
+ <a href="/contact.html" class="footer-link">اتصل بنا</a>
159
+ </div>
160
+ </div>
161
+
162
+ <!-- Services -->
163
+ <div>
164
+ <h3 class="text-lg font-semibold mb-6">خدماتنا</h3>
165
+ <div class="space-y-2">
166
+ <a href="/services/long-term.html" class="footer-link">عقود النقل طويلة الأمد</a>
167
+ <a href="/services/daily-rental.html" class="footer-link">تأجير الشاحنات اليومي</a>
168
+ <a href="/services/port-transport.html" class="footer-link">النقل من وإلى الموانئ</a>
169
+ <a href="/services/cross-border.html" class="footer-link">النقل البري عبر الحدود</a>
170
+ <a href="/services/container.html" class="footer-link">نقل الحاويات</a>
171
+ <a href="/services/erp-integration.html" class="footer-link">الربط التقني مع ERP</a>
172
+ </div>
173
+ </div>
174
+
175
+ <!-- Newsletter -->
176
+ <div>
177
+ <h3 class="text-lg font-semibold mb-6">النشرة البريدية</h3>
178
+ <p class="text-gray-300 mb-4">
179
+ اشترك في نشرتنا البريدية لتبقى على اطلاع بأحدث العروض والأخبار.
180
+ </p>
181
+ <form id="newsletterForm" class="space-y-3">
182
+ <input type="email" placeholder="بريدك الإلكتروني" class="newsletter-input" required>
183
+ <button type="submit" class="bg-secondary hover:bg-secondary-dark text-white font-semibold py-3 px-6 rounded-lg w-full transition-colors duration-300">
184
+ <i data-feather="send" class="ml-2 inline"></i>
185
+ اشتراك
186
+ </button>
187
+ </form>
188
+ </div>
189
+ </div>
190
+
191
+ <!-- Contact Info -->
192
+ <div class="grid md:grid-cols-3 gap-6 mb-8 p-6 bg-gray-800 rounded-xl">
193
+ <div class="flex items-center space-x-4 space-x-reverse">
194
+ <div class="w-12 h-12 bg-primary bg-opacity-20 rounded-lg flex items-center justify-center">
195
+ <i data-feather="phone" class="text-primary w-5 h-5"></i>
196
+ </div>
197
+ <div>
198
+ <div class="text-sm text-gray-400">اتصل بنا</div>
199
+ <div class="font-semibold">9200 000 00</div>
200
+ </div>
201
+ </div>
202
+ <div class="flex items-center space-x-4 space-x-reverse">
203
+ <div class="w-12 h-12 bg-primary bg-opacity-20 rounded-lg flex items-center justify-center">
204
+ <i data-feather="mail" class="text-primary w-5 h-5"></i>
205
+ </div>
206
+ <div>
207
+ <div class="text-sm text-gray-400">البريد الإلكتروني</div>
208
+ <div class="font-semibold">info@miletruck.com</div>
209
+ </div>
210
+ </div>
211
+ <div class="flex items-center space-x-4 space-x-reverse">
212
+ <div class="w-12 h-12 bg-primary bg-opacity-20 rounded-lg flex items-center justify-center">
213
+ <i data-feather="map-pin" class="text-primary w-5 h-5"></i>
214
+ </div>
215
+ <div>
216
+ <div class="text-sm text-gray-400">العنوان</div>
217
+ <div class="font-semibold">الرياض، المملكة العربية السعودية</div>
218
+ </div>
219
+ </div>
220
+ </div>
221
+
222
+ <!-- Payment Methods -->
223
+ <div class="flex flex-wrap gap-4 items-center justify-center mb-8">
224
+ <div class="text-gray-400">طرق الدفع المتاحة:</div>
225
+ <div class="payment-method">
226
+ <i data-feather="credit-card" class="text-gray-700 w-6 h-6"></i>
227
+ </div>
228
+ <div class="payment-method">
229
+ <span class="text-gray-700 font-semibold">MADA</span>
230
+ </div>
231
+ <div class="payment-method">
232
+ <span class="text-gray-700 font-semibold">Apple Pay</span>
233
+ </div>
234
+ <div class="payment-method">
235
+ <i data-feather="smartphone" class="text-gray-700 w-6 h-6"></i>
236
+ </div>
237
+ </div>
238
+
239
+ <!-- Copyright -->
240
+ <div class="copyright text-center">
241
+ <div class="mb-2">© 2024 MileTruck. جميع الحقوق محفوظة</div>
242
+ <div class="text-sm space-x-6 space-x-reverse">
243
+ <a href="/privacy.html" class="text-gray-400 hover:text-white transition-colors">سياسة الخصوصية</a>
244
+ <a href="/terms.html" class="text-gray-400 hover:text-white transition-colors">الشروط والأحكام</a>
245
+ <a href="/sitemap.html" class="text-gray-400 hover:text-white transition-colors">خريطة الموقع</a>
246
+ </div>
247
+ </div>
248
+ </div>
249
+ </footer>
250
+ `;
251
+
252
+ this.initializeEventListeners();
253
+ }
254
+
255
+ initializeEventListeners() {
256
+ // Back to top button
257
+ const backToTop = this.shadowRoot.getElementById('backToTop');
258
+
259
+ window.addEventListener('scroll', () => {
260
+ if (window.pageYOffset > 300) {
261
+ backToTop.classList.add('visible');
262
+ } else {
263
+ backToTop.classList.remove('visible');
264
+ }
265
+ });
266
+
267
+ backToTop.addEventListener('click', () => {
268
+ window.scrollTo({
269
+ top: 0,
270
+ behavior: 'smooth'
271
+ });
272
+ });
273
+
274
+ // Newsletter form
275
+ const newsletterForm = this.shadowRoot.getElementById('newsletterForm');
276
+ if (newsletterForm) {
277
+ newsletterForm.addEventListener('submit', (e) => {
278
+ e.preventDefault();
279
+ const email = newsletterForm.querySelector('input[type="email"]').value;
280
+
281
+ // In a real app, you would send this to your newsletter service
282
+ console.log('Newsletter subscription:', email);
283
+ alert('شكراً لاشتراكك! ستصلك أحدث عروضنا قريباً.');
284
+ newsletterForm.reset();
285
+ });
286
+ }
287
+
288
+ // Initialize feather icons in shadow DOM
289
+ setTimeout(() => {
290
+ const icons = this.shadowRoot.querySelectorAll('[data-feather]');
291
+ if (typeof feather !== 'undefined') {
292
+ feather.replace({}, this.shadowRoot);
293
+ }
294
+ }, 100);
295
+ }
296
+ }
297
+
298
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,234 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ width: 100%;
9
+ z-index: 50;
10
+ position: relative;
11
+ }
12
+
13
+ .navbar {
14
+ background: rgba(255, 255, 255, 0.95);
15
+ backdrop-filter: blur(10px);
16
+ border-bottom: 1px solid rgba(30, 64, 175, 0.1);
17
+ transition: all 0.3s ease;
18
+ }
19
+
20
+ .navbar.scrolled {
21
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
22
+ }
23
+
24
+ .nav-link {
25
+ position: relative;
26
+ padding: 0.5rem 1rem;
27
+ color: #4B5563;
28
+ transition: color 0.3s ease;
29
+ font-weight: 500;
30
+ }
31
+
32
+ .nav-link:hover {
33
+ color: #1E40AF;
34
+ }
35
+
36
+ .nav-link::after {
37
+ content: '';
38
+ position: absolute;
39
+ bottom: 0;
40
+ right: 1rem;
41
+ left: 1rem;
42
+ height: 2px;
43
+ background: #1E40AF;
44
+ transform: scaleX(0);
45
+ transition: transform 0.3s ease;
46
+ }
47
+
48
+ .nav-link:hover::after {
49
+ transform: scaleX(1);
50
+ }
51
+
52
+ .mobile-menu {
53
+ max-height: 0;
54
+ overflow: hidden;
55
+ transition: max-height 0.5s ease-out;
56
+ }
57
+
58
+ .mobile-menu.open {
59
+ max-height: 500px;
60
+ }
61
+
62
+ .language-switcher {
63
+ border: 1px solid #E5E7EB;
64
+ border-radius: 0.5rem;
65
+ padding: 0.25rem;
66
+ }
67
+
68
+ .language-option {
69
+ padding: 0.25rem 0.75rem;
70
+ border-radius: 0.375rem;
71
+ cursor: pointer;
72
+ transition: all 0.2s ease;
73
+ }
74
+
75
+ .language-option.active {
76
+ background: #1E40AF;
77
+ color: white;
78
+ }
79
+
80
+ .language-option:not(.active):hover {
81
+ background: #F3F4F6;
82
+ }
83
+
84
+ @media (max-width: 768px) {
85
+ .desktop-menu {
86
+ display: none;
87
+ }
88
+
89
+ .mobile-menu-btn {
90
+ display: block;
91
+ }
92
+ }
93
+
94
+ @media (min-width: 769px) {
95
+ .mobile-menu-btn {
96
+ display: none;
97
+ }
98
+
99
+ .mobile-menu {
100
+ display: none;
101
+ }
102
+ }
103
+ </style>
104
+
105
+ <nav class="navbar fixed top-0 left-0 right-0 py-4">
106
+ <div class="container mx-auto px-4">
107
+ <div class="flex justify-between items-center">
108
+ <!-- Logo -->
109
+ <a href="/" class="flex items-center space-x-3 space-x-reverse">
110
+ <div class="w-10 h-10 bg-primary rounded-lg flex items-center justify-center">
111
+ <i data-feather="truck" class="text-white w-6 h-6"></i>
112
+ </div>
113
+ <div>
114
+ <div class="text-xl font-bold text-primary">MileTruck</div>
115
+ <div class="text-xs text-gray-500">شحن بري ذكي</div>
116
+ </div>
117
+ </a>
118
+
119
+ <!-- Desktop Menu -->
120
+ <div class="desktop-menu flex items-center space-x-2 space-x-reverse">
121
+ <a href="/" class="nav-link">الرئيسية</a>
122
+ <a href="#services" class="nav-link">خدماتنا</a>
123
+ <a href="/fleet.html" class="nav-link">أسطولنا</a>
124
+ <a href="/solutions.html" class="nav-link">حلول متكاملة</a>
125
+ <a href="/about.html" class="nav-link">عنّا</a>
126
+ <a href="/contact.html" class="nav-link">اتصل بنا</a>
127
+
128
+ <!-- Language Switcher -->
129
+ <div class="language-switcher flex mr-4">
130
+ <div class="language-option active" data-lang="ar">العربية</div>
131
+ <div class="language-option" data-lang="en">English</div>
132
+ </div>
133
+
134
+ <!-- CTA Buttons -->
135
+ <div class="flex items-center space-x-3 space-x-reverse">
136
+ <a href="/login.html" class="text-primary hover:text-primary-dark font-medium">
137
+ <i data-feather="log-in" class="ml-1 w-4 h-4 inline"></i>
138
+ تسجيل الدخول
139
+ </a>
140
+ <a href="/quote.html" class="bg-primary hover:bg-primary-dark text-white font-semibold py-2 px-6 rounded-lg transition-colors duration-300 hover-lift">
141
+ <i data-feather="clipboard" class="ml-2"></i>
142
+ طلب عرض سعر
143
+ </a>
144
+ </div>
145
+ </div>
146
+
147
+ <!-- Mobile Menu Button -->
148
+ <button class="mobile-menu-btn p-2 rounded-lg hover:bg-gray-100">
149
+ <i data-feather="menu" class="w-6 h-6 text-gray-700"></i>
150
+ </button>
151
+ </div>
152
+
153
+ <!-- Mobile Menu -->
154
+ <div class="mobile-menu mt-4">
155
+ <div class="space-y-2 py-4 border-t">
156
+ <a href="/" class="block py-2 px-4 hover:bg-gray-50 rounded-lg">الرئيسية</a>
157
+ <a href="#services" class="block py-2 px-4 hover:bg-gray-50 rounded-lg">خدماتنا</a>
158
+ <a href="/fleet.html" class="block py-2 px-4 hover:bg-gray-50 rounded-lg">أسطولنا</a>
159
+ <a href="/solutions.html" class="block py-2 px-4 hover:bg-gray-50 rounded-lg">حلول متكاملة</a>
160
+ <a href="/about.html" class="block py-2 px-4 hover:bg-gray-50 rounded-lg">عنّا</a>
161
+ <a href="/contact.html" class="block py-2 px-4 hover:bg-gray-50 rounded-lg">اتصل بنا</a>
162
+
163
+ <div class="pt-4 border-t">
164
+ <a href="/login.html" class="block py-2 px-4 hover:bg-gray-50 rounded-lg">
165
+ <i data-feather="log-in" class="ml-2 w-4 h-4 inline"></i>
166
+ تسجيل الدخول
167
+ </a>
168
+ <a href="/quote.html" class="block py-2 px-4 bg-primary text-white rounded-lg mt-2 text-center">
169
+ <i data-feather="clipboard" class="ml-2"></i>
170
+ طلب عرض سعر
171
+ </a>
172
+ </div>
173
+ </div>
174
+ </div>
175
+ </div>
176
+ </nav>
177
+ `;
178
+
179
+ this.initializeEventListeners();
180
+ }
181
+
182
+ initializeEventListeners() {
183
+ // Mobile menu toggle
184
+ const mobileMenuBtn = this.shadowRoot.querySelector('.mobile-menu-btn');
185
+ const mobileMenu = this.shadowRoot.querySelector('.mobile-menu');
186
+
187
+ mobileMenuBtn.addEventListener('click', () => {
188
+ mobileMenu.classList.toggle('open');
189
+ });
190
+
191
+ // Language switcher
192
+ const langOptions = this.shadowRoot.querySelectorAll('.language-option');
193
+ langOptions.forEach(option => {
194
+ option.addEventListener('click', () => {
195
+ langOptions.forEach(opt => opt.classList.remove('active'));
196
+ option.classList.add('active');
197
+ // In a real app, you would change the language here
198
+ });
199
+ });
200
+
201
+ // Navbar scroll effect
202
+ let lastScrollTop = 0;
203
+ window.addEventListener('scroll', () => {
204
+ const navbar = this.shadowRoot.querySelector('.navbar');
205
+ const currentScrollTop = window.pageYOffset || document.documentElement.scrollTop;
206
+
207
+ if (currentScrollTop > 50) {
208
+ navbar.classList.add('scrolled');
209
+ } else {
210
+ navbar.classList.remove('scrolled');
211
+ }
212
+
213
+ lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
214
+ });
215
+
216
+ // Close mobile menu when clicking on a link
217
+ const mobileLinks = this.shadowRoot.querySelectorAll('.mobile-menu a');
218
+ mobileLinks.forEach(link => {
219
+ link.addEventListener('click', () => {
220
+ mobileMenu.classList.remove('open');
221
+ });
222
+ });
223
+
224
+ // Initialize feather icons in shadow DOM
225
+ setTimeout(() => {
226
+ const icons = this.shadowRoot.querySelectorAll('[data-feather]');
227
+ if (typeof feather !== 'undefined') {
228
+ feather.replace({}, this.shadowRoot);
229
+ }
230
+ }, 100);
231
+ }
232
+ }
233
+
234
+ customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -1,19 +1,294 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ar" dir="rtl">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>MileTruck | النقل البري والخدمات اللوجستية للشركات في السعودية</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <link rel="stylesheet" href="style.css">
9
+ <script src="https://cdn.tailwindcss.com"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
11
+ <script src="https://unpkg.com/feather-icons"></script>
12
+ <link rel="preconnect" href="https://fonts.googleapis.com">
13
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
14
+ <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@300;400;500;600;700&display=swap" rel="stylesheet">
15
+ <script>
16
+ tailwind.config = {
17
+ theme: {
18
+ extend: {
19
+ colors: {
20
+ primary: '#1E40AF', // Blue-700
21
+ 'primary-dark': '#1E3A8A',
22
+ secondary: '#F59E0B', // Amber-500
23
+ 'secondary-dark': '#D97706',
24
+ accent: '#10B981', // Emerald-500
25
+ dark: '#1F2937',
26
+ light: '#F9FAFB',
27
+ },
28
+ fontFamily: {
29
+ 'arabic': ['IBM Plex Sans Arabic', 'sans-serif'],
30
+ },
31
+ backgroundImage: {
32
+ 'hero-gradient': 'linear-gradient(135deg, #1E40AF 0%, #0C4A6E 100%)',
33
+ 'stats-gradient': 'linear-gradient(to right, #10B981 0%, #3B82F6 100%)',
34
+ }
35
+ }
36
+ }
37
+ }
38
+ </script>
39
+ </head>
40
+ <body class="font-arabic text-dark bg-gray-50">
41
+ <!-- Navbar Component -->
42
+ <custom-navbar></custom-navbar>
43
+
44
+ <!-- Hero Section -->
45
+ <section class="relative overflow-hidden bg-hero-gradient text-white">
46
+ <div class="absolute inset-0 bg-black opacity-30"></div>
47
+ <div class="absolute top-10 right-10 w-64 h-64 bg-primary rounded-full mix-blend-multiply filter blur-3xl opacity-70 animate-blob"></div>
48
+ <div class="absolute bottom-10 left-10 w-64 h-64 bg-secondary rounded-full mix-blend-multiply filter blur-3xl opacity-70 animate-blob animation-delay-2000"></div>
49
+ <div class="relative container mx-auto px-4 py-24 md:py-32">
50
+ <div class="max-w-3xl">
51
+ <h1 class="text-4xl md:text-6xl font-bold mb-6 leading-tight">
52
+ الريادة في النقل البري، <span class="text-secondary">مُثبَتة بالأداء</span>
53
+ </h1>
54
+ <p class="text-xl md:text-2xl mb-10 text-gray-200">
55
+ شريكك الموثوق للتميز التشغيلي. نجمع بين التقنية المتقدمة والانضباط المؤسسي لنقدم تجربة نقل احترافية تمنحك التحكم الكامل والشفافية المطلقة.
56
+ </p>
57
+ <div class="flex flex-wrap gap-4">
58
+ <a href="#services" class="bg-secondary hover:bg-secondary-dark text-white font-semibold py-3 px-8 rounded-lg shadow-lg transition duration-300 transform hover:-translate-y-1">
59
+ <i data-feather="truck" class="inline ml-2"></i> استعرض خدماتنا
60
+ </a>
61
+ <a href="/quote.html" class="bg-white hover:bg-gray-100 text-primary font-semibold py-3 px-8 rounded-lg shadow-lg transition duration-300">
62
+ <i data-feather="clipboard" class="inline ml-2"></i> اطلب عرض سعر
63
+ </a>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ <!-- Scroll Indicator -->
68
+ <div class="absolute bottom-6 left-1/2 transform -translate-x-1/2 animate-bounce">
69
+ <i data-feather="chevron-down" class="text-white w-8 h-8"></i>
70
+ </div>
71
+ </section>
72
+
73
+ <!-- Stats Section -->
74
+ <section class="py-16 bg-white">
75
+ <div class="container mx-auto px-4">
76
+ <h2 class="text-3xl font-bold text-center mb-12 text-dark">أرقامنا تتحدث عن ريادتنا</h2>
77
+ <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 gap-6">
78
+ <div class="stat-card text-center p-6">
79
+ <div class="text-3xl md:text-4xl font-bold text-primary mb-2 stat-counter" data-target="150">0</div>
80
+ <div class="text-gray-600">عميل</div>
81
+ <i data-feather="users" class="text-primary w-8 h-8 mx-auto mt-4"></i>
82
+ </div>
83
+ <div class="stat-card text-center p-6">
84
+ <div class="text-3xl md:text-4xl font-bold text-primary mb-2 stat-counter" data-target="50000">0</div>
85
+ <div class="text-gray-600">رحلات مكتملة</div>
86
+ <i data-feather="check-circle" class="text-primary w-8 h-8 mx-auto mt-4"></i>
87
+ </div>
88
+ <div class="stat-card text-center p-6">
89
+ <div class="text-3xl md:text-4xl font-bold text-primary mb-2 stat-counter" data-target="1.5">0</div>
90
+ <div class="text-gray-600">مليون طن منقول</div>
91
+ <i data-feather="package" class="text-primary w-8 h-8 mx-auto mt-4"></i>
92
+ </div>
93
+ <div class="stat-card text-center p-6">
94
+ <div class="text-3xl md:text-4xl font-bold text-primary mb-2 stat-counter" data-target="25">0</div>
95
+ <div class="text-gray-600">مليون كم تشغيل</div>
96
+ <i data-feather="map-pin" class="text-primary w-8 h-8 mx-auto mt-4"></i>
97
+ </div>
98
+ <div class="stat-card text-center p-6">
99
+ <div class="text-3xl md:text-4xl font-bold text-primary mb-2 stat-counter" data-target="3.2">0</div>
100
+ <div class="text-gray-600">مليار ريال قيمة بضائع</div>
101
+ <i data-feather="dollar-sign" class="text-primary w-8 h-8 mx-auto mt-4"></i>
102
+ </div>
103
+ <div class="stat-card text-center p-6">
104
+ <div class="text-3xl md:text-4xl font-bold text-primary mb-2 stat-counter" data-target="50">0</div>
105
+ <div class="text-gray-600">وجهة تشغيلية</div>
106
+ <i data-feather="target" class="text-primary w-8 h-8 mx-auto mt-4"></i>
107
+ </div>
108
+ <div class="stat-card text-center p-6">
109
+ <div class="text-3xl md:text-4xl font-bold text-primary mb-2 stat-counter" data-target="15">0</div>
110
+ <div class="text-gray-600">سنة خبرة</div>
111
+ <i data-feather="award" class="text-primary w-8 h-8 mx-auto mt-4"></i>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ </section>
116
+
117
+ <!-- Benefits/Features Section -->
118
+ <section id="services" class="py-16 bg-gray-50">
119
+ <div class="container mx-auto px-4">
120
+ <div class="text-center mb-12">
121
+ <h2 class="text-3xl font-bold mb-4">لماذا تختار MileTruck؟</h2>
122
+ <p class="text-gray-600 max-w-2xl mx-auto">نوفر لك مزايا تنافسية تضمن كفاءة عملياتك اللوجستية</p>
123
+ </div>
124
+ <div class="grid md:grid-cols-2 lg:grid-cols-4 gap-8">
125
+ <div class="bg-white rounded-xl shadow-lg p-6 hover:shadow-xl transition-shadow duration-300">
126
+ <div class="w-12 h-12 bg-primary bg-opacity-10 rounded-lg flex items-center justify-center mb-4">
127
+ <i data-feather="monitor" class="text-primary w-6 h-6"></i>
128
+ </div>
129
+ <h3 class="text-xl font-semibold mb-3">منصة مؤسسية موحدة</h3>
130
+ <p class="text-gray-600">إدارة جميع عمليات النقل بكفاءة ووضوح من خلال منصة رقمية متكاملة.</p>
131
+ </div>
132
+ <div class="bg-white rounded-xl shadow-lg p-6 hover:shadow-xl transition-shadow duration-300">
133
+ <div class="w-12 h-12 bg-primary bg-opacity-10 rounded-lg flex items-center justify-center mb-4">
134
+ <i data-feather="shield" class="text-primary w-6 h-6"></i>
135
+ </div>
136
+ <h3 class="text-xl font-semibold mb-3">موثوقية مثبتة بالأداء</h3>
137
+ <p class="text-gray-600">أداء تشغيلي منضبط يلتزم بأعلى المعايير لضمان استمرارية أعمالك.</p>
138
+ </div>
139
+ <div class="bg-white rounded-xl shadow-lg p-6 hover:shadow-xl transition-shadow duration-300">
140
+ <div class="w-12 h-12 bg-primary bg-opacity-10 rounded-lg flex items-center justify-center mb-4">
141
+ <i data-feather="eye" class="text-primary w-6 h-6"></i>
142
+ </div>
143
+ <h3 class="text-xl font-semibold mb-3">شفافية كاملة</h3>
144
+ <p class="text-gray-600">وضوح تام في العقود، التسعير، والفوترة الإلكترونية الآلية.</p>
145
+ </div>
146
+ <div class="bg-white rounded-xl shadow-lg p-6 hover:shadow-xl transition-shadow duration-300">
147
+ <div class="w-12 h-12 bg-primary bg-opacity-10 rounded-lg flex items-center justify-center mb-4">
148
+ <i data-feather="headphones" class="text-primary w-6 h-6"></i>
149
+ </div>
150
+ <h3 class="text-xl font-semibold mb-3">دعم متكامل</h3>
151
+ <p class="text-gray-600">فريق متخصص لدعم عملياتك وتعزيز كفاءة التشغيل والاستجابة الفورية.</p>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </section>
156
+
157
+ <!-- Fleet Showcase -->
158
+ <section class="py-16 bg-white">
159
+ <div class="container mx-auto px-4">
160
+ <div class="text-center mb-12">
161
+ <h2 class="text-3xl font-bold mb-4">أسطولنا المتنوع مصمم لكل حمولة</h2>
162
+ <p class="text-gray-600 max-w-3xl mx-auto">المركبة المناسبة لكل متطلب، من التوصيل في الميل الأخير إلى النقل الثقيل عبر دول مجلس التعاون الخليجي.</p>
163
+ </div>
164
+
165
+ <!-- Fleet Navigation -->
166
+ <div class="flex justify-center mb-8 overflow-x-auto pb-2">
167
+ <div class="flex space-x-2 space-x-reverse">
168
+ <button class="fleet-category-btn active px-4 py-2 rounded-lg bg-primary text-white" data-category="all">الكل</button>
169
+ <button class="fleet-category-btn px-4 py-2 rounded-lg bg-gray-100 hover:bg-gray-200" data-category="traila">تريلا</button>
170
+ <button class="fleet-category-btn px-4 py-2 rounded-lg bg-gray-100 hover:bg-gray-200" data-category="six">سقس</button>
171
+ <button class="fleet-category-btn px-4 py-2 rounded-lg bg-gray-100 hover:bg-gray-200" data-category="lorry">لوري</button>
172
+ <button class="fleet-category-btn px-4 py-2 rounded-lg bg-gray-100 hover:bg-gray-200" data-category="dyna">دينا</button>
173
+ <button class="fleet-category-btn px-4 py-2 rounded-lg bg-gray-100 hover:bg-gray-200" data-category="pickup">بكب</button>
174
+ </div>
175
+ </div>
176
+
177
+ <!-- Fleet Grid -->
178
+ <div class="grid md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6 fleet-container">
179
+ <!-- Fleet items will be loaded by JavaScript -->
180
+ </div>
181
+ </div>
182
+ </section>
183
+
184
+ <!-- Integrated Solutions -->
185
+ <section class="py-16 bg-gradient-to-r from-primary to-primary-dark text-white">
186
+ <div class="container mx-auto px-4">
187
+ <div class="grid lg:grid-cols-2 gap-12 items-center">
188
+ <div>
189
+ <h2 class="text-3xl font-bold mb-6">حلول متكاملة لدعم نمو أعمالك</h2>
190
+ <p class="text-lg mb-8 opacity-90">نوفر مجموعة شاملة من حلول النقل واللوجستيات المصممة لتمكين الشركات من إدارة عملياتها بكفاءة وشفافية.</p>
191
+ <div class="space-y-4">
192
+ <div class="flex items-center">
193
+ <i data-feather="check-circle" class="text-secondary mr-3"></i>
194
+ <span>عقود النقل طويلة الأمد</span>
195
+ </div>
196
+ <div class="flex items-center">
197
+ <i data-feather="check-circle" class="text-secondary mr-3"></i>
198
+ <span>تأجير الشاحنات اليومي والشهري</span>
199
+ </div>
200
+ <div class="flex items-center">
201
+ <i data-feather="check-circle" class="text-secondary mr-3"></i>
202
+ <span>النقل من وإلى الموانئ ونقل الحاويات</span>
203
+ </div>
204
+ <div class="flex items-center">
205
+ <i data-feather="check-circle" class="text-secondary mr-3"></i>
206
+ <span>الربط التقني مع أنظمة الشركات (ERP/SAP)</span>
207
+ </div>
208
+ <div class="flex items-center">
209
+ <i data-feather="check-circle" class="text-secondary mr-3"></i>
210
+ <span>النقل البري عبر الحدود</span>
211
+ </div>
212
+ </div>
213
+ </div>
214
+ <div class="relative">
215
+ <img src="http://static.photos/technology/640x360/1" alt="حلول النقل الذكية" class="rounded-2xl shadow-2xl">
216
+ <div class="absolute -bottom-6 -right-6 bg-white text-dark p-6 rounded-2xl shadow-xl max-w-xs">
217
+ <i data-feather="map" class="text-primary w-8 h-8 mb-3"></i>
218
+ <h4 class="font-bold mb-2">تتبع حي لحظة بلحظة</h4>
219
+ <p class="text-sm text-gray-600">تاب�� شحنتك على الخريطة في الوقت الفعلي</p>
220
+ </div>
221
+ </div>
222
+ </div>
223
+ </div>
224
+ </section>
225
+
226
+ <!-- Clients/Partners -->
227
+ <section class="py-16 bg-gray-50">
228
+ <div class="container mx-auto px-4">
229
+ <div class="text-center mb-12">
230
+ <h2 class="text-3xl font-bold mb-4">عملاؤنا الذين نعتز بهم</h2>
231
+ <p class="text-gray-600">نفخر بشراكتنا مع أبرز الشركات الوطنية والعالمية</p>
232
+ </div>
233
+ <div class="relative">
234
+ <div class="overflow-hidden">
235
+ <div class="flex animate-partner-scroll">
236
+ <!-- Partner logos will be duplicated by JavaScript -->
237
+ <div class="partner-logos-container flex space-x-8 space-x-reverse">
238
+ <!-- Logos will be inserted here by JavaScript -->
239
+ </div>
240
+ </div>
241
+ </div>
242
+ </div>
243
+ </div>
244
+ </section>
245
+
246
+ <!-- CTA Section -->
247
+ <section class="py-16 bg-white">
248
+ <div class="container mx-auto px-4">
249
+ <div class="bg-gradient-to-r from-primary to-secondary rounded-3xl p-8 md:p-12 text-white shadow-2xl">
250
+ <div class="grid md:grid-cols-2 gap-8 items-center">
251
+ <div>
252
+ <h2 class="text-3xl font-bold mb-4">حمّل تطبيق MileTruck الآن</h2>
253
+ <p class="text-lg mb-6 opacity-90">كل ما تحتاجه لإدارة النقل في منصة واحدة. تتبع شحناتك، إدارة الفواتير، وحجز الرحلات بنقرة واحدة.</p>
254
+ <div class="flex flex-wrap gap-4">
255
+ <a href="#" class="bg-white text-primary hover:bg-gray-100 font-semibold py-3 px-6 rounded-lg flex items-center">
256
+ <i data-feather="download" class="ml-2"></i>
257
+ تحميل للتطبيق
258
+ </a>
259
+ <a href="#" class="border-2 border-white hover:bg-white hover:text-primary font-semibold py-3 px-6 rounded-lg">
260
+ <i data-feather="globe" class="inline ml-2"></i>
261
+ الدخول للويب
262
+ </a>
263
+ </div>
264
+ </div>
265
+ <div class="flex justify-center">
266
+ <div class="relative">
267
+ <img src="http://static.photos/black/320x240/1" alt="رمز QR" class="rounded-2xl border-4 border-white shadow-2xl">
268
+ <div class="absolute -bottom-4 -right-4 bg-white text-dark p-3 rounded-xl shadow-lg">
269
+ <i data-feather="maximize" class="text-primary"></i>
270
+ </div>
271
+ </div>
272
+ </div>
273
+ </div>
274
+ </div>
275
+ </div>
276
+ </section>
277
+
278
+ <!-- Footer Component -->
279
+ <custom-footer></custom-footer>
280
+
281
+ <!-- Component Scripts -->
282
+ <script src="components/navbar.js"></script>
283
+ <script src="components/footer.js"></script>
284
+
285
+ <!-- Main Script -->
286
+ <script src="script.js"></script>
287
+
288
+ <!-- Feather Icons & Initialization -->
289
+ <script>
290
+ feather.replace();
291
+ </script>
292
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
293
+ </body>
294
+ </html>
script.js ADDED
@@ -0,0 +1,308 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Main JavaScript for MileTruck Project
2
+
3
+ document.addEventListener('DOMContentLoaded', function() {
4
+ // Initialize components
5
+ initializeStatsCounter();
6
+ initializeFleetGallery();
7
+ initializePartnerLogos();
8
+ initializeFleetNavigation();
9
+
10
+ // Add smooth scroll to anchor links
11
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
12
+ anchor.addEventListener('click', function (e) {
13
+ e.preventDefault();
14
+ const targetId = this.getAttribute('href');
15
+ if (targetId === '#') return;
16
+
17
+ const targetElement = document.querySelector(targetId);
18
+ if (targetElement) {
19
+ window.scrollTo({
20
+ top: targetElement.offsetTop - 80,
21
+ behavior: 'smooth'
22
+ });
23
+ }
24
+ });
25
+ });
26
+ });
27
+
28
+ // Stats Counter Animation
29
+ function initializeStatsCounter() {
30
+ const statElements = document.querySelectorAll('.stat-counter');
31
+
32
+ const observer = new IntersectionObserver((entries) => {
33
+ entries.forEach(entry => {
34
+ if (entry.isIntersecting) {
35
+ const element = entry.target;
36
+ const target = parseFloat(element.getAttribute('data-target'));
37
+ const suffix = element.textContent.includes('مليون') ? ' مليون' :
38
+ element.textContent.includes('مليار') ? ' مليار' :
39
+ element.textContent.includes(' ألف') ? ' ألف' : '';
40
+
41
+ let start = 0;
42
+ const duration = 2000; // 2 seconds
43
+ const increment = target / (duration / 16); // 60fps
44
+
45
+ const timer = setInterval(() => {
46
+ start += increment;
47
+ if (start >= target) {
48
+ element.textContent = formatNumber(target) + suffix;
49
+ clearInterval(timer);
50
+ } else {
51
+ element.textContent = formatNumber(Math.floor(start)) + suffix;
52
+ }
53
+ }, 16);
54
+
55
+ observer.unobserve(element);
56
+ }
57
+ });
58
+ }, { threshold: 0.5 });
59
+
60
+ statElements.forEach(el => observer.observe(el));
61
+ }
62
+
63
+ function formatNumber(num) {
64
+ if (num >= 1000000) {
65
+ return (num / 1000000).toFixed(1).replace('.0', '');
66
+ }
67
+ return num.toLocaleString('en-US');
68
+ }
69
+
70
+ // Fleet Gallery Initialization
71
+ function initializeFleetGallery() {
72
+ const fleetData = [
73
+ {
74
+ category: 'traila',
75
+ type: 'تريلا',
76
+ name: 'تريلا سطحة محورين',
77
+ image: 'https://www.shahen-sa.com/assets/images/home/truck-images/traila/flatbed-trailer-2axles.webp',
78
+ length: 'طول المقطورة حتى 13.5 متر',
79
+ capacity: 'حمولة قصوى 25 طن'
80
+ },
81
+ {
82
+ category: 'traila',
83
+ type: 'تريلا',
84
+ name: 'تريلا سطحة ثلاث محاور',
85
+ image: 'https://www.shahen-sa.com/assets/images/home/truck-images/traila/flatbed-trailer-3axles.webp',
86
+ length: 'طول المقطورة حتى 13.5 متر',
87
+ capacity: 'حمولة قصوى 30 طن'
88
+ },
89
+ {
90
+ category: 'traila',
91
+ type: 'تريلا',
92
+ name: 'تريلا ستارة',
93
+ image: 'https://www.shahen-sa.com/assets/images/home/truck-images/traila/curtain-trailer.webp',
94
+ length: 'طول المقطورة حتى 13.5 متر',
95
+ capacity: 'حمولة قصوى 25 طن'
96
+ },
97
+ {
98
+ category: 'traila',
99
+ type: 'تريلا',
100
+ name: 'تريلا جوانب عالية',
101
+ image: 'https://www.shahen-sa.com/assets/images/home/truck-images/traila/high-sided-trailer.webp',
102
+ length: 'طول المقطورة حتى 15 متر',
103
+ capacity: 'حمولة قصوى 20 طن'
104
+ },
105
+ {
106
+ category: 'six',
107
+ type: 'سقس',
108
+ name: 'سقس جوانب عالية',
109
+ image: 'https://www.shahen-sa.com/assets/images/home/truck-images/six/sax-high-sided.webp',
110
+ length: 'الطول حتى 8 متر',
111
+ capacity: 'حمولة قصوى 13 طن'
112
+ },
113
+ {
114
+ category: 'six',
115
+ type: 'سقس',
116
+ name: 'سقس ثلاجة',
117
+ image: 'https://www.shahen-sa.com/assets/images/home/truck-images/six/sax-refrigerated.webp',
118
+ length: 'الطول حتى 8 متر',
119
+ capacity: 'حمولة قصوى 10 طن'
120
+ },
121
+ {
122
+ category: 'lorry',
123
+ type: 'لوري',
124
+ name: 'لوري شبك',
125
+ image: 'https://www.shahen-sa.com/assets/images/home/truck-images/lorry/Lorry-Cage-Truck-7M.webp',
126
+ length: 'الطول حتى 7.5 متر',
127
+ capacity: 'حمولة قصوى 8 طن'
128
+ },
129
+ {
130
+ category: 'lorry',
131
+ type: 'لوري',
132
+ name: 'لوري جاف (مغلق)',
133
+ image: 'https://www.shahen-sa.com/assets/images/home/truck-images/lorry/closed-lorry.webp',
134
+ length: 'الطول حتى 6.5 متر',
135
+ capacity: 'حمولة قصوى 6 طن'
136
+ },
137
+ {
138
+ category: 'dyna',
139
+ type: 'دينا',
140
+ name: 'دينا شبك',
141
+ image: 'https://www.shahen-sa.com/assets/images/home/truck-images/dyna/open-dyna.webp',
142
+ length: 'الطول حتى 6 متر',
143
+ capacity: 'حمولة قصوى 4 طن'
144
+ },
145
+ {
146
+ category: 'pickup',
147
+ type: 'بكب',
148
+ name: 'بكب',
149
+ image: 'https://www.shahen-sa.com/assets/images/home/truck-images/pickup/Pickup-Truck.webp',
150
+ length: 'الطول حتى 5 متر',
151
+ capacity: 'حمولة قصوى 2 طن'
152
+ }
153
+ ];
154
+
155
+ const container = document.querySelector('.fleet-container');
156
+
157
+ function renderFleetItems(filter = 'all') {
158
+ container.innerHTML = '';
159
+
160
+ const filteredFleet = filter === 'all'
161
+ ? fleetData
162
+ : fleetData.filter(item => item.category === filter);
163
+
164
+ filteredFleet.forEach((item, index) => {
165
+ const fleetCard = document.createElement('div');
166
+ fleetCard.className = `fleet-card bg-white rounded-xl shadow-lg overflow-hidden hover:shadow-xl transition-shadow duration-300`;
167
+ fleetCard.style.animationDelay = `${index * 100}ms`;
168
+
169
+ fleetCard.innerHTML = `
170
+ <div class="relative h-48 overflow-hidden">
171
+ <img src="${item.image}" alt="${item.name}" class="w-full h-full object-cover hover:scale-110 transition-transform duration-500">
172
+ <div class="absolute top-3 right-3 bg-primary text-white px-3 py-1 rounded-full text-sm">
173
+ ${item.type}
174
+ </div>
175
+ </div>
176
+ <div class="p-6">
177
+ <h3 class="text-xl font-semibold mb-2 text-dark">${item.name}</h3>
178
+ <div class="space-y-2 text-gray-600">
179
+ <div class="flex items-center">
180
+ <i data-feather="maximize" class="w-4 h-4 ml-2"></i>
181
+ <span>${item.length}</span>
182
+ </div>
183
+ <div class="flex items-center">
184
+ <i data-feather="package" class="w-4 h-4 ml-2"></i>
185
+ <span>${item.capacity}</span>
186
+ </div>
187
+ </div>
188
+ <button class="mt-4 w-full bg-gray-100 hover:bg-primary hover:text-white text-primary font-medium py-2 rounded-lg transition-colors duration-300 flex items-center justify-center">
189
+ <i data-feather="shopping-cart" class="ml-2"></i>
190
+ طلب هذه المركبة
191
+ </button>
192
+ </div>
193
+ `;
194
+
195
+ container.appendChild(fleetCard);
196
+ });
197
+
198
+ // Re-initialize feather icons for new elements
199
+ feather.replace();
200
+ }
201
+
202
+ window.renderFleetItems = renderFleetItems;
203
+ renderFleetItems(); // Initial render
204
+ }
205
+
206
+ // Fleet Navigation
207
+ function initializeFleetNavigation() {
208
+ const categoryButtons = document.querySelectorAll('.fleet-category-btn');
209
+
210
+ categoryButtons.forEach(button => {
211
+ button.addEventListener('click', function() {
212
+ // Remove active class from all buttons
213
+ categoryButtons.forEach(btn => {
214
+ btn.classList.remove('active', 'bg-primary', 'text-white');
215
+ btn.classList.add('bg-gray-100', 'hover:bg-gray-200');
216
+ });
217
+
218
+ // Add active class to clicked button
219
+ this.classList.add('active', 'bg-primary', 'text-white');
220
+ this.classList.remove('bg-gray-100', 'hover:bg-gray-200');
221
+
222
+ // Filter fleet items
223
+ const category = this.getAttribute('data-category');
224
+ renderFleetItems(category);
225
+ });
226
+ });
227
+ }
228
+
229
+ // Partner Logos
230
+ function initializePartnerLogos() {
231
+ const partnerLogos = [
232
+ 'Partner (1).png', 'Partner (2).png', 'Partner (3).png', 'Partner (4).png',
233
+ 'Partner (5).png', 'Partner (6).png', 'Partner (7).png', 'Partner (8).png',
234
+ 'Partner (9).png', 'Partner (10).png', 'Partner (11).png', 'Partner (12).png',
235
+ 'Partner (13).png', 'Partner (14).png', 'Partner (15).png', 'Partner (16).png',
236
+ 'Partner (17).png', 'Partner (18).png', 'Partner (19).png', 'Partner (20).png'
237
+ ];
238
+
239
+ const baseUrl = 'https://www.shahen-sa.com/assets/images/home/partnerlogos/';
240
+ const container = document.querySelector('.partner-logos-container');
241
+
242
+ // Create double set for seamless scrolling
243
+ for (let i = 0; i < 2; i++) {
244
+ partnerLogos.forEach(logo => {
245
+ const logoDiv = document.createElement('div');
246
+ logoDiv.className = 'partner-logo';
247
+ logoDiv.innerHTML = `
248
+ <img src="${baseUrl}${logo}" alt="شريك" class="max-w-full max-h-full object-contain">
249
+ `;
250
+ container.appendChild(logoDiv);
251
+ });
252
+ }
253
+ }
254
+
255
+ // Form handling for quote request
256
+ function handleQuoteRequest(e) {
257
+ e.preventDefault();
258
+
259
+ const formData = {
260
+ name: document.getElementById('name').value,
261
+ company: document.getElementById('company').value,
262
+ email: document.getElementById('email').value,
263
+ phone: document.getElementById('phone').value,
264
+ service: document.getElementById('service').value,
265
+ details: document.getElementById('details').value
266
+ };
267
+
268
+ // In a real application, you would send this to a server
269
+ console.log('Quote request submitted:', formData);
270
+
271
+ // Show success message
272
+ alert('تم استلام طلبك بنجاح! سيتصل بك فريقنا خلال 24 ساعة عمل.');
273
+
274
+ // Reset form
275
+ e.target.reset();
276
+ }
277
+
278
+ // Add form submission handler if form exists
279
+ document.addEventListener('DOMContentLoaded', function() {
280
+ const quoteForm = document.getElementById('quote-form');
281
+ if (quoteForm) {
282
+ quoteForm.addEventListener('submit', handleQuoteRequest);
283
+ }
284
+ });
285
+
286
+ // Mobile menu toggle (for components that might need it)
287
+ function toggleMobileMenu() {
288
+ const mobileMenu = document.querySelector('.mobile-menu');
289
+ if (mobileMenu) {
290
+ mobileMenu.classList.toggle('hidden');
291
+ }
292
+ }
293
+
294
+ // Lazy loading for images
295
+ if ('IntersectionObserver' in window) {
296
+ const imageObserver = new IntersectionObserver((entries) => {
297
+ entries.forEach(entry => {
298
+ if (entry.isIntersecting) {
299
+ const img = entry.target;
300
+ img.src = img.dataset.src;
301
+ img.classList.remove('lazy');
302
+ imageObserver.unobserve(img);
303
+ }
304
+ });
305
+ });
306
+
307
+ document.querySelectorAll('img.lazy').forEach(img => imageObserver.observe(img));
308
+ }
style.css CHANGED
@@ -1,28 +1,145 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Custom CSS for MileTruck Project */
2
+
3
+ /* Custom Animations */
4
+ @keyframes blob {
5
+ 0% {
6
+ transform: translate(0px, 0px) scale(1);
7
+ }
8
+ 33% {
9
+ transform: translate(30px, -50px) scale(1.1);
10
+ }
11
+ 66% {
12
+ transform: translate(-20px, 20px) scale(0.9);
13
+ }
14
+ 100% {
15
+ transform: translate(0px, 0px) scale(1);
16
+ }
17
+ }
18
+
19
+ @keyframes partner-scroll {
20
+ 0% {
21
+ transform: translateX(0);
22
+ }
23
+ 100% {
24
+ transform: translateX(-50%);
25
+ }
26
+ }
27
+
28
+ .animate-blob {
29
+ animation: blob 7s infinite;
30
+ }
31
+
32
+ .animation-delay-2000 {
33
+ animation-delay: 2s;
34
+ }
35
+
36
+ .animate-partner-scroll {
37
+ animation: partner-scroll 30s linear infinite;
38
+ }
39
+
40
+ /* Smooth Scroll */
41
+ html {
42
+ scroll-behavior: smooth;
43
+ }
44
+
45
+ /* Custom Stat Card Styling */
46
+ .stat-card {
47
+ background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
48
+ border-radius: 1rem;
49
+ border: 1px solid #e2e8f0;
50
+ transition: all 0.3s ease;
51
+ }
52
+
53
+ .stat-card:hover {
54
+ transform: translateY(-5px);
55
+ box-shadow: 0 10px 25px -5px rgba(30, 64, 175, 0.1);
56
+ border-color: #3b82f6;
57
+ }
58
+
59
+ /* Partner Logo Styling */
60
+ .partner-logo {
61
+ flex-shrink: 0;
62
+ width: 160px;
63
+ height: 80px;
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ background: white;
68
+ border-radius: 0.75rem;
69
+ padding: 1rem;
70
+ border: 1px solid #e5e7eb;
71
+ transition: all 0.3s ease;
72
  }
73
 
74
+ .partner-logo:hover {
75
+ border-color: #1E40AF;
76
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
77
  }
78
 
79
+ /* Fleet Card Styling */
80
+ .fleet-card {
81
+ opacity: 0;
82
+ transform: translateY(20px);
83
+ animation: fadeInUp 0.6s ease forwards;
84
  }
85
 
86
+ @keyframes fadeInUp {
87
+ to {
88
+ opacity: 1;
89
+ transform: translateY(0);
90
+ }
 
91
  }
92
 
93
+ /* RTL Specific Adjustments */
94
+ [dir="rtl"] .space-x-reverse > :not([hidden]) ~ :not([hidden]) {
95
+ --tw-space-x-reverse: 1;
96
  }
97
+
98
+ /* Custom Button Hover Effects */
99
+ .hover-lift {
100
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
101
+ }
102
+
103
+ .hover-lift:hover {
104
+ transform: translateY(-2px);
105
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
106
+ }
107
+
108
+ /* Responsive Typography */
109
+ @media (max-width: 640px) {
110
+ .text-responsive {
111
+ font-size: 1.5rem;
112
+ }
113
+ }
114
+
115
+ /* Loading Animation */
116
+ @keyframes pulse {
117
+ 0%, 100% {
118
+ opacity: 1;
119
+ }
120
+ 50% {
121
+ opacity: 0.5;
122
+ }
123
+ }
124
+
125
+ .animate-pulse {
126
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
127
+ }
128
+
129
+ /* Custom Scrollbar */
130
+ ::-webkit-scrollbar {
131
+ width: 10px;
132
+ }
133
+
134
+ ::-webkit-scrollbar-track {
135
+ background: #f1f1f1;
136
+ }
137
+
138
+ ::-webkit-scrollbar-thumb {
139
+ background: #1E40AF;
140
+ border-radius: 5px;
141
+ }
142
+
143
+ ::-webkit-scrollbar-thumb:hover {
144
+ background: #1E3A8A;
145
+ }