This is an automated email from the ASF dual-hosted git repository.
yao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push:
new 88d5c8b738e5 [SPARK-55780][UI] Replace PNG logo with SVG in Spark Web
UI
88d5c8b738e5 is described below
commit 88d5c8b738e5e513acbfafe008f86cfd03279439
Author: Kent Yao <[email protected]>
AuthorDate: Mon Mar 2 22:34:13 2026 +0800
[SPARK-55780][UI] Replace PNG logo with SVG in Spark Web UI
### What changes were proposed in this pull request?
Replace the rasterized `spark-logo-77x50px-hd.png` (77×50px) with an SVG
version in the Spark Web UI navbar and favicon.
The SVG is derived from the official [Apache Spark website
logo](https://github.com/apache/spark-website/blob/asf-site/images/spark-logo-rev.svg),
with the text fill changed from white (`#FFF`) to the original dark color
(`#3C3C3B`) to match the light navbar background.
### Why are the changes needed?
- **Resolution independence**: SVG renders crisply on HiDPI/Retina displays
without pixelation
- **Scalability**: No artifacts when the browser zooms or the layout resizes
- **Consistency**: Uses the same vector source as the official Apache Spark
website
### Does this PR introduce _any_ user-facing change?
The logo looks the same but renders more crisply on high-DPI screens.
### How was this patch tested?
- `UIUtilsSuite` (8 tests) passes
- Manual verification: logo renders correctly in navbar and browser favicon
- before
<img width="858" height="536" alt="image"
src="https://github.com/user-attachments/assets/2805aa6d-2202-44b4-8303-b09c9e0a2675"
/>
- after
<img width="1238" height="484" alt="image"
src="https://github.com/user-attachments/assets/36cd40ff-214b-4e23-94d2-a5bebcdfcc42"
/>
### Was this patch authored or co-authored using generative AI tooling?
Yes, GitHub Copilot was used.
Closes #54562 from yaooqinn/SPARK-55780.
Authored-by: Kent Yao <[email protected]>
Signed-off-by: Kent Yao <[email protected]>
---
.../org/apache/spark/ui/static/spark-logo-77x50px-hd.png | Bin 3077 -> 0 bytes
.../resources/org/apache/spark/ui/static/spark-logo.svg | 7 +++++++
core/src/main/scala/org/apache/spark/ui/UIUtils.scala | 10 ++++++----
dev/.rat-excludes | 1 +
4 files changed, 14 insertions(+), 4 deletions(-)
diff --git
a/core/src/main/resources/org/apache/spark/ui/static/spark-logo-77x50px-hd.png
b/core/src/main/resources/org/apache/spark/ui/static/spark-logo-77x50px-hd.png
deleted file mode 100644
index cee28916e8db..000000000000
Binary files
a/core/src/main/resources/org/apache/spark/ui/static/spark-logo-77x50px-hd.png
and /dev/null differ
diff --git a/core/src/main/resources/org/apache/spark/ui/static/spark-logo.svg
b/core/src/main/resources/org/apache/spark/ui/static/spark-logo.svg
new file mode 100644
index 000000000000..04ae7bf2dbff
--- /dev/null
+++ b/core/src/main/resources/org/apache/spark/ui/static/spark-logo.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="68" height="36" viewBox="0 0 68
36">
+ <g fill="none" fill-rule="evenodd">
+ <path fill="#E25A1C" d="M62.061 17.243c-.058.123-.085.186-.117.245-.85
1.594-1.698 3.19-2.555 4.78-.087.159-.076.254.042.39 1.352 1.558 2.697 3.122
4.044
4.685.047.054.09.113.108.21-.394-.101-.788-.201-1.181-.304-1.634-.427-3.268-.853-4.9-1.285-.152-.04-.221.003-.297.128-.927
1.528-1.86 3.053-2.792
4.578-.048.08-.1.157-.202.223-.075-.407-.152-.814-.225-1.221l-.777-4.314c-.028-.156-.067-.31-.08-.467-.014-.148-.09-.203-.227-.245-1.925-.596-3.848-1.198-5.772-1.8-.084-.026-.167-.06-.
[...]
+ <path fill="#3C3C3B" d="M59.483
3.841c-1.193.002-2.386.008-3.58.003-.157 0-.246.045-.334.177-1.412 2.122-2.83
4.239-4.248
6.357-.045.068-.093.133-.174.246l-.902-6.767h-3.124c.037.3.069.59.107.88.305
2.296.611 4.594.918 6.89.292 2.195.583 4.39.88 6.585.009.065.053.148.107.183
1.075.69 2.154 1.376 3.232 2.062.016.01.038.011.094.027l-.974-7.324.038-.026
5.113
5.59.136-.772c.121-.698.237-1.396.367-2.092.026-.14-.011-.228-.106-.325-1.094-1.13-2.185-2.263-3.276-3.396l-.147-.159c.035-.0
[...]
+ <path fill="#3C3C3B" fill-rule="nonzero" d="M62.9
3.859v1.207h-.006l-.48-1.207h-.154l-.48
1.207h-.007V3.86h-.242v1.446h.373l.438-1.099.43 1.099h.37V3.859h-.241zm-2.127
1.253V3.859h-.242v1.253h-.46v.193h1.16v-.193h-.458M16.682 20.339h.72l-.17
1.073-.55-1.073zm.832-.694h-1.196l-.38-.734h-.847l1.868
3.443h.817l.636-3.443h-.785l-.113.734M21.793 21.66h-.426l-.143-.794h.425c.257 0
.463.166.463.48 0 .208-.13.314-.319.314zm-1.032.694h1.12c.585 0
.995-.345.995-.937 0-.744-.534-1.245-1.293 [...]
+ </g>
+</svg>
diff --git a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
index 6d00996d9e73..4cb206d80755 100644
--- a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
+++ b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
@@ -287,7 +287,7 @@ private[spark] object UIUtils extends Logging {
{if (showVisualization) vizHeaderNodes(request) else Seq.empty}
{if (useDataTables) dataTablesHeaderNodes(request) else Seq.empty}
<link rel="shortcut icon"
- href={prependBaseUri(request,
"/static/spark-logo-77x50px-hd.png")}></link>
+ href={prependBaseUri(request, "/static/spark-logo.svg")}></link>
<title>{appName} - {title}</title>
</head>
<body>
@@ -295,7 +295,8 @@ private[spark] object UIUtils extends Logging {
<div class="navbar-header">
<div class="navbar-brand">
<a href={prependBaseUri(request, "/")}>
- <img src={prependBaseUri(request,
"/static/spark-logo-77x50px-hd.png")} />
+ <img src={prependBaseUri(request, "/static/spark-logo.svg")}
+ alt="Spark Logo" height="36" />
<span class="version">{activeTab.appSparkVersion}</span>
</a>
</div>
@@ -344,7 +345,7 @@ private[spark] object UIUtils extends Logging {
{commonHeaderNodes(request)}
{if (useDataTables) dataTablesHeaderNodes(request) else Seq.empty}
<link rel="shortcut icon"
- href={prependBaseUri(request,
"/static/spark-logo-77x50px-hd.png")}></link>
+ href={prependBaseUri(request, "/static/spark-logo.svg")}></link>
<title>{title}</title>
</head>
<body>
@@ -353,7 +354,8 @@ private[spark] object UIUtils extends Logging {
<div class="col-12">
<h3 style="vertical-align: middle; display: inline-block;">
<a style="text-decoration: none" href={prependBaseUri(request,
"/")}>
- <img src={prependBaseUri(request,
"/static/spark-logo-77x50px-hd.png")} />
+ <img src={prependBaseUri(request, "/static/spark-logo.svg")}
+ alt="Spark Logo" height="36" />
<span class="version"
style="margin-right:
15px;">{org.apache.spark.SPARK_VERSION}</span>
</a>
diff --git a/dev/.rat-excludes b/dev/.rat-excludes
index 5867bae4bea1..88a9e5d91558 100644
--- a/dev/.rat-excludes
+++ b/dev/.rat-excludes
@@ -142,4 +142,5 @@ ui-test/package-lock.json
core/src/main/resources/org/apache/spark/ui/static/package.json
testCommitLog
.*\.har
+spark-logo.svg
.nojekyll
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]