Skip to content
Pebble Pro is here at $49 one timeSee what’s included ↗
Pebble
ComponentsDocsMCPPricing
⌕ Find a component↗Log in
All components 673

Categories

Core inputs & forms46Buttons & actions33Navigation36Overlays & feedback49Data display33Charts & data viz40Cards & layout43Marketing blocks38App shells & pages37AI interfaces40Text & typography effects33Backgrounds & visual effects38Motion & transitions32Numbers & counters32Media34E-commerce333D & interactive36Themed sets40
Start with the essentials.Installation guide ↗Connect your agent ↗
← All componentsButtons & actions

Vote Button

Reaction controls: a heart like with a spark burst and rolling count, an up/down vote with score, a bookmark toggle and a share menu with copy-link feedback.

Preview

IM

Ines Moreau

Design systems · 2h ago

We cut our token set from 214 to 61 values and nobody noticed, except the bundle. Notes on what we merged and what we kept.

Score 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 910 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 980 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
46
Score 40 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 920 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9

Priya Shah

Debounce the resize observer, then read layout once per frame. The jank came from measuring inside the scroll handler.

Score 70 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9

Tomás Rey

A CSS-only fallback works if you can live without the sticky header shadow.

Install

Pro source requires Pebble Pro. Try the full preview above.

Props

PropTypeDefaultDescription
liked / defaultLiked / onLikedChangeboolean / boolean / (liked) => void— / false / —LikeButton state.
countnumber—LikeButton. Likes from others; the viewer's like is added. Omit for icon-only.
value / defaultValue / onValueChange-1 | 0 | 1— / 0 / —VoteControl state. Pressing the active arrow clears it.
scorenumber—VoteControl. Score from others; the viewer's vote is added. Required.
orientation"horizontal" | "vertical""horizontal"VoteControl layout.
itemLabelstring—VoteControl. Appended to labels, e.g. "Upvote answer by Priya".
saved / defaultSaved / onSavedChangeboolean / boolean / (saved) => void— / false / —BookmarkButton state.
url / title / targetsstring / string / ShareTarget[]— / "" / Email, MessageShareButton. Targets are { label, icon?, href(url, title) }.
showLabelbooleanfalseBookmarkButton / ShareButton. Text next to the icon.
size"sm" | "md""md"All parts. 28 or 32 px.

Pro component

Try the full preview above. Editable source and build guides require Pebble Pro.

Buy Pebble Pro — $49How source access works ↗
Pebble

Small details.
Better interfaces.

React components to explore, make your own, and build on.

Library

  • Components
  • Installation
  • Pricing

Resources

  • For agents
  • About
  • Support

Legal

  • License
  • Terms
  • Privacy
  • Final sale

Built by Pebble

A product of Praxys Solutions LLC ↗

Pebble Pro is live

$49 one time, lifetime updates ↗