aboutsummaryrefslogtreecommitdiffstats
path: root/src/style.css
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-10-02 10:09:28 -0700
committerAdam Soltys <[email protected]>2026-10-02 10:09:28 -0700
commit8249fbe964ae63fa5a34b150b2e5819972d93e5c (patch)
tree93892b6c66818596abff896a12c378f703196aad /src/style.css
parent98a1cb08eff9958d87c6d84462669d2a1990b21e (diff)
downloadcoinosv3-8249fbe964ae63fa5a34b150b2e5819972d93e5c.tar.gz
coinosv3-8249fbe964ae63fa5a34b150b2e5819972d93e5c.zip
Pictures paint with the page: column-sized copies, and CORS that works
Measured in the live tab (screencast frames): back from a profile, the feed's text was on screen ~200ms before its photo. The <img> was loaded and complete on the first frame — a 3024px, 12-megapixel original that Chrome re-decodes whenever the page is rebuilt. - Post photos wider than the column at 2x are painted from an 1100px WebP copy made once (fetch, createImageBitmap, OffscreenCanvas) and kept in Cache Storage; it decodes in a few ms, decoding=sync, inside the same frame as the text. GIFs and small pictures keep the original; the lightbox opens the original. Profile banners use the same copies, warmed on prefetch. - corsFetch: primal's CDN caches its no-Origin answer without Vary: Origin, so a CORS fetch after the <img> got that header-less copy and failed — which had written blossom.primal.net, m.primal.net and coinos.io off as 'no CORS', so their avatars never got local thumbnails and painted late from the originals. A refusal is now retried once past the cache before a host is blamed; the old list is dropped (nocors-v2). - DM list: the unread dot sits centred at the row's end, like the communities' below, instead of beside the time. - Balance card gear: the icon alone, no circle. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Dmcrt9KyNDKVWFKnb8BREo
Diffstat (limited to 'src/style.css')
-rw-r--r--src/style.css3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/style.css b/src/style.css
index 2addd9c..8918c37 100644
--- a/src/style.css
+++ b/src/style.css
@@ -1255,7 +1255,8 @@ body::after {
.balance-switch:hover { color: var(--ink); border-color: var(--line-strong); }
.balance-switch svg { opacity: .75; }
/* the face's settings: a round icon button, no label */
-.balance-gear { width: 34px; height: 34px; padding: 0; justify-content: center; }
+.balance-gear { width: 34px; height: 34px; padding: 0; justify-content: center; background: none; border: 0; }
+.balance-gear:hover { background: none; color: var(--ink); }
/* Move-money row: the action labels are long ("Move to Spending"), so let the
row wrap to two full-width lines rather than crushing the amount field. */
.balance-move .input-group { flex-wrap: wrap; }