Measured entry

magicui-iphone

imageskeuomorphism

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.

Specimen
Harness screenshot of magicui-iphone at 375 pixels wide
Harness screenshot at 375 pixels wide. No horizontal overflow recorded.
Harness screenshot of magicui-iphone at 768 pixels wide
Harness screenshot at 768 pixels wide. No horizontal overflow recorded.
Harness screenshot of magicui-iphone at 1440 pixels wide
Harness screenshot at 1440 pixels wide. No horizontal overflow recorded.

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.

Harness measurements recorded for magicui-iphone
BuildOK
MountOK
Console errors0
Uncaught page errors0
Horizontal overflowclean at 375, 768, 1440
Axe critical0
Axe serious0
Axe moderate0
Axe minor0
Gzip marginal18.5 KB (83.9 KB build, 65.4 KB baseline)
Bare modeOK
Provider requiredNO
Demo usedwritten 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

Installation record for magicui-iphone
Declared dependenciesnone declared
Missing on installnone
Bare installbuilds and mounts without the shadcn-style helpers
Providerno 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.

License
MIT
Record published
2026-08-13

Alternatives

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.