shadcn.io is an independent project built on shadcn/ui
The engagement row, twice. The first spells out Like, Comment, and Share. The second is icon-only, and each button has a name. The rows do not share state. Nothing shows a post as already liked, and there is no count.
Use the labels when there is room and the icons in a dense feed. Sharing can open a Dropdown Menu. In Svelte, Ark UI does not record the like.
Installation
Anatomy

Usage
<div class="flex flex-col gap-4"><ButtonGroup aria-label="Post actions"><Button size="sm" variant="outline"><HeartIcon aria-hidden="true" data-icon="inline-start" />Like</Button><Button size="sm" variant="outline"><MessageCircleIcon aria-hidden="true" data-icon="inline-start" />Comment</Button><Button size="sm" variant="outline"><Share2Icon aria-hidden="true" data-icon="inline-start" />Share</Button></ButtonGroup><ButtonGroup aria-label="Post actions"><Button aria-label="Like" size="icon-sm" variant="outline"><HeartIcon aria-hidden="true" /></Button><Button aria-label="Comment" size="icon-sm" variant="outline"><MessageCircleIcon aria-hidden="true" /></Button><Button aria-label="Share" size="icon-sm" variant="outline"><Share2Icon aria-hidden="true" /></Button></ButtonGroup></div>FAQ
What is in the labeled row?
Like, Comment and Share, each with an icon, size="sm" and variant="outline". The second group repeats the same three icons with no visible text.
How are the icon-only buttons named?
Each Button in the second group has an aria-label, Like, Comment or Share, and size="icon-sm". The icons have aria-hidden="true".
How do I show that a post is liked?
Keep a liked flag, switch that button's variant to default and set aria-pressed. The Like with Count example shows the liked state.
How do I add the number of likes?
Put a ButtonGroupText after the button with the count, as in Like with Count. This demo shows no counts.
API Reference
Button Group
Sets aria-label="Post actions". The rest is on the Button Group page.
Button
Sets size="sm", variant="outline", aria-label="Like", size="icon-sm", aria-label="Comment" and aria-label="Share". The rest is on the Button page.




