From 2eca80ffab5a5fd616a71757a4bf84908bce3a8d Mon Sep 17 00:00:00 2001 From: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Date: Thu, 11 Dec 2025 21:28:42 +0000 Subject: [PATCH] gh-138122: Make Tachyon flamegraph and heatmap output more similar (#142590) --- .../_flamegraph_assets/flamegraph.css | 34 ++++++++++++------- .../sampling/_flamegraph_assets/flamegraph.js | 32 +++++++++++++++++ .../flamegraph_template.html | 11 ++++-- .../sampling/_heatmap_assets/heatmap.css | 18 ---------- .../heatmap_pyfile_template.html | 2 +- .../sampling/_shared_assets/base.css | 4 ++- 6 files changed, 67 insertions(+), 34 deletions(-) diff --git a/Lib/profiling/sampling/_flamegraph_assets/flamegraph.css b/Lib/profiling/sampling/_flamegraph_assets/flamegraph.css index ee699f298261..c3b1d955f7f5 100644 --- a/Lib/profiling/sampling/_flamegraph_assets/flamegraph.css +++ b/Lib/profiling/sampling/_flamegraph_assets/flamegraph.css @@ -329,34 +329,44 @@ body.resizing-sidebar { gap: 8px; padding: 8px 10px; background: var(--bg-primary); - border: 1px solid var(--border); + border: 2px solid var(--border); border-radius: 8px; transition: all var(--transition-fast); animation: slideUp 0.4s ease-out backwards; - animation-delay: calc(var(--i, 0) * 0.05s); + animation-delay: calc(var(--i, 0) * 0.08s); overflow: hidden; + position: relative; } -.summary-card:nth-child(1) { --i: 0; } -.summary-card:nth-child(2) { --i: 1; } -.summary-card:nth-child(3) { --i: 2; } -.summary-card:nth-child(4) { --i: 3; } +.summary-card:nth-child(1) { --i: 0; --card-color: 55, 118, 171; } +.summary-card:nth-child(2) { --i: 1; --card-color: 40, 167, 69; } +.summary-card:nth-child(3) { --i: 2; --card-color: 255, 193, 7; } +.summary-card:nth-child(4) { --i: 3; --card-color: 111, 66, 193; } .summary-card:hover { - border-color: var(--accent); - background: var(--accent-glow); + border-color: rgba(var(--card-color), 0.6); + background: linear-gradient(135deg, rgba(var(--card-color), 0.08) 0%, var(--bg-primary) 100%); + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(var(--card-color), 0.15); } .summary-icon { - font-size: 16px; + font-size: 14px; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; - background: var(--bg-tertiary); + background: linear-gradient(135deg, rgba(var(--card-color), 0.15) 0%, rgba(var(--card-color), 0.05) 100%); + border: 1px solid rgba(var(--card-color), 0.2); border-radius: 6px; flex-shrink: 0; + transition: all var(--transition-fast); +} + +.summary-card:hover .summary-icon { + transform: scale(1.05); + background: linear-gradient(135deg, rgba(var(--card-color), 0.25) 0%, rgba(var(--card-color), 0.1) 100%); } .summary-data { @@ -368,8 +378,8 @@ body.resizing-sidebar { .summary-value { font-family: var(--font-mono); font-size: 13px; - font-weight: 700; - color: var(--accent); + font-weight: 800; + color: rgb(var(--card-color)); line-height: 1.2; white-space: nowrap; overflow: hidden; diff --git a/Lib/profiling/sampling/_flamegraph_assets/flamegraph.js b/Lib/profiling/sampling/_flamegraph_assets/flamegraph.js index 0370c18a2504..dc7bfed602f3 100644 --- a/Lib/profiling/sampling/_flamegraph_assets/flamegraph.js +++ b/Lib/profiling/sampling/_flamegraph_assets/flamegraph.js @@ -187,6 +187,27 @@ function restoreUIState() { } } +// ============================================================================ +// Logo/Favicon Setup +// ============================================================================ + +function setupLogos() { + const logo = document.querySelector('.sidebar-logo-img img'); + if (!logo) return; + + const navbarLogoContainer = document.getElementById('navbar-logo'); + if (navbarLogoContainer) { + const navbarLogo = logo.cloneNode(true); + navbarLogoContainer.appendChild(navbarLogo); + } + + const favicon = document.createElement('link'); + favicon.rel = 'icon'; + favicon.type = 'image/png'; + favicon.href = logo.src; + document.head.appendChild(favicon); +} + // ============================================================================ // Status Bar // ============================================================================ @@ -198,6 +219,11 @@ function updateStatusBar(nodeData, rootValue) { const timeMs = (nodeData.value / 1000).toFixed(2); const percent = rootValue > 0 ? ((nodeData.value / rootValue) * 100).toFixed(1) : "0.0"; + const brandEl = document.getElementById('status-brand'); + const taglineEl = document.getElementById('status-tagline'); + if (brandEl) brandEl.style.display = 'none'; + if (taglineEl) taglineEl.style.display = 'none'; + const locationEl = document.getElementById('status-location'); const funcItem = document.getElementById('status-func-item'); const timeItem = document.getElementById('status-time-item'); @@ -230,6 +256,11 @@ function clearStatusBar() { const el = document.getElementById(id); if (el) el.style.display = 'none'; }); + + const brandEl = document.getElementById('status-brand'); + const taglineEl = document.getElementById('status-tagline'); + if (brandEl) brandEl.style.display = 'flex'; + if (taglineEl) taglineEl.style.display = 'flex'; } // ============================================================================ @@ -1065,6 +1096,7 @@ function exportSVG() { function initFlamegraph() { ensureLibraryLoaded(); restoreUIState(); + setupLogos(); let processedData = EMBEDDED_DATA; if (EMBEDDED_DATA.strings) { diff --git a/Lib/profiling/sampling/_flamegraph_assets/flamegraph_template.html b/Lib/profiling/sampling/_flamegraph_assets/flamegraph_template.html index 29e5fdd3f350..05277fb225c8 100644 --- a/Lib/profiling/sampling/_flamegraph_assets/flamegraph_template.html +++ b/Lib/profiling/sampling/_flamegraph_assets/flamegraph_template.html @@ -3,7 +3,7 @@
-