Revize bb2d43b5
Přidáno uživatelem Martin Sebela před více než 4 roky(ů)
website/public/css/style.css | ||
---|---|---|
1 | 1 |
@charset "UTF-8"; |
2 | 2 |
@import url("https://fonts.googleapis.com/css2?family=Be+Vietnam:wght@400;600;700;800&display=swap"); |
3 | 3 |
html, body { |
4 |
font-family: 'Be Vietnam', sans-serif; |
|
5 |
color: #fff; |
|
6 | 4 |
position: relative; |
7 | 5 |
height: 96.2%; |
8 |
background: #242C6B; |
|
6 |
font-family: 'Be Vietnam', sans-serif; |
|
7 |
color: #ffffff; |
|
8 |
background: #0b155a; |
|
9 | 9 |
} |
10 | 10 |
|
11 | 11 |
@media (max-width: 767.98px) { |
... | ... | |
113 | 113 |
header .nav-item.button .nav-link { |
114 | 114 |
padding-left: 22px; |
115 | 115 |
padding-right: 22px; |
116 |
border: 1px solid #fff; |
|
116 |
border: 1px solid #ffffff;
|
|
117 | 117 |
border-radius: 20px; |
118 | 118 |
} |
119 | 119 |
|
... | ... | |
124 | 124 |
header .navbar-button { |
125 | 125 |
padding: .5rem 22px; |
126 | 126 |
margin-right: 40px; |
127 |
border: 1px solid #fff; |
|
127 |
border: 1px solid #ffffff;
|
|
128 | 128 |
border-radius: 20px; |
129 | 129 |
text-decoration: none; |
130 | 130 |
} |
... | ... | |
173 | 173 |
|
174 | 174 |
header.map input, header.map .custom-select { |
175 | 175 |
letter-spacing: .4px; |
176 |
color: #fff; |
|
176 |
color: #ffffff;
|
|
177 | 177 |
border-color: #0048A9; |
178 | 178 |
background: #0048A9; |
179 | 179 |
} |
180 | 180 |
|
181 |
header.map input::placeholder, header.map .custom-select::placeholder { |
|
182 |
color: #ffffff; |
|
183 |
opacity: 1; |
|
184 |
} |
|
185 |
|
|
181 | 186 |
header.map .nav-item { |
182 | 187 |
margin: 0; |
183 | 188 |
border-right: 1px solid #1C6CC0; |
... | ... | |
263 | 268 |
} |
264 | 269 |
|
265 | 270 |
a { |
266 |
color: #fff; |
|
271 |
color: #ffffff;
|
|
267 | 272 |
outline: none; |
268 | 273 |
} |
269 | 274 |
|
270 | 275 |
a:hover { |
271 |
color: #fff; |
|
276 |
color: #ffffff;
|
|
272 | 277 |
} |
273 | 278 |
|
274 | 279 |
hr { |
275 | 280 |
width: 300px; |
276 | 281 |
text-align: left; |
277 | 282 |
margin: 30px 0; |
278 |
border-top: 2px solid #fff; |
|
283 |
border-top: 2px solid #ffffff;
|
|
279 | 284 |
} |
280 | 285 |
|
281 | 286 |
@media (max-width: 1199.98px) { |
... | ... | |
403 | 408 |
bottom: 20px; |
404 | 409 |
z-index: 1; |
405 | 410 |
border-radius: 100px; |
406 |
background: #0B155A;
|
|
411 |
background: #0b155a;
|
|
407 | 412 |
} |
408 | 413 |
|
409 | 414 |
@media (max-width: 1199.98px) { |
... | ... | |
430 | 435 |
height: 45px; |
431 | 436 |
position: relative; |
432 | 437 |
border-radius: 50%; |
433 |
border: 2px solid #fff; |
|
438 |
border: 2px solid #ffffff;
|
|
434 | 439 |
} |
435 | 440 |
|
436 | 441 |
.swiper-pagination-buttons .btn-prev:after, .swiper-pagination-buttons .btn-next:after { |
... | ... | |
464 | 469 |
bottom: 30px !important; |
465 | 470 |
border-radius: 100px; |
466 | 471 |
opacity: 0.8; |
467 |
background: #0B155A;
|
|
472 |
background: #0b155a;
|
|
468 | 473 |
} |
469 | 474 |
|
470 | 475 |
@media (min-width: 992px) { |
... | ... | |
487 | 492 |
top: 13px; |
488 | 493 |
left: 15px; |
489 | 494 |
z-index: 1; |
490 |
border-top: 2px solid #fff; |
|
495 |
border-top: 2px solid #ffffff;
|
|
491 | 496 |
} |
492 | 497 |
|
493 | 498 |
.swiper-pagination-bullets .swiper-pagination-bullet { |
... | ... | |
496 | 501 |
position: relative; |
497 | 502 |
margin: 4px 15px !important; |
498 | 503 |
opacity: 1; |
499 |
border: 2px solid #0B155A;
|
|
500 |
background: #0B155A;
|
|
504 |
border: 2px solid #0b155a;
|
|
505 |
background: #0b155a;
|
|
501 | 506 |
} |
502 | 507 |
|
503 | 508 |
.swiper-pagination-bullets .swiper-pagination-bullet:before { |
... | ... | |
509 | 514 |
top: 5px; |
510 | 515 |
left: 5px; |
511 | 516 |
border-radius: 50%; |
512 |
background: #fff; |
|
517 |
background: #ffffff;
|
|
513 | 518 |
} |
514 | 519 |
|
515 | 520 |
.swiper-pagination-bullets .swiper-pagination-bullet:first-of-type { |
... | ... | |
521 | 526 |
} |
522 | 527 |
|
523 | 528 |
.swiper-pagination-bullets .swiper-pagination-bullet-active { |
524 |
border: 2px solid #fff; |
|
529 |
border: 2px solid #ffffff;
|
|
525 | 530 |
} |
526 | 531 |
|
527 | 532 |
.btn-primary { |
... | ... | |
536 | 541 |
text-transform: uppercase; |
537 | 542 |
letter-spacing: 0.4px; |
538 | 543 |
border-radius: 30px; |
539 |
border: 1px solid #0B155A;
|
|
540 |
background: #0B155A;
|
|
544 |
border: 1px solid #0b155a;
|
|
545 |
background: #0b155a;
|
|
541 | 546 |
} |
542 | 547 |
|
543 | 548 |
.btn-primary:hover, .btn-primary:focus, .btn-primary:active { |
... | ... | |
555 | 560 |
} |
556 | 561 |
|
557 | 562 |
.btn-secondary { |
558 |
background: #0B155A;
|
|
563 |
background: #0b155a;
|
|
559 | 564 |
} |
560 | 565 |
|
561 | 566 |
.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active { |
... | ... | |
569 | 574 |
position: absolute; |
570 | 575 |
border-radius: 50%; |
571 | 576 |
cursor: pointer; |
572 |
border: 2px solid #fff; |
|
577 |
border: 2px solid #ffffff;
|
|
573 | 578 |
} |
574 | 579 |
|
575 | 580 |
@media not all and (min-width: 1900px) and (max-width: 2100px) { |
... | ... | |
602 | 607 |
z-index: 0; |
603 | 608 |
opacity: 0.75; |
604 | 609 |
border-radius: 25px 0 25px 0; |
605 |
background: #0B155A;
|
|
610 |
background: #0b155a;
|
|
606 | 611 |
} |
607 | 612 |
|
608 | 613 |
.map-point .desc { |
... | ... | |
632 | 637 |
top: -2px; |
633 | 638 |
left: -2px; |
634 | 639 |
border-radius: 50%; |
635 |
border: 2px solid #fff; |
|
640 |
border: 2px solid #ffffff;
|
|
636 | 641 |
} |
637 | 642 |
|
638 | 643 |
.map-point.point-1 { |
... | ... | |
697 | 702 |
text-decoration: none; |
698 | 703 |
border-radius: 50px; |
699 | 704 |
opacity: 1; |
700 |
background: #0B155A;
|
|
705 |
background: #0b155a;
|
|
701 | 706 |
} |
702 | 707 |
|
703 | 708 |
.map-locations .menu .circle { |
... | ... | |
708 | 713 |
top: 3px; |
709 | 714 |
right: 3px; |
710 | 715 |
border-radius: 50%; |
711 |
border: 2px solid #fff; |
|
716 |
border: 2px solid #ffffff;
|
|
712 | 717 |
} |
713 | 718 |
|
714 | 719 |
.map-locations .menu .circle:after { |
... | ... | |
777 | 782 |
position: relative; |
778 | 783 |
border-radius: 50%; |
779 | 784 |
opacity: .7; |
780 |
border: 2px solid #fff; |
|
781 |
box-shadow: 0 0 0 4px #0B155A;
|
|
782 |
background: #0B155A;
|
|
785 |
border: 2px solid #ffffff;
|
|
786 |
box-shadow: 0 0 0 4px #0b155a;
|
|
787 |
background: #0b155a;
|
|
783 | 788 |
cursor: pointer; |
784 | 789 |
} |
785 | 790 |
|
... | ... | |
874 | 879 |
text-align: center; |
875 | 880 |
border-radius: 15px; |
876 | 881 |
cursor: pointer; |
877 |
background: #0B155A;
|
|
882 |
background: #0b155a;
|
|
878 | 883 |
} |
879 | 884 |
|
880 | 885 |
@media (max-width: 390px) { |
... | ... | |
924 | 929 |
width: 6px; |
925 | 930 |
height: 6px; |
926 | 931 |
border-radius: 50%; |
927 |
background: #fff; |
|
932 |
background: #ffffff;
|
|
928 | 933 |
} |
929 | 934 |
|
930 | 935 |
.player .timeline .hour:after { |
... | ... | |
934 | 939 |
top: -2px; |
935 | 940 |
width: 20px; |
936 | 941 |
height: 2px; |
937 |
background: #fff; |
|
942 |
background: #ffffff;
|
|
938 | 943 |
} |
939 | 944 |
|
940 | 945 |
.player .timeline .end-dot:before { |
... | ... | |
943 | 948 |
width: 6px; |
944 | 949 |
height: 6px; |
945 | 950 |
border-radius: 50%; |
946 |
background: #fff; |
|
951 |
background: #ffffff;
|
|
947 | 952 |
} |
948 | 953 |
|
949 | 954 |
@media (max-width: 991.98px) { |
... | ... | |
961 | 966 |
padding: 3px 0 4px 0; |
962 | 967 |
z-index: 1000; |
963 | 968 |
border-radius: 15px; |
964 |
background: #0B155A;
|
|
969 |
background: #0b155a;
|
|
965 | 970 |
} |
966 | 971 |
|
967 | 972 |
@media (min-width: 992px) { |
... | ... | |
1137 | 1142 |
background: url("../img/btn-next.svg") rgba(125, 125, 125, 0.1) no-repeat center center; |
1138 | 1143 |
} |
1139 | 1144 |
|
1145 |
.leaflet-popup-content-wrapper #total-info { |
|
1146 |
margin-left: 5px; |
|
1147 |
font-size: 11pt; |
|
1148 |
} |
|
1149 |
|
|
1140 | 1150 |
.leaflet-popup-content-wrapper #number-info { |
1151 |
display: flex; |
|
1152 |
align-items: center; |
|
1153 |
justify-content: center; |
|
1141 | 1154 |
font-family: monospace; |
1142 | 1155 |
font-size: 24pt; |
1143 | 1156 |
font-weight: 700; |
... | ... | |
1145 | 1158 |
|
1146 | 1159 |
.leaflet-popup-content-wrapper #count-info { |
1147 | 1160 |
margin: auto; |
1148 |
color: #fff; |
|
1161 |
color: #ffffff;
|
|
1149 | 1162 |
} |
1150 | 1163 |
|
1151 | 1164 |
header.map .nav-item { |
... | ... | |
1165 | 1178 |
width: 40px; |
1166 | 1179 |
margin-left: 10px; |
1167 | 1180 |
transition: all 0.2s ease-out; |
1168 |
color: #0048a9;
|
|
1181 |
color: #0048A9;
|
|
1169 | 1182 |
background: white; |
1170 | 1183 |
-webkit-box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.17); |
1171 | 1184 |
-moz-box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.17); |
... | ... | |
1200 | 1213 |
} |
1201 | 1214 |
|
1202 | 1215 |
header.map .nav-item .btn-secondary:hover { |
1203 |
color: #0048a9;
|
|
1216 |
color: #0048A9;
|
|
1204 | 1217 |
background: white !important; |
1205 | 1218 |
-webkit-box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.22); |
1206 | 1219 |
-moz-box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.22); |
... | ... | |
1209 | 1222 |
|
1210 | 1223 |
header.map .nav-item .btn-secondary:active, header.map .nav-item .btn-secondary:focus { |
1211 | 1224 |
background: #f0f0f0 !important; |
1212 |
color: #0048a9 !important;
|
|
1225 |
color: #0048A9 !important;
|
|
1213 | 1226 |
} |
1214 | 1227 |
|
1215 | 1228 |
header.map .nav-item input:hover { |
... | ... | |
1217 | 1230 |
} |
1218 | 1231 |
|
1219 | 1232 |
header.map .nav-item input:focus { |
1220 |
background: #fff; |
|
1233 |
background: #ffffff;
|
|
1221 | 1234 |
color: #000; |
1222 | 1235 |
} |
1223 | 1236 |
|
... | ... | |
1227 | 1240 |
} |
1228 | 1241 |
|
1229 | 1242 |
header.map .nav-item select:hover option { |
1230 |
background: #0048a9;
|
|
1243 |
background: #0048A9;
|
|
1231 | 1244 |
} |
1232 | 1245 |
|
1233 | 1246 |
header.map .nav-item select:focus { |
1234 |
background: #0048a9;
|
|
1247 |
background: #0048A9;
|
|
1235 | 1248 |
color: white; |
1236 | 1249 |
} |
1237 | 1250 |
|
... | ... | |
1276 | 1289 |
.dropdown #dataset-dropdown-time .dropdown-item:nth-of-type(even) { |
1277 | 1290 |
background: rgba(0, 0, 0, 0.05); |
1278 | 1291 |
} |
1292 |
|
|
1293 |
.dropdown #dataset-dropdown-time .dropdown-item:nth-of-type(even):active { |
|
1294 |
background: #007bff; |
|
1295 |
} |
website/public/css/style.scss | ||
---|---|---|
2 | 2 |
@import 'bootstrap-4.4.1/_variables.scss'; |
3 | 3 |
@import 'bootstrap-4.4.1/mixins/_breakpoints.scss'; |
4 | 4 |
|
5 |
@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam:wght@400;600;700;800&display=swap'); |
|
6 |
|
|
7 |
$primary-bg-color: #0048A9; |
|
8 |
$primary-bg-color-darker: #004fb3; |
|
9 |
$secondary-bg-color: #0b155a; |
|
10 |
|
|
11 |
$primary-text-color: #ffffff; |
|
12 |
|
|
5 | 13 |
$images-dir: '../img/'; |
6 | 14 |
|
7 |
@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam:wght@400;600;700;800&display=swap'); |
|
8 | 15 |
|
9 | 16 |
html, body { |
10 |
font-family: 'Be Vietnam', sans-serif; |
|
11 |
color: #fff; |
|
12 | 17 |
position: relative; |
13 | 18 |
height: 96.2%; |
14 |
background: #242C6B; |
|
19 |
font-family: 'Be Vietnam', sans-serif; |
|
20 |
color: $primary-text-color; |
|
21 |
background: $secondary-bg-color; |
|
15 | 22 |
|
16 | 23 |
&.intro { |
17 | 24 |
@include media-breakpoint-down(sm) { |
... | ... | |
22 | 29 |
|
23 | 30 |
header { |
24 | 31 |
height: 70px; |
25 |
background: #0048A9;
|
|
32 |
background: $primary-bg-color;
|
|
26 | 33 |
|
27 | 34 |
.logo { |
28 | 35 |
width: 450px; |
... | ... | |
75 | 82 |
left: 0; |
76 | 83 |
z-index: 1001; |
77 | 84 |
opacity: .98; |
78 |
background: #004fb3;
|
|
85 |
background: $primary-bg-color-darker;
|
|
79 | 86 |
} |
80 | 87 |
} |
81 | 88 |
|
... | ... | |
106 | 113 |
.nav-link { |
107 | 114 |
padding-left: 22px; |
108 | 115 |
padding-right: 22px; |
109 |
border: 1px solid #fff;
|
|
116 |
border: 1px solid $primary-text-color;
|
|
110 | 117 |
border-radius: 20px; |
111 | 118 |
|
112 | 119 |
&:hover { |
... | ... | |
119 | 126 |
.navbar-button { |
120 | 127 |
padding: .5rem 22px; |
121 | 128 |
margin-right: 40px; |
122 |
border: 1px solid #fff;
|
|
129 |
border: 1px solid $primary-text-color;
|
|
123 | 130 |
border-radius: 20px; |
124 | 131 |
text-decoration: none; |
125 | 132 |
|
... | ... | |
139 | 146 |
font-weight: 800; |
140 | 147 |
letter-spacing: 0.4px; |
141 | 148 |
border-radius: 0; |
142 |
border: #0048A9;
|
|
149 |
border: $primary-bg-color;
|
|
143 | 150 |
background: #004fb3; |
144 | 151 |
|
145 | 152 |
&:hover { |
146 |
background: #0048A9 !important;
|
|
153 |
background: $primary-bg-color !important;
|
|
147 | 154 |
} |
148 | 155 |
} |
149 | 156 |
|
... | ... | |
168 | 175 |
|
169 | 176 |
input, .custom-select { |
170 | 177 |
letter-spacing: .4px; |
171 |
color: #fff; |
|
172 |
border-color: #0048A9; |
|
173 |
background: #0048A9; |
|
178 |
color: $primary-text-color; |
|
179 |
border-color: $primary-bg-color; |
|
180 |
background: $primary-bg-color; |
|
181 |
|
|
182 |
&::placeholder { |
|
183 |
color: $primary-text-color; |
|
184 |
opacity: 1; |
|
185 |
} |
|
174 | 186 |
} |
175 | 187 |
|
176 | 188 |
.nav-item { |
... | ... | |
244 | 256 |
} |
245 | 257 |
|
246 | 258 |
a { |
247 |
color: #fff;
|
|
259 |
color: $primary-text-color;
|
|
248 | 260 |
outline: none; |
249 | 261 |
|
250 | 262 |
&:hover { |
251 |
color: #fff;
|
|
263 |
color: $primary-text-color;
|
|
252 | 264 |
} |
253 | 265 |
} |
254 | 266 |
|
... | ... | |
256 | 268 |
width: 300px; |
257 | 269 |
text-align: left; |
258 | 270 |
margin: 30px 0; |
259 |
border-top: 2px solid #fff;
|
|
271 |
border-top: 2px solid $primary-text-color;
|
|
260 | 272 |
|
261 | 273 |
@include media-breakpoint-down(lg) { |
262 | 274 |
width: 90%; |
... | ... | |
374 | 386 |
bottom: 20px; |
375 | 387 |
z-index: 1; |
376 | 388 |
border-radius: 100px; |
377 |
background: #0B155A;
|
|
389 |
background: $secondary-bg-color;
|
|
378 | 390 |
|
379 | 391 |
@include media-breakpoint-down(lg) { |
380 | 392 |
right: 20px; |
... | ... | |
394 | 406 |
height: 45px; |
395 | 407 |
position: relative; |
396 | 408 |
border-radius: 50%; |
397 |
border: 2px solid #fff;
|
|
409 |
border: 2px solid $primary-text-color;
|
|
398 | 410 |
|
399 | 411 |
&:after { |
400 | 412 |
content: ""; |
... | ... | |
430 | 442 |
bottom: 30px !important; |
431 | 443 |
border-radius: 100px; |
432 | 444 |
opacity: 0.8; |
433 |
background: #0B155A;
|
|
445 |
background: $secondary-bg-color;
|
|
434 | 446 |
|
435 | 447 |
@include media-breakpoint-up(lg) { |
436 | 448 |
left: 50% !important; |
... | ... | |
448 | 460 |
top: 13px; |
449 | 461 |
left: 15px; |
450 | 462 |
z-index: 1; |
451 |
border-top: 2px solid #fff;
|
|
463 |
border-top: 2px solid $primary-text-color;
|
|
452 | 464 |
} |
453 | 465 |
|
454 | 466 |
.swiper-pagination-bullet { |
... | ... | |
457 | 469 |
position: relative; |
458 | 470 |
margin: 4px 15px !important; |
459 | 471 |
opacity: 1; |
460 |
border: 2px solid #0B155A;
|
|
461 |
background: #0B155A;
|
|
472 |
border: 2px solid $secondary-bg-color;
|
|
473 |
background: $secondary-bg-color;
|
|
462 | 474 |
|
463 | 475 |
&:before { |
464 | 476 |
content: ""; |
... | ... | |
469 | 481 |
top: 5px; |
470 | 482 |
left: 5px; |
471 | 483 |
border-radius: 50%; |
472 |
background: #fff;
|
|
484 |
background: $primary-text-color;
|
|
473 | 485 |
} |
474 | 486 |
|
475 | 487 |
&:first-of-type { |
... | ... | |
482 | 494 |
} |
483 | 495 |
|
484 | 496 |
.swiper-pagination-bullet-active { |
485 |
border: 2px solid #fff;
|
|
497 |
border: 2px solid $primary-text-color;
|
|
486 | 498 |
} |
487 | 499 |
} |
488 | 500 |
|
... | ... | |
498 | 510 |
text-transform: uppercase; |
499 | 511 |
letter-spacing: 0.4px; |
500 | 512 |
border-radius: 30px; |
501 |
border: 1px solid #0B155A;
|
|
502 |
background: #0B155A;
|
|
513 |
border: 1px solid $secondary-bg-color;
|
|
514 |
background: $secondary-bg-color;
|
|
503 | 515 |
|
504 | 516 |
&:hover, &:focus, &:active { |
505 |
border: 1px solid #0048A9;
|
|
506 |
background: #0048A9 !important;
|
|
517 |
border: 1px solid $primary-bg-color;
|
|
518 |
background: $primary-bg-color !important;
|
|
507 | 519 |
} |
508 | 520 |
|
509 | 521 |
@include media-breakpoint-down(xs) { |
... | ... | |
515 | 527 |
} |
516 | 528 |
|
517 | 529 |
.btn-secondary { |
518 |
background: #0B155A;
|
|
530 |
background: $secondary-bg-color;
|
|
519 | 531 |
|
520 | 532 |
&:hover, &:focus, &:active { |
521 | 533 |
background: #7378A0 !important; |
... | ... | |
530 | 542 |
position: absolute; |
531 | 543 |
border-radius: 50%; |
532 | 544 |
cursor: pointer; |
533 |
border: 2px solid #fff;
|
|
545 |
border: 2px solid $primary-text-color;
|
|
534 | 546 |
|
535 | 547 |
@media not all and (min-width: 1900px) and (max-width: 2100px) { |
536 | 548 |
display: none; |
... | ... | |
561 | 573 |
z-index: 0; |
562 | 574 |
opacity: 0.75; |
563 | 575 |
border-radius: 25px 0 25px 0; |
564 |
background: #0B155A;
|
|
576 |
background: $secondary-bg-color;
|
|
565 | 577 |
} |
566 | 578 |
} |
567 | 579 |
|
... | ... | |
592 | 604 |
top: -2px; |
593 | 605 |
left: -2px; |
594 | 606 |
border-radius: 50%; |
595 |
border: 2px solid #fff;
|
|
607 |
border: 2px solid $primary-text-color;
|
|
596 | 608 |
} |
597 | 609 |
|
598 | 610 |
&.point-1 { |
... | ... | |
657 | 669 |
text-decoration: none; |
658 | 670 |
border-radius: 50px; |
659 | 671 |
opacity: 1; |
660 |
background: #0B155A;
|
|
672 |
background: $secondary-bg-color;
|
|
661 | 673 |
|
662 | 674 |
.circle { |
663 | 675 |
display: inline-block; |
... | ... | |
667 | 679 |
top: 3px; |
668 | 680 |
right: 3px; |
669 | 681 |
border-radius: 50%; |
670 |
border: 2px solid #fff;
|
|
682 |
border: 2px solid $primary-text-color;
|
|
671 | 683 |
|
672 | 684 |
&:after { |
673 | 685 |
content: ""; |
... | ... | |
735 | 747 |
position: relative; |
736 | 748 |
border-radius: 50%; |
737 | 749 |
opacity: .7; |
738 |
border: 2px solid #fff;
|
|
739 |
box-shadow: 0 0 0 4px #0B155A;
|
|
740 |
background: #0B155A;
|
|
750 |
border: 2px solid $primary-text-color;
|
|
751 |
box-shadow: 0 0 0 4px $secondary-bg-color;
|
|
752 |
background: $secondary-bg-color;
|
|
741 | 753 |
cursor: pointer; |
742 | 754 |
|
743 | 755 |
&:hover { |
... | ... | |
826 | 838 |
text-align: center; |
827 | 839 |
border-radius: 15px; |
828 | 840 |
cursor: pointer; |
829 |
background: #0B155A;
|
|
841 |
background: $secondary-bg-color;
|
|
830 | 842 |
|
831 | 843 |
@media (max-width: 390px) { |
832 | 844 |
margin-right: 0; |
... | ... | |
868 | 880 |
width: 6px; |
869 | 881 |
height: 6px; |
870 | 882 |
border-radius: 50%; |
871 |
background: #fff;
|
|
883 |
background: $primary-text-color;
|
|
872 | 884 |
} |
873 | 885 |
|
874 | 886 |
&:after { |
... | ... | |
878 | 890 |
top: -2px; |
879 | 891 |
width: 20px; |
880 | 892 |
height: 2px; |
881 |
background: #fff;
|
|
893 |
background: $primary-text-color;
|
|
882 | 894 |
} |
883 | 895 |
} |
884 | 896 |
|
... | ... | |
888 | 900 |
width: 6px; |
889 | 901 |
height: 6px; |
890 | 902 |
border-radius: 50%; |
891 |
background: #fff;
|
|
903 |
background: $primary-text-color;
|
|
892 | 904 |
|
893 | 905 |
@include media-breakpoint-down(md) { |
894 | 906 |
display: none; |
... | ... | |
905 | 917 |
padding: 3px 0 4px 0; |
906 | 918 |
z-index: 1000; |
907 | 919 |
border-radius: 15px; |
908 |
background: #0B155A;
|
|
920 |
background: $secondary-bg-color;
|
|
909 | 921 |
|
910 | 922 |
@include media-breakpoint-up(lg) { |
911 | 923 |
position: absolute; |
... | ... | |
1037 | 1049 |
} |
1038 | 1050 |
} |
1039 | 1051 |
|
1052 |
#total-info { |
|
1053 |
margin-left: 5px; |
|
1054 |
font-size: 11pt; |
|
1055 |
} |
|
1056 |
|
|
1040 | 1057 |
#number-info { |
1058 |
display: flex; |
|
1059 |
align-items: center; |
|
1060 |
justify-content: center; |
|
1041 | 1061 |
font-family: monospace; |
1042 | 1062 |
font-size: 24pt; |
1043 | 1063 |
font-weight: 700; |
... | ... | |
1045 | 1065 |
|
1046 | 1066 |
#count-info { |
1047 | 1067 |
margin: auto; |
1048 |
color: #fff;
|
|
1068 |
color: $primary-text-color;
|
|
1049 | 1069 |
} |
1050 | 1070 |
} |
1051 | 1071 |
|
... | ... | |
1066 | 1086 |
width: 40px; |
1067 | 1087 |
margin-left: 10px; |
1068 | 1088 |
transition: all 0.2s ease-out; |
1069 |
color: #0048a9;
|
|
1089 |
color: $primary-bg-color;
|
|
1070 | 1090 |
background: rgba(255, 255, 255, 1); |
1071 | 1091 |
-webkit-box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.17); |
1072 | 1092 |
-moz-box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.17); |
... | ... | |
1098 | 1118 |
} |
1099 | 1119 |
|
1100 | 1120 |
&:hover { |
1101 |
color: #0048a9;
|
|
1121 |
color: $primary-bg-color;
|
|
1102 | 1122 |
background: rgba(255, 255, 255, 1) !important; |
1103 | 1123 |
-webkit-box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.22); |
1104 | 1124 |
-moz-box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.22); |
... | ... | |
1107 | 1127 |
|
1108 | 1128 |
&:active, &:focus { |
1109 | 1129 |
background: rgba(240, 240, 240, 1) !important; |
1110 |
color: #0048a9 !important;
|
|
1130 |
color: $primary-bg-color !important;
|
|
1111 | 1131 |
} |
1112 | 1132 |
} |
1113 | 1133 |
|
... | ... | |
1117 | 1137 |
} |
1118 | 1138 |
|
1119 | 1139 |
&:focus { |
1120 |
background: #fff;
|
|
1140 |
background: $primary-text-color;
|
|
1121 | 1141 |
color: #000; |
1122 | 1142 |
} |
1123 | 1143 |
} |
... | ... | |
1128 | 1148 |
background: rgba(255, 255, 255, .2); |
1129 | 1149 |
|
1130 | 1150 |
option { |
1131 |
background: #0048a9;
|
|
1151 |
background: $primary-bg-color;
|
|
1132 | 1152 |
} |
1133 | 1153 |
} |
1134 | 1154 |
|
1135 | 1155 |
&:focus { |
1136 |
background: #0048a9;
|
|
1156 |
background: $primary-bg-color;
|
|
1137 | 1157 |
color: white; |
1138 | 1158 |
} |
1139 | 1159 |
} |
... | ... | |
1161 | 1181 |
width: 100%; |
1162 | 1182 |
text-align: left; |
1163 | 1183 |
letter-spacing: .4px; |
1164 |
color: #ffffff;
|
|
1184 |
color: $primary-text-color;
|
|
1165 | 1185 |
|
1166 | 1186 |
&:hover { |
1167 | 1187 |
background: #336dba; |
... | ... | |
1176 | 1196 |
|
1177 | 1197 |
#dataset-dropdown-time .dropdown-item:nth-of-type(even) { |
1178 | 1198 |
background: rgba(0,0,0,.05); |
1199 |
|
|
1200 |
&:active { |
|
1201 |
background: #007bff; |
|
1202 |
} |
|
1179 | 1203 |
} |
1180 | 1204 |
} |
website/public/js/zcu-heatmap.js | ||
---|---|---|
71 | 71 |
className: className |
72 | 72 |
}).setLatLng([lat / num, lng / num]) |
73 | 73 |
|
74 |
const genPopUp = (datasetName, place, number, sum, currentPos, maxPos) => { |
|
75 |
const header = `<strong>${datasetName}</strong><div id="place-info">${place}</div>` |
|
76 |
const currentNum = `<span id="digit-info">${number}</span>` |
|
77 |
// eslint-disable-next-line eqeqeq |
|
78 |
const sumNum = `<span id="total-info" style="font-size: large">${(sum && (sum != number)) ? '/' + sum : ''}</span>` |
|
79 |
const digitInfo = `<div id="number-info">${currentNum}${sumNum}</div>` |
|
74 |
const genPopUp = (datasetName, place, count, sum, currentPos, maxPos) => { |
|
75 |
const popupHeader = ` |
|
76 |
<strong>${datasetName}</strong> |
|
77 |
<div id="place-info">${place}</div>` |
|
78 |
const popupData = ` |
|
79 |
<div id="number-info"> |
|
80 |
<span id="digit-info">${count}</span> |
|
81 |
<span id="total-info">${(sum && (sum != count)) ? '/' + sum : ''}</span> |
|
82 |
</div>` |
|
80 | 83 |
const { previousButton, nextButton, posInfo } = genPopUpControlButtons(currentPos, maxPos) |
84 |
|
|
81 | 85 |
return ` |
82 |
${header}
|
|
83 |
${digitInfo}
|
|
86 |
${popupHeader}
|
|
87 |
${popupData}
|
|
84 | 88 |
${genPopUpControls(maxPos > 1 ? [previousButton, posInfo, nextButton] : null)} |
85 | 89 |
` |
86 | 90 |
} |
... | ... | |
110 | 114 |
inDebounce = setTimeout(() => func.apply(context, args), delay) |
111 | 115 |
} |
112 | 116 |
} |
117 |
|
|
113 | 118 |
const onValueChangeRegister = () => { |
114 | 119 |
$('#date').change(function () { |
115 | 120 |
data = [] |
116 | 121 |
loadCurrentTimeHeatmap(dataSourceRoute, positionsSourceRoute) |
117 |
console.log('VAL:', $(this).val()) |
|
118 | 122 |
const date = new Date($(this).val()) |
119 | 123 |
$('#player-date').html(`${date.getDate()}. ${date.getMonth() + 1}. ${date.getFullYear()}`) |
124 |
changeUrl() |
|
120 | 125 |
}) |
126 |
|
|
121 | 127 |
$('#dataset-dropdown-time input[type="radio"]').each(function () { |
122 | 128 |
$(this).change(function () { |
123 | 129 |
currentTime = $(this).val() |
124 | 130 |
updateHeaderControls() |
125 | 131 |
setTimeline() |
126 | 132 |
drawHeatmap(data[currentTime]) |
133 |
changeUrl() |
|
127 | 134 |
}) |
128 | 135 |
}) |
136 |
|
|
129 | 137 |
$('input[type=checkbox]').each(function () { |
130 | 138 |
$(this).change( |
131 | 139 |
debounce(() => onCheckboxClicked(this), 1000) |
132 | 140 |
) |
133 | 141 |
}) |
134 | 142 |
} |
143 |
|
|
135 | 144 |
/** |
136 | 145 |
* Initialize leaflet map on start position which can be default or set based on user action |
137 | 146 |
*/ |
... | ... | |
330 | 339 |
|
331 | 340 |
function updateHeaderControls () { |
332 | 341 |
$(`#time_${currentTime}`).prop('checked', true) |
333 |
$('#dropdownMenuButton-time').html(currentTime >= 10 ? `${currentTime}:00` : `0${currentTime}:00`)
|
|
342 |
$('#dropdownMenuButtonTime').html((currentTime < 10 ? '0' : '') + `${currentTime}:00`)
|
|
334 | 343 |
} |
335 | 344 |
|
336 | 345 |
function setTimeline () { |
website/templates/heatmap-locations.html.twig | ||
---|---|---|
1 |
<ul> |
|
2 |
<li onclick="setMapView(49.7248, 13.3521, 17)">Kampus ZČU</li> |
|
3 |
<li onclick="setMapView(49.7367263, 13.3709177, 18)">FPE – Fakulta pedagogická</li> |
|
4 |
<li onclick="setMapView(49.7474950, 13.3748308, 18)">FPR – Fakulta právnická</li> |
|
5 |
<li onclick="setMapView(49.7450169, 13.3702668, 18)">FZS – Fakulta zdravotnických studií</li> |
|
6 |
<li onclick="setMapView(50.0762590, 12.3640213, 17)">FEK – pracoviště Cheb</li> |
|
7 |
<li onclick="setMapView(49.7236785, 13.3353118, 18)">NTC – výzkumné centrum</li> |
|
8 |
<li onclick="setMapView(49.9590236, 13.1597114, 18)">Zámek ZČU – Nečtiny</li> |
|
9 |
<li onclick="setMapView(49.7345564, 13.3585038, 18)">Koleje Borská</li> |
|
10 |
<li onclick="setMapView(49.7250373, 13.3696772, 18)">Koleje Bory</li> |
|
11 |
<li onclick="setMapView(49.7600000, 13.3723463, 18)">Koleje Lochotín</li> |
|
12 |
<li onclick="setMapView(49.7293726, 13.3589237, 15)">Oblast s koloběžkami</li> |
|
13 |
</ul> |
website/templates/heatmap.html.twig | ||
---|---|---|
8 | 8 |
<link rel="stylesheet" href="{{ asset('css/bootstrap-datepicker3.css') }}"> |
9 | 9 |
{% endblock %} |
10 | 10 |
|
11 |
|
|
12 | 11 |
{% block body %} |
13 | 12 |
|
14 | 13 |
<header class="map"> |
... | ... | |
22 | 21 |
</button> |
23 | 22 |
|
24 | 23 |
<div class="collapse navbar-collapse ml-auto" id="navigation"> |
25 |
|
|
26 | 24 |
{{ form_start(form, {'action': path('heatmap'), 'method': 'GET'}) }} |
27 | 25 |
<ul class="navbar-nav"> |
28 | 26 |
<li class="nav-item"> |
29 | 27 |
{{ form_label(form.date, 'Vyberte datum', { |
30 | 28 |
label_attr: {class: 'font-weight-bold'} |
31 | 29 |
}) }} |
32 |
{{ |
|
33 |
form_widget(form.date, |
|
30 |
{{ form_widget(form.date, |
|
34 | 31 |
{ |
35 | 32 |
'type' : 'text', |
36 | 33 |
'id' : 'date', |
... | ... | |
46 | 43 |
</li> |
47 | 44 |
<li class="nav-item"> |
48 | 45 |
<label class="font-weight-bold">Vyberte čas</label> |
49 |
<div class="dropdown">
|
|
50 |
<button class="btn dropdown-toggle" type="button_1" id="dropdownMenuButton-time" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
46 |
<div class="dropdown"> |
|
47 |
<button type="button" class="btn dropdown-toggle" id="dropdownMenuButtonTime" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
51 | 48 |
{{ current_time }} |
52 | 49 |
</button> |
53 |
<div id="dataset-dropdown-time" class="dropdown-menu" aria-labelledby="dropdownMenuButton-time">
|
|
54 |
{% for oneTime in form.time.children %} |
|
50 |
<div id="dataset-dropdown-time" class="dropdown-menu" aria-labelledby="dropdownMenuButtonTime">
|
|
51 |
{% for oneTime in form.time.children %}
|
|
55 | 52 |
<label class="dropdown-item custom-dropdown-item"> |
56 |
{{ form_widget(oneTime, { |
|
57 |
attr: {class: 'd-none'} |
|
58 |
}) }} |
|
59 |
{{ form_label(oneTime, null) }} |
|
60 |
</label> |
|
61 |
{% endfor %} |
|
53 |
{{ form_widget(oneTime, {attr: {class: 'd-none'}}) }} |
|
54 |
{{ form_label(oneTime, null) }} |
|
55 |
</label> |
|
56 |
{% endfor %} |
|
57 |
</div> |
|
62 | 58 |
</div> |
63 | 59 |
</li> |
64 | 60 |
<li class="nav-item"> |
65 | 61 |
<div class="dropdown"> |
66 |
<button class="btn dropdown-toggle font-weight-bold" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
62 |
<button type="button" class="btn dropdown-toggle font-weight-bold" id="dropdownMenuButtonDataset" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
67 | 63 |
Vyberte datovou sadu |
68 |
</button> |
|
69 |
<div id="dataset-dropdown" class="dropdown-menu" aria-labelledby="dropdownMenuButton"> |
|
70 |
{% for oneType in form.type.children %} |
|
71 |
<label class="dropdown-item custom-dropdown-item"> |
|
72 |
<div class="custom-control custom-checkbox custom-checkbox-{{oneType.vars.value}}"> |
|
73 |
{{ form_widget(oneType, { |
|
74 |
attr: { |
|
75 |
'class': "custom-control-input custom-control-input-#{oneType.vars.value}", |
|
76 |
'data-dataset-display-name': "#{oneType.vars.label}" |
|
77 |
} |
|
78 |
}) }} |
|
79 |
{{ form_label(oneType, null, { |
|
80 |
'label_attr': {'class': 'custom-control-label'} |
|
81 |
}) }} |
|
82 |
</div> |
|
83 |
</label> |
|
84 |
{% endfor %} |
|
64 |
</button> |
|
65 |
<div id="dataset-dropdown" class="dropdown-menu" aria-labelledby="dropdownMenuButtonDataset"> |
|
66 |
{% for oneDataset in form.type.children %} |
|
67 |
<div class="dropdown-item custom-dropdown-item"> |
|
68 |
<div class="custom-control custom-checkbox custom-checkbox-{{oneDataset.vars.value}}"> |
|
69 |
{{ form_widget(oneDataset, { |
|
70 |
attr: { |
|
71 |
'class': "custom-control-input custom-control-input-#{oneDataset.vars.value}", |
|
72 |
'data-dataset-display-name': "#{oneDataset.vars.label}" |
|
73 |
} |
|
74 |
}) }} |
|
75 |
{{ form_label(oneDataset, null, { |
|
76 |
'label_attr': {'class': 'custom-control-label'} |
|
77 |
}) }} |
|
78 |
</div> |
|
79 |
</div> |
|
80 |
{% endfor %} |
|
81 |
</div> |
|
85 | 82 |
</div> |
86 |
</div> |
|
87 | 83 |
</li> |
88 |
|
|
89 | 84 |
<li class="nav-item"> |
90 |
{{ |
|
91 |
form_widget(form.submit, |
|
85 |
{{ form_widget(form.submit, |
|
92 | 86 |
{ |
93 | 87 |
'name' : '', |
94 | 88 |
'label' : '', |
... | ... | |
100 | 94 |
}) |
101 | 95 |
}} |
102 | 96 |
</li> |
103 |
</ul> |
|
104 |
|
|
97 |
</ul> |
|
105 | 98 |
{{ form_end(form) }} |
106 |
|
|
107 | 99 |
</div> |
108 | 100 |
</nav> |
109 | 101 |
</header> |
... | ... | |
115 | 107 |
<div class="circle"></div> |
116 | 108 |
</a> |
117 | 109 |
<div class="locations collapse" id="mapLocations"> |
118 |
<ul> |
|
119 |
<li onclick="setMapView(49.7248, 13.3521, 17)">Kampus ZČU</li> |
|
120 |
<li onclick="setMapView(49.7367263, 13.3709177, 18)">FPE – Pedagogická fakulta</li> |
|
121 |
<li onclick="setMapView(49.7474950, 13.3748308, 18)">FPR – Právnická fakulta</li> |
|
122 |
<li onclick="setMapView(49.7450169, 13.3702668, 18)">FZS – Fakulta zdravotnických studií</li> |
|
123 |
<li onclick="setMapView(50.0762590, 12.3640213, 17)">FEK – pracoviště Cheb</li> |
|
124 |
<li onclick="setMapView(49.7236785, 13.3353118, 18)">NTC – výzkumné centrum</li> |
|
125 |
<li onclick="setMapView(49.9590236, 13.1597114, 18)">Zámek ZČU – Nečtiny</li> |
|
126 |
<li onclick="setMapView(49.7345564, 13.3585038, 18)">Koleje Borská</li> |
|
127 |
<li onclick="setMapView(49.7250373, 13.3696772, 18)">Koleje Bory</li> |
|
128 |
<li onclick="setMapView(49.7600000, 13.3723463, 18)">Koleje Lochotín</li> |
|
129 |
<li onclick="setMapView(49.7293726, 13.3589237, 15)">Oblast s koloběžkami</li> |
|
130 |
</ul> |
|
110 |
{% include 'heatmap-locations.html.twig' %} |
|
131 | 111 |
</div> |
132 | 112 |
</div> |
133 | 113 |
|
... | ... | |
191 | 171 |
initDatepicker("{{ path('dates') }}"); |
192 | 172 |
initLocationsMenu(); |
193 | 173 |
initMap(); |
194 |
$( document ).ready(function() {
|
|
174 |
$(document).ready(function() {
|
|
195 | 175 |
onDocumentReady(); |
196 | 176 |
checkDataSetsAvailability("{{ path('available') }}") |
197 | 177 |
{% if submitted %} |
... | ... | |
209 | 189 |
<style> |
210 | 190 |
{% for key, item in dataset_colors %} |
211 | 191 |
.custom-control-input-{{key}}:focus~.custom-control-label::before { |
212 |
border-color: {{item}} !important;
|
|
213 |
box-shadow: 0 0 0 0.2rem rgba(192,192,192, 0.4) !important;
|
|
192 |
border-color: {{item}} !important; |
|
193 |
box-shadow: 0 0 0 0.2rem rgba(192,192,192, 0.4) !important; |
|
214 | 194 |
} |
215 | 195 |
|
216 | 196 |
.custom-control-input-{{key}}:checked~.custom-control-label::before { |
217 |
border-color: {{item}} !important;
|
|
218 |
background-color: {{item}} !important;
|
|
197 |
border-color: {{item}} !important; |
|
198 |
background-color: {{item}} !important; |
|
219 | 199 |
} |
220 | 200 |
|
221 | 201 |
.custom-control-input-{{key}}:focus:not(:checked)~.custom-control-label::before { |
222 |
border-color: {{item}} !important;
|
|
202 |
border-color: {{item}} !important; |
|
223 | 203 |
} |
224 | 204 |
|
225 | 205 |
.custom-control-input-{{key}}:not(:disabled):active~.custom-control-label::before { |
226 |
background-color: {{item}} !important;
|
|
227 |
border-color: {{item}} !important;
|
|
206 |
background-color: {{item}} !important; |
|
207 |
border-color: {{item}} !important; |
|
228 | 208 |
} |
229 | 209 |
|
230 |
.popup-{{key}} > .leaflet-popup-content-wrapper, .popup-{{key}} .leaflet-popup-tip{ |
|
210 |
.popup-{{key}} > .leaflet-popup-content-wrapper, .popup-{{key}} .leaflet-popup-tip {
|
|
231 | 211 |
background-color: {{item}} !important; |
232 | 212 |
} |
233 | 213 |
{% endfor %} |
Také k dispozici: Unified diff
Re #8159 - frontend bugfixes and refactoring