diff --git a/html/auth-guard.js b/html/auth-guard.js index 20663b8..a6fb029 100644 --- a/html/auth-guard.js +++ b/html/auth-guard.js @@ -179,13 +179,20 @@ var wrap = document.createElement('div'); wrap.id = 'wp-usermenu'; var linkColor = dark ? '#ffffff' : '#0f62fe'; - wrap.style.cssText = 'display:flex;align-items:center;gap:8px;margin-left:auto;padding-left:14px;white-space:nowrap;' + + // The menu wraps; each link inside does not. It used to be nowrap as a whole, + // which made it one unbreakable 412px run — at 390px that put "Sign out" at + // x382-432, half of it past the edge and untappable (F2). Wrapping the container + // costs nothing above 720px, where it has never needed to wrap. Interim: T2.2 + // replaces this markup with the drawer. + wrap.style.cssText = 'display:flex;align-items:center;gap:8px;margin-left:auto;padding-left:14px;' + + 'flex-wrap:wrap;min-width:0;' + 'font:400 13px/1.2 "IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;' + 'color:' + (dark ? '#c6c6c6' : '#525252') + ';'; function sep() { var s = document.createElement('span'); s.textContent = '·'; s.style.color = dark ? '#6f6f6f' : '#a8a8a8'; return s; } function link(text, onClick, href) { var a = document.createElement('a'); a.textContent = text; a.href = href || '#'; - a.style.cssText = 'color:' + linkColor + ';text-decoration:none;font-weight:600;'; + // nowrap per link, so "Language & time" wraps as a unit rather than mid-phrase. + a.style.cssText = 'color:' + linkColor + ';text-decoration:none;font-weight:600;white-space:nowrap;'; if (onClick) a.addEventListener('click', function (e) { e.preventDefault(); onClick(); }); return a; } diff --git a/html/wp-chrome.js b/html/wp-chrome.js index 9783485..027de73 100644 --- a/html/wp-chrome.js +++ b/html/wp-chrome.js @@ -255,6 +255,20 @@ var clear = box.querySelector('.wpc-clear'); var timer = null, seq = 0, items = [], activeIx = -1; + // Below 620px the box is roughly 200px and the full placeholder ellipsises to + // "Search work packages, proj" — the truncation half of F2. The control is + // usable either way; this stops it reading as broken. 620px is the breakpoint + // wp-chrome.css already uses for this element, not a new one. Interim: T2.2. + try { + var narrow = window.matchMedia('(max-width: 620px)'); + var setPlaceholder = function (m) { + input.placeholder = m.matches ? 'Search…' : 'Search work packages, projects, SOPs…'; + }; + setPlaceholder(narrow); + if (narrow.addEventListener) narrow.addEventListener('change', setPlaceholder); + else if (narrow.addListener) narrow.addListener(setPlaceholder); + } catch (e) {} + function close() { pop.hidden = true; activeIx = -1; } function highlight() {