Hamed744 commited on
Commit
492aa11
·
verified ·
1 Parent(s): ea70c63

Update static/css/style.css

Browse files
Files changed (1) hide show
  1. static/css/style.css +104 -62
static/css/style.css CHANGED
@@ -20,48 +20,54 @@ body { font-family: 'Vazirmatn', 'Inter', sans-serif; -webkit-tap-highlight-colo
20
  .typing-indicator span:nth-child(3) { animation-delay: 0.4s; }
21
  @keyframes typing-blink { 0% { opacity: 0.2; } 20% { opacity: 1; } 100% { opacity: 0.2; } }
22
 
 
23
  .prose pre {
24
  position: relative;
25
  background-color: #282c34;
26
  border-radius: 0.75rem;
27
- padding-top: 2.5rem;
28
  overflow-x: auto;
 
 
29
  }
30
  .prose pre code {
31
  white-space: pre;
32
  word-break: normal;
33
  display: block;
34
- padding: 0.5rem 0.75rem;
35
  direction: ltr;
36
  text-align: left;
37
  }
38
-
39
  .code-button-container {
40
  position: absolute;
41
- top: 0.5rem;
42
- right: 0.5rem;
43
  display: flex;
44
  gap: 0.5rem;
45
  opacity: 0;
46
  transition: opacity 0.2s;
47
  }
48
- .prose pre:hover .code-button-container { opacity: 1; }
 
 
49
  .code-button {
50
- padding: 0.25rem 0.5rem;
51
  background-color: rgba(75, 85, 99, 0.8);
52
  color: white;
53
  border: none;
54
  border-radius: 0.375rem;
55
- font-size: 0.75rem;
 
56
  cursor: pointer;
57
  display: flex;
58
  align-items: center;
59
- gap: 0.25rem;
60
  transition: background-color 0.2s;
61
  }
62
  .code-button:hover { background-color: rgba(107, 114, 128, 0.8); }
63
  .code-button:active { background-color: #4b5563; }
64
 
 
65
  .message-actions { opacity: 0; transition: opacity 0.3s ease-in-out; position: absolute; bottom: -1rem; left: 0; display: flex; align-items: center; }
66
  .group:hover .message-actions { opacity: 1; }
67
  .action-button { padding: 0.375rem; border-radius: 9999px; background-color: rgba(255, 255, 255, 0.7); backdrop-filter: blur(4px); border: 1px solid #e5e7eb; color: #6b7280; transition: all 0.2s; box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); }
@@ -198,6 +204,7 @@ body { font-family: 'Vazirmatn', 'Inter', sans-serif; -webkit-tap-highlight-colo
198
  color: #cbd5e1;
199
  }
200
 
 
201
  .welcome-screen {
202
  position: absolute;
203
  top: 0;
@@ -211,10 +218,7 @@ body { font-family: 'Vazirmatn', 'Inter', sans-serif; -webkit-tap-highlight-colo
211
  padding: 40px 20px;
212
  overflow-x: hidden;
213
  box-sizing: border-box;
214
- background-color: #f8f9fa;
215
- color: #333;
216
  }
217
- .dark .welcome-screen { background-color: #111827; color: #d1d5db; }
218
 
219
  .welcome-container {
220
  max-width: 500px;
@@ -248,7 +252,7 @@ body { font-family: 'Vazirmatn', 'Inter', sans-serif; -webkit-tap-highlight-colo
248
  .main-title {
249
  font-size: 1.8rem;
250
  font-weight: 600;
251
- margin-bottom: 3rem;
252
  color: #2c3e50;
253
  line-height: 1.5;
254
  opacity: 0;
@@ -256,70 +260,64 @@ body { font-family: 'Vazirmatn', 'Inter', sans-serif; -webkit-tap-highlight-colo
256
  }
257
  .dark .main-title { color: #e5e7eb; }
258
 
259
- .buttons-grid {
 
260
  display: grid;
261
- grid-template-columns: 1fr 1fr;
262
- gap: 1rem;
263
  margin-top: 2rem;
 
 
 
264
  }
265
 
266
- .action-button-welcome {
267
  display: flex;
268
- flex-direction: row;
269
  align-items: center;
270
- justify-content: space-between;
271
- padding: 1.5rem 1.5rem;
272
- background: #ffffff;
273
- border: 1px solid #e9ecef;
274
- border-radius: 25px;
275
- color: #495057;
276
- text-decoration: none;
277
- font-size: 0.95rem;
278
  font-weight: 500;
279
- transition: all 0.2s ease;
 
280
  cursor: pointer;
281
- box-shadow: 0 2px 4px rgba(0,0,0,0.05);
282
- min-height: 70px;
283
- opacity: 0;
284
- transform: translateY(20px);
285
  }
286
- .dark .action-button-welcome { background: #1f2937; border-color: #374151; color: #d1d5db; }
287
-
288
- .action-button-welcome:hover {
289
- background: #f8f9fa;
290
- border-color: #dee2e6;
291
- transform: translateY(-1px);
292
- box-shadow: 0 4px 8px rgba(0,0,0,0.1);
293
  }
294
- .dark .action-button-welcome:hover { background: #374151; border-color: #4b5563; }
295
 
296
- .button-icon {
297
- width: 40px;
298
- height: 40px;
299
- border-radius: 8px;
300
- display: flex;
301
- align-items: center;
302
- justify-content: center;
303
- font-size: 1.5rem;
304
- font-weight: bold;
 
 
 
 
305
  }
306
 
307
- .orange-icon { background: #fd7e14; color: white; }
308
- .green-icon { background: #20c997; color: white; }
309
- .purple-icon { background: #6f42c1; color: white; }
310
- .blue-icon { background: #0ea5e9; color: white; }
311
-
312
- .button-text {
313
- text-align: right;
314
- line-height: 1.3;
315
- flex: 1;
316
- margin-right: 1rem;
317
  }
318
 
319
  @media (max-width: 480px) {
320
  .chatbot-name, .main-title { font-size: 1.5rem; }
321
- .action-button-welcome { padding: 1.2rem; font-size: 0.85rem; min-height: 60px; }
322
- .button-icon { width: 36px; height: 36px; font-size: 1.2rem; }
323
  }
324
 
325
  #image-gallery-modal {
@@ -1277,7 +1275,6 @@ input:checked + .slider:before {
1277
  to { opacity: 1; transform: translateY(0); }
1278
  }
1279
 
1280
- /* START: New Loading Animation for Free WS Chat */
1281
  .ws-loading-container .dots {
1282
  display: flex;
1283
  gap: 8px;
@@ -1308,4 +1305,49 @@ input:checked + .slider:before {
1308
  transform: translateY(-8px);
1309
  }
1310
  }
1311
- /* END: New Loading Animation for Free WS Chat */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  .typing-indicator span:nth-child(3) { animation-delay: 0.4s; }
21
  @keyframes typing-blink { 0% { opacity: 0.2; } 20% { opacity: 1; } 100% { opacity: 0.2; } }
22
 
23
+ /* === استایل بلوک کد === */
24
  .prose pre {
25
  position: relative;
26
  background-color: #282c34;
27
  border-radius: 0.75rem;
28
+ padding-top: 2.8rem;
29
  overflow-x: auto;
30
+ margin-top: 1em;
31
+ margin-bottom: 1em;
32
  }
33
  .prose pre code {
34
  white-space: pre;
35
  word-break: normal;
36
  display: block;
37
+ padding: 0.75rem 1rem;
38
  direction: ltr;
39
  text-align: left;
40
  }
 
41
  .code-button-container {
42
  position: absolute;
43
+ top: 0.75rem;
44
+ right: 0.75rem;
45
  display: flex;
46
  gap: 0.5rem;
47
  opacity: 0;
48
  transition: opacity 0.2s;
49
  }
50
+ .prose pre:hover .code-button-container {
51
+ opacity: 1;
52
+ }
53
  .code-button {
54
+ padding: 0.25rem 0.6rem;
55
  background-color: rgba(75, 85, 99, 0.8);
56
  color: white;
57
  border: none;
58
  border-radius: 0.375rem;
59
+ font-size: 0.8rem;
60
+ font-family: 'Vazirmatn', sans-serif;
61
  cursor: pointer;
62
  display: flex;
63
  align-items: center;
64
+ gap: 0.3rem;
65
  transition: background-color 0.2s;
66
  }
67
  .code-button:hover { background-color: rgba(107, 114, 128, 0.8); }
68
  .code-button:active { background-color: #4b5563; }
69
 
70
+ /* === استایل دکمه‌های اکشن پیام === */
71
  .message-actions { opacity: 0; transition: opacity 0.3s ease-in-out; position: absolute; bottom: -1rem; left: 0; display: flex; align-items: center; }
72
  .group:hover .message-actions { opacity: 1; }
73
  .action-button { padding: 0.375rem; border-radius: 9999px; background-color: rgba(255, 255, 255, 0.7); backdrop-filter: blur(4px); border: 1px solid #e5e7eb; color: #6b7280; transition: all 0.2s; box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); }
 
204
  color: #cbd5e1;
205
  }
206
 
207
+ /* === استایل‌های صفحه خوش‌آمدگویی === */
208
  .welcome-screen {
209
  position: absolute;
210
  top: 0;
 
218
  padding: 40px 20px;
219
  overflow-x: hidden;
220
  box-sizing: border-box;
 
 
221
  }
 
222
 
223
  .welcome-container {
224
  max-width: 500px;
 
252
  .main-title {
253
  font-size: 1.8rem;
254
  font-weight: 600;
255
+ margin-bottom: 2rem;
256
  color: #2c3e50;
257
  line-height: 1.5;
258
  opacity: 0;
 
260
  }
261
  .dark .main-title { color: #e5e7eb; }
262
 
263
+ /* === استایل‌های جدید برای دکمه‌های پیشنهادی (بدون کارت پس‌زمینه) === */
264
+ .suggestions-container {
265
  display: grid;
266
+ grid-template-columns: repeat(2, 1fr);
267
+ gap: 16px;
268
  margin-top: 2rem;
269
+ opacity: 0;
270
+ transform: translateY(20px);
271
+ transition: opacity 0.5s ease-out, transform 0.5s ease-out;
272
  }
273
 
274
+ .suggestion-button {
275
  display: flex;
276
+ flex-direction: row-reverse;
277
  align-items: center;
278
+ justify-content: center;
279
+ background-color: #ffffff;
280
+ border: 1px solid #eef0f2;
281
+ border-radius: 40px;
282
+ padding: 12px 18px;
283
+ font-size: 15px;
 
 
284
  font-weight: 500;
285
+ color: #333;
286
+ white-space: nowrap;
287
  cursor: pointer;
288
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
289
+ transition: all 0.2s ease-in-out;
 
 
290
  }
291
+ .dark .suggestion-button {
292
+ background-color: #374151;
293
+ border-color: #4b5563;
294
+ color: #e5e7eb;
 
 
 
295
  }
 
296
 
297
+ .suggestion-button:hover {
298
+ transform: translateY(-3px);
299
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.08);
300
+ border-color: #e0e2e5;
301
+ }
302
+ .dark .suggestion-button:hover {
303
+ background-color: #4b5563;
304
+ border-color: #6b7280;
305
+ }
306
+
307
+ .suggestion-button:active {
308
+ transform: translateY(-1px) scale(0.98);
309
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
310
  }
311
 
312
+ .suggestion-button svg {
313
+ width: 20px;
314
+ height: 20px;
315
+ margin-left: 10px;
 
 
 
 
 
 
316
  }
317
 
318
  @media (max-width: 480px) {
319
  .chatbot-name, .main-title { font-size: 1.5rem; }
320
+ .suggestion-button { padding: 10px 14px; font-size: 14px; }
 
321
  }
322
 
323
  #image-gallery-modal {
 
1275
  to { opacity: 1; transform: translateY(0); }
1276
  }
1277
 
 
1278
  .ws-loading-container .dots {
1279
  display: flex;
1280
  gap: 8px;
 
1305
  transform: translateY(-8px);
1306
  }
1307
  }
1308
+
1309
+ /* Premium Feature Animation */
1310
+ @keyframes premium-glow-pulse {
1311
+ 0%, 100% {
1312
+ transform: scale(1);
1313
+ box-shadow: 0 0 8px rgba(167, 139, 250, 0.4);
1314
+ }
1315
+ 50% {
1316
+ transform: scale(1.05);
1317
+ box-shadow: 0 0 20px rgba(167, 139, 250, 0.8);
1318
+ }
1319
+ }
1320
+
1321
+ .animate-premium-lock > * {
1322
+ animation: premium-glow-pulse 0.8s ease-in-out;
1323
+ }
1324
+
1325
+ .premium-locked-item {
1326
+ position: relative;
1327
+ }
1328
+
1329
+ .premium-required-notice {
1330
+ position: absolute;
1331
+ bottom: -28px;
1332
+ left: 50%;
1333
+ transform: translateX(-50%) translateY(10px);
1334
+ background-color: #1f2937;
1335
+ color: #f9fafb;
1336
+ padding: 4px 10px;
1337
+ border-radius: 6px;
1338
+ font-size: 0.75rem;
1339
+ white-space: nowrap;
1340
+ opacity: 0;
1341
+ transition: all 0.3s ease-out;
1342
+ pointer-events: none;
1343
+ box-shadow: 0 2px 5px rgba(0,0,0,0.2);
1344
+ }
1345
+ .dark .premium-required-notice {
1346
+ background-color: #f9fafb;
1347
+ color: #1f2937;
1348
+ }
1349
+
1350
+ .premium-locked-item.show-notice .premium-required-notice {
1351
+ opacity: 1;
1352
+ transform: translateX(-50%) translateY(0);
1353
+ }