go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/milo/frontend/static/common/css/console.css (about) 1 /* Copyright 2017 The LUCI Authors. 2 * 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 /* Generic */ 17 18 .console-column { 19 display: flex; 20 flex-direction: column; 21 } 22 23 .console-commits-column { 24 justify-content: flex-end; 25 flex: 0; 26 } 27 28 .console-row { 29 display: flex; 30 flex-direction: row; 31 } 32 33 .fill-row { 34 width: 100%; 35 } 36 37 /* Title */ 38 39 .console-title { 40 display: flex; 41 flex-direction: row; 42 justify-content: flex-start; 43 align-items: center; 44 } 45 46 .console-title img { 47 width: 16px; 48 height: 16px; 49 } 50 51 .console-title span { 52 font-weight: bold; 53 min-height: 2.5em; 54 } 55 56 /* Tree Status */ 57 58 .tree-status { 59 margin-bottom: 6px; 60 padding: 0.5em; 61 overflow: hidden; 62 word-break: break-word; 63 font-weight: normal; 64 font-size: 16px; 65 font-family: Verdana, Cursor; 66 text-align: center; 67 border-top-right-radius: 24px; 68 border-top-left-radius: 24px; 69 box-shadow: 2px 2px 6px rgba(0,0,0,0.6); 70 } 71 72 /* Header */ 73 74 .console-header { 75 display: flex; 76 flex-direction: row; 77 border-radius: 0.5em; 78 border: 1px solid silver; 79 margin-bottom: 2em; 80 background-color: rgb(239, 239, 239); 81 box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.6); 82 padding: 0.5em; 83 } 84 85 .console-header-column { 86 display: flex; 87 flex-direction: column; 88 } 89 90 .console-header-groups { 91 display: flex; 92 justify-content: space-evenly; 93 flex-wrap: wrap; 94 } 95 96 .console-header-oncalls-group { 97 display: flex; 98 flex-direction: column; 99 margin: 0.2em; 100 max-width: 45%; 101 } 102 103 .console-header-links-group { 104 display: flex; 105 flex-direction: column; 106 margin: 0.2em; 107 max-width: 80%; 108 } 109 110 .console-header-group-name { 111 display: flex; 112 flex-direction: column; 113 align-items: center; 114 font-weight: bold; 115 min-height: 1.25em; 116 } 117 118 .console-header-group-content { 119 display: flex; 120 justify-content: space-evenly; 121 flex-wrap: wrap; 122 min-height: 1.25em; 123 } 124 125 .console-header-group-content span { 126 padding-left: 0.2em; 127 padding-right: 0.2em; 128 } 129 130 .console-header-group { 131 display: flex; 132 flex-direction: column; 133 border-radius: 0.5em; 134 border: 1px solid silver; 135 margin: 0.5em; 136 padding: 0.5em; 137 } 138 139 .console-header-group-title { 140 display: flex; 141 flex-direction: row; 142 justify-content: center; 143 align-items: center; 144 font-weight: bold; 145 font-size: 1.33em; 146 border-bottom: 1px solid silver; 147 } 148 149 .console-header-group-title a { 150 text-decoration: none; 151 } 152 153 .console-header-name { 154 display: flex; 155 flex-direction: row; 156 font-weight: bold; 157 padding: 0.5em; 158 } 159 160 .console-header-builder { 161 display: flex; 162 flex-grow: 1; 163 min-height: 2em; 164 max-height: 2em; 165 min-width: 2em; 166 border-width: 1px; 167 border-style: solid; 168 border-radius: 0.25em; 169 } 170 171 /* Legend */ 172 #legend { 173 display: flex; 174 justify-content: center; 175 margin-bottom: 1em; 176 font-weight: bold; 177 } 178 179 /* Controls */ 180 181 .expanded .control-expand { 182 display: none; 183 } 184 185 .collapsed .control-collapse { 186 display: none; 187 } 188 189 /* Commits */ 190 191 .console-controls { 192 margin: 1em; 193 } 194 195 .console-commit-column { 196 display: flex; 197 flex-direction: column; 198 justify-content: flex-end; 199 } 200 201 .console-commit-column div.console-commit-item:nth-child(even), 202 .console-commit-column div.console-commit-item:nth-child(even) p { 203 background-color: #cccccc; 204 } 205 206 .console-commit-column div.console-commit-item:nth-child(odd), 207 .console-commit-column div.console-commit-item:nth-child(odd) p { 208 background-color: #eee; 209 } 210 211 .console-commit-column div.console-commit-item:nth-child(even).bottom-hidden .console-commit-description-overlay { 212 background-image: linear-gradient(rgba(204, 204, 204, 0) 0%, rgba(204, 204, 204, 0.9) 95%); 213 } 214 215 .console-commit-column div.console-commit-item:nth-child(odd).bottom-hidden .console-commit-description-overlay { 216 background-image: linear-gradient(rgba(238, 238, 238, 0) 0%, rgba(238, 238, 238, 0.9) 95%); 217 } 218 219 .console-commit-description { 220 position: relative; 221 overflow: hidden; 222 } 223 224 .console-commit-description:hover { 225 overflow: visible; 226 z-index: 18; 227 } 228 229 .bottom-hidden .console-commit-description p { 230 border-bottom: 1px solid black; 231 } 232 233 .console-commit-description-overlay { 234 position: absolute; 235 bottom: 0; 236 width: 100%; 237 height: 80px; 238 } 239 240 .console-commit-description:hover .console-commit-description-overlay { 241 background-image: none !important; 242 } 243 244 .console-commit-item { 245 display: flex; 246 align-items: center; 247 justify-content: left; 248 flex-direction: column; 249 position: relative; 250 } 251 252 .collapsed .console-commit-item { 253 margin-bottom: 2px; 254 } 255 256 .console-commit-item-overlay { 257 position: absolute; 258 top: -1px; 259 left: 0; 260 z-index: 16; 261 border-top: 1px solid black; 262 } 263 264 .collapsed .console-commit-item-overlay { 265 display: none; 266 } 267 268 .console-commit-summary { 269 display: flex; 270 flex-direction: row; 271 min-width: 2em; 272 min-height: 2em; 273 margin-right: -0.2em; 274 padding: 1px 1em; 275 } 276 277 .expanded .console-commit-item { 278 border-top: 1px solid black; 279 } 280 281 .console-commit-revision { 282 width: 6em; 283 text-overflow: ellipsis; 284 overflow: hidden; 285 white-space: nowrap; 286 display: flex; 287 align-items: center; 288 font-family: monospace; 289 font-weight: bold; 290 } 291 292 .console-commit-author { 293 text-overflow: ellipsis; 294 overflow: hidden; 295 white-space: nowrap; 296 display: flex; 297 align-items: center; 298 } 299 300 .collapsed .console-commit-author { 301 width: 15em; 302 } 303 304 .expanded .console-commit-author { 305 width: 25em; 306 } 307 308 .commit { 309 font-weight: bold; 310 } 311 312 .console-commit-description { 313 width: 40em; 314 z-index: 12; 315 border-top: 1px solid black; 316 } 317 318 .console-commit-description p { 319 padding-left: 1em; 320 word-break: break-word; 321 } 322 323 .collapsed .console-commit-description { 324 display: none; 325 } 326 327 /* Table Header */ 328 329 .console-top-row { 330 display: flex; 331 flex-direction: row; 332 border-left: 1px solid silver; 333 border-right: 1px solid silver; 334 margin-left: 0.2em; 335 padding-right: 0.2em; 336 } 337 338 .console-top-item { 339 display: flex; 340 border-top: 1px solid silver; 341 border-left: 1px solid silver; 342 border-right: 1px solid silver; 343 border-bottom: 1px solid transparent; 344 min-width: 1em; 345 min-height: 2em; 346 align-items: center; 347 justify-content: center; 348 border-top-left-radius: 0.5em; 349 border-top-right-radius: 0.5em; 350 margin-left: 0.2em; 351 padding-left: 0.2em; 352 padding-right: 0.2em; 353 white-space: nowrap; 354 } 355 356 .no-category .console-top-item { 357 border-top: none; 358 border-left: none; 359 border-right: none; 360 border-bottom: 2px solid transparent; 361 } 362 363 .expanded .console-top-item { 364 padding-bottom: 1em; 365 } 366 367 .console-space { 368 display: flex; 369 border: 1px solid transparent; 370 min-width: 1em; 371 min-height: 2em; 372 } 373 374 .expanded .console-space { 375 min-height: 3em; 376 } 377 378 /* Builders */ 379 380 .console-builder-summary-flex { 381 display: flex; 382 flex-grow: 1; 383 align-items: center; 384 margin: 0.2em; 385 } 386 387 @supports not (display: grid) { 388 .console-builder-summary-grid { 389 display: flex; 390 width: 100%; 391 } 392 } 393 394 @supports (display: grid) { 395 .console-builder-summary-grid { 396 display: grid; 397 grid-template-columns: repeat(auto-fit, minmax(2em, 1fr)); 398 width: 100%; 399 } 400 } 401 402 .console-builder-summary-flex * { 403 margin: 0.05em; 404 } 405 406 .console-builder-status { 407 display: block; 408 height: 100%; 409 width: 100%; 410 text-decoration: none; 411 } 412 413 .console-builder-column { 414 display: flex; 415 flex-direction: column; 416 flex: 1; 417 } 418 419 .console-builder-column:last-of-type { 420 margin-right: -0.2em; 421 } 422 423 .console-Success a.console-builder-item { 424 background-color: #8d4; 425 border-color: #4F8530; 426 } 427 428 .console-Failure a.console-builder-item { 429 background-color: #e88; 430 border-color: #A77272; 431 color: #000; 432 font-weight: bold; 433 } 434 435 .console-InfraFailure a.console-builder-item { 436 background-color: #ac39ac; 437 border-color: #ACA0B3; 438 color: #ffffff; 439 } 440 441 .console-Exception a.console-builder-item { 442 background-color: #ac39ac; 443 border-color: #ACA0B3; 444 color: #ffffff; 445 } 446 447 .console-builder-item { 448 display: flex; 449 border: 1px solid silver; 450 min-width: 1em; 451 min-height: 2em; 452 text-decoration: none; 453 align-items: center; 454 justify-content: center; 455 background-color: #fff; 456 border-top-left-radius: 0.5em; 457 border-top-right-radius: 0.5em; 458 margin-top: 0.75em; 459 margin-bottom: 2px; 460 margin-right: 1px; 461 margin-left: 1px; 462 white-space: nowrap; 463 } 464 465 .console-cell-text { 466 white-space: nowrap; 467 } 468 469 /* Builds */ 470 471 .console-build-column, .console-build-column-stacked { 472 display: flex; 473 flex-grow: 1; 474 flex-direction: column; 475 } 476 477 .expanded .console-cell-container-inner { 478 display: flex; 479 flex-wrap: wrap; 480 align-content: flex-start; 481 justify-content: flex-start; 482 } 483 484 .console-cell-container a { 485 text-decoration: none; 486 align-items: center; 487 justify-content: center; 488 } 489 490 .console-build-column div.console-cell-container:nth-child(even), 491 .console-build-column-stacked div.console-cell-container:nth-child(even) { 492 background-color: #cccccc; 493 } 494 495 .console-build-column div.console-cell-container:nth-child(odd), 496 .console-build-column-stacked div.console-cell-container:nth-child(odd){ 497 background-color: #eee; 498 } 499 500 .collapsed .console-cell-spacer { 501 display: none; 502 } 503 504 .collapsed .console-cell-text { 505 display: none; 506 } 507 508 /* Table Cells */ 509 510 .console-cell, .console-cell-top, .console-cell-middle, .console-cell-bottom { 511 display: flex; 512 min-width: 1em; 513 height: 20px; 514 border-radius: 0.5em; 515 border-width: 1px; 516 border-style: solid; 517 } 518 519 .collapsed .console-cell, .collapsed .console-cell-top, .collapsed .console-cell-middle, .collapsed .console-cell-bottom { 520 margin-right: 1px; 521 margin-left: 1px; 522 } 523 524 .collapsed .console-cell-top, .collapsed .console-cell-middle { 525 padding-bottom: 3px; 526 } 527 528 .collapsed .console-cell-top { 529 margin-top: 1px; 530 } 531 532 .collapsed .console-cell-top { 533 display: flex; 534 min-width: 1em; 535 min-height: 2em; 536 border-bottom-left-radius: unset; 537 border-bottom-right-radius: unset; 538 border-top-left-radius: 0.5em; 539 border-top-right-radius: 0.5em; 540 border-width: 1px; 541 border-style: solid; 542 border-bottom: none; 543 } 544 545 .collapsed .console-cell-middle { 546 display: flex; 547 min-width: 1em; 548 min-height: 2em; 549 border-width: 1px; 550 border-style: solid; 551 border-top: none; 552 border-bottom: none; 553 border-radius: unset; 554 padding-top: 1px; 555 } 556 557 .collapsed .console-cell, .collapsed .console-empty-cell { 558 margin-top: 1px; 559 margin-bottom: 1px; 560 } 561 562 .collapsed .console-cell-bottom { 563 padding-top: 1px; 564 margin-bottom: 1px; 565 } 566 567 .collapsed .console-cell-bottom { 568 display: flex; 569 min-width: 1em; 570 min-height: 2em; 571 border-bottom-left-radius: 0.5em; 572 border-bottom-right-radius: 0.5em; 573 border-top-left-radius: unset; 574 border-top-right-radius: unset; 575 border-width: 1px; 576 border-style: solid; 577 border-top: none; 578 padding-top: 1px; 579 } 580 581 .expanded .console-cell, 582 .expanded .console-empty-cell, 583 .expanded .console-cell-middle, 584 .expanded .console-cell-top, 585 .expanded .console-cell-bottom { 586 flex-grow: 1; 587 padding-left: 4px; 588 padding-right: 4px; 589 } 590 591 .console-empty-cell { 592 display: flex; 593 border: 1px solid rgba(0, 0, 0, 0.25); 594 border-radius: 0.5em; 595 height: 20px; 596 min-width: 1em; 597 } 598 599 .collapsed .console-empty-cell { 600 border: 1px solid transparent; 601 min-width: 1em; 602 } 603 604 .console-empty-cell:hover { 605 cursor: default; 606 } 607 608 /* Console List */ 609 610 .console-list-builder { 611 display: flex; 612 flex-grow: 1; 613 min-height: 2em; 614 max-height: 2em; 615 min-width: 0.5em; 616 border-width: 1px; 617 border-style: solid; 618 border-radius: 0.25em; 619 }