diff --git a/src/components/NoteCard.tsx b/src/components/NoteCard.tsx
index 33b087e6..fb23f425 100644
--- a/src/components/NoteCard.tsx
+++ b/src/components/NoteCard.tsx
@@ -783,29 +783,39 @@ export function NoteCard({
onClick={handleCardClick}
onAuxClick={handleAuxClick}
>
-
-
- {avatarElement}
- {threaded && (
-
- )}
-
-
- {authorInfo}
+ {isFollowPack ? (
+
{contentBlock}
+
{actionButtons}
-
-
+
+
-
+ ) : (
+
+
+ {avatarElement}
+ {threaded && (
+
+ )}
+
+
+ {authorInfo}
+ {contentBlock}
+ {actionButtons}
+
+
+
+
+ )}
);
}
@@ -857,29 +867,46 @@ export function NoteCard({
})()
)}
- {/* Header: avatar + name/handle stacked */}
-
- {avatarElement}
- {authorInfo}
- {isColor && }
-
-
- {contentBlock}
-
- {/* Action buttons — hidden in compact/embed mode */}
- {!compact && (
+ {/* For follow packs / lists: content-first layout with subtle author attribution */}
+ {isFollowPack ? (
<>
- {actionButtons}
-
-
+ {contentBlock}
+
+ {!compact && (
+ <>
+ {actionButtons}
+
+
+ >
+ )}
+ >
+ ) : (
+ <>
+ {/* Header: avatar + name/handle stacked */}
+
+ {avatarElement}
+ {authorInfo}
+ {isColor && }
+
+
+ {contentBlock}
+
+ {/* Action buttons — hidden in compact/embed mode */}
+ {!compact && (
+ <>
+ {actionButtons}
+
+
+ >
+ )}
>
)}
@@ -1399,6 +1426,52 @@ function StreamContent({ event }: { event: NostrEvent }) {
);
}
+/** Subtle author attribution line for follow pack / list cards. */
+function FollowPackAuthorLine({ pubkey, createdAt }: { pubkey: string; createdAt: number }) {
+ const author = useAuthor(pubkey);
+ const metadata = author.data?.metadata;
+ const avatarShape = getAvatarShape(metadata);
+ const displayName = getDisplayName(metadata, pubkey);
+ const profileUrl = useProfileUrl(pubkey, metadata);
+
+ return (
+
+ {author.isLoading ? (
+ <>
+
+
+ >
+ ) : (
+ <>
+
+ e.stopPropagation()}>
+
+
+
+ {displayName[0]?.toUpperCase()}
+
+
+
+
+
+ e.stopPropagation()}
+ >
+ {author.data?.event ? (
+ {displayName}
+ ) : displayName}
+
+
+
·
+
{timeAgo(createdAt)}
+ >
+ )}
+
+ );
+}
+
interface EventActionHeaderProps {
/** Pubkey of the person performing the action. */
pubkey: string;