diff --git a/client-app/components/feed/PostCard.tsx b/client-app/components/feed/PostCard.tsx
index b823833..9c654c6 100644
--- a/client-app/components/feed/PostCard.tsx
+++ b/client-app/components/feed/PostCard.tsx
@@ -195,8 +195,10 @@ function PostCardInner({ post, likedByMe, onStatsChanged, onDeleted, compact }:
- {/* Content column */}
-
+ {/* Content column. overflow:'hidden' stops a long unbreakable
+ token (URL, hashtag) from visually escaping the card — it'll
+ be ellipsized or clipped instead. */}
+
{/* Header: [name] · [time] … [menu]
All three on a single row with no wrap. The name shrinks if
too long (flexShrink:1 + numberOfLines:1), time never shrinks
@@ -243,7 +245,12 @@ function PostCardInner({ post, likedByMe, onStatsChanged, onDeleted, compact }:
)}
- {/* Body text with hashtag highlighting */}
+ {/* Body text with hashtag highlighting.
+ flexShrink:1 + explicit width:'100%' + paddingRight:4 keep
+ long lines inside the content column on every platform. On
+ Android a few RN versions have been known to let the inner
+ Text spans overflow the parent by 1-2 px without an explicit
+ width declaration — hence the belt-and-braces here. */}
{post.content.length > 0 && (
{renderInline(post.content)}