Measured entry
kokonut-card-flip
buttondark-futuristicmotion on file
A client-side React promo card that rotates on hover to reveal a description, feature list, and CTA. It ships as a shadcn registry TSX component styled with Tailwind utilities, and depends on React state, lucide-react icons, and the shared cn utility imported through the usual project alias.



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 | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 30.4 KB (95.8 KB build, 65.4 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 1m 14s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/components/kokonutui/card-flip.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A polished starting point for hover-led promo cards, but not a drop-in interaction for every input method. The verified package builds and mounts in the prepared harness; bare use fails because it needs a shadcn-style setup, especially the aliased cn utility. Add touch and keyboard behavior before production use.
Use it if
- You need a compact promotional card with a reveal interaction for pointer-based interfaces.
- Your app already uses Tailwind, the shadcn project alias, and a shared cn helper.
- You are prepared to connect the included CTA button to real application behavior.
Skip it if
- The hidden content must be reliably available to touch or keyboard users without adaptation.
- You need a standalone button rather than a fixed-format promotional card containing a button.
- Your project does not use Tailwind and you do not want to translate its utility-heavy styling.
- You need a CTA that works immediately, since the supplied button has no action handler.
Install
| Declared dependencies | lucide-react |
|---|---|
| Missing on install | none |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
In a non-shadcn project, add Tailwind with support for the utilities used here, install lucide-react, provide a cn class-merging helper, and either configure the at-sign project alias for the lib utility or change that import to a local path. Wire the CTA and add an explicit flip control for touch and keyboard access.
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/kokonut-labs/kokonutuiAlternatives
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