rezasabir123 commited on
Commit
423654a
·
verified ·
1 Parent(s): 06b9dc4

یک وبسایت شبیه این ادرس https://www.shahabcarpet.com/ با کلیه زیر لینک ها و صفحات طراحی کنید

Browse files
Files changed (10) hide show
  1. README.md +8 -5
  2. about.html +139 -0
  3. cart.html +197 -0
  4. components/footer.js +111 -0
  5. components/navbar.js +157 -0
  6. contact.html +139 -0
  7. index.html +136 -19
  8. products.html +182 -0
  9. script.js +142 -0
  10. style.css +57 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Persian Rug Palace
3
- emoji: 🌖
4
- colorFrom: pink
5
- colorTo: yellow
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: Persian Rug Palace 🎨
3
+ colorFrom: gray
4
+ colorTo: green
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).
about.html ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fa" dir="rtl">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>درباره ما - قالی شهاب</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
+ <style>
13
+ @import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap');
14
+ </style>
15
+ </head>
16
+ <body class="font-vazir bg-gray-50">
17
+ <custom-navbar></custom-navbar>
18
+
19
+ <!-- About Header -->
20
+ <section class="bg-amber-700 text-white py-12">
21
+ <div class="container mx-auto px-4">
22
+ <h1 class="text-4xl font-bold text-center mb-4">درباره قالی شهاب</h1>
23
+ <p class="text-center text-amber-100 max-w-2xl mx-auto">
24
+ افتخار پنج دهه خدمت در زمینه فرش دستباف ایرانی
25
+ </p>
26
+ </div>
27
+ </section>
28
+
29
+ <!-- History Section -->
30
+ <section class="py-16 bg-white">
31
+ <div class="container mx-auto px-4">
32
+ <h2 class="text-3xl font-bold text-gray-800 mb-8 text-center">تاریخچه ما</h2>
33
+ <div class="max-w-4xl mx-auto text-gray-600 leading-relaxed text-lg">
34
+ <p class="mb-6">
35
+ قالی شهاب در سال ۱۳۵۰ توسط مرحوم حاج محمد شهاب‌زاده تأسیس شد. از همان ابتدا، هدف ما حفظ و اشاعه هنر اصیل فرش‌بافی ایرانی بوده است.
36
+ </p>
37
+ <p class="mb-6">
38
+ با گذشت بیش از ۵۰ سال، ما همچنان به ارزش‌های اصلی خود پایبند هستیم: کیفیت، اصالت و رضایت مشتری.
39
+ </p>
40
+ <p class="mb-6">
41
+ امروز، قالی شهاب با افتخار یکی از معتبرترین برندهای فرش دستباف در ایران است.
42
+ </p>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ </section>
47
+
48
+ <!-- Values Section -->
49
+ <section class="py-16 bg-amber-50">
50
+ <div class="container mx-auto px-4">
51
+ <h2 class="text-3xl font-bold text-gray-800 mb-12 text-center">ارزش‌های ما</h2>
52
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
53
+ <div class="text-center">
54
+ <div class="bg-amber-100 w-20 h-20 rounded-full flex items-center justify-center mx-auto mb-6">
55
+ <i data-feather="award" class="text-amber-700 w-10 h-10 mx-auto">
56
+ </div>
57
+ <h3 class="text-xl font-semibold text-gray-800 mb-4">کیفیت</h3>
58
+ <p class="text-gray-600">استفاده از بهترین مواد اولیه و رعایت استانداردهای جهانی</p>
59
+ </div>
60
+ <div class="text-center">
61
+ <div class="bg-amber-100 w-20 h-20 rounded-full flex items-center justify-center mx-auto mb-6">
62
+ <i data-feather="star" class="text-amber-700 w-10 h-10 mx-auto">
63
+ </div>
64
+ <h3 class="text-xl font-semibold text-gray-800 mb-4">اصالت</h3>
65
+ <p class="text-gray-600">حفظ طرح‌ها و روش‌های سنتی فرش‌بافی</p>
66
+ </div>
67
+ <div class="text-center">
68
+ <div class="bg-amber-100 w-20 h-20 rounded-full flex items-center justify-center mx-auto mb-6">
69
+ <i data-feather="heart" class="text-amber-700 w-10 h-10 mx-auto">
70
+ </div>
71
+ <h3 class="text-xl font-semibold text-gray-800 mb-4">رضایت مشتری</h3>
72
+ <p class="text-gray-600">اولویت دادن به نیازها و انتظارات مشتریان</p>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </section>
77
+
78
+ <!-- Team Section -->
79
+ <section class="py-16 bg-white">
80
+ <div class="container mx-auto px-4">
81
+ <h2 class="text-3xl font-bold text-gray-800 mb-12 text-center">تیم ما</h2>
82
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8">
83
+ <div class="text-center">
84
+ <img src="http://static.photos/people/200x200/1" alt="مدیر عامل" class="w-32 h-32 rounded-full mx-auto mb-4 object-cover">
85
+ <h3 class="text-lg font-semibold text-gray-800">محمد شهاب‌زاده</h3>
86
+ <p class="text-gray-600">مدیر عامل</p>
87
+ </div>
88
+ <div class="text-center">
89
+ <img src="http://static.photos/people/200x200/2" alt="مدیر فروش" class="w-32 h-32 rounded-full mx-auto mb-4 object-cover">
90
+ <h3 class="text-lg font-semibold text-gray-800">فاطمه احمدی</h3>
91
+ <p class="text-gray-600">مدیر فروش</p>
92
+ </div>
93
+ <div class="text-center">
94
+ <img src="http://static.photos/people/200x200/3" alt="کارشناس فرش" class="w-32 h-32 rounded-full mx-auto mb-4 object-cover">
95
+ <h3 class="text-lg font-semibold text-gray-800">علی رضایی</h3>
96
+ <p class="text-gray-600">کارشناس فرش</p>
97
+ </div>
98
+ <div class="text-center">
99
+ <img src="http://static.photos/people/200x200/4" alt="مشاور هنری" class="w-32 h-32 rounded-full mx-auto mb-4 object-cover">
100
+ <h3 class="text-lg font-semibold text-gray-800">زهرا محمدی</h3>
101
+ <p class="text-gray-600">مشاور هنری</p>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ </section>
106
+
107
+ <!-- Achievements -->
108
+ <section class="py-16 bg-gray-100">
109
+ <div class="container mx-auto px-4">
110
+ <h2 class="text-3xl font-bold text-gray-800 mb-12 text-center">دستاوردها</h2>
111
+ <div class="grid grid-cols-2 md:grid-cols-4 gap-8 text-center">
112
+ <div>
113
+ <div class="text-3xl font-bold text-amber-700 mb-2">۵۰+</h2>
114
+ <p class="text-gray-600">سال تجربه</p>
115
+ </div>
116
+ <div>
117
+ <div class="text-3xl font-bold text-amber-700 mb-2">۱۰,۰۰۰+</h2>
118
+ <p class="text-gray-600">مشتری راضی</p>
119
+ </div>
120
+ <div>
121
+ <div class="text-3xl font-bold text-amber-700 mb-2">۵۰۰+</h2>
122
+ <p class="text-gray-600">طرح مختلف</p>
123
+ </div>
124
+ <div>
125
+ <div class="text-3xl font-bold text-amber-700 mb-2">۲۰+</h2>
126
+ <p class="text-gray-600">کشور مقصد</p>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </section>
131
+
132
+ <custom-footer></custom-footer>
133
+
134
+ <script src="components/navbar.js"></script>
135
+ <script src="components/footer.js"></script>
136
+ <script src="script.js"></script>
137
+ <script>feather.replace();</script>
138
+ </body>
139
+ </html>
cart.html ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fa" dir="rtl">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>سبد خرید - قالی شهاب</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
+ <style>
13
+ @import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap');
14
+ </style>
15
+ </head>
16
+ <body class="font-vazir bg-gray-50">
17
+ <custom-navbar></custom-navbar>
18
+
19
+ <!-- Cart Header -->
20
+ <section class="bg-amber-700 text-white py-12">
21
+ <div class="container mx-auto px-4">
22
+ <h1 class="text-4xl font-bold text-center mb-4">سبد خرید شما</h1>
23
+ </div>
24
+ </section>
25
+
26
+ <!-- Cart Content -->
27
+ <section class="py-16">
28
+ <div class="container mx-auto px-4">
29
+ <div class="grid grid-cols-1 lg:grid-cols-3 gap-8">
30
+ <!-- Cart Items -->
31
+ <div class="lg:col-span-2">
32
+ <div class="bg-white rounded-lg shadow-lg">
33
+ <div class="p-6 border-b border-gray-200">
34
+ <h2 class="text-2xl font-bold text-gray-800">محصولات انتخاب شده</h2>
35
+ </div>
36
+
37
+ <div id="cart-items" class="p-6">
38
+ <!-- Cart items will be dynamically loaded here -->
39
+ <div class="text-center py-8">
40
+ <i data-feather="shopping-cart" class="w-16 h-16 text-gray-400 mx-auto mb-4">
41
+ <p class="text-gray-600">سبد خرید شما خالی است</p>
42
+ <a href="/products.html" class="inline-block bg-amber-600 text-white px-6 py-3 rounded-lg hover:bg-amber-700 transition duration-300 mt-4">
43
+ بازگشت به محصولات
44
+ </a>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </div>
49
+
50
+ <!-- Order Summary -->
51
+ <div class="bg-white rounded-lg shadow-lg h-fit">
52
+ <div class="p-6 border-b border-gray-200">
53
+ <h2 class="text-2xl font-bold text-gray-800">خلاصه سفارش</h2>
54
+ </div>
55
+ <div class="p-6">
56
+ <div class="flex justify-between items-center mb-4">
57
+ <span class="text-gray-700">جمع کل:</span>
58
+ <span class="text-amber-700 font-bold text-xl">۰ تومان</span>
59
+ </div>
60
+ <div class="flex justify-between items-center mb-4">
61
+ <span class="text-gray-700">تخفیف:</span>
62
+ <span class="text-green-600 font-semibold">۰ تومان</span>
63
+ </div>
64
+ <div class="flex justify-between items-center mb-6">
65
+ <span class="text-gray-700">قابل پرداخت:</span>
66
+ <span class="text-amber-700 font-bold text-xl">۰ تومان</span>
67
+ </div>
68
+ <button onclick="checkout()" class="bg-amber-600 text-white px-6 py-3 rounded-lg hover:bg-amber-700 transition duration-300 w-full disabled:opacity-50" disabled>
69
+ پرداخت نهایی
70
+ </button>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </section>
77
+
78
+ <!-- Related Products -->
79
+ <section class="py-16 bg-white">
80
+ <div class="container mx-auto px-4">
81
+ <h2 class="text-3xl font-bold text-gray-800 mb-8">محصولات پیشنهادی</h2>
82
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
83
+ <!-- Product cards would be loaded here -->
84
+ </div>
85
+ </div>
86
+ </section>
87
+
88
+ <custom-footer></custom-footer>
89
+
90
+ <script src="components/navbar.js"></script>
91
+ <script src="components/footer.js"></script>
92
+ <script src="script.js"></script>
93
+ <script>
94
+ function loadCartItems() {
95
+ const cart = JSON.parse(localStorage.getItem('cart')) || [];
96
+ const cartItemsContainer = document.getElementById('cart-items');
97
+
98
+ if (cart.length === 0) {
99
+ cartItemsContainer.innerHTML = `
100
+ <div class="text-center py-8">
101
+ <i data-feather="shopping-cart" class="w-16 h-16 text-gray-400 mx-auto mb-4">
102
+ <p class="text-gray-600">سبد خرید شما خالی است</p>
103
+ <a href="/products.html" class="inline-block bg-amber-600 text-white px-6 py-3 rounded-lg hover:bg-amber-700 transition duration-300 mt-4">
104
+ بازگشت به محصولات
105
+ </a>
106
+ </div>
107
+ `;
108
+ return;
109
+ }
110
+
111
+ let total = 0;
112
+ let html = '';
113
+
114
+ cart.forEach(item => {
115
+ const itemTotal = item.price * item.quantity;
116
+ total += itemTotal;
117
+
118
+ html += `
119
+ <div class="flex items-center justify-between p-4 border-b border-gray-200">
120
+ <div class="flex items-center">
121
+ <img src="http://static.photos/vintage/200x200/${item.id + 10}" alt="${item.name}" class="w-20 h-20 object-cover rounded-lg">
122
+ <div class="mr-4">
123
+ <h3 class="font-semibold text-gray-800">${item.name}</h3>
124
+ <p class="text-gray-600">${item.price.toLocaleString()} تومان</p>
125
+ </div>
126
+ <div class="flex items-center gap-4">
127
+ <button onclick="updateQuantity(${item.id}, ${item.quantity - 1})" class="text-gray-500 hover:text-gray-700">
128
+ <i data-feather="minus"></i>
129
+ </button>
130
+ <span class="font-semibold">${item.quantity}</span>
131
+ <button onclick="updateQuantity(${item.id}, ${item.quantity + 1})">+</button>
132
+ <button onclick="removeFromCart(${item.id})" class="text-red-500 hover:text-red-700">
133
+ <i data-feather="trash-2"></i>
134
+ </button>
135
+ </div>
136
+ </div>
137
+ `;
138
+ });
139
+
140
+ cartItemsContainer.innerHTML = html;
141
+ updateOrderSummary(total);
142
+ }
143
+
144
+ function updateQuantity(productId, newQuantity) {
145
+ if (newQuantity < 1) {
146
+ removeFromCart(productId);
147
+ return;
148
+ }
149
+
150
+ let cart = JSON.parse(localStorage.getItem('cart')) || [];
151
+ const item = cart.find(item => item.id === productId);
152
+
153
+ if (item) {
154
+ item.quantity = newQuantity;
155
+ localStorage.setItem('cart', JSON.stringify(cart));
156
+ loadCartItems();
157
+ updateCartCount();
158
+ }
159
+
160
+ function removeFromCart(productId) {
161
+ let cart = JSON.parse(localStorage.getItem('cart')) || [];
162
+ cart = cart.filter(item => item.id !== productId);
163
+ localStorage.setItem('cart', JSON.stringify(cart));
164
+ loadCartItems();
165
+ updateCartCount();
166
+ }
167
+
168
+ function updateOrderSummary(total) {
169
+ const discount = 0;
170
+ const finalTotal = total - discount;
171
+
172
+ document.querySelector('[class*="text-gray-700"]:contains("جمع کل")').nextElementSibling.textContent = total.toLocaleString() + ' تومان';
173
+ document.querySelector('[class*="text-gray-700"]:contains("قابل پرداخت")').nextElementSibling.textContent = finalTotal.toLocaleString() + ' تومان';
174
+ }
175
+
176
+ function checkout() {
177
+ const cart = JSON.parse(localStorage.getItem('cart')) || [];
178
+
179
+ if (cart.length === 0) {
180
+ showNotification('سبد خرید شما خالی است');
181
+ return;
182
+ }
183
+
184
+ showNotification('پرداخت با موفقیت انجام شد');
185
+ localStorage.removeItem('cart');
186
+ updateCartCount();
187
+ loadCartItems();
188
+ }
189
+
190
+ // Load cart items on page load
191
+ document.addEventListener('DOMContentLoaded', function() {
192
+ loadCartItems();
193
+ });
194
+ </script>
195
+ <script>feather.replace();</script>
196
+ </body>
197
+ </html>
components/footer.js ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ @import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap');
7
+
8
+ footer {
9
+ background: #1f2937;
10
+ color: white;
11
+ padding: 3rem 2rem;
12
+ font-family: 'Vazirmatn', sans-serif;
13
+ }
14
+
15
+ .footer-content {
16
+ max-width: 1200px;
17
+ margin: 0 auto;
18
+ display: grid;
19
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
20
+ gap: 2rem;
21
+ }
22
+
23
+ .footer-section h3 {
24
+ color: #fbbf24;
25
+ margin-bottom: 1rem;
26
+ font-size: 1.25rem;
27
+ }
28
+
29
+ .footer-section p, .footer-section a {
30
+ color: #d1d5db;
31
+ text-decoration: none;
32
+ margin-bottom: 0.5rem;
33
+ display: block;
34
+ }
35
+
36
+ .footer-section a:hover {
37
+ color: #fbbf24;
38
+ }
39
+
40
+ .social-links {
41
+ display: flex;
42
+ gap: 1rem;
43
+ margin-top: 1rem;
44
+ }
45
+
46
+ .social-links a {
47
+ display: inline-flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ width: 40px;
51
+ height: 40px;
52
+ background: #374151;
53
+ border-radius: 50%;
54
+ transition: background 0.3s ease;
55
+ }
56
+
57
+ .social-links a:hover {
58
+ background: #b45309;
59
+ }
60
+
61
+ .copyright {
62
+ text-align: center;
63
+ margin-top: 3rem;
64
+ padding-top: 2rem;
65
+ border-top: 1px solid #374151;
66
+ color: #9ca3af;
67
+ }
68
+ </style>
69
+
70
+ <footer>
71
+ <div class="footer-content">
72
+ <div class="footer-section">
73
+ <h3>قالی شهاب</h3>
74
+ <p>با بیش از ۵۰ سال تجربه در زمینه تولید و فروش فرش دستباف ایرانی</p>
75
+ </div>
76
+
77
+ <div class="footer-section">
78
+ <h3>دسترسی سریع</h3>
79
+ <a href="/">خانه</a>
80
+ <a href="/products.html">محصولات</a>
81
+ <a href="/about.html">درباره ما</a>
82
+ <a href="/contact.html">تماس با ما</a>
83
+ </div>
84
+
85
+ <div class="footer-section">
86
+ <h3>تماس با ما</h3>
87
+ <p>تهران، خیابان ولیعصر</p>
88
+ <p>تلفن: ۰۲۱-۱۲۳۴۵۶۷۸</p>
89
+ <p>ایمیل: info@shahabcarpet.com</p>
90
+ </div>
91
+
92
+ <div class="footer-section">
93
+ <h3>شبکه‌های اجتماعی</h3>
94
+ <div class="social-links">
95
+ <a href="#"><i data-feather="instagram"></i></a>
96
+ <a href="#"><i data-feather="twitter"></i></a>
97
+ <a href="#"><i data-feather="facebook"></i></a>
98
+ <a href="#"><i data-feather="youtube"></i></a>
99
+ </div>
100
+ </div>
101
+ </div>
102
+
103
+ <div class="copyright">
104
+ <p>&copy; ۱۴۰۳ قالی شهاب. تمام حقوق محفوظ است.</p>
105
+ </div>
106
+ </footer>
107
+ `;
108
+ }
109
+ }
110
+
111
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ @import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap');
7
+
8
+ nav {
9
+ background: linear-gradient(135deg, #b45309 0%, #d97706 100%);
10
+ padding: 1rem 2rem;
11
+ display: flex;
12
+ justify-content: space-between;
13
+ align-items: center;
14
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
15
+ position: relative;
16
+ z-index: 40;
17
+ }
18
+
19
+ .logo {
20
+ color: white;
21
+ font-weight: bold;
22
+ font-size: 1.5rem;
23
+ font-family: 'Vazirmatn', sans-serif;
24
+ }
25
+
26
+ .desktop-menu {
27
+ display: flex;
28
+ gap: 2rem;
29
+ list-style: none;
30
+ margin: 0;
31
+ padding: 0;
32
+ align-items: center;
33
+ }
34
+
35
+ @media (max-width: 768px) {
36
+ .desktop-menu {
37
+ display: none;
38
+ }
39
+ }
40
+
41
+ .mobile-menu {
42
+ display: none;
43
+ position: absolute;
44
+ top: 100%;
45
+ left: 0;
46
+ right: 0;
47
+ background: white;
48
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
49
+ flex-direction: column;
50
+ padding: 1rem;
51
+ }
52
+
53
+ .mobile-menu.active {
54
+ display: flex;
55
+ }
56
+
57
+ .nav-link {
58
+ color: white;
59
+ text-decoration: none;
60
+ padding: 0.5rem 1rem;
61
+ border-radius: 0.375rem;
62
+ transition: all 0.3s ease;
63
+ font-family: 'Vazirmatn', sans-serif;
64
+ }
65
+
66
+ .nav-link:hover {
67
+ background: rgba(255, 255, 255, 0.1);
68
+ }
69
+
70
+ .mobile-nav-link {
71
+ color: #4b5563;
72
+ text-decoration: none;
73
+ padding: 0.75rem 1rem;
74
+ border-bottom: 1px solid #e5e7eb;
75
+ display: block;
76
+ font-family: 'Vazirmatn', sans-serif;
77
+ }
78
+
79
+ .mobile-nav-link:hover {
80
+ background: #f3f4f6;
81
+ }
82
+
83
+ .mobile-menu-button {
84
+ display: none;
85
+ background: none;
86
+ border: none;
87
+ color: white;
88
+ cursor: pointer;
89
+ }
90
+
91
+ @media (max-width: 768px) {
92
+ .mobile-menu-button {
93
+ display: block;
94
+ }
95
+ }
96
+
97
+ .cart-badge {
98
+ background: #ef4444;
99
+ color: white;
100
+ border-radius: 50%;
101
+ width: 20px;
102
+ height: 20px;
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ font-size: 0.75rem;
107
+ position: absolute;
108
+ top: -5px;
109
+ left: -5px;
110
+ }
111
+
112
+ .cart-container {
113
+ position: relative;
114
+ }
115
+ </style>
116
+
117
+ <nav>
118
+ <div class="logo">قالی شهاب</div>
119
+
120
+ <ul class="desktop-menu">
121
+ <li><a href="/" class="nav-link">خانه</a></li>
122
+ <li><a href="/products.html" class="nav-link">محصولات</a></li>
123
+ <li><a href="/about.html" class="nav-link">درباره ما</a></li>
124
+ <li><a href="/contact.html" class="nav-link">تماس با ما</a></li>
125
+ <li class="cart-container">
126
+ <a href="/cart.html" class="nav-link flex items-center">
127
+ <i data-feather="shopping-cart"></i>
128
+ <span class="cart-count hidden cart-badge">0</span>
129
+ </li>
130
+ </ul>
131
+
132
+ <button class="mobile-menu-button" onclick="this.dispatchEvent(new CustomEvent('toggleMobileMenu', { bubbles: true }))">
133
+ <i data-feather="menu"></i>
134
+ </button>
135
+
136
+ <div class="mobile-menu hidden" id="mobile-menu">
137
+ <a href="/" class="mobile-nav-link">خانه</a>
138
+ <a href="/products.html" class="mobile-nav-link">محصولات</a>
139
+ <a href="/about.html" class="mobile-nav-link">درباره ما</a>
140
+ <a href="/contact.html" class="mobile-nav-link">تماس با ما</a>
141
+ <a href="/cart.html" class="mobile-nav-link flex items-center justify-between">
142
+ سبد خرید
143
+ <span class="cart-count hidden bg-red-500 text-white rounded-full w-6 h-6 flex items-center justify-center text-xs">0</span>
144
+ </a>
145
+ </div>
146
+ </nav>
147
+ `;
148
+
149
+ // Add event listener for mobile menu toggle
150
+ this.shadowRoot.querySelector('.mobile-menu-button').addEventListener('click', () => {
151
+ const mobileMenu = this.shadowRoot.getElementById('mobile-menu');
152
+ mobileMenu.classList.toggle('hidden');
153
+ });
154
+ }
155
+ }
156
+
157
+ customElements.define('custom-navbar', CustomNavbar);
contact.html ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fa" dir="rtl">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>تماس با ما - قالی شهاب</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
+ <style>
13
+ @import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap');
14
+ </style>
15
+ </head>
16
+ <body class="font-vazir bg-gray-50">
17
+ <custom-navbar></custom-navbar>
18
+
19
+ <!-- Contact Header -->
20
+ <section class="bg-amber-700 text-white py-12">
21
+ <div class="container mx-auto px-4">
22
+ <h1 class="text-4xl font-bold text-center mb-4">تماس با ما</h1>
23
+ <p class="text-center text-amber-100 max-w-2xl mx-auto">
24
+ ما مشتاق شنیدن نظرات و پیشنهادات شما هستیم
25
+ </p>
26
+ </div>
27
+ </section>
28
+
29
+ <!-- Contact Content -->
30
+ <section class="py-16">
31
+ <div class="container mx-auto px-4">
32
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-12">
33
+ <!-- Contact Form -->
34
+ <div class="bg-white p-8 rounded-lg shadow-lg">
35
+ <h2 class="text-2xl font-bold text-gray-800 mb-6">ارسال پیام</h2>
36
+ <form onsubmit="return validateContactForm()" class="space-y-6">
37
+ <div>
38
+ <label for="name" class="block text-gray-700 mb-2">نام و نام خانوادگی *</label>
39
+ <input type="text" id="name" name="name"
40
+ class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-amber-500 focus:border-transparent">
41
+ </div>
42
+
43
+ <div>
44
+ <label for="email" class="block text-gray-700 mb-2">ایمیل *</label>
45
+ <input type="email" id="email" name="email"
46
+ class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-amber-500 focus:border-transparent">
47
+ </div>
48
+
49
+ <div>
50
+ <label for="phone" class="block text-gray-700 mb-2">تلفن</label>
51
+ <input type="tel" id="phone" name="phone"
52
+ class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-amber-500 focus:border-transparent">
53
+ </div>
54
+
55
+ <div>
56
+ <label for="message" class="block text-gray-700 mb-2">پیام *</label>
57
+ <textarea id="message" name="message" rows="5"
58
+ class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-amber-500 focus:border-transparent"></textarea>
59
+ </div>
60
+
61
+ <button type="submit" class="bg-amber-600 text-white px-8 py-3 rounded-lg font-semibold hover:bg-amber-700 transition duration-300 w-full">
62
+ ارسال پیام
63
+ </button>
64
+ </form>
65
+ </div>
66
+
67
+ <!-- Contact Info -->
68
+ <div class="bg-amber-50 p-8 rounded-lg">
69
+ <h2 class="text-2xl font-bold text-gray-800 mb-6">اطلاعات تماس</h2>
70
+ <div class="space-y-4">
71
+ <div class="flex items-center">
72
+ <i data-feather="map-pin" class="text-amber-700 ml-3">
73
+ </div>
74
+ <p class="text-gray-600">تهران، خیابان ولیعصر، پلاک ۱۲۳۴</p>
75
+ </div>
76
+
77
+ <div class="flex items-center">
78
+ <i data-feather="phone" class="text-amber-700 ml-3">
79
+ </div>
80
+ <p class="text-gray-600">۰۲۱-۱۲۳۴۵۶۷۸</p>
81
+ </div>
82
+
83
+ <div class="flex items-center">
84
+ <i data-feather="mail" class="text-amber-700 ml-3">
85
+ </div>
86
+ <p class="text-gray-600">info@shahabcarpet.com</p>
87
+ </div>
88
+
89
+ <div class="flex items-center">
90
+ <i data-feather="clock" class="text-amber-700 ml-3">
91
+ </div>
92
+ <p class="text-gray-600">شنبه تا چهارشنبه: ۸:۰۰ - ۱۷:۰۰</p>
93
+ </div>
94
+
95
+ <div class="mt-8">
96
+ <h3 class="text-xl font-semibold text-gray-800 mb-4">ساعات کاری</p>
97
+ </div>
98
+
99
+ <div class="mt-6">
100
+ <h3 class="text-xl font-semibold text-gray-800 mb-4">ما را دنبال کنید</h3>
101
+ <div class="flex gap-4">
102
+ <a href="#" class="text-amber-700 hover:text-amber-800">
103
+ <i data-feather="instagram"></i>
104
+ </a>
105
+ <a href="#" class="text-amber-700 hover:text-amber-800">
106
+ <i data-feather="twitter"></i>
107
+ </a>
108
+ <a href="#" class="text-amber-700 hover:text-amber-800">
109
+ <i data-feather="facebook"></i>
110
+ </a>
111
+ <a href="#" class="text-amber-700 hover:text-amber-800">
112
+ <i data-feather="youtube"></i>
113
+ </a>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </section>
121
+
122
+ <!-- Map Section -->
123
+ <section class="py-16 bg-white">
124
+ <div class="container mx-auto px-4">
125
+ <h2 class="text-3xl font-bold text-gray-800 mb-8 text-center">موقعیت ما روی نقشه</h2>
126
+ <div class="bg-gray-200 h-64 rounded-lg flex items-center justify-center">
127
+ <p class="text-gray-600">نقشه گوگل در اینجا نمایش داده می‌شود</p>
128
+ </div>
129
+ </div>
130
+ </section>
131
+
132
+ <custom-footer></custom-footer>
133
+
134
+ <script src="components/navbar.js"></script>
135
+ <script src="components/footer.js"></script>
136
+ <script src="script.js"></script>
137
+ <script>feather.replace();</script>
138
+ </body>
139
+ </html>
index.html CHANGED
@@ -1,19 +1,136 @@
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="fa" dir="rtl">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>قالی شهاب - فروشگاه فرش دستباف ایرانی</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
+ <style>
13
+ @import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap');
14
+ </style>
15
+ </head>
16
+ <body class="font-vazir bg-gray-50">
17
+ <custom-navbar></custom-navbar>
18
+
19
+ <!-- Hero Section -->
20
+ <section class="relative bg-gradient-to-r from-amber-800 to-amber-600 text-white py-20">
21
+ <div class="absolute inset-0 bg-black opacity-30"></div>
22
+ <div class="container mx-auto px-4 relative z-10">
23
+ <div class="max-w-2xl">
24
+ <h1 class="text-4xl md:text-6xl font-bold mb-6">فرش‌های دستباف ایرانی اصیل</h1>
25
+ <p class="text-xl mb-8">با بیش از ۵۰ سال تجربه در ارائه بهترین فرش‌های دستباف ایرانی</p>
26
+ <a href="/products.html" class="bg-white text-amber-800 px-8 py-3 rounded-lg font-semibold hover:bg-amber-100 transition duration-300">
27
+ مشاهده محصولات
28
+ </a>
29
+ </div>
30
+ </div>
31
+ </section>
32
+
33
+ <!-- Featured Categories -->
34
+ <section class="py-16 bg-white">
35
+ <div class="container mx-auto px-4">
36
+ <h2 class="text-3xl font-bold text-center text-gray-800 mb-12">دسته‌بندی محصولات</h2>
37
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
38
+ <div class="bg-amber-50 rounded-lg overflow-hidden shadow-lg hover:shadow-xl transition duration-300">
39
+ <img src="http://static.photos/vintage/640x360/1" alt="فرش کلاسیک" class="w-full h-48 object-cover">
40
+ <div class="p-6">
41
+ <h3 class="text-xl font-semibold text-gray-800 mb-3">فرش‌های کلاسیک</h3>
42
+ <p class="text-gray-600 mb-4">فرش‌های سنتی با طرح‌های اصیل ایرانی</p>
43
+ <a href="/products.html?category=classic" class="text-amber-700 font-semibold hover:text-amber-800">مشاهده بیشتر</a>
44
+ </div>
45
+ </div>
46
+ <div class="bg-amber-50 rounded-lg overflow-hidden shadow-lg hover:shadow-xl transition duration-300">
47
+ <img src="http://static.photos/modern/640x360/2" alt="فرش مدرن" class="w-full h-48 object-cover">
48
+ <div class="p-6">
49
+ <h3 class="text-xl font-semibold text-gray-800 mb-3">فرش‌های مدرن</h3>
50
+ <p class="text-gray-600 mb-4">فرش‌های با طراحی معاصر و رنگ‌های شاد</p>
51
+ <a href="/products.html?category=modern" class="text-amber-700 font-semibold hover:text-amber-800">مشاهده بیشتر</a>
52
+ </div>
53
+ </div>
54
+ <div class="bg-amber-50 rounded-lg overflow-hidden shadow-lg hover:shadow-xl transition duration-300">
55
+ <img src="http://static.photos/antique/640x360/3" alt="فرش آنتیک" class="w-full h-48 object-cover">
56
+ <div class="p-6">
57
+ <h3 class="text-xl font-semibold text-gray-800 mb-3">فرش‌های آنتیک</h3>
58
+ <p class="text-gray-600 mb-4">فرش‌های قدیمی و با ارزش تاریخی</p>
59
+ <a href="/products.html?category=antique" class="text-amber-700 font-semibold hover:text-amber-800">مشاهده بیشتر</a>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </section>
65
+
66
+ <!-- About Preview -->
67
+ <section class="py-16 bg-gray-100">
68
+ <div class="container mx-auto px-4">
69
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-12 items-center">
70
+ <div>
71
+ <img src="http://static.photos/workspace/640x360/4" alt="درباره ما" class="rounded-lg shadow-lg">
72
+ </div>
73
+ <div>
74
+ <h2 class="text-3xl font-bold text-gray-800 mb-6">درباره قالی شهاب</h2>
75
+ <p class="text-gray-600 mb-6 leading-relaxed">
76
+ با بیش از نیم قرن تجربه در زمینه تولید و فروش فرش دستباف ایرانی، قالی شهاب مفتخر است که اصیل‌ترین و باکیفیت‌ترین فرش‌ها را به مشتریان خود ارائه می‌دهد.
77
+ </p>
78
+ <a href="/about.html" class="bg-amber-700 text-white px-6 py-3 rounded-lg font-semibold hover:bg-amber-800 transition duration-300">
79
+ بیشتر بدانید
80
+ </a>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </section>
85
+
86
+ <!-- Testimonials -->
87
+ <section class="py-16 bg-white">
88
+ <div class="container mx-auto px-4">
89
+ <h2 class="text-3xl font-bold text-center text-gray-800 mb-12">نظرات مشتریان</h2>
90
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
91
+ <div class="bg-gray-50 p-6 rounded-lg shadow-md">
92
+ <div class="text-amber-500 mb-4">
93
+ <i data-feather="star" class="inline"></i>
94
+ <i data-feather="star" class="inline"></i>
95
+ <i data-feather="star" class="inline"></i>
96
+ <i data-feather="star" class="inline"></i>
97
+ <i data-feather="star" class="inline"></i>
98
+ </div>
99
+ <p class="text-gray-600 mb-4">کیفیت فرش‌ها واقعاً عالی بود. بسیار راضی هستم.</p>
100
+ <p class="text-gray-800 font-semibold">- محمد رضایی</p>
101
+ </div>
102
+ <div class="bg-gray-50 p-6 rounded-lg shadow-md">
103
+ <div class="text-amber-500 mb-4">
104
+ <i data-feather="star" class="inline"></i>
105
+ <i data-feather="star" class="inline"></i>
106
+ <i data-feather="star" class="inline"></i>
107
+ <i data-feather="star" class="inline"></i>
108
+ <i data-feather="star" class="inline"></i>
109
+ </div>
110
+ <p class="text-gray-600 mb-4">خدمات پس از فروش بسیار عالی و پشتیبانی کامل.</p>
111
+ <p class="text-gray-800 font-semibold">- فاطمه حسینی</p>
112
+ </div>
113
+ <div class="bg-gray-50 p-6 rounded-lg shadow-md">
114
+ <div class="text-amber-500 mb-4">
115
+ <i data-feather="star" class="inline"></i>
116
+ <i data-feather="star" class="inline"></i>
117
+ <i data-feather="star" class="inline"></i>
118
+ <i data-feather="star" class="inline"></i>
119
+ <i data-feather="star" class="inline"></i>
120
+ </div>
121
+ <p class="text-gray-600 mb-4">تنوع طرح و رنگ بسیار بالا و کیفیت بی‌نظیر.</p>
122
+ <p class="text-gray-800 font-semibold">- علی محمدی</p>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ </section>
127
+
128
+ <custom-footer></custom-footer>
129
+
130
+ <script src="components/navbar.js"></script>
131
+ <script src="components/footer.js"></script>
132
+ <script src="script.js"></script>
133
+ <script>feather.replace();</script>
134
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
135
+ </body>
136
+ </html>
products.html ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fa" dir="rtl">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>محصولات - قالی شهاب</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
+ <style>
13
+ @import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap');
14
+ </style>
15
+ </head>
16
+ <body class="font-vazir bg-gray-50">
17
+ <custom-navbar></custom-navbar>
18
+
19
+ <!-- Products Header -->
20
+ <section class="bg-amber-700 text-white py-12">
21
+ <div class="container mx-auto px-4">
22
+ <h1 class="text-4xl font-bold text-center mb-4">محصولات ما</h1>
23
+ <p class="text-center text-amber-100 max-w-2xl mx-auto">
24
+ مجموعه‌ای از زیباترین و باکیفیت‌ترین فرش‌های دستباف ایرانی
25
+ </p>
26
+ </div>
27
+ </section>
28
+
29
+ <!-- Filter Section -->
30
+ <section class="py-8 bg-white shadow-sm">
31
+ <div class="container mx-auto px-4">
32
+ <div class="flex flex-wrap gap-4 justify-center">
33
+ <button onclick="filterProducts('all')" class="bg-amber-600 text-white px-6 py-2 rounded-lg hover:bg-amber-700 transition duration-300" data-category="all">
34
+ همه محصولات
35
+ </button>
36
+ <button onclick="filterProducts('classic')" class="bg-gray-200 text-gray-700 px-6 py-2 rounded-lg hover:bg-gray-300 transition duration-300" data-category="classic">
37
+ کلاسیک
38
+ </button>
39
+ <button onclick="filterProducts('modern')" class="bg-gray-200 text-gray-700 px-6 py-2 rounded-lg hover:bg-gray-300 transition duration-300">
40
+ مدرن
41
+ </button>
42
+ <button onclick="filterProducts('antique')" class="bg-gray-200 text-gray-700 px-6 py-2 rounded-lg hover:bg-gray-300 transition duration-300" data-category="modern">
43
+ آنتیک
44
+ </button>
45
+ </div>
46
+
47
+ <!-- Search Box -->
48
+ <div class="mt-6 max-w-md mx-auto">
49
+ <div class="relative">
50
+ <input type="text" id="search-input" placeholder="جستجو در محصولات..."
51
+ class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-amber-500 focus:border-transparent">
52
+ <i data-feather="search" class="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400">
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </section>
57
+
58
+ <!-- Products Grid -->
59
+ <section class="py-16">
60
+ <div class="container mx-auto px-4">
61
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
62
+ <!-- Product 1 -->
63
+ <div class="product-item bg-white rounded-lg shadow-lg hover-lift" data-category="classic">
64
+ <img src="http://static.photos/vintage/640x360/5" alt="فرش اصفهان" class="w-full h-64 object-cover rounded-t-lg">
65
+ <div class="p-6">
66
+ <h3 class="text-xl font-semibold text-gray-800 mb-3">فرش اصفهان</h3>
67
+ <p class="text-gray-600 mb-4">فرش دستباف اصفهان با طرح‌های سنتی و رنگ‌های طبیعی</p>
68
+ <div class="flex justify-between items-center">
69
+ <span class="text-amber-700 font-bold text-lg">۱۲,۰۰۰,۰۰۰ تومان</span>
70
+ <button onclick="addToCart(1, 'فرش اصفهان', 12000000)" class="bg-amber-600 text-white px-4 py-2 rounded-lg hover:bg-amber-700 transition duration-300">
71
+ افزودن به سبد
72
+ </button>
73
+ </div>
74
+ </div>
75
+ </div>
76
+
77
+ <!-- Product 2 -->
78
+ <div class="product-item bg-white rounded-lg shadow-lg hover-lift" data-category="modern">
79
+ <img src="http://static.photos/modern/640x360/6" alt="فرش مدرن" class="w-full h-64 object-cover rounded-t-lg">
80
+ <div class="p-6">
81
+ <h3 class="text-xl font-semibold text-gray-800 mb-3">فرش مدرن</h3>
82
+ <p class="text-gray-600 mb-4">فرش با طراحی معاصر و رنگ‌های شاد برای فضای مدرن</p>
83
+ <div class="flex justify-between items-center">
84
+ <span class="text-amber-700 font-bold text-lg">۸,۵۰۰,۰۰۰ تومان</span>
85
+ <button onclick="addToCart(2, 'فر�� مدرن', 8500000)" class="bg-amber-600 text-white px-4 py-2 rounded-lg hover:bg-amber-700 transition duration-300">
86
+ افزودن به سبد
87
+ </button>
88
+ </div>
89
+ </div>
90
+ </div>
91
+
92
+ <!-- Product 3 -->
93
+ <div class="product-item bg-white rounded-lg shadow-lg hover-lift" data-category="antique">
94
+ <img src="http://static.photos/antique/640x360/7" alt="فرش آنتیک" class="w-full h-64 object-cover rounded-t-lg">
95
+ <div class="p-6">
96
+ <h3 class="text-xl font-semibold text-gray-800 mb-3">فرش آنتیک</h3>
97
+ <p class="text-gray-600 mb-4">فرش دستباف قدیمی با ارزش تاریخی و کیفیت استثنایی</p>
98
+ <div class="flex justify-between items-center">
99
+ <span class="text-amber-700 font-bold text-lg">۲۵,۰۰۰,۰۰۰ تومان</span>
100
+ <button onclick="addToCart(3, 'فرش آنتیک', 25000000)" class="bg-amber-600 text-white px-4 py-2 rounded-lg hover:bg-amber-700 transition duration-300">
101
+ افزودن به سبد
102
+ </button>
103
+ </div>
104
+ </div>
105
+ </div>
106
+
107
+ <!-- Product 4 -->
108
+ <div class="product-item bg-white rounded-lg shadow-lg hover-lift" data-category="classic">
109
+ <img src="http://static.photos/vintage/640x360/8" alt="فرش تبریز" class="w-full h-64 object-cover rounded-t-lg">
110
+ <div class="p-6">
111
+ <h3 class="text-xl font-semibold text-gray-800 mb-3">فرش تبریز</h3>
112
+ <p class="text-gray-600 mb-4">فرش دستباف تبریز با گره‌های محکم و طرح‌های اصیل</p>
113
+ <div class="flex justify-between items-center">
114
+ <span class="text-amber-700 font-bold text-lg">۱۵,۰۰۰,۰۰۰ تومان</span>
115
+ <button onclick="addToCart(4, 'فرش تبریز', 15000000)" class="bg-amber-600 text-white px-4 py-2 rounded-lg hover:bg-amber-700 transition duration-300">
116
+ افزودن به سبد
117
+ </button>
118
+ </div>
119
+ </div>
120
+ </div>
121
+
122
+ <!-- Product 5 -->
123
+ <div class="product-item bg-white rounded-lg shadow-lg hover-lift" data-category="modern">
124
+ <img src="http://static.photos/modern/640x360/9" alt="فرش مدرن طرح هندسی" class="w-full h-64 object-cover rounded-t-lg">
125
+ <div class="p-6">
126
+ <h3 class="text-xl font-semibold text-gray-800 mb-3">فرش مدرن طرح هندسی</h3>
127
+ <p class="text-gray-600 mb-4">فرش با طرح هندسی مدرن و رنگ‌های متنوع</p>
128
+ <div class="flex justify-between items-center">
129
+ <span class="text-amber-700 font-bold text-lg">۷,۲۰۰,۰۰۰ تومان</span>
130
+ <button onclick="addToCart(5, 'فرش مدرن طرح هندسی', 7200000)" class="bg-amber-600 text-white px-4 py-2 rounded-lg hover:bg-amber-700 transition duration-300">
131
+ افزودن به سبد
132
+ </button>
133
+ </div>
134
+ </div>
135
+ </div>
136
+
137
+ <!-- Product 6 -->
138
+ <div class="product-item bg-white rounded-lg shadow-lg hover-lift" data-category="antique">
139
+ <img src="http://static.photos/antique/640x360/10" alt="فرش قدیمی کرمان" class="w-full h-64 object-cover rounded-t-lg">
140
+ <div class="p-6">
141
+ <h3 class="text-xl font-semibold text-gray-800 mb-3">فرش قدیمی کرمان</h3>
142
+ <p class="text-gray-600 mb-4">فرش دستباف کرمان با قدمت ۱۰۰ سال و کیفیت استثنایی</p>
143
+ <div class="flex justify-between items-center">
144
+ <span class="text-amber-700 font-bold text-lg">۳۰,۰۰۰,۰۰۰ تومان</span>
145
+ <button onclick="addToCart(6, 'فرش قدیمی کرمان', 30000000)" class="bg-amber-600 text-white px-4 py-2 rounded-lg hover:bg-amber-700 transition duration-300">
146
+ افزودن به سبد
147
+ </button>
148
+ </div>
149
+ </div>
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </section>
154
+
155
+ <custom-footer></custom-footer>
156
+
157
+ <script src="components/navbar.js"></script>
158
+ <script src="components/footer.js"></script>
159
+ <script src="script.js"></script>
160
+ <script>
161
+ // Initialize search functionality
162
+ document.getElementById('search-input').addEventListener('input', function(e) {
163
+ searchProducts(e.target.value);
164
+ });
165
+
166
+ // Initialize filter buttons
167
+ document.querySelectorAll('[data-category]').forEach(button => {
168
+ button.addEventListener('click', function() {
169
+ // Update active state
170
+ document.querySelectorAll('[data-category]').forEach(btn => {
171
+ btn.classList.remove('bg-amber-600', 'text-white');
172
+ btn.classList.add('bg-gray-200', 'text-gray-700');
173
+ });
174
+
175
+ this.classList.remove('bg-gray-200', 'text-gray-700');
176
+ this.classList.add('bg-amber-600', 'text-white');
177
+ });
178
+ });
179
+ </script>
180
+ <script>feather.replace();</script>
181
+ </body>
182
+ </html>
script.js ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Shared JavaScript across all pages
2
+ console.log('قالی شهاب - App loaded');
3
+
4
+ // Initialize Feather Icons
5
+ document.addEventListener('DOMContentLoaded', function() {
6
+ if (typeof feather !== 'undefined') {
7
+ feather.replace();
8
+ }
9
+ });
10
+
11
+ // Mobile menu functionality
12
+ function toggleMobileMenu() {
13
+ const mobileMenu = document.getElementById('mobile-menu');
14
+ if (mobileMenu) {
15
+ mobileMenu.classList.toggle('hidden');
16
+ }
17
+ }
18
+
19
+ // Product filtering and search
20
+ function filterProducts(category = 'all') {
21
+ const products = document.querySelectorAll('.product-item');
22
+ products.forEach(product => {
23
+ if (category === 'all' || product.dataset.category === category) {
24
+ product.style.display = 'block';
25
+ } else {
26
+ product.style.display = 'none';
27
+ }
28
+ });
29
+ }
30
+
31
+ // Search functionality
32
+ function searchProducts(query) {
33
+ const products = document.querySelectorAll('.product-item');
34
+ products.forEach(product => {
35
+ const title = product.querySelector('h3').textContent.toLowerCase();
36
+ const description = product.querySelector('p').textContent.toLowerCase();
37
+ const searchTerm = query.toLowerCase();
38
+
39
+ if (title.includes(searchTerm) || description.includes(searchTerm)) {
40
+ product.style.display = 'block';
41
+ } else {
42
+ product.style.display = 'none';
43
+ }
44
+ });
45
+ }
46
+
47
+ // Add to cart functionality
48
+ function addToCart(productId, productName, price) {
49
+ let cart = JSON.parse(localStorage.getItem('cart')) || [];
50
+ const existingItem = cart.find(item => item.id === productId);
51
+
52
+ if (existingItem) {
53
+ existingItem.quantity += 1;
54
+ } else {
55
+ cart.push({
56
+ id: productId,
57
+ name: productName,
58
+ price: price,
59
+ quantity: 1
60
+ });
61
+ }
62
+
63
+ localStorage.setItem('cart', JSON.stringify(cart));
64
+ updateCartCount();
65
+ showNotification('محصول به سبد خرید اضافه شد');
66
+ }
67
+
68
+ // Update cart count in navbar
69
+ function updateCartCount() {
70
+ const cart = JSON.parse(localStorage.getItem('cart')) || [];
71
+ const totalItems = cart.reduce((sum, item) => sum + item.quantity, 0);
72
+ const cartCountElements = document.querySelectorAll('.cart-count');
73
+
74
+ cartCountElements.forEach(element => {
75
+ element.textContent = totalItems;
76
+ if (totalItems > 0) {
77
+ element.classList.remove('hidden');
78
+ } else {
79
+ element.classList.add('hidden');
80
+ }
81
+ });
82
+ }
83
+
84
+ // Show notification
85
+ function showNotification(message) {
86
+ const notification = document.createElement('div');
87
+ notification.className = 'fixed top-4 left-4 bg-green-500 text-white px-6 py-3 rounded-lg shadow-lg z-50';
88
+ notification.textContent = message;
89
+
90
+ document.body.appendChild(notification);
91
+
92
+ setTimeout(() => {
93
+ notification.remove();
94
+ }, 3000);
95
+ }
96
+
97
+ // Initialize cart count on page load
98
+ document.addEventListener('DOMContentLoaded', function() {
99
+ updateCartCount();
100
+ });
101
+
102
+ // Form validation
103
+ function validateContactForm() {
104
+ const name = document.getElementById('name').value;
105
+ const email = document.getElementById('email').value;
106
+ const message = document.getElementById('message').value;
107
+
108
+ if (!name || !email || !message) {
109
+ showNotification('لطفاً تمام فیلدهای ضروری را پر کنید');
110
+ return false;
111
+ }
112
+
113
+ if (!isValidEmail(email)) {
114
+ showNotification('لطفاً یک ایمیل معتبر وارد کنید');
115
+ return false;
116
+ }
117
+
118
+ return true;
119
+ }
120
+
121
+ function isValidEmail(email) {
122
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
123
+ return emailRegex.test(email);
124
+ }
125
+
126
+ // Image lazy loading
127
+ document.addEventListener('DOMContentLoaded', function() {
128
+ const lazyImages = document.querySelectorAll('img[data-src]');
129
+
130
+ const imageObserver = new IntersectionObserver((entries, observer) => {
131
+ entries.forEach(entry => {
132
+ if (entry.isIntersecting) {
133
+ const img = entry.target;
134
+ img.src = img.dataset.src;
135
+ img.removeAttribute('data-src');
136
+ observer.unobserve(img);
137
+ }
138
+ });
139
+ });
140
+
141
+ lazyImages.forEach(img => imageObserver.observe(img));
142
+ });
style.css CHANGED
@@ -1,28 +1,67 @@
 
 
 
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
+ /* Shared styles across all pages */
2
+ @import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap');
3
+
4
  body {
5
+ font-family: 'Vazirmatn', sans-serif;
6
+ direction: rtl;
7
+ }
8
+
9
+ .font-vazir {
10
+ font-family: 'Vazirmatn', sans-serif;
11
+ }
12
+
13
+ /* Custom scrollbar */
14
+ ::-webkit-scrollbar {
15
+ width: 8px;
16
+ }
17
+
18
+ ::-webkit-scrollbar-track {
19
+ background: #f1f1f1;
20
  }
21
 
22
+ ::-webkit-scrollbar-thumb {
23
+ background: #b45309;
24
+ border-radius: 4px;
25
  }
26
 
27
+ ::-webkit-scrollbar-thumb:hover {
28
+ background: #92400e;
 
 
 
29
  }
30
 
31
+ /* Smooth transitions */
32
+ * {
33
+ transition: all 0.3s ease;
 
 
 
34
  }
35
 
36
+ /* Loading animation */
37
+ .loading-spinner {
38
+ border: 3px solid #f3f4f6;
39
+ border-top: 3px solid #b45309;
40
+ border-radius: 50%;
41
+ width: 40px;
42
+ height: 40px;
43
+ animation: spin 1s linear infinite;
44
  }
45
+
46
+ @keyframes spin {
47
+ 0% { transform: rotate(0deg); }
48
+ 100% { transform: rotate(360deg); }
49
+ }
50
+
51
+ /* Hover effects */
52
+ .hover-lift {
53
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
54
+ }
55
+
56
+ .hover-lift:hover {
57
+ transform: translateY(-5px);
58
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
59
+ }
60
+
61
+ /* Gradient text */
62
+ .gradient-text {
63
+ background: linear-gradient(135deg, #b45309 0%, #d97706 100%);
64
+ -webkit-background-clip: text;
65
+ -webkit-text-fill-color: transparent;
66
+ background-clip: text;
67
+ }