CrazyGLCrazyGLHomeExploreGitHubBrowse heroesLoading hero…← Back to gallery@crazygl/floating-metal-frame

Screenshot in a Floating Metal Frame

Your product screenshot held inside a brushed-metal frame, lit like a physical product photograph. The frame sits at an adjustable static angle, tilts with the pointer for parallax, and optionally rotates to catch studio highlights.

ReactWebGL3DImageInteractiveFont#three#3d#screenshot#frame#metal#brushed#product#saas#premium

Usage

import FloatingMetalFrame from '@crazygl/hero-floating-metal-frame';

export default function Hero() {
	return (
		<FloatingMetalFrame
			heading="See it in action."
			screenshot="https://crazygl.com/samples/screenshot-dashboard-dark-2.avif"
			frameRoughness={0.28}
			rotationSpeed={0.05}
		/>
	);
}

Customise

  • Contentheading + subheading, two columns, or a custom node, with contentAlign/padding.
  • Screenshotscreenshot (frame auto-matches its aspect), screenScale, screenshotX/Y, screenBrightness, glassReflection.
  • FrameframeColor, frameMetalness, frameRoughness (chrome → brushed → matte), frameThickness, frameCornerRadius, frameDepth, frameClearcoat.
  • Motion — static frameAngleY/X, rotationSpeed, pointerParallax, shadowSoftness/Strength.
  • LightingkeyLight, fillLight, backLight, envIntensity (studio reflection).
  • BackgroundbgTop/bgBottom gradient.

Best for

  • Premium SaaS launch and feature pages where a screenshot must feel like a crafted object.
  • Product and design-tool showcases.
  • Polished startup landing sites needing a studio-grade hero shot.
01 · Install the package

One command, zero config.

npm install @crazygl/hero-floating-metal-frame
02 · Render the component

Import once, drop it in.

The component takes the same props you see in the live customizer on the right — every default ships poster-quality.

hero.tsx
import ScreenshotInAFloatingMetalFrame from '@crazygl/hero-floating-metal-frame';

export default function Landing() {
  return (
    <ScreenshotInAFloatingMetalFrame />
  );
}
03 · Use it in a page

SSR-safe by default.

The wrapper renders static HTML on the server and only initialises the canvas after hydration, so search engines see your copy.

page.tsx
// app/page.tsx — works in SSR-first frameworks (Next, Remix, Astro, etc.)
'use client';

import ScreenshotInAFloatingMetalFrame from '@crazygl/hero-floating-metal-frame';

export default function Page() {
  return (
    <section>
      <ScreenshotInAFloatingMetalFrame
        heading="Say hi."
        subheading="Your new hero."
      />
      <article>
        <h2>Welcome</h2>
        <p>Your content keeps its own voice below the hero.</p>
      </article>
    </section>
  );
}
You might also like

Similar heroes

Screenshot Reflected in Chrome Waves

A product screenshot floats above a slow liquid-chrome ocean. Stacked Gerstner waves stretch its reflection across the surface while specular highlights migrate with the crests; pointer movement emits single-wavefront wake rings that distort the mirror in real time.

Vertical Phone Screenshot With 3D Depth

A mobile screenshot floats inside a realistic 3D phone mockup. The phone rotates with the cursor and the screen pulses with subtle app glow. Perfect for app launch pages.

Liquid Metal Typography

Heavy 3D headline rendered as molten chrome — letters wobble with FBM noise while staying readable, pointer creates localized ripples on the surface, and clicking triggers a quick splash wavefront. Floats over an image or video backdrop with a user-selectable HDRI driving the reflections.

Screenshot as a 3D Card Stack

Your main product screenshot sits on top of a stack of secondary UI cards. The front card swoops up and over to the back at a configurable interval, autonomously cycling through every screen. Soft drop shadows, a cyan edge glow on the top card, cursor parallax tilt.

Black Glass Product Reveal

An almost-black canvas. A slow horizontal light sweeps left to right, revealing a glossy product screenshot inside a ceramic black-glass frame. Cinematic reveal for luxury SaaS, fintech, and premium B2B tools.

Floating Dashboard With Light Beam Reveal

Your product dashboard, tilted in 3D space, scanned into existence by a soft blue-purple light beam. A glowing uplight underneath and a subtle floor reflection complete the look.
Live customizer

Screenshot in a Floating Metal Frame

ScreenshotUpload a screenshot of your product. PNG / JPG / AVIF / WebP. Default is a sample dashboard. The frame auto-matches the image's aspect ratio.Frame size1.3Screenshot X offset0worldHorizontal position of the screenshot.Screenshot Y offset0worldVertical position of the screenshot.Screen brightness0.31Emissive boost on the screen plane so it reads as 'lit' rather than a flat texture. Sweet spot 0.25-0.5.Glass reflection0Strength of the front glass reflection layer. 0 = matte screen, 1 = obvious mirror gloss.Frame colorFrame metalness0.19Frame roughness0.05Lower = polished chrome. ~0.28 = brushed steel. Above 0.5 reads as matte aluminium.Frame thickness0.02relFrame border width relative to the screen size. 0.02 ≈ a barely-there micro-bezel.Frame corner radius0.055relFrame depth0.02How far the frame extrudes out of the screen plane (Z axis).Frame clearcoat0.4Clear lacquer layer on top of the brushed metal — adds a sharper highlight on top of the broad metal one.Frame yaw0°Yaw angle of the frame. Negative = tilt left.Frame pitch0°Pitch angle of the frame. Negative = tilt down.Rotation speed0rad/sOptional continuous Y-axis spin layered on top of the static angle. The whole point of the rotation is to catch studio highlights — leave at 0 for a static portrait.Pointer parallax0.6Strength of the pointer-driven tilt added on top of the static angle. 0 = no parallax, 1 = ±5° tilt response.Shadow softness0.43Spread of the contact shadow under the frame.Shadow strength0.33Opacity of the contact shadow under the frame.Key lightFill lightBack lightStudio reflection0Background topBackground bottomHeading fontInteractivityWhich input drives the hero — try Scroll if you want the page to drive motion.
CrazyGL · crazygl.comProgrammable hero sections for real websites.