github.com/drone/runner-go@v1.12.0/handler/static/files/style.css (about) 1 :root { 2 --font-sans: -apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif; 3 --font-mono: Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace; 4 } 5 6 html, body { 7 background: #f7f8fa; 8 color: #1e375a; 9 width: 100%; 10 height: 100%; 11 font-family: var(--font-sans); 12 font-size: 15px; 13 } 14 15 main { 16 box-sizing: border-box; 17 max-width: 800px; 18 margin: 0px auto; 19 margin-bottom: 30px; 20 } 21 22 main section > header h1 { 23 height: 41px; 24 font-size: 30px; 25 font-weight: 400; 26 font-style: normal; 27 font-stretch: normal; 28 line-height: normal; 29 letter-spacing: normal; 30 color: #1e375a; 31 margin: 30px 0; 32 } 33 34 body > header { 35 height: 56px; 36 box-shadow: 0 2px 4px 0 rgba(30,55,90,.05); 37 box-sizing: border-box; 38 background-color: rgba(30,55,90,.97); 39 padding: 0 15px; 40 display: flex; 41 align-items: center; 42 } 43 44 header .logo { 45 width: 30px; 46 height: 30px; 47 } 48 49 .navbar .inline-nav { 50 display: flex; 51 flex: 1 1 auto; 52 justify-content: flex-end; 53 } 54 55 .navbar .inline-nav li { 56 display: inline-block; 57 margin-left: 15px; 58 } 59 60 .navbar .inline-nav a, 61 .navbar .inline-nav a:active, 62 .navbar .inline-nav a:visited { 63 color: #FFF; 64 opacity: 0.75; 65 text-decoration: none; 66 } 67 68 .navbar .inline-nav a.active, 69 .navbar .inline-nav a:hover { 70 opacity: 1; 71 } 72 73 .card { 74 box-shadow: 0 2px 4px 0 rgba(30,55,90,.1); 75 box-sizing: border-box; 76 border: 1px solid rgba(30,55,90,.05); 77 border-radius: 4px; 78 background-color: #fff; 79 margin-bottom: 10px; 80 } 81 82 a.card { 83 text-decoration: none; 84 } 85 86 /* 87 * stage card component 88 */ 89 90 .stage { 91 padding: 15px; 92 display: grid; 93 grid-gap: 10px 0px; 94 grid-template-columns: 30px 30px auto 150px; 95 } 96 97 .stage img { 98 border-radius: 50%; 99 width: 20px; 100 height: 20px; 101 grid-row: 2; 102 grid-column: 2; 103 } 104 105 .stage h2 { 106 color: #1e375a; 107 font-size: 18px; 108 grid-row: 1; 109 grid-column: 2 / span 3; 110 overflow: hidden; 111 white-space: nowrap; 112 text-overflow: ellipsis; 113 } 114 115 .stage .desc { 116 color: rgba(30,55,90,.6); 117 font-size: 14px; 118 grid-row: 2; 119 grid-column: 3; 120 align-items: center; 121 display: flex; 122 } 123 124 .stage time, 125 .stage .time { 126 color: rgba(30,55,90,.6); 127 font-size: 14px; 128 grid-row: 2; 129 grid-column: 4; 130 text-align: right; 131 display: flex; 132 align-items: center; 133 justify-content: flex-end; 134 } 135 136 .stage em { 137 background-color: rgba(35,100,210,.07); 138 border-radius: 2px; 139 color: #2364d2; 140 padding: 0 4px; 141 margin: 0 4px; 142 line-height: 17px; 143 } 144 145 .stage .connector { 146 width: 15px; 147 height: 15px; 148 opacity: .2; 149 border-bottom-left-radius: 8px; 150 border-left: 1px solid #1e375a; 151 border-bottom: 1px solid #1e375a; 152 display: block; 153 grid-row: 2; 154 grid-column: 1; 155 margin-top: -4px; 156 margin-left: 9px; 157 } 158 159 /* 160 * step components 161 */ 162 163 .steps header { 164 border-bottom: 1px solid rgba(30,55,90,.1); 165 display: grid; 166 grid-gap: 10px 0px; 167 grid-template-columns: 30px auto; 168 padding: 10px 15px; 169 } 170 171 .steps header .name { 172 align-items: center; 173 display: flex; 174 } 175 176 .steps .step { 177 display: grid; 178 grid-gap: 10px 0px; 179 grid-template-columns: 30px auto 100px; 180 padding: 10px 15px; 181 } 182 183 .steps .step:hover { 184 background: #f8f8fa; 185 } 186 187 .steps .step .name { 188 align-items: center; 189 display: flex; 190 } 191 192 .steps .body { 193 padding: 10px 0px; 194 } 195 196 .steps .step { 197 position: relative; 198 } 199 200 .steps .step:before, 201 .steps .step:after { 202 border-left: 1px solid #1e375a; 203 content: " "; 204 height: 10px; 205 left: 25px; 206 opacity: 0.15; 207 position: absolute; 208 width: 1px; 209 } 210 211 .steps .step:after { 212 bottom: 0px; 213 } 214 215 .steps .step:before { 216 top: 0px; 217 } 218 219 .steps .step:last-of-type:after, 220 .steps .step:first-of-type:before { 221 display: none; 222 } 223 224 .steps .status-name { 225 align-items: center; 226 color: rgba(30,55,90,.6); 227 display: flex; 228 font-size: 14px; 229 font-style: italic; 230 justify-content: flex-end; 231 text-transform: capitalize; 232 } 233 234 /** 235 * breadcrumb component 236 */ 237 238 .breadcrumb { 239 margin-top: 35px; 240 } 241 242 .breadcrumb ul { 243 display: flex; 244 } 245 246 .breadcrumb ul li { 247 display: flex; 248 align-items: center; 249 } 250 251 .breadcrumb ul li.separator { 252 margin: 0px 15px; 253 width: 19px; 254 height: 19px; 255 display: inline-block; 256 background: url(/static/icons/arrow-right.svg) no-repeat center center; 257 transform: rotate(270deg); 258 } 259 260 .breadcrumb a, 261 .breadcrumb a:active, 262 .breadcrumb a:visited { 263 text-decoration: none; 264 color: #2364d2; 265 display: block; 266 line-height: 19px; 267 } 268 269 .breadcrumb a:hover { 270 text-decoration: underline; 271 } 272 273 /** 274 * alert components 275 */ 276 277 .alert.sleeping { 278 box-shadow: 0 2px 4px 0 rgba(30,55,90,.1); 279 box-sizing: border-box; 280 border: 1px solid rgba(30,55,90,.05); 281 border-radius: 4px; 282 margin-bottom: 10px; 283 padding: 30px; 284 padding-top: 130px; 285 text-align: center; 286 background-color: #FFFFFF; 287 background-image: url(icons/sleeping.svg); 288 background-size: 80px; 289 background-position-x: center; 290 background-position-y: 30px; 291 background-repeat: no-repeat; 292 } 293 294 /** 295 * status component. 296 */ 297 298 .status { 299 background-color: #ff4164; 300 border-radius: 50%; 301 display: block; 302 width: 20px; 303 height: 20px; 304 background-image: url('icons/failure.svg'); 305 } 306 307 .status.skipped { 308 background-color: #96a5be; 309 background-image: url('icons/skipped.svg'); 310 } 311 312 .status.pending { 313 background-color: #96a5be; 314 background-image: url('icons/pending.svg'); 315 animation: wrench 2s ease infinite; 316 } 317 318 .status.running { 319 background-image: url('icons/running.svg'); 320 background-color: transparent; 321 animation: spin 2s linear infinite; 322 } 323 324 .status.success, 325 .status.passing { 326 background-color: #19d78c; 327 background-image: url('icons/success.svg'); 328 } 329 330 /* 331 * log entry components 332 */ 333 334 .logs { 335 box-shadow: 0 2px 4px 0 rgba(30,55,90,.1); 336 box-sizing: border-box; 337 border: 1px solid rgba(30,55,90,.05); 338 border-radius: 4px; 339 background-color: #fff; 340 margin-bottom: 10px; 341 } 342 343 .entry { 344 padding: 15px; 345 display: grid; 346 grid-gap: 5px 10px; 347 grid-template-columns: 70px auto 150px; 348 border-bottom: 1px solid rgba(30,55,90,.05); 349 } 350 351 .entry:last-of-type { 352 border-bottom: none; 353 } 354 355 .entry .level { 356 grid-row: 1; 357 grid-column: 1; 358 max-height: 18px; 359 } 360 361 .entry .message { 362 align-items: center; 363 background: #eaedf2; 364 border-radius: 3px; 365 display: flex; 366 line-height: 18px; 367 padding: 0px 5px; 368 font-family: var(--font-mono); 369 font-size: 13px; 370 grid-row: 1; 371 grid-column: 2; 372 } 373 374 .entry .fields { 375 font-family: var(--font-mono); 376 font-size: 13px; 377 grid-row: 2; 378 grid-column: 2; 379 display: inline-grid; 380 grid-row-gap: 5px; 381 } 382 383 .entry .time, 384 .entry time { 385 color: rgba(30,55,90,.6); 386 font-size: 14px; 387 grid-row: 1; 388 grid-column: 3; 389 text-align: right; 390 display: flex; 391 align-items: center; 392 justify-content: flex-end; 393 } 394 395 .level { 396 border-radius: 3px; 397 display: block; 398 font-size: 11px; 399 font-family: var(--font-mono); 400 line-height: 18px; 401 min-width: 50px; 402 text-align: center; 403 text-transform: uppercase; 404 } 405 406 .level.panic, 407 .level.error { 408 background: #ff4164; 409 color: #FFF; 410 } 411 412 .level.warn { 413 background: #ffbe00; 414 color: #FFF; 415 } 416 417 .level.info { 418 background: #2364d2; 419 color: #fff; 420 } 421 422 .level.debug { 423 background: #96a5be; 424 color: #fff; 425 } 426 427 .level.trace { 428 background: #96a5be; 429 color: #fff; 430 } 431 432 .fields span { 433 background: #eaedf2; 434 border-radius: 3px; 435 padding: 3px 5px; 436 font-size: 11px; 437 color: #8d96a8; 438 } 439 440 .fields span em:after { 441 content: "="; 442 opacity: 0.5; 443 margin: 0px 3px; 444 } 445 446 /* 447 * animations 448 */ 449 450 @keyframes spin { 451 0% { transform: rotate(0deg); } 452 100% { transform: rotate(359deg); } 453 } 454 455 @keyframes wrench { 456 0% { transform: rotate(-12deg); } 457 8% { transform: rotate(12deg); } 458 10% { transform: rotate(24deg); } 459 18% { transform: rotate(-24deg); } 460 20% { transform: rotate(-24deg); } 461 28% { transform: rotate(24deg); } 462 30% { transform: rotate(24deg); } 463 38% { transform: rotate(-24deg); } 464 40% { transform: rotate(-24deg); } 465 48% { transform: rotate(24deg); } 466 50% { transform: rotate(24deg); } 467 58% { transform: rotate(-24deg); } 468 60% { transform: rotate(-24deg); } 469 68% { transform: rotate(24deg); } 470 75%, 100% { transform: rotate(0deg); } 471 }