Measured entry
tripled-heart-favorite-shadcnui
buttonminimal-flatmotion on file
A client-side React favorite toggle shipped as a shadcn registry component. It keeps liked state locally, animates the tap and heart fill with Framer Motion, renders a Lucide heart, and relies on Tailwind utility classes for spacing, color, hover states, and dark mode.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | flagged at 375 |
| Axe critical | 1 |
| Axe serious | 1 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 61.8 KB (127.3 KB build, 65.5 KB baseline) |
| Bare mode | OK |
| Provider required | NO |
| Demo used | written from the component source API |
Verdict
A pleasant, focused micro-interaction with clean local behavior, but it is not production-ready unchanged. Add an accessible button name, address contrast, reduce or adapt the generous wrapper spacing for narrow layouts, and wire the state to real data.
Use it if
- You need a self-contained favorite control whose state does not need to be shared or persisted.
- Your app already uses Framer Motion, Lucide React, and Tailwind utilities.
- You are prepared to add an accessible name and connect the toggle to application state.
Skip it if
- You need an accessible control without modification, since the icon-only button has no discernible name and the demo also has a contrast failure.
- You need a controlled favorite state, persistence, or a server mutation built into the component.
- You are avoiding Framer Motion for a small interaction or need the supplied multi-item demo to fit narrow screens without layout changes.
Install
| Declared dependencies | framer-motion, lucide-react, react |
|---|---|
| Missing on install | none |
| Bare install | builds and mounts without the shadcn-style helpers |
| Provider | no provider required in the harness |
In a non-shadcn React project, add Framer Motion and Lucide React, copy the client component, and provide Tailwind or equivalent styles for its utility classes. Add an accessible label, then replace or synchronize the local liked state if the value must persist.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/moumen-soliman/uitripledAlternatives
Other published entries for the button pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- neu-buttonneumorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 17.8KB
- Bare
- pass
- Prov
- NO
- clay-buttonclaymorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 18.2KB
- Bare
- pass
- Prov
- NO
- tripled-animated-radio-shadcnuiminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 58.2KB
- Bare
- pass
- Prov
- NO
- ruixen-glow-link-buttonliquid-glass
- Renders
- YES
- A11y
- 0
- Gzip
- 58.9KB
- Bare
- pass
- Prov
- NO
- tripled-mood-gradient-button-shadcnuigradient-glow
- Renders
- YES
- A11y
- 0
- Gzip
- 59.2KB
- Bare
- pass
- Prov
- NO
- ruixen-glass-ai-cardliquid-glass
- Renders
- YES
- A11y
- 0
- Gzip
- 59.5KB
- Bare
- pass
- Prov
- NO