diff --git a/src/web/components/ClientOverviewPage.jsx b/src/web/components/ClientOverviewPage.jsx index 8d71c11..e79bae0 100644 --- a/src/web/components/ClientOverviewPage.jsx +++ b/src/web/components/ClientOverviewPage.jsx @@ -95,8 +95,8 @@ function HarborBrand({ isGateway, gatewayAvailable, gatewayDirect, busy, onSetGa Gateway {gatewayDirect ? 'Harbor Gateway активен' : 'Harbor Gateway доступен'} diff --git a/src/web/styles.css b/src/web/styles.css index 5af9ccf..51d4851 100644 --- a/src/web/styles.css +++ b/src/web/styles.css @@ -288,6 +288,7 @@ p { transition: color 320ms ease, opacity 320ms ease, transform 420ms cubic-bezier(0.16, 1, 0.3, 1); } +.harbor-mode-swap g, .harbor-mode-swap path { transform-box: fill-box; transform-origin: center; @@ -295,10 +296,20 @@ p { .harbor-mode-swap .is-connect { stroke: var(--harbor-connect); + transition: transform 560ms cubic-bezier(0.16, 1, 0.3, 1); } .harbor-mode-swap .is-gateway { stroke: var(--harbor-gateway); + transition: transform 560ms cubic-bezier(0.16, 1, 0.3, 1); +} + +.harbor-brand.is-gateway-active .harbor-mode-swap .is-connect { + transform: translateY(6px); +} + +.harbor-brand.is-gateway-active .harbor-mode-swap .is-gateway { + transform: translateY(-6px); } .harbor-mode-tooltip { @@ -345,24 +356,24 @@ p { opacity: 1; } -.harbor-brand-control:hover .harbor-mode-swap .is-connect, -.harbor-brand-control:focus-visible .harbor-mode-swap .is-connect { - animation: harbor-arrow-float-up 1500ms ease-in-out infinite; +.harbor-brand-control:hover .harbor-mode-swap .is-connect path, +.harbor-brand-control:focus-visible .harbor-mode-swap .is-connect path { + animation: harbor-arrow-float-right 1500ms ease-in-out infinite; } -.harbor-brand-control:hover .harbor-mode-swap .is-gateway, -.harbor-brand-control:focus-visible .harbor-mode-swap .is-gateway { - animation: harbor-arrow-float-down 1500ms ease-in-out infinite; +.harbor-brand-control:hover .harbor-mode-swap .is-gateway path, +.harbor-brand-control:focus-visible .harbor-mode-swap .is-gateway path { + animation: harbor-arrow-float-left 1500ms ease-in-out infinite; } -@keyframes harbor-arrow-float-up { - 0%, 100% { transform: translateY(0); } - 50% { transform: translateY(-1.5px); } +@keyframes harbor-arrow-float-right { + 0%, 100% { transform: translateX(0); } + 50% { transform: translateX(1.5px); } } -@keyframes harbor-arrow-float-down { - 0%, 100% { transform: translateY(0); } - 50% { transform: translateY(1.5px); } +@keyframes harbor-arrow-float-left { + 0%, 100% { transform: translateX(0); } + 50% { transform: translateX(-1.5px); } } .client-instructions-toggle { @@ -1839,6 +1850,7 @@ p { } .harbor-mode-stack em, + .harbor-mode-swap g, .harbor-mode-swap path, .harbor-brand .harbor-mode-swap, .harbor-mode-tooltip {