Web platform for sharing free image data for ML and research

Homepage: https://datasets.roundabout-host.com

By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.

Dismiss

 style.css

View raw Download
text/plain • 13.73 kiB
ASCII text
        
            
1
@import "/static/efficient-ui/MASTER.css";
2
3
:root {
4
--gap-navbar: 1rem;
5
--width-navbar-button: 0;
6
--text-soft: #000000C0;
7
--text-softer: #0000009A;
8
--text-faint: #00000066;
9
--text-softest: #00000033;
10
--color-star: #FFC107;
11
--color-shape-label: #0097A7; --color-shape-label-text: #ffffff;
12
--shadow-card-inset: inset 0 3px 6px -4px rgba(0, 0, 0, 0.12), inset 0 3px 6px 0 rgba(0, 0, 0, 0.24), inset 0 1px 4px 0 rgba(0, 0, 0, 0.12);
13
--1-star: #FF8079;
14
--2-star: #FF8A65;
15
--3-star: #FFAC1B;
16
--4-star: #FBC02D;
17
--5-star: #CDDC39;
18
view-transition-name: root;
19
}
20
21
.ripple-pad {
22
background: #ffffff99;
23
position: absolute;
24
opacity: 1;
25
transform: scale(0);
26
animation: RippleEffect 375ms cubic-bezier(0, 0.55, 0.45, 1) forwards;
27
}
28
29
.button-flat .ripple-pad {
30
background: var(--color-primary-3);
31
}
32
33
@keyframes RippleEffect {
34
to {
35
transform: scale(1);
36
opacity: 0;
37
}
38
}
39
40
button, input, .button:not(.link-button), select, .navbar a, .navrail a {
41
position: relative;
42
overflow: hidden;
43
}
44
45
nav#desktop-navbar {
46
view-transition-name: navbar;
47
}
48
49
nav#mobile-navbar {
50
view-transition-name: navbar-mobile;
51
}
52
53
p {
54
color: var(--text-soft);
55
}
56
57
iconify-icon {
58
/* Material design icons are done in 24px, so we scale them to 1.5 as the default font size is 16px */
59
display: inline-block;
60
width: 1em;
61
height: 1em;
62
font-size: 1.5em;
63
}
64
65
:is(#shape-selector, #shape-options) > button > iconify-icon {
66
font-size: 2rem;
67
}
68
69
#annotation-zone, .annotation-zone {
70
position: relative;
71
user-select: none;
72
overflow: hidden;
73
}
74
75
#annotation-image, .annotation-image {
76
user-drag: none;
77
-webkit-user-drag: none;
78
image-rendering: pixelated;
79
}
80
81
#annotation-zone > svg, .annotation-zone > svg {
82
z-index: 1;
83
position: absolute;
84
top: 0;
85
left: 0;
86
width: 100%;
87
height: 100%;
88
}
89
90
.annotation-ruler {
91
z-index: 2;
92
position: absolute;
93
top: 0;
94
left: 0;
95
background: var(--color-accent);
96
display: none;
97
}
98
99
#annotation-ruler-horizontal, #annotation-ruler-horizontal-secondary {
100
height: 1px;
101
width: 100%;
102
}
103
104
#annotation-ruler-vertical, #annotation-ruler-vertical-secondary {
105
width: 1px;
106
height: 100%;
107
}
108
109
.shape {
110
stroke: var(--color-accent);
111
fill: var(--color-accent);
112
fill-opacity: 0.1;
113
stroke-width: 2px;
114
vector-effect: non-scaling-stroke;
115
pointer-events: auto;
116
transition: filter 0.25s cubic-bezier(0.61, 1, 0.88, 1),
117
fill-opacity 0.25s cubic-bezier(0.61, 1, 0.88, 1),
118
stroke-width 0.25s cubic-bezier(0.61, 1, 0.88, 1);
119
stroke-linecap: square;
120
stroke-linejoin: miter;
121
}
122
123
.shape-polyline {
124
fill: none;
125
}
126
127
.shape-point {
128
stroke: var(--color-accent);
129
stroke-width: 2px;
130
fill-opacity: 1;
131
r: 2;
132
transition: r 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
133
stroke-width 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
134
filter 0.25s cubic-bezier(0.61, 1, 0.88, 1);
135
}
136
137
.shape.selected {
138
fill-opacity: 0.2;
139
stroke-width: 4px;
140
filter: drop-shadow(0 0 2px var(--text-soft));
141
}
142
143
.shape-point.selected {
144
fill-opacity: 1;
145
r: 6;
146
stroke-width: 6px;
147
}
148
149
.shape-container, .shape-container-viewonly {
150
pointer-events: none;
151
}
152
153
#annotation-helper-message {
154
min-height: 2lh;
155
}
156
157
.shape-container-viewonly > .shape, .thumbnail-list > li .shape {
158
fill: var(--color-info);
159
stroke: var(--color-info);
160
fill-opacity: 0;
161
stroke-opacity: 0;
162
transition: fill-opacity 0.25s cubic-bezier(0.61, 1, 0.88, 1),
163
stroke-opacity 0.25s cubic-bezier(0.61, 1, 0.88, 1);
164
}
165
166
.shape-container-viewonly > .shape-polyline, .thumbnail-list > li .shape-polyline {
167
fill: none;
168
}
169
170
.shape-container-viewonly > .shape-point, .thumbnail-list > li .shape-point {
171
stroke: var(--color-info);
172
transition: r 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
173
stroke-width 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
174
filter 0.25s cubic-bezier(0.61, 1, 0.88, 1);
175
}
176
177
.shape-label {
178
position: absolute;
179
font-weight: 500;
180
color: var(--color-shape-label-text) !important;
181
pointer-events: auto;
182
height: 28px;
183
padding-left: 8px;
184
padding-right: 8px;
185
display: flex;
186
align-items: center;
187
justify-content: center;
188
background: var(--color-shape-label);
189
width: max-content;
190
box-shadow: var(--shadow-button);
191
/* top-left corner is square to point to the shape */
192
border-radius: 0 16px 16px 16px;
193
opacity: 0;
194
transition: opacity 0.25s cubic-bezier(0.61, 1, 0.88, 1),
195
transform 0.375s cubic-bezier(0.16, 1, 0.3, 1);
196
transform: scale(0);
197
transform-origin: top left;
198
z-index: 3;
199
text-decoration: none;
200
}
201
202
.shape-label:hover {
203
text-decoration: underline;
204
}
205
206
/* Only show region parts when checkbox is checked */
207
#annotation-zone:has(+ x-buttonbox #show-objects:checked) > .shape-label {
208
opacity: 1;
209
transform: scale(1);
210
}
211
212
/* Hide points with a bubble */
213
#annotation-zone:has(+ x-buttonbox #show-objects:checked) > .shape-container-viewonly > .shape-point:has(+ foreignObject) {
214
r: 0;
215
border-width: 0;
216
}
217
218
#annotation-zone:has(+ x-buttonbox #show-shapes:checked) > .shape-container-viewonly > .shape {
219
fill-opacity: 0.1;
220
stroke-opacity: 1;
221
}
222
223
.thumbnail-list > li:is(:hover, :focus, :has(:focus)) .shape {
224
fill-opacity: 0.2;
225
stroke-opacity: 1;
226
}
227
228
@view-transition {
229
navigation: auto;
230
}
231
232
@keyframes move-out {
233
from {
234
transform: scale(1);
235
opacity: 1;
236
}
237
to {
238
transform: scale(0.5);
239
opacity: 0;
240
}
241
}
242
243
@keyframes move-in {
244
from {
245
transform: scale(0.5);
246
opacity: 0;
247
}
248
to {
249
transform: scale(1);
250
opacity: 1;
251
}
252
}
253
254
.thumbnail-list > li:is(:hover, :focus, :has(:focus)) > a > .annotation-zone,
255
#annotation-zone {
256
view-transition-name: thumbnail;
257
}
258
259
@media (prefers-reduced-motion: no-preference) {
260
::view-transition-old(root),
261
::view-transition-new(root) {
262
transform-origin: top;
263
animation-duration: 0.5s;
264
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
265
}
266
267
::view-transition-old(root) {
268
animation-name: move-out;
269
}
270
271
::view-transition-new(root) {
272
animation-name: move-in;
273
}
274
275
::view-transition-group(thumbnail) {
276
animation-duration: 0.5s;
277
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
278
}
279
280
#annotation-zone::view-transition-old(thumbnail) {
281
animation-duration: 0s;
282
}
283
}
284
285
.multi-select, .single-select {
286
display: flex;
287
flex-flow: column nowrap;
288
overflow-y: scroll;
289
box-shadow: var(--shadow-card-inset);
290
padding: 16px;
291
gap: 8px;
292
}
293
294
.licence-selection, .image-type-selection {
295
display: flex;
296
flex-flow: column nowrap;
297
}
298
299
.licence-selection-info, .image-type-selection-info {
300
margin-left: calc(var(--size-checkbox) + var(--gap-label-checkbox));
301
/* Align with the checkbox above */
302
}
303
304
.licence-selection-info > p, .image-type-selection-info > p {
305
font-weight: 300;
306
}
307
308
.licence-logo {
309
width: 128px;
310
float: right;
311
margin-left: 1ch;
312
}
313
314
.licence-title, .image-type-title {
315
display: flex;
316
justify-content: space-between;
317
width: 100%;
318
}
319
320
.licence-title > .licence-name, .image-type-title > .image-type-name {
321
font: var(--h5-font);
322
font-weight: 400;
323
}
324
325
.icon-explainer {
326
display: grid;
327
gap: 4px 8px;
328
grid-template-columns: auto 1fr;
329
align-items: center;
330
}
331
332
.icon-explainer *:nth-child(even) {
333
font-weight: 300;
334
}
335
336
.required-asterisk::after {
337
content: "*";
338
color: var(--color-error);
339
}
340
341
small {
342
/* BIG :D */
343
font-size: 1em;
344
}
345
346
#pagination {
347
display: flex;
348
gap: 1em;
349
justify-content: center;
350
align-items: center;
351
font-size: 1.5em;
352
font-weight: 600;
353
flex: 1 0 auto;
354
}
355
356
#pagination > a {
357
text-decoration: none;
358
color: var(--color-accent-1);
359
}
360
361
#pagination-options > form {
362
align-items: center;
363
display: flex;
364
gap: 1em;
365
}
366
367
#pagination-options {
368
justify-content: center;
369
align-items: center;
370
gap: 1em;
371
width: 100%;
372
}
373
374
.thumbnail-list {
375
list-style: none;
376
margin: 0 !important;
377
display: grid;
378
grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
379
gap: 16px;
380
}
381
382
.thumbnail-list > li {
383
transition: box-shadow 0.25s cubic-bezier(0.61, 1, 0.88, 1);
384
box-shadow: var(--shadow-card);
385
background: var(--color-card);
386
}
387
388
.thumbnail-list > li > a, .thumbnail-list > li {
389
display: flex;
390
flex-direction: column;
391
justify-content: space-between;
392
height: 100%;
393
}
394
395
.thumbnail-list > li > .list-more {
396
display: flex;
397
justify-content: space-between;
398
align-items: center;
399
padding: 8px;
400
}
401
402
.thumbnail-list > li:is(:hover, :focus, :has(:focus)) {
403
box-shadow: var(--shadow-card), 0 4px 32px rgba(0, 0, 0, 0.12), 0 4px 16px rgba(0, 0, 0, 0.08);
404
}
405
406
.thumbnail-list > li .annotation-zone {
407
transition: transform 0.25s cubic-bezier(0.61, 1, 0.88, 1),
408
box-shadow 0.25s cubic-bezier(0.61, 1, 0.88, 1);
409
}
410
411
.thumbnail-list > li .annotation-zone:hover {
412
position: relative;
413
transform: scale(2);
414
z-index: 1;
415
box-shadow: var(--shadow-textarea-active);
416
}
417
418
.thumbnail-list > li .list-detail {
419
padding: 8px;
420
display: block;
421
}
422
423
a.button {
424
text-decoration: none;
425
}
426
427
dt {
428
font-weight: 600;
429
}
430
431
dd {
432
margin-left: 40px;
433
}
434
435
#mobile-navbar {
436
display: none;
437
}
438
439
@media screen and (max-width: 576px) {
440
#mobile-navbar {
441
display: flex;
442
}
443
#desktop-navbar {
444
display: none;
445
}
446
}
447
448
#hamburger > nav {
449
display: flex;
450
flex-direction: column;
451
gap: 1em;
452
padding: var(--padding-card);
453
padding-top: var(--padding-card-top);
454
box-shadow: var(--shadow-card);
455
background: var(--color-card);
456
justify-content: space-between;
457
width: clamp(240px, calc(100vw - 56px), 448px);
458
}
459
460
#hamburger > nav > ul {
461
display: flex;
462
flex-direction: column;
463
gap: 1em;
464
margin: 0;
465
}
466
467
#hamburger > nav > ul > li {
468
display: flex;
469
gap: var(--gap-label-checkbox);
470
align-items: center;
471
margin: 0;
472
}
473
474
#hamburger > nav > ul > li > a {
475
text-decoration: none;
476
color: var(--color-card-text);
477
}
478
479
.star-rating-container {
480
display: flex;
481
flex-direction: row-reverse;
482
font-size: 1.25em;
483
align-items: center;
484
justify-content: flex-end; /* In this case, it means LEFT, not right, because of the row-reverse */
485
}
486
487
.star-rating-container > input {
488
width: 0 !important;
489
height: 0 !important;
490
visibility: hidden;
491
}
492
493
.star-rating-container > label {
494
cursor: pointer;
495
color: var(--text-softest);
496
transition: color 0.25s cubic-bezier(0.37, 0, 0.63, 1),
497
filter 0.25s cubic-bezier(0.37, 0, 0.63, 1);
498
}
499
500
.star-rating-container > label:hover,
501
.star-rating-container > label:hover ~ label {
502
color: var(--color-star);
503
filter: drop-shadow(0 0 3px #00000040);
504
}
505
506
.star-rating-container > input:checked ~ label {
507
color: var(--color-star);
508
}
509
510
.visually-hidden {
511
position: absolute;
512
width: 1px;
513
height: 1px;
514
box-sizing: content-box;
515
margin: -1px;
516
overflow: hidden;
517
clip-path: inset(50%);
518
border: 0;
519
}
520
521
.rating-list {
522
display: grid;
523
grid-auto-columns: 1fr;
524
gap: 0.5rem;
525
grid-template-columns: auto;
526
list-style: none;
527
margin: 0 !important;
528
padding: 0;
529
min-width: 50%;
530
}
531
532
.rating-list > li {
533
grid-column-start: 1;
534
height: 28px;
535
padding: 4px 8px;
536
display: flex;
537
align-items: center;
538
justify-content: space-between;
539
gap: 0.5rch;
540
border-radius: 0 4px 4px 0;
541
margin: 0;
542
}
543
544
.rating-bar {
545
display: flex;
546
align-items: center;
547
justify-content: flex-start;
548
gap: 0.5rch;
549
font-size: 1.25em;
550
width: 100%;
551
}
552
553
.rating-bar > .rating-bar-segment {
554
position: relative;
555
width: 1em;
556
height: 1em;
557
clip-path: url(#star-clip);
558
background: var(--text-softest);
559
}
560
561
.rating-bar > .rating-bar-segment > .rating-bar-filling {
562
background: var(--color-star);
563
height: 100%;
564
position: absolute;
565
top: 0;
566
left: 0;
567
}
568
569
#picture-view {
570
display: flex;
571
flex-direction: row;
572
gap: 1em;
573
align-items: flex-start;
574
justify-content: center;
575
width: fit-content;
576
margin: 0 auto;
577
}
578
579
#picture-actions {
580
--width: 256px;
581
position: sticky;
582
top: 0;
583
overflow: auto;
584
max-height: 100vh;
585
height: 100%;
586
background: var(--color-card);
587
padding: 1rem 0;
588
box-shadow: var(--shadow-card);
589
}
590
591
@media screen and (max-width: 768px) {
592
#picture-view {
593
flex-direction: column;
594
}
595
#picture-actions {
596
--width: 768px;
597
position: static;
598
padding: 1rem;
599
}
600
#picture-actions > ul {
601
width: 100%;
602
list-style: none;
603
margin: 0;
604
padding: 0;
605
}
606
#picture-actions > ul > li {
607
display: inline;
608
}
609
.action-list > li {
610
padding: 0 !important;
611
}
612
}
613
614
.action-list {
615
list-style: none;
616
margin: 0 !important;
617
padding: 0;
618
}
619
620
.action-list > li {
621
display: flex;
622
margin: 0;
623
width: 100%;
624
padding: 0.25rem 1rem;
625
}
626
627
.action-list > li > a {
628
text-decoration: none;
629
color: var(--color-card-text) !important;
630
display: flex;
631
align-items: center;
632
gap: 0.5rch;
633
font-weight: 400;
634
}
635
636
.action-list > li > details > summary {
637
color: var(--color-card-text) !important;
638
display: flex;
639
align-items: center;
640
gap: 0.5rch;
641
font-weight: 400;
642
}
643
644
#picture-buttons {
645
padding: 0 1rem;
646
}
647
648
@media print {
649
#picture-actions, #annotation-view-controls {
650
display: none;
651
}
652
.navbar {
653
display: none;
654
}
655
:root {
656
--color-background: #ffffff;
657
}
658
#annotation-zone, .thumbnail-list {
659
width: 100vw;
660
height: auto;
661
position: relative;
662
left: calc(-1 * (50vw - 50%));
663
}
664
}
665