fmegahed commited on
Commit
f9edcc8
·
verified ·
1 Parent(s): a28c8a8

Create www/miami-theme.css

Browse files

CSS styling following Miami's style guide

Files changed (1) hide show
  1. www/miami-theme.css +613 -0
www/miami-theme.css ADDED
@@ -0,0 +1,613 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Miami University Theme CSS */
2
+ /* Color Palette:
3
+ Primary Red: #C41230
4
+ Light Tan: #EDECE2
5
+ Medium Tan: #CCC9B8
6
+ Corn Yellow (tertiary): #EFDB72
7
+ White: #FFFFFF
8
+ Black: #000000
9
+ */
10
+
11
+ :root {
12
+ --miami-red: #C41230;
13
+ --miami-light-tan: #EDECE2;
14
+ --miami-medium-tan: #CCC9B8;
15
+ --miami-yellow: #EFDB72;
16
+ --miami-white: #FFFFFF;
17
+ --miami-black: #000000;
18
+ --miami-dark-red: #9E0F28;
19
+ }
20
+
21
+ /* Body and base styling */
22
+ body {
23
+ background-color: var(--miami-light-tan);
24
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
25
+ color: var(--miami-black);
26
+ }
27
+
28
+ /* Header styling */
29
+ .app-header {
30
+ background: linear-gradient(135deg, var(--miami-red) 0%, var(--miami-dark-red) 100%);
31
+ color: var(--miami-white);
32
+ padding: 20px 30px;
33
+ margin: -15px -15px 20px -15px;
34
+ border-radius: 0;
35
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
36
+ }
37
+
38
+ .app-header h1 {
39
+ margin: 0 0 5px 0;
40
+ font-size: 1.8em;
41
+ font-weight: 600;
42
+ letter-spacing: 0.5px;
43
+ }
44
+
45
+ .app-header .subtitle {
46
+ font-size: 0.9em;
47
+ opacity: 0.9;
48
+ margin: 0;
49
+ }
50
+
51
+ .header-content {
52
+ display: flex;
53
+ justify-content: space-between;
54
+ align-items: center;
55
+ flex-wrap: wrap;
56
+ gap: 20px;
57
+ }
58
+
59
+ .header-left {
60
+ flex: 1;
61
+ min-width: 300px;
62
+ }
63
+
64
+ .header-right {
65
+ text-align: right;
66
+ }
67
+
68
+ .header-right p {
69
+ margin: 3px 0;
70
+ font-size: 0.85em;
71
+ }
72
+
73
+ /* Logo container styling */
74
+ .logo-container {
75
+ display: flex;
76
+ align-items: center;
77
+ gap: 20px;
78
+ background-color: var(--miami-white);
79
+ padding: 15px 20px;
80
+ border-radius: 8px;
81
+ margin-bottom: 20px;
82
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
83
+ }
84
+
85
+ .logo-container img {
86
+ height: 50px;
87
+ width: auto;
88
+ object-fit: contain;
89
+ }
90
+
91
+ .logo-divider {
92
+ width: 1px;
93
+ height: 40px;
94
+ background-color: var(--miami-medium-tan);
95
+ }
96
+
97
+ /* Title Panel Override */
98
+ .shiny-title-panel {
99
+ display: none;
100
+ }
101
+
102
+ /* Well panels */
103
+ .well {
104
+ background-color: var(--miami-white);
105
+ border: 1px solid var(--miami-medium-tan);
106
+ border-radius: 8px;
107
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
108
+ padding: 20px;
109
+ }
110
+
111
+ /* Sidebar styling */
112
+ .sidebar-panel {
113
+ background-color: var(--miami-white);
114
+ border: 1px solid var(--miami-medium-tan);
115
+ border-radius: 8px;
116
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
117
+ }
118
+
119
+ /* Main panel styling */
120
+ .main-panel {
121
+ background-color: transparent;
122
+ }
123
+
124
+ /* Card-like sections */
125
+ .info-card {
126
+ background-color: var(--miami-white);
127
+ border: 1px solid var(--miami-medium-tan);
128
+ border-radius: 8px;
129
+ padding: 20px;
130
+ margin-bottom: 20px;
131
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
132
+ }
133
+
134
+ .info-card h4 {
135
+ color: var(--miami-red);
136
+ margin-top: 0;
137
+ padding-bottom: 10px;
138
+ border-bottom: 2px solid var(--miami-light-tan);
139
+ font-weight: 600;
140
+ }
141
+
142
+ /* How to use section */
143
+ .how-to-use {
144
+ background-color: var(--miami-white);
145
+ border-left: 4px solid var(--miami-red);
146
+ border-radius: 0 8px 8px 0;
147
+ padding: 20px;
148
+ margin-bottom: 25px;
149
+ }
150
+
151
+ .how-to-use h4 {
152
+ color: var(--miami-red);
153
+ margin-top: 0;
154
+ font-weight: 600;
155
+ }
156
+
157
+ .how-to-use ol {
158
+ padding-left: 20px;
159
+ }
160
+
161
+ .how-to-use li {
162
+ margin-bottom: 8px;
163
+ line-height: 1.5;
164
+ }
165
+
166
+ /* Video tutorial button */
167
+ .btn-video-tutorial {
168
+ background-color: var(--miami-medium-tan);
169
+ color: var(--miami-black);
170
+ border: none;
171
+ border-radius: 6px;
172
+ padding: 8px 16px;
173
+ font-weight: 500;
174
+ cursor: pointer;
175
+ transition: all 0.2s;
176
+ }
177
+
178
+ .btn-video-tutorial:hover {
179
+ background-color: var(--miami-yellow);
180
+ color: var(--miami-black);
181
+ }
182
+
183
+ /* Video modal */
184
+ .video-modal {
185
+ display: none;
186
+ position: fixed;
187
+ z-index: 9999;
188
+ left: 0;
189
+ top: 0;
190
+ width: 100%;
191
+ height: 100%;
192
+ background-color: rgba(0, 0, 0, 0.8);
193
+ justify-content: center;
194
+ align-items: center;
195
+ }
196
+
197
+ .video-modal-content {
198
+ background-color: var(--miami-white);
199
+ border-radius: 12px;
200
+ padding: 25px;
201
+ width: 90%;
202
+ max-width: 900px;
203
+ position: relative;
204
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
205
+ }
206
+
207
+ .video-modal-close {
208
+ position: absolute;
209
+ top: 10px;
210
+ right: 18px;
211
+ font-size: 32px;
212
+ font-weight: bold;
213
+ color: var(--miami-medium-tan);
214
+ cursor: pointer;
215
+ transition: color 0.2s;
216
+ line-height: 1;
217
+ }
218
+
219
+ .video-modal-close:hover {
220
+ color: var(--miami-red);
221
+ }
222
+
223
+ .video-modal-wrapper {
224
+ position: relative;
225
+ padding-bottom: 56.25%;
226
+ height: 0;
227
+ overflow: hidden;
228
+ border-radius: 8px;
229
+ background-color: #000;
230
+ }
231
+
232
+ .video-modal-wrapper iframe {
233
+ position: absolute;
234
+ top: 0;
235
+ left: 0;
236
+ width: 100%;
237
+ height: 100%;
238
+ border: none;
239
+ }
240
+
241
+ /* Form controls */
242
+ .form-control {
243
+ border: 1px solid var(--miami-medium-tan);
244
+ border-radius: 6px;
245
+ transition: border-color 0.2s, box-shadow 0.2s;
246
+ }
247
+
248
+ .form-control:focus {
249
+ border-color: var(--miami-red);
250
+ box-shadow: 0 0 0 3px rgba(196, 18, 48, 0.15);
251
+ outline: none;
252
+ }
253
+
254
+ /* Text area styling */
255
+ textarea.form-control {
256
+ resize: vertical;
257
+ min-height: 150px;
258
+ }
259
+
260
+ /* Labels */
261
+ .control-label {
262
+ font-weight: 600;
263
+ color: var(--miami-black);
264
+ margin-bottom: 5px;
265
+ }
266
+
267
+ /* Buttons */
268
+ .btn {
269
+ border-radius: 6px;
270
+ font-weight: 500;
271
+ padding: 10px 20px;
272
+ transition: all 0.2s;
273
+ border: none;
274
+ margin-right: 10px;
275
+ margin-top: 10px;
276
+ }
277
+
278
+ .btn-primary {
279
+ background-color: var(--miami-red);
280
+ color: var(--miami-white);
281
+ }
282
+
283
+ .btn-primary:hover,
284
+ .btn-primary:focus {
285
+ background-color: var(--miami-dark-red);
286
+ color: var(--miami-white);
287
+ box-shadow: 0 4px 12px rgba(196, 18, 48, 0.3);
288
+ }
289
+
290
+ .btn-info {
291
+ background-color: var(--miami-medium-tan);
292
+ color: var(--miami-black);
293
+ }
294
+
295
+ .btn-info:hover,
296
+ .btn-info:focus {
297
+ background-color: var(--miami-yellow);
298
+ color: var(--miami-black);
299
+ }
300
+
301
+ /* Table styling */
302
+ .table {
303
+ background-color: var(--miami-white);
304
+ border-radius: 8px;
305
+ overflow: hidden;
306
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
307
+ }
308
+
309
+ .table > thead > tr > th {
310
+ background-color: var(--miami-red);
311
+ color: var(--miami-white);
312
+ font-weight: 600;
313
+ border: none;
314
+ padding: 12px 15px;
315
+ }
316
+
317
+ .table > tbody > tr > td {
318
+ padding: 12px 15px;
319
+ border-color: var(--miami-light-tan);
320
+ vertical-align: middle;
321
+ }
322
+
323
+ .table > tbody > tr:nth-child(odd) {
324
+ background-color: var(--miami-light-tan);
325
+ }
326
+
327
+ .table > tbody > tr:nth-child(even) {
328
+ background-color: var(--miami-white);
329
+ }
330
+
331
+ .table > tbody > tr:hover {
332
+ background-color: rgba(239, 219, 114, 0.3);
333
+ }
334
+
335
+ /* Horizontal rules */
336
+ hr {
337
+ border-color: var(--miami-medium-tan);
338
+ margin: 15px 0;
339
+ }
340
+
341
+ /* Help text */
342
+ .help-block {
343
+ color: #666;
344
+ font-size: 0.85em;
345
+ font-style: italic;
346
+ }
347
+
348
+ /* Tips section */
349
+ .tips-section {
350
+ background-color: rgba(239, 219, 114, 0.2);
351
+ border: 1px solid var(--miami-yellow);
352
+ border-radius: 8px;
353
+ padding: 20px;
354
+ margin-top: 20px;
355
+ }
356
+
357
+ .tips-section h4 {
358
+ color: var(--miami-black);
359
+ margin-top: 0;
360
+ font-weight: 600;
361
+ }
362
+
363
+ .tips-section ul {
364
+ padding-left: 20px;
365
+ margin-bottom: 0;
366
+ }
367
+
368
+ .tips-section li {
369
+ margin-bottom: 6px;
370
+ line-height: 1.5;
371
+ }
372
+
373
+ /* Note section */
374
+ .note-section {
375
+ background-color: var(--miami-white);
376
+ border: 1px solid var(--miami-medium-tan);
377
+ border-radius: 8px;
378
+ padding: 15px 20px;
379
+ margin-top: 20px;
380
+ }
381
+
382
+ .note-section h4 {
383
+ color: var(--miami-red);
384
+ margin-top: 0;
385
+ margin-bottom: 10px;
386
+ font-weight: 600;
387
+ }
388
+
389
+ /* Section headings in main panel */
390
+ .section-heading {
391
+ color: var(--miami-red);
392
+ font-weight: 600;
393
+ padding-bottom: 10px;
394
+ border-bottom: 2px solid var(--miami-light-tan);
395
+ margin-bottom: 15px;
396
+ }
397
+
398
+ /* Results placeholder */
399
+ .results-placeholder {
400
+ color: #888;
401
+ font-style: italic;
402
+ padding: 20px;
403
+ text-align: center;
404
+ background-color: var(--miami-light-tan);
405
+ border-radius: 6px;
406
+ }
407
+
408
+ /* Field separator styling */
409
+ .field-separator {
410
+ border-color: var(--miami-light-tan);
411
+ margin: 20px 0;
412
+ }
413
+
414
+ /* Notification styling overrides */
415
+ .shiny-notification {
416
+ border-radius: 8px;
417
+ border: none;
418
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
419
+ }
420
+
421
+ .shiny-notification-message {
422
+ background-color: var(--miami-red);
423
+ color: var(--miami-white);
424
+ }
425
+
426
+ .shiny-notification-error {
427
+ background-color: #d32f2f;
428
+ color: var(--miami-white);
429
+ }
430
+
431
+ /* Footer styling */
432
+ .app-footer {
433
+ text-align: center;
434
+ padding: 15px;
435
+ margin-top: 30px;
436
+ color: #666;
437
+ font-size: 0.85em;
438
+ border-top: 1px solid var(--miami-medium-tan);
439
+ }
440
+
441
+ /* Input tabs styling */
442
+ .input-tabs-container {
443
+ margin-bottom: 15px;
444
+ }
445
+
446
+ .input-tabs {
447
+ display: flex;
448
+ gap: 5px;
449
+ margin-bottom: 5px;
450
+ }
451
+
452
+ .input-tab {
453
+ flex: 1;
454
+ padding: 10px 15px;
455
+ border: 1px solid var(--miami-medium-tan);
456
+ background-color: var(--miami-light-tan);
457
+ color: var(--miami-black);
458
+ border-radius: 6px 6px 0 0;
459
+ cursor: pointer;
460
+ font-weight: 500;
461
+ font-size: 0.9em;
462
+ transition: all 0.2s;
463
+ }
464
+
465
+ .input-tab:hover {
466
+ background-color: var(--miami-medium-tan);
467
+ }
468
+
469
+ .input-tab.active {
470
+ background-color: var(--miami-red);
471
+ color: var(--miami-white);
472
+ border-color: var(--miami-red);
473
+ }
474
+
475
+ .input-panel {
476
+ border: 1px solid var(--miami-medium-tan);
477
+ border-top: none;
478
+ border-radius: 0 0 6px 6px;
479
+ padding: 15px;
480
+ background-color: var(--miami-white);
481
+ margin-top: -1px;
482
+ }
483
+
484
+ /* PDF preview styling */
485
+ .pdf-preview {
486
+ margin-top: 15px;
487
+ padding: 10px;
488
+ background-color: var(--miami-light-tan);
489
+ border-radius: 6px;
490
+ max-height: 200px;
491
+ overflow-y: auto;
492
+ }
493
+
494
+ .pdf-preview pre {
495
+ margin: 5px 0 0 0;
496
+ white-space: pre-wrap;
497
+ word-wrap: break-word;
498
+ font-size: 0.85em;
499
+ max-height: 150px;
500
+ overflow-y: auto;
501
+ }
502
+
503
+ /* File input styling */
504
+ .input-panel .form-group {
505
+ margin-bottom: 0;
506
+ }
507
+
508
+ .input-panel .shiny-input-container {
509
+ width: 100%;
510
+ }
511
+
512
+ /* File input browse button - make it red */
513
+ .input-panel .btn-file {
514
+ background-color: var(--miami-red);
515
+ color: var(--miami-white);
516
+ border: none;
517
+ border-radius: 6px;
518
+ font-weight: 500;
519
+ }
520
+
521
+ .input-panel .btn-file:hover,
522
+ .input-panel .btn-file:focus {
523
+ background-color: var(--miami-dark-red);
524
+ color: var(--miami-white);
525
+ }
526
+
527
+ /* Image limit note */
528
+ .image-limit-note {
529
+ background-color: rgba(239, 219, 114, 0.3);
530
+ border: 1px solid var(--miami-yellow);
531
+ border-radius: 4px;
532
+ padding: 8px 12px;
533
+ margin-top: 10px;
534
+ font-size: 0.85em;
535
+ color: #666;
536
+ }
537
+
538
+ /* File format note */
539
+ .file-format-note {
540
+ background-color: var(--miami-light-tan);
541
+ border-radius: 4px;
542
+ padding: 10px 12px;
543
+ margin-top: 10px;
544
+ font-size: 0.9em;
545
+ }
546
+
547
+ .file-format-note ul {
548
+ color: #666;
549
+ }
550
+
551
+
552
+ /* Image preview grid */
553
+ .image-preview-grid {
554
+ display: grid;
555
+ grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
556
+ gap: 8px;
557
+ margin-top: 10px;
558
+ }
559
+
560
+ .image-preview-item {
561
+ border: 1px solid var(--miami-medium-tan);
562
+ border-radius: 4px;
563
+ overflow: hidden;
564
+ aspect-ratio: 1;
565
+ }
566
+
567
+ .image-preview-item img {
568
+ width: 100%;
569
+ height: 100%;
570
+ object-fit: cover;
571
+ }
572
+
573
+ .image-preview-count {
574
+ text-align: center;
575
+ font-size: 0.85em;
576
+ color: #666;
577
+ margin-top: 8px;
578
+ }
579
+
580
+ /* Responsive adjustments */
581
+ @media (max-width: 768px) {
582
+ .header-content {
583
+ flex-direction: column;
584
+ text-align: center;
585
+ }
586
+
587
+ .header-right {
588
+ text-align: center;
589
+ }
590
+
591
+ .logo-container {
592
+ flex-wrap: wrap;
593
+ justify-content: center;
594
+ }
595
+
596
+ .logo-divider {
597
+ display: none;
598
+ }
599
+
600
+ .input-tabs {
601
+ flex-direction: row;
602
+ }
603
+
604
+ .input-tab {
605
+ border-radius: 6px;
606
+ font-size: 0.8em;
607
+ padding: 8px 10px;
608
+ }
609
+
610
+ .input-tab i {
611
+ display: none;
612
+ }
613
+ }