From 82b754b3abafc8383c95aecf28a81c116e843512 Mon Sep 17 00:00:00 2001 From: "Zimin A.N." Date: Mon, 11 May 2026 22:43:32 +0300 Subject: [PATCH] =?UTF-8?q?fix(loader):=20remove=20transform-box=20fill-bo?= =?UTF-8?q?x=20=E2=80=94=20orbits=20rotated=20around=20offset=20bbox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CSS transform-box default для SVG = view-box (transform-origin в viewBox user coords). С transform-box: fill-box origin становится относительным bounding-box каждой группы (whirl + whirl-rev — arc bbox смещён). Арки летали по неправильной траектории. Прототип HTML rely on default — copy. --- ordinis-admin-ui/src/styles.css | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ordinis-admin-ui/src/styles.css b/ordinis-admin-ui/src/styles.css index a99ad65..4f7d280 100644 --- a/ordinis-admin-ui/src/styles.css +++ b/ordinis-admin-ui/src/styles.css @@ -384,19 +384,21 @@ body { 0%, 100% { opacity: 0.18; } 50% { opacity: 0.42; } } +/* transform-box default = view-box для SVG elements — transform-origin + * считается в SVG user coordinates (viewBox 0 0 200 200). 100px 100px = + * центр глобуса. Прошлая версия с transform-box: fill-box ломала орбиты + * (origin становился offset bounding-box'а каждой группы — арки летали + * вокруг неправильной точки). Прототип HTML использует default — copy. */ .globe-loader .globe-whirl { transform-origin: 100px 100px; - transform-box: fill-box; animation: ord-globe-spin 3.6s linear infinite; } .globe-loader .globe-whirl-rev { transform-origin: 100px 100px; - transform-box: fill-box; animation: ord-globe-spin 5.4s linear infinite reverse; } .globe-loader .globe-pulse { transform-origin: 100px 100px; - transform-box: fill-box; animation: ord-globe-pulse 2.4s ease-in-out infinite; } /* Sphere/land внутри globe-loader rotates через d3 projection (rAF