4b70c6ed3e02
move Settings version label into stack mast next to card counter (no more floating-overlay overlap with Feedback CTAs); widen html for data-text-size=small so the popup background fills past the 0.92 zoom (kills the right-edge black bar) (v3.6.39)
- time
- 2026-05-19 19:23 UTC · 5 months ago
- machine
- koh2
- parent
- 42afffa1831b
↓ peach-browser-4b70c6ed.tar.gzatlas at this save
files changed8 files
manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1src/popup/components/settings/StackDeck.tsx+4 −1src/popup/styles/popup.css+0 −13src/popup/styles/settings-stack.css+9 −0src/popup/styles/vars.css+12 −2src/popup/views/Settings.tsx+1 −1manifest.firefox.json+1 −1
@@ -2,7 +2,7 @@22 "_comment_audio_capture": "Firefox does not honor the Chrome 'audioCapture' optional_permission — getUserMedia in WebExtensions is gated solely by the runtime permission prompt. Microphone access for chirp pairing works from the popup under the existing '<all_urls>' host permission; no manifest entry is required or accepted here.",33 "manifest_version": 3,44 "name": "Peach",5- "version": "3.6.38",5+ "version": "3.6.39",66 "description": "Zero-knowledge password manager",77 "browser_specific_settings": {88 "gecko": {manifest.json+1 −1
@@ -1,7 +1,7 @@11 {22 "manifest_version": 3,33 "name": "Peach",4- "version": "3.6.38",4+ "version": "3.6.39",55 "description": "Zero-knowledge password manager",66 "action": {77 "default_popup": "src/popup/index.html",package.json+1 −1
@@ -1,6 +1,6 @@11 {22 "name": "peach",3- "version": "3.6.38",3+ "version": "3.6.39",44 "description": "Zero-knowledge password manager",55 "type": "module",66 "scripts": {src/popup/components/settings/StackDeck.tsx+4 −1
@@ -8,6 +8,8 @@88 onBack: () => void;99 cards: readonly StackCardSpec[];1010 bodies: StackBodies;11+ /** Extension version string (e.g. "3.6.38"), shown next to the card counter. */12+ version?: string;1113 }1214 1315 const EXPANDED_H = 258;@@ -53,7 +55,8 @@5355 </button>5456 <div class="stk-mast-title">Settings</div>5557 <div class="stk-mast-meta">56- {activeIndex() + 1} / {props.cards.length}58+ <span class="stk-mast-counter">{activeIndex() + 1} / {props.cards.length}</span>59+ {props.version && <span class="stk-mast-version">v{props.version}</span>}5760 </div>5861 </div>5962 src/popup/styles/popup.css+0 −13
@@ -7374,19 +7374,6 @@73747374 color: var(--peach-t1);73757375 }73767376 7377-.peach-settings-version {7378- position: absolute;7379- bottom: 6px;7380- left: 10px;7381- font-family: var(--font-mono);7382- font-size: 7px;7383- color: rgba(255, 255, 255, 0.4);7384- letter-spacing: 0.03em;7385- pointer-events: none;7386- user-select: none;7387- z-index: 200;7388-}7389-73907377 @keyframes peach-panic-pulse {73917378 0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }73927379 50% { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }src/popup/styles/settings-stack.css+9 −0
@@ -47,11 +47,20 @@4747 }4848 4949 .stk-mast-meta {50+ display: flex;51+ align-items: baseline;52+ gap: 6px;5053 font-family: var(--font-mono);5154 font-size: 9px;5255 letter-spacing: 0.22em;5356 text-transform: uppercase;5457 color: var(--peach-t2);58+}59+60+.stk-mast-version {61+ color: color-mix(in srgb, var(--peach-t2) 55%, transparent);62+ letter-spacing: 0.06em;63+ text-transform: lowercase;5564 }5665 5766 .stk-deck {src/popup/styles/vars.css+12 −2
@@ -235,10 +235,20 @@235235 [data-text-size="large"] { --peach-text-scale: 1.08; }236236 /* Zoom on html (not body) for both sizes so Chrome auto-resizes the popup237237 window in both directions. Zooming body for small left a visible gap at238- the bottom because the window stayed at full height. */238+ the bottom because the window stayed at full height.239+240+ When zoom < 1, html's fixed 320px CSS width renders at 320 × zoom in241+ window space, leaving a strip of unstyled Chrome backdrop on the right.242+ For "small" we widen html by the inverse of the zoom factor so its243+ painted background fills the popup window edge-to-edge after scaling.244+ body / #app keep their 320 CSS px so the in-content layout doesn't245+ shift — the extra html width is just background bleed. */239246 html { background: var(--bg); }240247 html[data-text-size="large"] { zoom: 1.08; }241-html[data-text-size="small"] { zoom: 0.92; }248+html[data-text-size="small"] {249+ zoom: 0.92;250+ width: calc(320px / 0.92);251+}242252 243253 /* ─── Reduced motion ───────────────────────────────────────────────────244254 User-explicit setting OR OS-level prefers-reduced-motion both collapsesrc/popup/views/Settings.tsx+1 −1
@@ -1758,8 +1758,8 @@17581758 onBack={props.onBack}17591759 cards={cards()}17601760 bodies={bodies}1761+ version={version}17611762 />1762- <div class="peach-settings-version">v{version}</div>17631763 </div>17641764 }17651765 >