fix: refine earth hud structure and bun startup flow

- refactor the /earth HUD into class-first CSS layers with dedicated base, hud, and toolbar responsibilities
- clean up Earth markup and runtime DOM hooks so shared panel, toolbar, tooltip, and status classes stay consistent after dynamic updates
- keep HUD scaling configurable through extracted constants and remove leftover legacy panel/toolbar styling paths
- make planet.sh self-bootstrap Bun and uv by prepending local runtime bins to PATH and auto-installing missing tools in fresh environments
- document Bun as the frontend package manager of record and sync repository version metadata to 0.24.1
This commit is contained in:
rayd1o
2026-04-09 02:12:22 +08:00
parent 34d94a6b6b
commit c4ea918fac
24 changed files with 1248 additions and 1192 deletions

View File

@@ -1,59 +1,74 @@
/* legend */
#legend {
bottom: 20px;
left: 20px;
border-radius: 18px;
padding: 15px;
width: 220px;
.hud-panel-legend {
bottom: var(--hud-offset);
left: var(--hud-offset);
border-radius: var(--hud-radius);
padding: var(--hud-panel-padding);
width: calc(220px * var(--hud-scale));
z-index: 10;
font-size: var(--hud-font-size);
}
#legend .legend-title {
color: #4db8ff;
margin-bottom: 10px;
font-size: 1.1rem;
.hud-panel-legend .legend-title {
margin-bottom: var(--hud-gap-md);
}
#legend .legend-list {
.hud-panel-legend .legend-list {
display: flex;
flex-direction: column;
gap: 8px;
max-height: 202px;
gap: var(--hud-gap-sm);
max-height: calc(202px * var(--hud-scale));
overflow-y: auto;
padding-right: 4px;
padding-right: calc(4px * var(--hud-scale));
scrollbar-width: thin;
scrollbar-color: rgba(160, 220, 255, 0.4) transparent;
}
#legend .legend-list::-webkit-scrollbar {
.hud-panel-legend .legend-list::-webkit-scrollbar {
width: 6px;
}
#legend .legend-list::-webkit-scrollbar-track {
.hud-panel-legend .legend-list::-webkit-scrollbar-track {
background: transparent;
}
#legend .legend-list::-webkit-scrollbar-thumb {
.hud-panel-legend .legend-list::-webkit-scrollbar-thumb {
background: linear-gradient(180deg, rgba(210, 237, 255, 0.28), rgba(110, 176, 255, 0.34));
border-radius: 999px;
}
#legend .legend-item {
.hud-panel-legend .legend-item {
display: flex;
align-items: center;
padding: 6px 8px;
border-radius: 10px;
padding: calc(6px * var(--hud-scale)) calc(8px * var(--hud-scale));
border-radius: calc(10px * var(--hud-scale));
background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(120, 180, 255, 0.02));
border: 1px solid rgba(225, 242, 255, 0.06);
}
#legend .legend-color {
width: 20px;
height: 20px;
border-radius: 6px;
margin-right: 10px;
.hud-panel-legend .legend-color {
width: calc(20px * var(--hud-scale));
height: calc(20px * var(--hud-scale));
border-radius: calc(6px * var(--hud-scale));
margin-right: var(--hud-gap-md);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.2),
0 0 12px rgba(77, 184, 255, 0.18);
}
.legend-color-americas {
background-color: #ff4444;
}
.legend-color-au-a {
background-color: #44ff44;
}
.legend-color-au-b {
background-color: #4444ff;
}
.legend-color-default {
background-color: #ffff44;
}