amogneandualem commited on
Commit
7bd110c
·
verified ·
1 Parent(s): 229cdc2

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +310 -38
style.css CHANGED
@@ -1,76 +1,348 @@
1
- /* Add this CSS for exact styling */
2
- #main-container {
3
- max-width: 800px;
4
- margin: 0 auto;
5
  padding: 20px;
 
 
 
 
 
 
 
 
 
 
 
6
  }
7
 
8
- #main-title {
 
 
 
 
 
9
  text-align: center;
10
- margin-bottom: 10px;
11
- color: #2c3e50;
12
  font-size: 2.5em;
 
13
  }
14
 
15
- #subtitle {
16
  text-align: center;
17
- margin-bottom: 30px;
18
  color: #666;
 
19
  font-size: 1.1em;
 
20
  }
21
 
22
- #input-row {
23
- margin: 20px 0;
24
- justify-content: center;
 
 
25
  }
26
 
27
- #image-input {
28
- border: 2px solid #e0e0e0;
29
- border-radius: 8px;
30
- padding: 10px;
31
- background: #f8f9fa;
 
 
 
 
32
  }
33
 
34
- #button-row {
35
- margin: 25px 0;
36
- justify-content: center;
37
  }
38
 
39
- #analyze-btn {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
41
  color: white;
42
- padding: 15px 40px;
43
- font-size: 1.2em;
44
- border-radius: 8px;
45
  border: none;
 
 
 
 
 
46
  transition: all 0.3s ease;
 
 
47
  }
48
 
49
- #analyze-btn:hover {
50
  transform: translateY(-2px);
51
  box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3);
52
  }
53
 
54
- #output-row {
55
- margin: 25px 0;
 
 
 
 
 
 
 
56
  }
57
 
58
- #output-header {
59
- text-align: center;
60
- font-size: 1.3em;
61
- color: #2c3e50;
62
- margin-bottom: 15px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  }
64
 
65
- #output-text {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  background: #f8f9fa;
67
- border: 1px solid #dee2e6;
68
- border-radius: 8px;
 
 
 
 
 
 
 
 
 
 
 
 
69
  padding: 20px;
70
- font-size: 1.1em;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  line-height: 1.6;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  }
73
 
74
- #footer-row {
75
- margin-top: 40px;
 
76
  }
 
1
+ /* Main Styles */
2
+ body {
3
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
4
+ margin: 0;
5
  padding: 20px;
6
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
7
+ min-height: 100vh;
8
+ }
9
+
10
+ .gradio-container {
11
+ max-width: 1400px;
12
+ margin: 0 auto;
13
+ background: white;
14
+ border-radius: 20px;
15
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
16
+ overflow: hidden;
17
  }
18
 
19
+ /* Header */
20
+ .title {
21
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
22
+ color: white;
23
+ padding: 30px;
24
+ margin: 0;
25
  text-align: center;
 
 
26
  font-size: 2.5em;
27
+ font-weight: 300;
28
  }
29
 
30
+ .subtitle {
31
  text-align: center;
 
32
  color: #666;
33
+ padding: 0 30px 30px;
34
  font-size: 1.1em;
35
+ line-height: 1.6;
36
  }
37
 
38
+ /* Input Section */
39
+ .input-section {
40
+ padding: 30px;
41
+ background: #f8f9fa;
42
+ border-bottom: 1px solid #e9ecef;
43
  }
44
 
45
+ .image-upload-container {
46
+ border: 3px dashed #dee2e6;
47
+ border-radius: 15px;
48
+ padding: 40px;
49
+ text-align: center;
50
+ cursor: pointer;
51
+ transition: all 0.3s ease;
52
+ background: white;
53
+ margin-bottom: 20px;
54
  }
55
 
56
+ .image-upload-container:hover {
57
+ border-color: #667eea;
58
+ background: #f0f2ff;
59
  }
60
 
61
+ .image-upload-container.dragover {
62
+ border-color: #764ba2;
63
+ background: #e8d5ff;
64
+ }
65
+
66
+ /* Language Selector */
67
+ .language-selector {
68
+ width: 100%;
69
+ padding: 12px 20px;
70
+ border: 2px solid #dee2e6;
71
+ border-radius: 10px;
72
+ font-size: 16px;
73
+ background: white;
74
+ color: #495057;
75
+ appearance: none;
76
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23667eea' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
77
+ background-repeat: no-repeat;
78
+ background-position: right 15px center;
79
+ background-size: 20px;
80
+ cursor: pointer;
81
+ }
82
+
83
+ .language-selector:focus {
84
+ outline: none;
85
+ border-color: #667eea;
86
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
87
+ }
88
+
89
+ /* Buttons */
90
+ .btn-primary {
91
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
92
  color: white;
 
 
 
93
  border: none;
94
+ padding: 15px 30px;
95
+ border-radius: 10px;
96
+ font-size: 16px;
97
+ font-weight: 600;
98
+ cursor: pointer;
99
  transition: all 0.3s ease;
100
+ width: 100%;
101
+ margin-top: 20px;
102
  }
103
 
104
+ .btn-primary:hover {
105
  transform: translateY(-2px);
106
  box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3);
107
  }
108
 
109
+ .btn-secondary {
110
+ background: #6c757d;
111
+ color: white;
112
+ border: none;
113
+ padding: 10px 20px;
114
+ border-radius: 8px;
115
+ font-size: 14px;
116
+ cursor: pointer;
117
+ transition: all 0.2s ease;
118
  }
119
 
120
+ .btn-secondary:hover {
121
+ background: #5a6268;
122
+ transform: translateY(-1px);
123
+ }
124
+
125
+ /* Results Section */
126
+ .results-container {
127
+ padding: 30px;
128
+ background: white;
129
+ }
130
+
131
+ .tabs {
132
+ display: flex;
133
+ border-bottom: 2px solid #dee2e6;
134
+ margin-bottom: 30px;
135
+ }
136
+
137
+ .tab-button {
138
+ padding: 15px 30px;
139
+ background: none;
140
+ border: none;
141
+ font-size: 16px;
142
+ font-weight: 600;
143
+ color: #6c757d;
144
+ cursor: pointer;
145
+ position: relative;
146
+ transition: all 0.3s ease;
147
+ }
148
+
149
+ .tab-button:hover {
150
+ color: #667eea;
151
  }
152
 
153
+ .tab-button.active {
154
+ color: #667eea;
155
+ }
156
+
157
+ .tab-button.active::after {
158
+ content: '';
159
+ position: absolute;
160
+ bottom: -2px;
161
+ left: 0;
162
+ right: 0;
163
+ height: 3px;
164
+ background: #667eea;
165
+ border-radius: 3px 3px 0 0;
166
+ }
167
+
168
+ /* Text Output */
169
+ .text-output {
170
  background: #f8f9fa;
171
+ border-radius: 10px;
172
+ padding: 25px;
173
+ border-left: 5px solid #667eea;
174
+ line-height: 1.8;
175
+ font-size: 16px;
176
+ color: #495057;
177
+ min-height: 200px;
178
+ white-space: pre-wrap;
179
+ word-wrap: break-word;
180
+ }
181
+
182
+ .objects-list {
183
+ background: #e7f1ff;
184
+ border-radius: 10px;
185
  padding: 20px;
186
+ margin-top: 20px;
187
+ }
188
+
189
+ .object-tag {
190
+ display: inline-block;
191
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
192
+ color: white;
193
+ padding: 8px 16px;
194
+ margin: 5px;
195
+ border-radius: 20px;
196
+ font-size: 14px;
197
+ font-weight: 500;
198
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
199
+ transition: all 0.2s ease;
200
+ }
201
+
202
+ .object-tag:hover {
203
+ transform: scale(1.05);
204
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
205
+ }
206
+
207
+ /* JSON Output */
208
+ .json-output {
209
+ background: #282c34;
210
+ color: #abb2bf;
211
+ padding: 25px;
212
+ border-radius: 10px;
213
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
214
+ font-size: 14px;
215
  line-height: 1.6;
216
+ overflow-x: auto;
217
+ max-height: 500px;
218
+ overflow-y: auto;
219
+ }
220
+
221
+ .json-key {
222
+ color: #61afef;
223
+ }
224
+
225
+ .json-string {
226
+ color: #98c379;
227
+ }
228
+
229
+ .json-number {
230
+ color: #d19a66;
231
+ }
232
+
233
+ .json-boolean {
234
+ color: #d19a66;
235
+ }
236
+
237
+ .json-null {
238
+ color: #d19a66;
239
+ }
240
+
241
+ /* Statistics */
242
+ .stats-container {
243
+ display: grid;
244
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
245
+ gap: 20px;
246
+ margin: 30px 0;
247
+ }
248
+
249
+ .stat-card {
250
+ background: white;
251
+ border-radius: 15px;
252
+ padding: 25px;
253
+ text-align: center;
254
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
255
+ border: 1px solid #e9ecef;
256
+ transition: all 0.3s ease;
257
+ }
258
+
259
+ .stat-card:hover {
260
+ transform: translateY(-5px);
261
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
262
+ }
263
+
264
+ .stat-value {
265
+ font-size: 2.5em;
266
+ font-weight: 700;
267
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
268
+ -webkit-background-clip: text;
269
+ -webkit-text-fill-color: transparent;
270
+ margin-bottom: 10px;
271
+ }
272
+
273
+ .stat-label {
274
+ font-size: 14px;
275
+ color: #6c757d;
276
+ text-transform: uppercase;
277
+ letter-spacing: 1px;
278
+ }
279
+
280
+ /* Responsive Design */
281
+ @media (max-width: 768px) {
282
+ .gradio-container {
283
+ border-radius: 10px;
284
+ margin: 10px;
285
+ }
286
+
287
+ .title {
288
+ font-size: 1.8em;
289
+ padding: 20px;
290
+ }
291
+
292
+ .input-section,
293
+ .results-container {
294
+ padding: 20px;
295
+ }
296
+
297
+ .stats-container {
298
+ grid-template-columns: 1fr;
299
+ }
300
+
301
+ .tabs {
302
+ flex-wrap: wrap;
303
+ }
304
+
305
+ .tab-button {
306
+ flex: 1;
307
+ min-width: 120px;
308
+ padding: 12px;
309
+ font-size: 14px;
310
+ }
311
+ }
312
+
313
+ /* Loading Animation */
314
+ .loading {
315
+ display: inline-block;
316
+ width: 20px;
317
+ height: 20px;
318
+ border: 3px solid #f3f3f3;
319
+ border-top: 3px solid #667eea;
320
+ border-radius: 50%;
321
+ animation: spin 1s linear infinite;
322
+ }
323
+
324
+ @keyframes spin {
325
+ 0% { transform: rotate(0deg); }
326
+ 100% { transform: rotate(360deg); }
327
+ }
328
+
329
+ /* Footer */
330
+ .footer {
331
+ text-align: center;
332
+ padding: 30px;
333
+ background: #f8f9fa;
334
+ border-top: 1px solid #e9ecef;
335
+ color: #6c757d;
336
+ font-size: 14px;
337
+ }
338
+
339
+ .footer a {
340
+ color: #667eea;
341
+ text-decoration: none;
342
+ transition: color 0.3s ease;
343
  }
344
 
345
+ .footer a:hover {
346
+ color: #764ba2;
347
+ text-decoration: underline;
348
  }