Rebuilding the reader around the tap

Tap zones, hold-to-stop auto-scroll, continuous cross-chapter scrolling, precise resume, and the gesture bug that made the close button unreachable.

Let's start with the embarrassing part.

The reader's tap layer is full-bleed, by design, because the whole screen should respond to a tap. It was also sitting underneath the reader chrome in the view hierarchy, which meant it was quietly eating taps meant for the controls drawn on top of it. The close button and the settings button both sat inside the region the gesture layer had claimed. Tap close, and the chrome toggled instead.

So the close button didn't work while the chrome was visible. Which is the only time you can see it.

The fix wasn't raising the buttons or reaching for hit-test hacks. It was carving out a real dead zone the gesture layer never covers, so the controls sit in space the tap handler was never handed in the first place. The ordering detail that actually mattered: the gesture has to be attached to the content, before the framing, not after. Attach it after and it wraps the whole composed view including the chrome, and you're back where you started.

That bug had been making the reader worse for a long time without ever being the thing I sat down to fix. The rest of this round was all about how the reader feels to hold.

Tapping

Three zones. Left and right jump a page or a screen, the middle toggles the chrome. It's the oldest interaction in comic readers and it works because your thumb picks it up in about four taps.

What's new is the feedback. Each jump flashes briefly along the edge you tapped, showing which way you just went. It fades fast, and it isn't decoration. On a long strip the content either side of a jump can look nearly identical, so a jump with no acknowledgement reads as a dropped tap. You tap again. Now you've moved twice.

The edge zones are proportional but capped in absolute width, so they stay a thumb's worth of screen instead of becoming several hundred points wide in an iPad or Mac window.

Auto-scroll

Long strips want to scroll themselves. There's a play/pause button in the chrome and a configurable speed, so you can set it to your pace once and forget about it.

The control that actually matters is hold-to-stop. Press and hold anywhere and the scroll stops for as long as you hold it, then picks up when you let go. Panels aren't evenly sized, so any fixed speed is wrong somewhere, and the fix for that isn't another settings screen. It's being able to pause on a full-page spread with the thumb that's already touching the glass.

Continuity

Two changes, both aimed at making chapters stop feeling like files.

  • Cross-chapter scrolling in the webtoon reader. Hit the end of a chapter and it continues into the next one in the same scroll. No modal transition, no reload.
  • Precise resume. Reopening a title puts you back exactly where you left, rather than at the top of the chapter you were somewhere in the middle of.

The prose reader

Novels got the same attention pointed in a different direction. The chapter title now sits in the content itself, as a card you scroll past, instead of a header bar hovering above the text, so the top of a chapter reads like the top of a chapter. Progress is a thin hairline rather than a percentage. It stays out of the way and still tells you the one thing you want to know.

Reader settings are documented over at /docs.