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
8 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 −1
manifest.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": {

view file

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",

view file

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": {

view file

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 

view file

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); }

view file

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 {

view file

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 collapse

view file

src/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     >

view file