diff --git a/web/toolbar.js b/web/toolbar.js index c03eaea8e..5aa1313b1 100644 --- a/web/toolbar.js +++ b/web/toolbar.js @@ -320,15 +320,10 @@ class Toolbar { ]); await animationStarted; - const style = getComputedStyle(items.scaleSelect), - scaleSelectContainerWidth = parseInt( - style.getPropertyValue("--scale-select-container-width"), - 10 - ), - scaleSelectOverflow = parseInt( - style.getPropertyValue("--scale-select-overflow"), - 10 - ); + const style = getComputedStyle(items.scaleSelect); + const scaleSelectWidth = parseFloat( + style.getPropertyValue("--scale-select-width") + ); // The temporary canvas is used to measure text length in the DOM. const canvas = document.createElement("canvas"); @@ -342,10 +337,12 @@ class Toolbar { maxWidth = width; } } - maxWidth += 2 * scaleSelectOverflow; + // Account for the icon width, and ensure that there's always some spacing + // between the text and the icon. + maxWidth += 0.3 * scaleSelectWidth; - if (maxWidth > scaleSelectContainerWidth) { - docStyle.setProperty("--scale-select-container-width", `${maxWidth}px`); + if (maxWidth > scaleSelectWidth) { + docStyle.setProperty("--scale-select-width", `${maxWidth}px`); } // Zeroing the width and height cause Firefox to release graphics resources // immediately, which can greatly reduce memory consumption. diff --git a/web/viewer.css b/web/viewer.css index 27cf0296b..4c661f9c6 100644 --- a/web/viewer.css +++ b/web/viewer.css @@ -20,8 +20,7 @@ --sidebar-width: 200px; --sidebar-transition-duration: 200ms; --sidebar-transition-timing-function: ease; - --scale-select-container-width: 140px; - --scale-select-overflow: 22px; + --scale-select-width: 140px; --toolbar-icon-opacity: 0.7; --doorhanger-icon-opacity: 0.9; @@ -791,29 +790,27 @@ body { } .dropdownToolbarButton { - width: var(--scale-select-container-width); + width: var(--scale-select-width); padding: 0; - overflow: hidden; background-color: var(--dropdown-btn-bg-color); border: var(--dropdown-btn-border); } .dropdownToolbarButton::after { top: 6px; - inset-inline-end: 7px; + inset-inline-end: 6px; pointer-events: none; mask-image: var(--toolbarButton-menuArrow-icon); } .dropdownToolbarButton > select { - width: calc( - var(--scale-select-container-width) + var(--scale-select-overflow) - ); + appearance: none; + width: inherit; height: 28px; font-size: 12px; color: var(--main-color); margin: 0; padding: 1px 0 2px; - padding-inline-start: 4px; + padding-inline-start: 6px; border: none; background-color: var(--dropdown-btn-bg-color); }