diff --git a/chrome.html b/chrome.html index 5ca6baa..e793e96 100644 --- a/chrome.html +++ b/chrome.html @@ -159,28 +159,22 @@ /* address bar. flex:1 by default consumes remaining space; user can cap it via Settings > Appearance > Address bar size so the extension dock gets more room. min-width guards against squeezing the URL invisible. */ - .urlwrap { position: relative; flex: 1 1 auto; min-width: 200px; display: flex; align-items: center; gap: 4px; background: var(--surface); border: 1px solid var(--line); + /* The address bar and search bar share ONE flex budget between the nav + buttons and the trailing button dock — the whole .urlsearch unit takes + whatever space is left after the fixed items. A single drag handle + between them shifts the ratio (bigger URL bar = smaller search bar, + and vice versa) without moving anything else in the toolbar. When the + window is too narrow for both, the search bar hides (see the + data-responsive rules below); the URL bar keeps working alone. */ + .urlsearch { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 6px; } + .urlwrap { position: relative; flex: 0 1 var(--urlbar-w, 60%); min-width: 220px; display: flex; align-items: center; gap: 4px; background: var(--surface); border: 1px solid var(--line); border-radius: 999px; padding: 0 6px 0 4px; } - /* Capped URL bar: pin the trailing items (download / extensions / logo / - Theseus) to the RIGHT edge instead of packing them next to the URL bar - — a smaller address bar shouldn't slide everything leftward. margin- - right: auto on the URL bar consumes the slack. */ - .bar[data-urlsize="medium"] .urlwrap { flex: 0 1 640px; margin-right: auto; } - .bar[data-urlsize="compact"] .urlwrap { flex: 0 1 400px; margin-right: auto; } - .bar[data-urlwidth] .urlwrap { flex: 0 0 var(--urlbar-w, auto); margin-right: auto; } - .searchbox { position: relative; } - .bar[data-searchsize="hidden"] .searchbox { display: none; } - .bar[data-searchsize="compact"] .searchbox { width: 180px; } - .bar[data-searchsize="wide"] .searchbox { width: 400px; } - .bar[data-searchwidth] .searchbox { width: var(--searchbox-w, 300px); } - /* Drag-to-resize handles: a thin invisible strip on the trailing edge of - .urlwrap and the leading edge of .searchbox. col-resize cursor makes - the affordance visible; a faint acid tint on hover confirms it's live. */ - .urldrag, .searchdrag { position: absolute; top: 0; bottom: 0; width: 6px; cursor: col-resize; z-index: 10; background: transparent; } - .urldrag { right: -3px; } - .searchdrag { left: -3px; } - .urldrag:hover, .searchdrag:hover, - .urldrag.dragging, .searchdrag.dragging { background: rgb(from var(--acid) r g b / .35); } + .searchbox { flex: 1 1 0; min-width: 140px; } + /* Single drag handle sitting between the two — a thin 6px column with a + col-resize cursor. Zero-sum semantics: dragging right grows the URL + bar and shrinks the search bar; dragging left does the inverse. */ + .bardrag { flex: 0 0 6px; align-self: stretch; cursor: col-resize; background: transparent; border-radius: 3px; } + .bardrag:hover, .bardrag.dragging { background: rgb(from var(--acid) r g b / .35); } /* Adaptive toolbar. A ResizeObserver on .bar sets data-responsive: "0" wide — everything visible (default) "1" tight — auto-hide the search box, min-width for URL bar drops @@ -192,14 +186,17 @@ narrow widths yields to the responsive collapse. */ .bar[data-responsive="1"] .searchbox, .bar[data-responsive="2"] .searchbox, - .bar[data-responsive="3"] .searchbox { display: none; } + .bar[data-responsive="3"] .searchbox, + .bar[data-responsive="1"] .bardrag, + .bar[data-responsive="2"] .bardrag, + .bar[data-responsive="3"] .bardrag { display: none; } .bar[data-responsive="2"] .logo span:not(.gear), .bar[data-responsive="3"] .logo span:not(.gear) { display: none; } .bar[data-responsive="2"] .logo, .bar[data-responsive="3"] .logo { padding: 4px 8px; } .bar[data-responsive="1"] .urlwrap, .bar[data-responsive="2"] .urlwrap, - .bar[data-responsive="3"] .urlwrap { min-width: 120px; } + .bar[data-responsive="3"] .urlwrap { min-width: 120px; flex: 1 1 auto; } /* Level 3: hide the per-extension button row, show the collapsed puzzle button. Dropdown is a floating .extpop the JS builds on click. */ /* Two paths to the collapsed dock: the coarse width-based level 3 @@ -279,8 +276,10 @@ .pwchip { display: inline-flex; align-items: center; gap: 3px; border: none; background: transparent; color: #3fb950; cursor: pointer; padding: 2px 5px; border-radius: 6px; font-size: 11px; font-weight: 700; } .pwchip:hover { background: rgba(63,185,80,.14); } .pwchip svg { width: 14px; height: 14px; } - /* search box: engine icon (click = pick engine) + a wide typing area */ - .searchbox { display: flex; align-items: center; width: 300px; background: var(--surface); border: 1px solid var(--line); + /* search box: engine icon (click = pick engine) + a wide typing area. + Width comes from the parent .urlsearch flex budget (flex: 1 1 0) — + the earlier top rule at line 172 sets that; here we only style. */ + .searchbox { display: flex; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 999px; padding: 0 12px 0 3px; } .searchbox:focus-within { border-color: #4b7bec; } /* dropdown button shows the SELECTED engine's favicon (emoji fallback) + a caret */ @@ -391,25 +390,26 @@ -
- - - - - -
-
-