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.
Live
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> Attributes
| Name | Type | Default | Description |
|---|---|---|---|
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. |
Parts
External CSS can target these via atproto-pinned-badge::part(<name>) { ... }.
| Part | What it is |
|---|---|
badge | The <mark> element when the post is pinned. |
none | The muted fallback label when not pinned (hidden by default). |
How it knows
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.
Related
<atproto-gate-badge> — similar mechanic for
threadgate / postgate. <atproto-generic-count> with
the same source gives you the number instead of the badge.