Skip to content

HardlyReader 0.6.24

Choose a tag to compare

@hardlysleeping hardlysleeping released this 31 Oct 20:58
· 191 commits to main since this release

A starred post keeps its gold once it has been read.

The bug. Starring an article in the FreshRSS web UI looked like a different
thing from starring it in the app: in the Starred list, some rows were gold and
some had no gold at all. Where the star was made never mattered — the app has
always read the star off the article's own state, so a star set in the server UI
arrives exactly like one set in the app.

What actually differed was whether the post had been read. The gold edge on a
row was drawn only for an unread post, and a read post is dimmed to 48%, which
turns the star's gold into mustard. So a post read in the morning and starred in
the afternoon had no gold edge and a muddy star — which reads as "not starred".

The fix. The edge now belongs to starred or unread rows. The wash stays the
unread language, so a row can still say "new", "starred", or both — a starred read
post is a gold edge with no wash. And a starred read row now dims to 62% instead of
48%, because at 48% the one colour that says "starred" stops being that colour.

Measured in the built stylesheet through Chromium, before and after, on the same
four rows:

starred, unread   edge 0px→gold, wash yes   opacity 1.00 → 1.00
starred, read     edge 0px → gold, wash no  opacity 0.48 → 0.62
plain, unread     edge blue, wash yes       opacity 1.00 → 1.00
plain, read       edge 0px                  opacity 0.48 → 0.48

Nothing else moved: the four list views, cards, the grid, the compact list, the
turn shapes and their directions, and the row actions behave as they did. A new
suite (starred-rows, 11 checks) guards the three promises, and the five
stylesheet contracts that named the old unread-only selector were rewritten to the
new one rather than deleted.

149/149 suites, tsc clean, svelte-check 0 errors.

The iOS build is unsigned — sign it on the device with your own Apple ID.