aboutsummaryrefslogtreecommitdiffstats
path: root/src/style.css
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-27 19:10:05 -0700
committerAdam Soltys <[email protected]>2026-09-27 19:10:05 -0700
commit55cb118f25ddd69ffe9cc4bd44a36b1e689ee19e (patch)
tree2446aaf0c3827ac124d9c75d967b62a8ef6d6f5a /src/style.css
parent10b7a97a3ecfc2f8e084c81520c78942ac745ec5 (diff)
downloadcoinosv3-55cb118f25ddd69ffe9cc4bd44a36b1e689ee19e.tar.gz
coinosv3-55cb118f25ddd69ffe9cc4bd44a36b1e689ee19e.zip
Links in posts show as the cards their pages describe.
A plain link becomes an Open Graph card: picture, title, a line, the site. The registrar fetches the page on the reader's behalf (names/preview.js, GET /preview?url=): only public hosts, at most half a megabyte of HTML, cached a day. The client warms the card with the rest of the post so the row arrives whole, keeps a few hundred cards across sessions, and leaves a page with nothing to say as a bare link. Pictures and YouTube keep their boxes. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01VhUKyXKtsJ67QAFfb7QR9D
Diffstat (limited to 'src/style.css')
-rw-r--r--src/style.css15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/style.css b/src/style.css
index 1e5a1c7..11b9cf0 100644
--- a/src/style.css
+++ b/src/style.css
@@ -833,6 +833,21 @@ html.no-scroll { overflow: hidden; scrollbar-gutter: auto; }
padding: 4px 7px; border-radius: 8px; background: rgba(18, 18, 18, .6); text-decoration: none;
}
.yt-open:hover { background: rgba(18, 18, 18, .85); text-decoration: none; }
+/* A link, as the card its page describes: picture on top, title, a line,
+ the site. The whole card is the link. */
+.link-card {
+ display: block; margin-top: 6px; border: 1px solid var(--line); border-radius: 10px;
+ overflow: hidden; color: inherit; text-decoration: none; background: var(--surface2);
+}
+.link-card:hover { text-decoration: none; border-color: var(--line-strong); }
+.link-thumb { display: block; width: 100%; max-height: 220px; object-fit: cover; background: var(--surface2); }
+.link-meta { padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
+.link-title, .link-desc {
+ display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere;
+}
+.link-title { font-weight: 600; line-height: 1.3; }
+.link-site { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+.quote-card .link-thumb { max-height: 140px; }
/* the profile notes feed: page-scrolled (no inner scrollbox); on phones it
runs edge to edge — the card walls step outside #app's padding */
.notes-feed { padding: 2px 14px; }