Skip to content

System specs depend on the Mac's scrollbar setting (narrow-frame wrap at 360px) #271

Closed

Description

@plainprogrammer

What happened (2026-11-10). Every local bin/ci started failing spec/system/collection_row_place_spec.rb:93 (spec 048 AC-1.8, "wraps the line at 360px for a five-character set code"). It got a height of 16 where the spec expects ≥ 20. GitHub CI stayed green. The failure blocked every push through the pre-push hook.

Cause. Headless Firefox follows macOS's "Show scroll bars" setting, which defaults to Automatic. With a mouse connected, it draws classic scrollbars, which take 15px of the narrow frame's width. With only the trackpad, it draws overlay scrollbars that take no width. The narrow frame's page always scrolls (816px of content in an 800px frame). With a classic scrollbar, the 360px frame's content is 345px wide and "PMH3A · 146 · Foil · NM · EN" wraps (32px tall). With an overlay scrollbar it's 360px wide and the line fits on one row (16px). CI's Linux Firefox has classic scrollbars.

ui.useOverlayScrollbars width frame clientWidth .c-table__sub height
0 (classic) 360 345 32
1 (overlay) 360 360 16

Fix. Pin ui.useOverlayScrollbars = 0 in spec/support/system.rb's Firefox options, as #118 pinned the colour scheme. Local runs then match CI whatever pointing device is connected.

For the maintainer. On a real 360px phone, which has overlay scrollbars, that line fits with about 8px to spare. So spec 048 AC-1.8's "a five-character code wraps at 360" holds only for a 345px content width. Restating it means a new spec, because shipped specs aren't edited; for example, a longer line, or checking only for no sideways scroll and no place.

🤖 Generated with Claude Code

Activity

  1. added a commit that references this issue on Nov 10, 2026
  2. plainprogrammer commented on Nov 10, 2026

    @plainprogrammer
    OwnerAuthor

    Fixed by #272 (merge a29c598): system specs pin classic scrollbars. The spec 048 AC-1.8 wording question in the description (the 360px wrap doesn't hold on a real phone) stays for a later spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't workinghousekeepingRoadmap housekeeping lane, taken between specs

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions