Skip to content

Mobile layout fixes and one SeedQR button - #84

Merged
BitcoinQnA merged 1 commit into
mainfrom
feat/seedqr-toggle-and-tabs
Oct 13, 2026
Merged

BitcoinQnA merged 1 commit into
mainfrom
feat/seedqr-toggle-and-tabs

Conversation

@BitcoinQnA

Copy link
Copy Markdown
Owner

Summary

Fixes for the layout problems Q found testing 2.4.0 on a phone, plus one SeedQR button.

  • One SeedQR button. The Seed Workspace had a "Tap to view SeedQR" button next to a bare SeedQR icon. There is now one button. The QR window has a SeedQR / Compact SeedQR switch that remembers the last choice. The switch appears wherever a seed QR opens: the Seed Workspace, BIP-85 child seeds and Seed XOR shares. QR codes that aren't seeds don't show it.
  • Seed input tabs put the label under the icon at every width.
  • Word boxes: typed words no longer run over the word numbers. A more specific input rule (.view--tool input[type="text"]) reset the padding.
  • Seed cards now fit the longest BIP39 word (8 letters): 2 columns on phones, and never more than 4. Before, phones wider than 380px got 3 narrow columns and longer words spilled out of their cards.
  • Clipped text boxes (the Sign & Verify address, several placeholders), fixed at the root:
    • textareaResize() squashed hidden boxes to 5px.
    • shell.js's re-measure after showing a view never ran, because adjustPanelHeight was a top-level const, not on window.
    • Boxes filled when the seed changes weren't re-measured.
    • Now hidden boxes are skipped, the function is exposed, and boxes are re-measured on seed change.
  • Dropdowns never grow past their container. iPhone Safari sizes a select to its longest option, so the Shamir and Sign & Verify dropdowns ran off the screen.
  • Sub-tabs are all the same width, and the backup sheet options line up.

Testing

  • npm run release:check passes. New tests cover the SeedQR format data and window.adjustPanelHeight.
  • Browser, built dist:
    • At 393px, every tool view (26), plus every non-default sub-tab in the 7 tools that have them: no text box shorter than its content, and nothing wider than the screen. The page is exactly the screen width.
    • At 360px, 393px and 1280px: seed cards in 2, 2 and 4 columns, with no word overflowing.
    • The SeedQR switch redraws the code, remembers the choice, and is hidden for address QRs.
  • Not tested: a real iPhone. The dropdown fix targets Safari's own sizing, which desktop Chrome doesn't reproduce.

🤖 Generated with Claude Code

- One "SeedQR" button; the QR window switches between SeedQR and
  Compact SeedQR and remembers the choice (Seed Workspace, BIP-85 child
  seeds and Seed XOR shares)
- Seed input tabs put the label under the icon at every width
- Word boxes keep room for the word number (a more specific input rule
  reset the padding, so typed words ran over the numbers)
- Seed cards fit the longest BIP39 word: 2 columns on phones, up to 4
- Text boxes are sized once they are shown: textareaResize skips hidden
  boxes, adjustPanelHeight is exposed to shell.js (the re-measure never
  ran), and boxes are re-measured when the seed changes
- Dropdowns never grow past their container (iPhone Safari sizes them to
  the longest option)
- Sub-tabs share one width; backup sheet options line up

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@BitcoinQnA
BitcoinQnA merged commit 51d0925 into main Oct 13, 2026
1 check passed
pingtozen pushed a commit to pingtozen/seedtool that referenced this pull request Oct 14, 2026
PR BitcoinQnA#79 stops the generic dark input rule applying to word boxes, which
fixes the overlap at its source, so the padding override added in BitcoinQnA#84
is no longer needed.

Scoped update of two development packages flagged by Dependabot. Neither
is in index.html:
- shell-quote 1.10.0 to 1.12.0 (GHSA-pqg4-j6r4-53mv, critical), via browserify
- brace-expansion 1.1.18 to 1.1.21 (GHSA-q2hr-2g5m-vwhr, medium)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant