Measured entry
kibo-image-crop
imageminimal-flatdo not use
A shadcn registry component for composing an image crop area with optional apply and reset controls. It reads a File in the browser and returns a cropped PNG data URL through canvas, using react-image-crop, Lucide icons, Radix Slot, Tailwind utilities, a cn helper, and a shadcn Button.
No frame on record for this entry
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 | FAIL |
|---|---|
| Mount | FAIL |
| Console errors | 0 |
| Uncaught page errors | 1 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | not recorded |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | none |
What the harness recorded
BUILD
✗ Build failed in 1m 27s error during build: [vite]: Rollup failed to resolve import "@repo/shadcn-ui/components/ui/button" from "<sandbox>/src/cut/index.tsx".
PAGE ERROR
build failed
BARE BUILD
✗ Build failed in 1m 33s error during build: [vite]: Rollup failed to resolve import "@repo/shadcn-ui/components/ui/button" from "<sandbox>/src/cut/index.tsx".
Verdict
Useful primitives for a shadcn app, but this publication fails because its Button import points at the author's private repository alias. It needs a shadcn-style setup and source edits before it can build, and the ineffective output-size retry deserves correction before production use.
Use it if
- You want browser-side cropping from a File and can accept a PNG data URL as the result.
- You need composable crop content, apply, and reset controls rather than a fixed dialog or upload flow.
- Your app already follows shadcn conventions and you are willing to replace the source repository's Button import.
Skip it if
- You need a drop-in component that builds outside the author's monorepo without import changes.
- You require dependable output-size enforcement, because the oversized-image retry does not actually reduce the canvas dimensions.
- You need server-side cropping, preserved image metadata, or an uploaded file rather than a browser-generated data URL.
- You require verified runtime accessibility results, since the component did not build or mount in the harness.
Install
| Declared dependencies | lucide-react, radix-ui, react-image-crop |
|---|---|
| Missing on install | react-image-crop |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
For a non-shadcn project, install react-image-crop, lucide-react, and radix-ui; import the crop library stylesheet; provide equivalents for Button and cn; replace both repository aliases; and supply the Tailwind utilities and theme variables used by the markup. Keep it client-only because it relies on FileReader, image elements, and canvas.
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/shadcnblocks/kiboAlternatives
Other published entries for the image pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- magicui-androidskeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 17.8KB
- Bare
- pass
- Prov
- NO
- magicui-iphoneskeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 18.5KB
- Bare
- pass
- Prov
- NO
- magicui-safariskeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 20.8KB
- Bare
- pass
- Prov
- NO
- kibo-image-zoomminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 36.6KB
- Bare
- pass
- Prov
- NO
- ruixen-scroll-tilted-gridunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 60.5KB
- Bare
- pass
- Prov
- NO
- magicui-lens3d
- Renders
- YES
- A11y
- 0
- Gzip
- 63.5KB
- Bare
- pass
- Prov
- NO