Crystal/Showcase
Back to Components

Device Mockups

Phone and browser frames for showcasing app screenshots and videos

CrystalDevicePhone

Default (Dark Frame)

App screenshot

Light Frame

App screenshot

Custom Color

App screenshot

With Custom Children

Custom Content

CrystalDeviceWindow

NEW

Generic OS window frame with traffic lights - simpler than Browser (no URL bar). Perfect for dashboards, app interfaces, and settings panels.

Muted Traffic Lights (Default)

Dashboard
Dashboard screenshot

Colorful Traffic Lights

Terminal
$ pnpm --filter crystal-ui dev
Starting development server...
Ready on http://localhost:3200

Without Title

App screenshot

CrystalDeviceBrowser

Browser window frame with traffic lights + URL bar. Use when showcasing websites.

With URL Bar

https://artasce.com
Website screenshot

Without URL

https://
Website screenshot

With Custom Children

https://example.com
Custom Content

Phone Props

PropTypeDefaultDescription
srcstring-Image source URL
videoSrcstring-Video source URL (takes precedence)
frameColorstring#1a1a1aFrame border color
childrenReactNode-Custom content for the screen
autoPlaybooleantrueVideo autoplay
loopbooleantrueVideo loop

Usage

Phone Examples
import { CrystalDevicePhone } from '@artasce/crystal-ui';

// With image
<CrystalDevicePhone
  src="/screenshots/app-home.png"
  alt="App home screen"
/>

// With video
<CrystalDevicePhone
  videoSrc="/videos/app-demo.mp4"
  poster="/screenshots/app-home.png"
/>

// Custom frame color
<CrystalDevicePhone
  frameColor="#ff7c0a"
  src="/screenshot.png"
/>

// Custom children
<CrystalDevicePhone>
  <div className="bg-gradient-to-b from-blue-500 to-purple-600">
    Custom content
  </div>
</CrystalDevicePhone>
Browser Examples
import { CrystalDeviceBrowser } from '@artasce/crystal-ui';

// With URL and image
<CrystalDeviceBrowser
  url="https://artasce.com"
  src="/screenshots/landing.png"
/>

// With video
<CrystalDeviceBrowser
  url="https://app.example.com"
  videoSrc="/videos/dashboard-demo.mp4"
/>