ghuser1 commited on
Commit
7c42108
·
verified ·
1 Parent(s): 047052c

Update public/styles.css

Browse files
Files changed (1) hide show
  1. public/styles.css +185 -4
public/styles.css CHANGED
@@ -71,10 +71,16 @@ body {
71
  background: var(--background);
72
  color: var(--foreground);
73
  min-height: 100vh;
 
74
  }
75
 
76
  .hidden { display: none !important; }
77
 
 
 
 
 
 
78
  /* Sidebar */
79
  .sidebar {
80
  background: var(--card);
@@ -86,6 +92,7 @@ body {
86
  left: 0; top: 0; bottom: 0;
87
  overflow-y: auto;
88
  z-index: 50;
 
89
  }
90
  .sidebar-brand {
91
  display: flex; align-items: center; gap: 8px;
@@ -174,6 +181,12 @@ body {
174
  display: flex; align-items: center; justify-content: space-between;
175
  margin-bottom: 20px; flex-wrap: wrap; gap: 12px;
176
  }
 
 
 
 
 
 
177
  .page-header h1 {
178
  font-size: 22px; font-weight: 700; margin: 0; letter-spacing: -0.3px;
179
  }
@@ -198,10 +211,75 @@ body {
198
  }
199
 
200
  @media (max-width: 720px) {
201
- .sidebar { transform: translateX(-100%); transition: transform .2s; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
202
  .sidebar.open { transform: translateX(0); }
203
- .main { margin-left: 0; padding: 16px; }
204
- .security-banner { align-items: flex-start; flex-direction: column; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  }
206
 
207
  /* Card */
@@ -359,6 +437,7 @@ textarea.search-box { resize: vertical; }
359
  padding: 12px; gap: 6px;
360
  }
361
  .card:hover .img-overlay { opacity: 1; }
 
362
  .img-overlay .btn {
363
  background: rgba(255, 255, 255, 0.95);
364
  border: none;
@@ -394,7 +473,8 @@ textarea.search-box { resize: vertical; }
394
  border: 1px solid var(--border);
395
  border-radius: 14px;
396
  width: 100%; max-width: 560px;
397
- max-height: 90vh; overflow-y: auto;
 
398
  }
399
  .modal-card-large {
400
  max-width: min(960px, 90vw);
@@ -511,3 +591,104 @@ textarea.search-box { resize: vertical; }
511
  animation: spin 0.7s linear infinite;
512
  }
513
  @keyframes spin { to { transform: rotate(360deg); } }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  background: var(--background);
72
  color: var(--foreground);
73
  min-height: 100vh;
74
+ overflow-x: hidden;
75
  }
76
 
77
  .hidden { display: none !important; }
78
 
79
+ .mobile-menu-btn,
80
+ .sidebar-backdrop {
81
+ display: none;
82
+ }
83
+
84
  /* Sidebar */
85
  .sidebar {
86
  background: var(--card);
 
92
  left: 0; top: 0; bottom: 0;
93
  overflow-y: auto;
94
  z-index: 50;
95
+ -webkit-overflow-scrolling: touch;
96
  }
97
  .sidebar-brand {
98
  display: flex; align-items: center; gap: 8px;
 
181
  display: flex; align-items: center; justify-content: space-between;
182
  margin-bottom: 20px; flex-wrap: wrap; gap: 12px;
183
  }
184
+ .page-title-row {
185
+ display: flex;
186
+ align-items: center;
187
+ gap: 10px;
188
+ min-width: 0;
189
+ }
190
  .page-header h1 {
191
  font-size: 22px; font-weight: 700; margin: 0; letter-spacing: -0.3px;
192
  }
 
211
  }
212
 
213
  @media (max-width: 720px) {
214
+ .mobile-menu-btn {
215
+ display: inline-flex;
216
+ align-items: center;
217
+ justify-content: center;
218
+ flex: 0 0 38px;
219
+ width: 42px;
220
+ height: 38px;
221
+ border-radius: 10px;
222
+ border: 1px solid var(--border);
223
+ background: var(--card);
224
+ color: var(--foreground);
225
+ font: inherit;
226
+ font-size: 18px;
227
+ }
228
+ .sidebar-backdrop {
229
+ position: fixed;
230
+ inset: 0;
231
+ z-index: 45;
232
+ display: block;
233
+ background: rgba(0, 0, 0, 0.38);
234
+ }
235
+ .sidebar {
236
+ width: min(82vw, 300px);
237
+ padding: calc(68px + env(safe-area-inset-top)) 16px 20px;
238
+ transform: translateX(-100%);
239
+ transition: transform .2s ease;
240
+ box-shadow: 16px 0 36px rgba(0, 0, 0, 0.18);
241
+ }
242
  .sidebar.open { transform: translateX(0); }
243
+ .main {
244
+ margin-left: 0;
245
+ padding: calc(18px + env(safe-area-inset-top)) 14px calc(22px + env(safe-area-inset-bottom));
246
+ }
247
+ .security-banner { align-items: stretch; flex-direction: column; }
248
+ .security-banner .btn { justify-content: center; }
249
+ .page-header {
250
+ align-items: stretch;
251
+ gap: 14px;
252
+ }
253
+ .page-title-row > div {
254
+ min-width: 0;
255
+ }
256
+ .page-header h1 {
257
+ font-size: 20px;
258
+ line-height: 1.25;
259
+ }
260
+ .page-header p {
261
+ line-height: 1.4;
262
+ }
263
+ .page-header .btn {
264
+ width: 100%;
265
+ justify-content: center;
266
+ min-height: 42px;
267
+ }
268
+ .toolbar {
269
+ margin-bottom: 14px;
270
+ }
271
+ .stats {
272
+ gap: 8px 10px;
273
+ margin-bottom: 14px;
274
+ line-height: 1.5;
275
+ }
276
+ .stats .sep {
277
+ display: none;
278
+ }
279
+ .card-grid {
280
+ grid-template-columns: minmax(0, 1fr);
281
+ gap: 14px;
282
+ }
283
  }
284
 
285
  /* Card */
 
437
  padding: 12px; gap: 6px;
438
  }
439
  .card:hover .img-overlay { opacity: 1; }
440
+ .img-preview:focus-within .img-overlay { opacity: 1; }
441
  .img-overlay .btn {
442
  background: rgba(255, 255, 255, 0.95);
443
  border: none;
 
473
  border: 1px solid var(--border);
474
  border-radius: 14px;
475
  width: 100%; max-width: 560px;
476
+ max-height: min(90vh, 900px); overflow-y: auto;
477
+ -webkit-overflow-scrolling: touch;
478
  }
479
  .modal-card-large {
480
  max-width: min(960px, 90vw);
 
591
  animation: spin 0.7s linear infinite;
592
  }
593
  @keyframes spin { to { transform: rotate(360deg); } }
594
+
595
+ @media (hover: none), (pointer: coarse) {
596
+ .btn,
597
+ .nav-item,
598
+ .filter-chip,
599
+ .size-option {
600
+ min-height: 40px;
601
+ }
602
+ .img-overlay {
603
+ opacity: 1;
604
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.48) 0%, transparent 58%);
605
+ }
606
+ }
607
+
608
+ @media (max-width: 520px) {
609
+ .card {
610
+ border-radius: 10px;
611
+ }
612
+ .card-body {
613
+ padding: 13px 14px;
614
+ }
615
+ .card-title-row {
616
+ align-items: center;
617
+ }
618
+ .card-prompt-head {
619
+ flex-wrap: wrap;
620
+ }
621
+ .card-prompt-head .spacer {
622
+ margin-left: auto;
623
+ }
624
+ .card-actions .btn {
625
+ flex: 1 1 auto;
626
+ justify-content: center;
627
+ }
628
+ .card-actions .spacer {
629
+ margin-left: 0;
630
+ flex: 0 0 44px;
631
+ }
632
+ .prompt-text {
633
+ -webkit-line-clamp: 4;
634
+ }
635
+ .search-box {
636
+ font-size: 16px;
637
+ padding: 11px 12px;
638
+ }
639
+ .modal-overlay {
640
+ align-items: flex-end;
641
+ padding: 10px;
642
+ padding-bottom: max(10px, env(safe-area-inset-bottom));
643
+ }
644
+ .modal-card {
645
+ max-height: calc(100vh - 20px - env(safe-area-inset-top));
646
+ border-radius: 14px 14px 10px 10px;
647
+ }
648
+ .modal-card-large {
649
+ max-width: 100%;
650
+ }
651
+ .modal-head {
652
+ padding: 16px 16px 0;
653
+ }
654
+ .modal-body {
655
+ padding: 14px 16px 18px;
656
+ gap: 14px;
657
+ }
658
+ .modal-actions {
659
+ flex-direction: column-reverse;
660
+ }
661
+ .modal-actions .btn {
662
+ width: 100%;
663
+ min-height: 42px;
664
+ justify-content: center;
665
+ }
666
+ .setting-group {
667
+ padding: 14px;
668
+ }
669
+ .size-select {
670
+ display: grid;
671
+ grid-template-columns: repeat(2, minmax(0, 1fr));
672
+ }
673
+ .size-option {
674
+ text-align: center;
675
+ padding: 9px 8px;
676
+ }
677
+ .meta-grid {
678
+ grid-template-columns: 1fr;
679
+ }
680
+ .meta-item.span2 {
681
+ grid-column: auto;
682
+ }
683
+ .info-img-wrap.large,
684
+ .info-img-wrap.large img {
685
+ max-height: 46vh;
686
+ }
687
+ .toast {
688
+ top: auto;
689
+ bottom: calc(16px + env(safe-area-inset-bottom));
690
+ width: calc(100vw - 28px);
691
+ max-width: 360px;
692
+ text-align: center;
693
+ }
694
+ }