Measured entry
magicui-iphone
A responsive iPhone-style device frame built as a single React and TypeScript component from the Magic UI shadcn registry. It combines an SVG shell with an optional image or autoplaying muted video layer, declares no package dependencies, and relies on React plus Tailwind-style utility classes for layout, color, 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 | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 18.5 KB (83.9 KB build, 65.4 KB baseline) |
| Bare mode | OK |
| Provider required | NO |
| Demo used | written from the component source API |
Verdict
A focused, dependable mockup for presenting portrait app media. It builds and mounts cleanly even outside a shadcn scaffold, but the empty image alternative text and control-free looping video make it best suited to decorative previews rather than primary content.
Use it if
- You need a portrait phone frame for app screenshots in a landing page or case study.
- You want the same frame to accept either a static image or a looping muted product clip.
- Your project already supports the utility classes used for sizing, positioning, and dark mode.
Skip it if
- The content inside the phone must remain interactive, since the media layer ignores pointer input and the video has no controls.
- You need a device-neutral mockup or an exact representation of a different phone model.
- Your media needs its own accessible description or playback controls without modifying the component.
- A fixed portrait phone aspect ratio does not fit the composition you are building.
Install
| Declared dependencies | none declared |
|---|---|
| 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 project, copy the component into the codebase and provide React, TypeScript support, and Tailwind-compatible utilities. If Tailwind is unavailable, replace the utility classes with equivalent positioning, sizing, object-fit, fill, stroke, and dark-theme CSS.
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/magicuidesign/magicuiAlternatives
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-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
- ruixen-glass-image-editorliquid-glass
- Renders
- YES
- A11y
- 0
- Gzip
- 65.3KB
- Bare
- pass
- Prov
- NO