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 919a50daa459 [SPARK-55782][UI] Replace CSS float right with Bootstrap
5 float-end utility
919a50daa459 is described below
commit 919a50daa45919556be348e9ffded16d3194c0d0
Author: Kent Yao <[email protected]>
AuthorDate: Thu Mar 5 00:22:51 2026 +0800
[SPARK-55782][UI] Replace CSS float right with Bootstrap 5 float-end utility
### What changes were proposed in this pull request?
Replaces 2 `float: right` CSS declarations in `webui.css` with Bootstrap 5
`float-end` utility class on the corresponding HTML elements.
**CSS changes:**
- `a.link`: removed `float: right`
- `span.expand-details`: removed `float: right`
**Scala changes (4 files, 6 elements):**
- `MasterPage.scala`: 2 link anchors added `float-end`
- `AllJobsPage.scala`: 1 link anchor added `float-end`
- `StageTable.scala`: 1 link anchor + 1 expand-details span added
`float-end`
- `UIUtils.scala`: 1 expand-details span added `float-end`
### Why are the changes needed?
Aligns with Bootstrap 5 conventions — using utility classes instead of
custom CSS for layout. Part of SPARK-55760 (Spark Web UI Modernization).
### Does this PR introduce _any_ user-facing change?
No. Visual appearance is identical.
### How was this patch tested?
Compilation verified. `float-end` produces the same `float: right
!important` behavior as the removed CSS rules.
### Was this patch authored or co-authored using generative AI tooling?
Yes, co-authored with GitHub Copilot.
Closes #54615 from yaooqinn/SPARK-55782.
Authored-by: Kent Yao <[email protected]>
Signed-off-by: Kent Yao <[email protected]>
---
core/src/main/resources/org/apache/spark/ui/static/webui.css | 2 --
.../src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala | 4 ++--
core/src/main/scala/org/apache/spark/ui/UIUtils.scala | 2 +-
core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala | 2 +-
core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala | 4 ++--
5 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/core/src/main/resources/org/apache/spark/ui/static/webui.css
b/core/src/main/resources/org/apache/spark/ui/static/webui.css
index 86623e1dfbe4..aa71f93a9e9d 100755
--- a/core/src/main/resources/org/apache/spark/ui/static/webui.css
+++ b/core/src/main/resources/org/apache/spark/ui/static/webui.css
@@ -120,7 +120,6 @@ a.kill-link {
margin-right: 2px;
margin-left: 20px;
color: gray;
- float: right;
}
a.name-link {
@@ -131,7 +130,6 @@ span.expand-details {
font-size: 10pt;
cursor: pointer;
color: grey;
- float: right;
}
span.rest-uri {
diff --git
a/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala
b/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala
index d751775bc33f..35da728ab4a4 100644
--- a/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala
+++ b/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala
@@ -319,7 +319,7 @@ private[ui] class MasterPage(parent: MasterWebUI) extends
WebUIPage("") {
<input type="hidden" name="terminate" value="true"/>
<a href="#"
data-kill-message={s"Are you sure you want to kill application
${app.id} ?"}
- class="kill-link">(kill)</a>
+ class="kill-link float-end">(kill)</a>
</form>
}
<tr>
@@ -368,7 +368,7 @@ private[ui] class MasterPage(parent: MasterWebUI) extends
WebUIPage("") {
<input type="hidden" name="terminate" value="true"/>
<a href="#"
data-kill-message={s"Are you sure you want to kill driver
${driver.id} ?"}
- class="kill-link">(kill)</a>
+ class="kill-link float-end">(kill)</a>
</form>
}
<tr>
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 3fedea6d6378..c70fc4a9664a 100644
--- a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
+++ b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
@@ -722,7 +722,7 @@ private[spark] object UIUtils extends Logging {
if (isMultiline) {
// scalastyle:off
<span data-toggle-details=".stacktrace-details"
- class="expand-details">
+ class="expand-details float-end">
+details
</span> ++
<div class="stacktrace-details collapsed">
diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala
b/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala
index 019bebcadeaa..53f81b01a1a4 100644
--- a/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala
+++ b/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala
@@ -581,7 +581,7 @@ private[ui] class JobPagedTable(
val killLinkUri = s"$basePath/jobs/job/kill/?id=${job.jobId}"
<a href={killLinkUri}
data-kill-message={s"Are you sure you want to kill job ${job.jobId}
?"}
- class="kill-link">(kill)</a>
+ class="kill-link float-end">(kill)</a>
} else {
Seq.empty
}
diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala
b/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala
index d7bbb1481774..217bfff3b64a 100644
--- a/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala
+++ b/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala
@@ -225,7 +225,7 @@ private[ui] class StagePagedTable(
val killLinkUri = s"$basePathUri/stages/stage/kill/?id=${s.stageId}"
<a href={killLinkUri}
data-kill-message={s"Are you sure you want to kill stage ${s.stageId}
?"}
- class="kill-link">(kill)</a>
+ class="kill-link float-end">(kill)</a>
} else {
Seq.empty
}
@@ -236,7 +236,7 @@ private[ui] class StagePagedTable(
val cachedRddInfos = store.rddList().filter { rdd =>
s.rddIds.contains(rdd.id) }
val details = if (s.details != null && s.details.nonEmpty) {
<span data-toggle-details=".stage-details"
- class="expand-details">
+ class="expand-details float-end">
+details
</span> ++
<div class="stage-details collapsed">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]