# Scroll the list and the reader the way Spark does · michael/spark-rs

[View on GitCafe](https://git.cafe/michael/spark-rs/commit/257721235ecebfdfe37f481fe0390c39b54f5300)

Repository: [michael/spark-rs](https://git.cafe/michael/spark-rs)

Visibility: public

Requested revision: 257721235ecebfdfe37f481fe0390c39b54f5300

Requested commit: 257721235ecebfdfe37f481fe0390c39b54f5300

Commit: 257721235ecebfdfe37f481fe0390c39b54f5300

Tree: e4dc5e2cd5c5e741a675baa1ece5efa1044610bf

Author: Michael Rodriguez

Committer: Michael Rodriguez

## Message

```
Scroll the list and the reader the way Spark does

The message list and the reader get Spark's floating scrollbar: a thin
thumb over the content that shows while the pointer is over it or it
scrolls, fades a second later, and can be dragged or clicked.

The list opens at the top, except the Inbox, which keeps its place, and
the list a "Show all", a group or a search goes back to. Rows after one
that's done, deleted or snoozed slide up instead of jumping. Page Up and
Page Down move a screen and line a row up with the top; Home and End (or
Ctrl+↑ and ↓) go to either end. They move the pane clicked last, so they
also page through an email. A row scrolls into view when the cursor moves
to it, not when it's clicked.

Near the end of a list (within 1.5 screens, as in Spark) it asks the
servers for older mail and shows a spinner until it's in. The Unread
cards, New senders and search don't reach back.

An email opened partway down a conversation leaves about 100px of the one
before in view, and holds that place while bodies load, until you scroll
or click. The subject stays above the conversation and shrinks to a line
over a border once you scroll.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

```

## Parents

- [8dd4fcdd2dba709e470268a387cbc9b063cc3c5e](https://git.cafe/michael/spark-rs/commit/8dd4fcdd2dba709e470268a387cbc9b063cc3c5e?format=markdown)

[Source at this commit](https://git.cafe/michael/spark-rs/tree/257721235ecebfdfe37f481fe0390c39b54f5300?format=markdown)
