Add burst job scheduling, enhance timeline lane management, and improve tooltip functionality

This commit is contained in:
2026-05-25 20:01:24 +12:00
parent 3be35f6b0a
commit 469ac9bc5a
8 changed files with 105 additions and 10 deletions
+43 -3
View File
@@ -364,7 +364,7 @@ footer {
min-height: 32px;
height: calc(var(--lane-count) * var(--lane-height) + 6px);
padding: 3px 0;
overflow: hidden;
overflow: visible;
}
.gridline {
position: absolute;
@@ -399,7 +399,6 @@ footer {
padding: 0 6px;
display: flex;
align-items: center;
overflow: hidden;
color: #0f172a;
font-size: 11px;
font-weight: 600;
@@ -412,6 +411,8 @@ footer {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex: 1;
min-width: 0;
}
.job-bar-completed { background: rgba(74, 222, 128, 0.85); }
.job-bar-running { background: rgba(250, 204, 21, 0.85); }
@@ -491,6 +492,12 @@ footer {
text-overflow: ellipsis;
}
.metric-table-scroll {
/* Let the table scroll horizontally inside a narrow card instead of
spilling out. The card itself stays put. */
overflow-x: auto;
margin: 0 -4px;
}
.metric-table {
width: 100%;
border-collapse: collapse;
@@ -500,6 +507,7 @@ footer {
padding: 6px 6px;
text-align: right;
color: #cbd5e1;
white-space: nowrap;
}
.metric-table thead th {
color: #94a3b8;
@@ -613,7 +621,7 @@ a.job-bar:hover { filter: brightness(1.1); box-shadow: 0 0 0 1px rgba(255,255,25
border-radius: 6px;
height: 56px;
margin-bottom: 6px;
overflow: hidden;
overflow: visible;
}
.history-dot {
position: absolute;
@@ -664,3 +672,35 @@ a.job-bar:hover { filter: brightness(1.1); box-shadow: 0 0 0 1px rgba(255,255,25
}
.nested-item { display: block; font-size: 13px; }
.nested-key { color: #94a3b8; margin-right: 6px; }
/* ── Instant CSS tooltip (replaces native title= delay) ── */
/* Note: do NOT add `position: relative` here — it would override the
`position: absolute` on .job-bar / .history-dot. The pseudo-element below
positions relative to whichever ancestor is already positioned. */
[data-tip]::after {
content: attr(data-tip);
position: absolute;
bottom: calc(100% + 6px);
left: 50%;
transform: translateX(-50%);
background: #0f1117;
color: #e2e8f0;
border: 1px solid #2d2d3a;
border-radius: 6px;
padding: 6px 9px;
font-size: 12px;
font-weight: 500;
white-space: nowrap;
pointer-events: none;
opacity: 0;
visibility: hidden;
z-index: 50;
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);
letter-spacing: 0.01em;
}
[data-tip]:hover::after,
[data-tip]:focus-visible::after {
opacity: 1;
visibility: visible;
transition-delay: 0s;
}