github.com/quickfeed/quickfeed@v0.0.0-20240507093252-ed8ca812a09c/public/src/style.scss (about) 1 2 :root { 3 // Height of the navbar 4 --navbar-height: 76px; 5 } 6 7 8 .wrapper { 9 padding-top: var(--navbar-height); 10 display: flex; 11 width: 100%; 12 align-items: stretch; 13 } 14 15 .navigator { 16 17 &.hidden { 18 transform: translateX(-100%); 19 } 20 21 position: fixed; 22 top: var(--navbar-height); 23 transition: transform ease-in-out 0.2s; 24 transform: translateX(0); 25 left: 0; 26 width: 250px; 27 height: 100vh; 28 background-color: #222; 29 box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.4); 30 color: #d4d4d4; 31 font-weight: bold; 32 overflow-y: scroll; 33 /* IE and Edge */ 34 -ms-overflow-style: none; 35 /* Firefox */ 36 scrollbar-width: none; 37 } 38 39 /* Hide scrollbar for Chrome, Safari and Opera */ 40 .navigator::-webkit-scrollbar { 41 display: none; 42 } 43 44 .sidebarList { 45 width: 100%; 46 height: auto; 47 padding: 0 !important; // override bootstrap 48 margin: 0 !important; // override bootstrap 49 50 li { 51 width: 100%; 52 height: 60px; 53 list-style-type: none; 54 margin: 0%; 55 display: flex; 56 flex-direction: row; 57 justify-content: center; 58 align-items: center; 59 cursor: pointer; 60 61 &:hover { 62 background-color: rgb(20, 20, 20); 63 } 64 65 a { 66 width: 100%; 67 height: 100%; 68 display: block; 69 color: #d4d4d4; 70 } 71 72 span { 73 margin: 0px; 74 display: inline-block; 75 text-align: center; 76 width: 100%; 77 height: 100%; 78 color: #d4d4d4; 79 } 80 81 img { 82 width: 30px; 83 border-radius: 50%; 84 } 85 } 86 87 .inactive { 88 display: none; 89 } 90 91 .active { 92 display: flex; 93 background-color: rgb(39, 39, 39); 94 } 95 96 .activelab { 97 display: block; 98 background-color: rgb(50, 50, 50); 99 } 100 101 } 102 103 #avatar { 104 width: 30px; 105 } 106 107 .sidebarFooter { 108 position: absolute; 109 bottom: 0; 110 padding: 0; 111 width: 100%; 112 } 113 114 .sidebar-items-link { 115 text-align: center; 116 line-height: 60px; 117 } 118 119 #title { 120 margin-left: 10px; 121 } 122 123 .card-body { 124 color: black; 125 } 126 127 .centered { 128 position: fixed; 129 top: 50%; 130 left: 60%; 131 transform: translate(-50%, -50%); 132 transform: -webkit-translate(-50%, -50%); 133 transform: -moz-translate(-50%, -50%); 134 transform: -ms-translate(-50%, -50%); 135 } 136 137 .logo { 138 text-decoration: none; 139 font-size: 24px; 140 text-align: center; 141 142 a { 143 padding-top: 10px; 144 } 145 } 146 147 #content { 148 transition: margin-left ease-in-out 0.2s; 149 margin-left: 350px; 150 margin-right: 100px; 151 width: 100%; 152 } 153 154 #content-full { 155 transition: margin-left ease-in-out 0.2s; 156 margin-left: 100px; 157 margin-right: 100px; 158 width: 100%; 159 } 160 161 body { 162 margin: 0px; 163 } 164 165 a { 166 color: #9d9d9d; 167 font-weight: bold; 168 display: inline-block; 169 170 &:hover { 171 color: #7a7a7a; 172 } 173 174 &:link { 175 text-decoration: none; 176 } 177 } 178 179 input { 180 color: black; 181 } 182 183 #github { 184 line-height: 20px; 185 } 186 187 .box { 188 margin-top: 30px; 189 } 190 191 #LandingPageTable thead tr { 192 background-color: #343a40; 193 color: white; 194 } 195 196 #LandingPageTable tbody .dark td { 197 border-bottom: 1px solid black; 198 } 199 200 #LandingPageTable tbody .light:nth-child(even) { 201 background-color: #e0ebf1; 202 } 203 204 #LandingPageTable tbody .dark:nth-child(even) { 205 background-color: #222; 206 } 207 208 #LandingPageTable tbody tr { 209 cursor: pointer; 210 } 211 212 .jumbotron { 213 margin-right: -100px; 214 margin-left: -100px; 215 } 216 217 .course-card-row { 218 padding: 40px 0; 219 border-top: 1px solid #ccc; 220 } 221 222 .fa-star, 223 .fa-star-o { 224 color: yellow; 225 text-shadow: 0 0 3px #000; 226 } 227 228 .centered { 229 position: fixed; 230 top: 50%; 231 left: 50%; 232 transform: translate(-50%, -50%); 233 transform: -webkit-translate(-50%, -50%); 234 transform: -moz-translate(-50%, -50%); 235 transform: -ms-translate(-50%, -50%); 236 } 237 238 .icon { 239 transition-duration: 0.5s; 240 } 241 242 .float-down-left { 243 position: absolute; 244 bottom: 10px; 245 left: 20px; 246 } 247 248 .overflow-ellipses { 249 text-overflow: ellipsis; 250 white-space: nowrap; 251 overflow: hidden; 252 text-align: center; 253 } 254 255 .review { 256 display: flex; 257 flex-direction: row; 258 position: absolute; 259 } 260 261 .reviewTable { 262 flex: 20; 263 } 264 265 .lab-sticky { 266 position: sticky; 267 top: 100px; 268 height: 90vh; 269 padding: 0; 270 } 271 272 .reviewLabResult { 273 overflow: scroll; 274 overflow-y: scroll; 275 height: 90vh; 276 } 277 278 .table-overflow { 279 overflow-x: scroll; 280 padding: 0; 281 } 282 283 .pending-review { 284 box-shadow: inset 0 0 4px 2px #626280; 285 } 286 287 #group-image { 288 width: 23px; 289 margin-right: 10px; 290 border-radius: 50%; 291 } 292 293 .about { 294 width: 100%; 295 } 296 297 .redirectButton { 298 position: absolute; 299 top: 120px; 300 transform: translateX(-70px); 301 } 302 303 .result-approved { 304 background-color: #ccffcc; 305 cursor: pointer; 306 } 307 308 .result-rejected { 309 background-color: #ffcccc; 310 cursor: pointer; 311 } 312 313 .result-revision { 314 background-color: #ffffcc; 315 cursor: pointer; 316 } 317 318 .selected { 319 background-color: #007bff; 320 color: white; 321 } 322 323 .release { 324 box-shadow: rgb(0, 0, 0) 0px 0px 0px inset, green 5px 0px 0px inset; 325 } 326 327 .course-button { 328 position: absolute; 329 bottom: 0; 330 right: 0; 331 margin: 1.25rem; 332 } 333 334 .clickable { 335 cursor: pointer; 336 } 337 338 .clickable:hover { 339 text-decoration: none; 340 } 341 342 .alert { 343 z-index: 999; 344 } 345 346 .bg-secondary { 347 background: rgb(221, 223, 226) !important; 348 color: slategrey; 349 } 350 351 .table td { 352 padding: 0.5rem !important; 353 } 354 355 .table th { 356 padding: 0.5rem !important; 357 } 358 359 .passed { 360 box-shadow: rgb(0, 0, 0) 0px 0px 0px inset, green 5px 0px 0px inset; 361 } 362 363 .failed { 364 box-shadow: rgb(0, 0, 0) 0px 0px 0px inset, red 5px 0px 0px inset; 365 } 366 367 .not-graded { 368 box-shadow: rgb(0, 0, 0) 0px 0px 0px inset, rgba(0, 0, 0, 0.2) 5px 0px 0px inset; 369 } 370 371 .dropdown-menu-center { 372 right: auto; 373 left: 50%; 374 -webkit-transform: translate(-50%, 0); 375 -o-transform: translate(-50%, 0); 376 transform: translate(-50%, 0); 377 } 378 379 .width-resize { 380 min-width: 150px; 381 } 382 .navbar-top { 383 background-color: #222; 384 height: var(--navbar-height); 385 386 .nav-child { 387 388 &.brand { 389 display: flex; 390 font-size: 1.5rem; 391 padding: 0.5rem 1rem; 392 width: 15rem; 393 & > * { 394 margin-right: 0.5rem; 395 } 396 397 .hamburger { 398 min-width: 30px; 399 transition: color 0.2s ease-in-out; 400 text-align: center; 401 &.closed { 402 color: #d4d4d4; 403 404 } 405 406 &.open { 407 color: #28a745; 408 } 409 } 410 } 411 412 &.course { 413 font-size: 1.2rem; 414 display: flex; 415 416 &::before { 417 color: green; 418 content: remove-where(); 419 } 420 421 & > * { 422 margin-right: 0.5rem; 423 align-self: center; 424 } 425 426 427 } 428 } 429 } 430 431 432 .navbar { 433 .nav-item { 434 &:hover .dropdown-menu { 435 display: block; 436 } 437 .dropdown-menu { 438 display: none; 439 margin-top: 0; 440 } 441 } 442 } 443 444 @media only screen and (max-width: 980px) { 445 .width-resize { 446 width: 350px; 447 padding-top: 15px; 448 } 449 } 450 451 @media only screen and (max-width: 1200px) { 452 .lab-resize { 453 padding-top: 15px; 454 } 455 } 456 457 458 nav.flexbox { 459 position: fixed; 460 width: 100%; 461 z-index: 100; 462 display: flex; 463 flex-direction: row; 464 justify-content: space-between; 465 466 ul { 467 padding: 0.3rem; 468 margin: 0.3rem; 469 } 470 } 471 472 .flex-user { 473 display: flex; 474 flex-direction: row; 475 width: 15rem; 476 justify-content: center; 477 align-items: center; 478 } 479 480 .switch { 481 position: relative; 482 display: inline-block; 483 width: 36px; 484 min-width: 36px; 485 height: 24px; 486 margin-bottom: 0; 487 488 input { 489 opacity: 0; 490 width: 0; 491 height: 0; 492 493 &:checked + .slider { 494 background-color: #28a745; 495 496 & .toggle { 497 -webkit-transform: translateX(13px); 498 -ms-transform: translateX(13px); 499 transform: translateX(13px); 500 } 501 } 502 503 &:not(:checked) + .slider { 504 background-color: #007bff; 505 } 506 } 507 508 .slider { 509 position: absolute; 510 cursor: pointer; 511 top: 0; 512 left: 0; 513 right: 0; 514 bottom: 0; 515 background-color: #ccc; 516 -webkit-transition: .4s; 517 transition: .4s; 518 519 .toggle { 520 font-family: "FontAwesome"; 521 font-size: 12px; 522 position: absolute; 523 content: "\f19d"; 524 text-align: center; 525 height: 16px; 526 width: 16px; 527 left: 4px; 528 bottom: 4px; 529 background-color: white; 530 -webkit-transition: .4s; 531 transition: .4s; 532 } 533 } 534 535 .slider.round { 536 border-radius: 34px; 537 538 box-shadow: 0px 0px 1px 1px rgba(0,0,0,0.5) inset; 539 -webkit-box-shadow: 0px 0px 1px 1px rgba(0,0,0,0.5) inset; 540 -moz-box-shadow: 0px 0px 1px 1px rgba(0,0,0,0.5) inset; 541 542 & .toggle { 543 border-radius: 50%; 544 } 545 } 546 } 547 548 549 .course-card { 550 max-width: 30rem; 551 min-width: 30rem; 552 margin-bottom: 10px !important; // override bootstrap margin of 0 553 min-height: 205px; 554 } 555 556 .comment { 557 // all children links should be white 558 a { 559 color: red; 560 &:hover { 561 text-decoration: underline 562 } 563 } 564 background-color: #f7f7f9; 565 height: 100%; 566 567 td { 568 position: relative; 569 padding: 1rem; 570 border-bottom: 1px solid #eaeaea; 571 } 572 td::before { 573 content: ""; 574 position: absolute; 575 width: 5px; 576 height: 0%; 577 display: block; 578 top: 0; 579 left: 0; 580 581 background-color: rgba(0,0,0,0.1); 582 583 // transition height on hover 584 transition: height 0.2s ease-in-out; 585 } 586 587 &.comment-passed{ 588 // green 589 td::before { 590 background-color: rgba(0, 128, 0, 0.3) ; 591 } 592 } 593 594 &.comment-failed{ 595 // red 596 td::before { 597 background-color: rgba(255, 0, 0, 0.3); 598 } 599 } 600 601 &.comment-not-graded{ 602 // grey 603 td::before { 604 background-color: rgba(128, 128, 128, 0.3); 605 } 606 } 607 608 @media only screen and (max-width: 980px) { 609 td::before { 610 height: 50%; 611 } 612 } 613 614 td:hover::before { 615 height: 50%; 616 } 617 618 p { 619 margin: 0; 620 } 621 622 .comment-md { 623 padding: 1rem; 624 } 625 626 &.hidden { 627 display: none; 628 } 629 } 630 631 .breadcrumb { 632 .breadcrumb-item + .breadcrumb-item::before { 633 content: ">" !important; 634 } 635 }