Repository navigation
HardlyReader 0.6.24
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.