From 8181315a8c88d5b94f11e9d5da994b57bceb1aa3 Mon Sep 17 00:00:00 2001 From: vini Date: Sun, 19 Jul 2026 21:32:26 -0300 Subject: [PATCH] Lower horizon, shrink dancer, planet symbols Horizon drops from 41.5% to 34% of screen height (sky canvas, floor grid, fog, sun rest position, day gradient and grave all follow), the skeleton shrinks 44vh -> 38vh, and planet labels use the classical astronomical symbols with text presentation forced. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015HtPHsTnDcLVSCiF5FGHZj --- plugin/contents/ui/dancer.html | 54 ++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/plugin/contents/ui/dancer.html b/plugin/contents/ui/dancer.html index d9a232e..ffdf9f5 100644 --- a/plugin/contents/ui/dancer.html +++ b/plugin/contents/ui/dancer.html @@ -88,7 +88,7 @@ body.balada .nebula::after { opacity: 1; } /* Horizon glow line */ .horizon { position: absolute; - bottom: 41.5%; + bottom: 34%; left: 0; right: 0; height: 3px; background: linear-gradient( @@ -322,7 +322,7 @@ body.balada .music-ticker { .robot-wrap { position: absolute; left: 50%; - bottom: 28%; + bottom: 23%; transform: translateX(-50%); opacity: 0; transition: opacity 0.8s; @@ -343,7 +343,7 @@ body.balada .music-ticker { .skeleton-gif { display: block; - height: 44vh; + height: 38vh; width: auto; filter: drop-shadow(0 0 20px rgba(0,200,255,0.4)); } @@ -797,8 +797,8 @@ body.balada .music-ticker { height: 280px; border-radius: 50%; left: 50%; - /* --sun-bottom segue o sol real (modo dia); 41.5% = pousado no horizonte */ - bottom: var(--sun-bottom, 41.5%); + /* --sun-bottom segue o sol real (modo dia); 34% = pousado no horizonte */ + bottom: var(--sun-bottom, 34%); transform: translateX(-50%) translateY(50%); transition: bottom 2.8s cubic-bezier(0.16, 1, 0.3, 1), @@ -841,7 +841,7 @@ body.balada .music-ticker { ============================================================ */ .fog-layer { position: absolute; - bottom: 41.5%; + bottom: 34%; left: 0; right: 0; height: 38%; pointer-events: none; @@ -1144,10 +1144,10 @@ body.chuva #sunChuvaFace { opacity: 1; transition: opacity 5s ease; } #c86fe0 0%, #f18ade 26%, #ffaede 44%, - #ffcfe0 54%, - #ffe4c9 58.5%, - #86e29e 58.6%, - #4fbb6b 78%, + #ffcfe0 60%, + #ffe4c9 66%, + #86e29e 66.1%, + #4fbb6b 82%, #2e9550 100%); } body.dia:not(.balada):not(.chuva) #daySky { opacity: 1; } @@ -1233,12 +1233,12 @@ body.dia:not(.balada):not(.chuva) .horizon { /* De dia o esqueleto dorme: some o dançarino, fica a lápide no gramado. Perspectiva: monte e sombra são elipses bem achatadas no plano do chão, - e a pedra fica plantada entre o horizonte (41.5%) e a borda inferior. */ + e a pedra fica plantada entre o horizonte (34%) e a borda inferior. */ body.dia:not(.balada):not(.chuva) .robot-wrap { opacity: 0 !important; } .grave-wrap { position: absolute; left: 50%; - bottom: 22%; + bottom: 18%; transform: translateX(-50%); opacity: 0; transition: opacity 4s ease; @@ -1460,19 +1460,20 @@ let cameraRotationStartMs = Date.now(); let cameraRotationOriginAz = CAMERA_HOME_AZ; const FOV_AZ = 140; // largura da tela em graus de azimute const ALT_TOP = 75; // altitude no topo da tela -const HORIZON_F = 0.585; // fração da altura da tela até o horizonte +const HORIZON_F = 0.66; // fração da altura da tela até o horizonte const TWINKLE_MAG = 4.0; // até esta magnitude a estrela cintila; acima é estática const DEG = Math.PI / 180; window.__skyTimeOffset = 0; // debug: ms somados ao relógio p/ testar a rotação -/* Sem o Astronomy Engine o céu continua funcionando; só Lua/planetas somem */ +/* Sem o Astronomy Engine o céu continua funcionando; só Lua/planetas somem. + Rótulos usam os símbolos astronômicos clássicos no lugar dos nomes. */ const PLANET_SPECS = typeof Astronomy === 'undefined' ? [] : [ - [Astronomy.Body.Mercury, 'Mercúrio', [190, 188, 182]], - [Astronomy.Body.Venus, 'Vênus', [255, 241, 204]], - [Astronomy.Body.Mars, 'Marte', [238, 105, 70]], - [Astronomy.Body.Jupiter, 'Júpiter', [232, 202, 164]], - [Astronomy.Body.Saturn, 'Saturno', [224, 195, 128]], - [Astronomy.Body.Uranus, 'Urano', [151, 223, 226]], - [Astronomy.Body.Neptune, 'Netuno', [91, 126, 220]], + [Astronomy.Body.Mercury, '☿', [190, 188, 182]], + [Astronomy.Body.Venus, '♀', [255, 241, 204]], + [Astronomy.Body.Mars, '♂', [238, 105, 70]], + [Astronomy.Body.Jupiter, '♃', [232, 202, 164]], + [Astronomy.Body.Saturn, '♄', [224, 195, 128]], + [Astronomy.Body.Uranus, '♅', [151, 223, 226]], + [Astronomy.Body.Neptune, '♆', [91, 126, 220]], ]; const KM_PER_AU = 149597870.7; const MOON_RADIUS_KM = 1737.4; @@ -1925,7 +1926,7 @@ function buildMoonPhaseTexture(phase) { /* ── Modo dia: a altitude real do Sol comanda o sol do desktop. Nasce -> sobe até ~78% da tela na culminação -> desce no pôr; à noite - fica pousado no horizonte (41.5%), como sempre foi. O timelapse + fica pousado no horizonte (34%), como sempre foi. O timelapse acelera o ciclo junto, já que tudo deriva de skyNowMs(). ── */ let sunNoonAlt = 60, sunNoonKey = -1; function updateDayMode(date, observer, sunAlt) { @@ -1937,7 +1938,7 @@ function updateDayMode(date, observer, sunAlt) { } const climb = Math.max(0, Math.min(1, sunAlt / sunNoonAlt)); document.documentElement.style.setProperty( - '--sun-bottom', (41.5 + 36.5 * climb).toFixed(2) + '%'); + '--sun-bottom', (34 + 44 * climb).toFixed(2) + '%'); /* -3°: meio do crepúsculo civil — troca com as transições longas do CSS */ document.body.classList.toggle('dia', sunAlt > -3); } @@ -2029,7 +2030,7 @@ function drawSolarSystem(c) { } c.save(); - c.font = `${Math.max(11, Math.round(canvas.height * 0.0095))}px ui-monospace, monospace`; + c.font = `${Math.max(16, Math.round(canvas.height * 0.021))}px ui-monospace, monospace`; c.textAlign = 'left'; c.textBaseline = 'middle'; for (const planet of planets) { @@ -2053,7 +2054,8 @@ function drawSolarSystem(c) { c.shadowColor = 'rgba(4,8,20,0.95)'; c.shadowBlur = 4; c.fillStyle = `rgba(${r},${g},${b},0.92)`; - c.fillText(planet.name, planet.x + planet.radius + 7, planet.y - 1); + /* \uFE0E: forma de texto, evita a versão emoji de ♀ e ♂ */ + c.fillText(planet.name + '\uFE0E', planet.x + planet.radius + 7, planet.y - 1); } c.restore(); } @@ -2257,7 +2259,7 @@ let cameraRotationFileVal = null; const floorCanvas = document.getElementById('floorCanvas'); const floorCtx = floorCanvas.getContext('2d'); -const FLOOR_RATIO = 0.42; +const FLOOR_RATIO = 0.345; /* Disco floor tiles */ const DISCO_COLORS = [