primitive · constellation

<atproto-pinned-badge>

Inline 'pinned' <mark> when a post is referenced by any actor.profile.pinnedPost.uri backlink. Effectively the 'author's pinned post' signal.

Pinned post (bsky.app's):

Non-pinned post (shown via show-when-not-pinned):

<atproto-pinned-badge src="at://..."></atproto-pinned-badge>
<atproto-pinned-badge src="at://..." show-when-not-pinned></atproto-pinned-badge>
NameTypeDefaultDescription
src * string Post AT-URI or bsky.app URL.
show-when-not-pinned boolean Render a muted 'not pinned' label when there's no backlink. Default: hide the component entirely if not pinned.
constellation string Override the Constellation endpoint.

External CSS can target these via atproto-pinned-badge::part(<name>) { ... }.

PartWhat it is
badgeThe <mark> element when the post is pinned.
noneThe muted fallback label when not pinned (hidden by default).

Checks Constellation for any backlink from app.bsky.actor.profile. pinnedPost.uri pointing at this post URI. Normally a post is only pinned by its own author — profiles are one-per-repo, pinnedPost is a single URI field. A non-zero count means SOMEONE pinned it; realistically that's the author.

<atproto-gate-badge> — similar mechanic for threadgate / postgate. <atproto-generic-count> with the same source gives you the number instead of the badge.