diff --git a/src/css/crowdin-bootstrap.scss b/src/css/crowdin-bootstrap.scss index a2f1cc5..f657280 100644 --- a/src/css/crowdin-bootstrap.scss +++ b/src/css/crowdin-bootstrap.scss @@ -1,20 +1,21 @@ -#crowdin-language-picker .cr-picker-button, -#crowdin-language-picker .cr-picker-submenu { - background-color: var(--navbar-col) !important; - border: 1px solid var(--navbar-border-col) !important; - color: var(--navbar-text-col) !important; +// Outrank Crowdin's injected state selectors regardless of stylesheet order. +body #crowdin-language-picker.cr-position-bottom-left .cr-picker-button, +body #crowdin-language-picker.cr-position-bottom-left .cr-picker-submenu { + background-color: var(--navbar-col); + border: 1px solid var(--navbar-border-col); + color: var(--navbar-text-col); } -#crowdin-language-picker .cr-picker-button:hover, -#crowdin-language-picker .cr-picker-submenu > a:hover { - background-color: var(--navbar-text-col) !important; - color: var(--navbar-col) !important; +body #crowdin-language-picker.cr-position-bottom-left .cr-picker-button:hover, +body #crowdin-language-picker.cr-position-bottom-left .cr-picker-submenu > a:hover { + background-color: var(--navbar-text-col); + color: var(--navbar-col); } -#crowdin-language-picker .cr-picker-submenu > a { - color: var(--navbar-text-col) !important; +body #crowdin-language-picker.cr-position-bottom-left .cr-picker-submenu > a { + color: var(--navbar-text-col); } -#crowdin-language-picker .cr-picker-submenu > a.cr-selected { - color: var(--navbar-border-col) !important; +body #crowdin-language-picker.cr-position-bottom-left .cr-picker-submenu > a.cr-selected { + color: var(--navbar-border-col); } diff --git a/src/css/crowdin-dockle.scss b/src/css/crowdin-dockle.scss index b2aca62..b5dd936 100644 --- a/src/css/crowdin-dockle.scss +++ b/src/css/crowdin-dockle.scss @@ -1,42 +1,43 @@ -#crowdin-language-picker.dockle-crowdin-picker { - bottom: 1rem !important; - left: var(--dockle-sidebar-padding, 1.25rem) !important; - position: fixed !important; - width: calc(var(--dockle-sidebar-width, 18rem) - (2 * var(--dockle-sidebar-padding, 1.25rem))) !important; +body #crowdin-language-picker.dockle-crowdin-picker { + bottom: 1rem; + left: var(--dockle-sidebar-padding, 1.25rem); + position: fixed; + width: calc(var(--dockle-sidebar-width, 18rem) - (2 * var(--dockle-sidebar-padding, 1.25rem))); z-index: 200; } -#crowdin-language-picker.dockle-crowdin-picker .cr-picker-button { +body #crowdin-language-picker.dockle-crowdin-picker .cr-picker-button { box-sizing: border-box; width: 100%; } -#crowdin-language-picker .cr-picker-button, -#crowdin-language-picker .cr-picker-submenu { - background-color: var(--dockle-background-secondary) !important; - border: 1px solid var(--dockle-border) !important; - border-radius: var(--dockle-radius) !important; - color: var(--dockle-content) !important; +// Outrank Crowdin's injected state selectors regardless of stylesheet order. +body #crowdin-language-picker.dockle-crowdin-picker .cr-picker-button, +body #crowdin-language-picker.dockle-crowdin-picker .cr-picker-submenu { + background-color: var(--dockle-background-secondary); + border: 1px solid var(--dockle-border); + border-radius: var(--dockle-radius); + color: var(--dockle-content); } -#crowdin-language-picker .cr-picker-button:hover, -#crowdin-language-picker .cr-picker-submenu > a:hover { - background-color: var(--dockle-primary) !important; - color: white !important; +body #crowdin-language-picker.dockle-crowdin-picker .cr-picker-button:hover, +body #crowdin-language-picker.dockle-crowdin-picker .cr-picker-submenu > a:hover { + background-color: var(--dockle-primary); + color: white; } -#crowdin-language-picker .cr-picker-submenu > a { - color: var(--dockle-content) !important; +body #crowdin-language-picker.dockle-crowdin-picker .cr-picker-submenu > a { + color: var(--dockle-content); } -#crowdin-language-picker .cr-picker-submenu > a.cr-selected { - color: var(--dockle-primary) !important; +body #crowdin-language-picker.dockle-crowdin-picker .cr-picker-submenu > a.cr-selected { + color: var(--dockle-primary); } @media (max-width: 50rem) { - #crowdin-language-picker.dockle-crowdin-picker { - bottom: 1rem !important; - left: 1rem !important; - width: min(18rem, calc(100vw - 2rem)) !important; + body #crowdin-language-picker.dockle-crowdin-picker { + bottom: 1rem; + left: 1rem; + width: min(18rem, calc(100vw - 2rem)); } } diff --git a/src/css/lizardbyte.scss b/src/css/lizardbyte.scss index b64217e..01e3255 100644 --- a/src/css/lizardbyte.scss +++ b/src/css/lizardbyte.scss @@ -36,13 +36,15 @@ body { } .bg-dark { + // Bootstrap's background utility reads this variable. + --bs-dark-rgb: 21, 21, 21; --bs-bg-opacity: 1; - background-color: #151515 !important; + background-color: #151515; } .bg-dark-gray { --bs-bg-opacity: 1; - background-color: #303436 !important; + background-color: #303436; } .carousel-overlay-title { @@ -66,13 +68,13 @@ body { } .carousel-item.active, .carousel-item .view { - height: 50vh !important; + height: 50vh; } .carousel-item img { object-fit: cover; - width:100% !important; - height: 100% !important; + width: 100%; + height: 100%; } .content h1 { @@ -156,8 +158,10 @@ iframe.feedback { overflow: hidden; } -.hover-zoom img { - transition: all 1.5s ease; +@media (prefers-reduced-motion: no-preference) { + .hover-zoom img { + transition: transform 1.5s ease; + } } .hover-zoom:hover img { @@ -167,5 +171,5 @@ iframe.feedback { /*custom text colors*/ .text-purple { --bs-text-opacity: 1; - color: var(--bs-purple) !important; + color: var(--bs-purple); } diff --git a/src/js/crowdin.js b/src/js/crowdin.js index 1d989e9..65d014e 100644 --- a/src/js/crowdin.js +++ b/src/js/crowdin.js @@ -282,9 +282,10 @@ function _applyCrowdinPlatformStyling(platform, attempt = 0) { container.classList.remove('cr-position-bottom-left'); container.classList.add('dockle-crowdin-picker'); - container.style.position = 'fixed'; - container.style.left = 'auto'; - container.style.bottom = 'auto'; + // Let the Dockle stylesheet control desktop and mobile positioning. + container.style.removeProperty('position'); + container.style.removeProperty('left'); + container.style.removeProperty('bottom'); document.body.appendChild(container); } diff --git a/tests/crowdin.test.js b/tests/crowdin.test.js index 173757d..c87f1b2 100644 --- a/tests/crowdin.test.js +++ b/tests/crowdin.test.js @@ -19,7 +19,8 @@ const loadScript = require('../src/js/load-script'); const initCrowdIn = require('../src/js/crowdin'); const delayedPickerMarkup = ` -