OverviewFilesCommitsIssuesDocsReleasesPeers

favela-web commits / 4d59c3c

render: demote reach badges from filled pills to a hairline underline
They appear on EVERY row, and as boxes they competed with the post text on a surface where the post is the point. Now they sit at the weight of a timestamp. What does NOT change is the claim or the channel that encodes it. OBSERVED (fediverse — ap-bridge's outbox names the rkey) stays solid; ELIGIBLE (bsky — the lexicon is one its AppView indexes, but we never checked it landed) stays dashed. Audit #45 lists that distinction as load-bearing and it is: rendering them alike would assert something we did not check. Solid-vs-dashed simply moves from a pill border to an underline. A lens stays deliberately louder — its dashed section rule, coloured left edge and named source are a bigger claim than "this one post was also offered to bsky". One self-inflicted bug on the way, caught by rendering it: I wrote the new rationale as prose AFTER the comment's closing */, so six lines of English sat in the stylesheet and the parser dropped the rules following them. The badges kept their old look and the edit appeared to do nothing. Merged into one comment. Verified: background none, font-weight 400, border-radius 0, 1px bottom border. Phase 4's provenance decision, taken early because the token layer forced it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
4d59c3ce0b6c05fb01469a4c2a54af12f589115c
by plankatron <fleeky@gmail.com> · 2026-08-24T14:24:27.000Z

Changed files (2) +13 -5

lib/render.js +12 -4
……@@ -881,10 +881,18 @@ nav a[aria-current=page]{color:var(--fg);font-weight:600;border-bottom-color:var
881881/* ── reach badges ─────────────────────────────────────────────────────────────────────────────────
882882 Where a post went. OBSERVED (fediverse — the outbox names it) is solid; ELIGIBLE (bsky — the
883883 lexicon is one it indexes, but we did not check that it landed) is outlined and dimmer. The visual
884 weight difference IS the honesty: they are different claims. */
885.badge.reach{border:1px solid var(--line);background:var(--bg-soft);color:var(--fg-dim);
886 font-weight:600;letter-spacing:.01em}
887.badge.reach.weak{background:none;color:var(--fg-faint);border-style:dashed}
884 weight difference IS the honesty: they are different claims.
885
886 Demoted from a filled pill to a hairline underline: these appear on EVERY row, and as boxes they
887 competed with the post text for attention on a surface where the post is the point. The claim they
888 make is unchanged and so is the channel that encodes it — solid underline for observed, dashed for
889 eligible — but it now sits at the weight of a timestamp rather than a button. A lens is deliberately
890 left louder than this: relaying a whole section from a foreign source is a bigger claim than "this
891 one post was also offered to bsky". */
892.badge.reach{display:inline;border:0;border-bottom:1px solid var(--line);border-radius:0;
893 background:none;color:var(--fg-dim);font-weight:400;font-size:var(--f0);
894 padding:0;margin-left:var(--s2);letter-spacing:.01em}
895.badge.reach.weak{color:var(--fg-faint);border-bottom-style:dashed}
888896
889897/* ── follower / following list ────────────────────────────────────────────────────────────────────
890898 A row per account rather than the inline run of names the profile shows. */
package.json +1 -1
……@@ -1,6 +1,6 @@
11{
22 "name": "favela-web",
3 "version": "0.3.68",
3 "version": "0.3.69",
44 "description": "favela-web — the web/SSR surface of Favela, the native P2P-local, community-owned social client + appview over the self-custody atproto stack (hyper-proto-peer). One of the Favela surfaces (alongside favela-cli and favela-native). bsky is an optional POSSE export, not the home. See DESIGN.md.",
55 "type": "module",
66 "main": "bin/favela-web.js",