Skip to content

Product Shot Hero

A dominant framed app-window screenshot mock with the headline as a caption above it.

DOM + CSS1 dep1 file · 2 KB TSX

Prominimalglass
Preview

Props

3D tilt on window

The source is part of Pro

$27/month or $179 once. See Pro

Requires framer-motion
"use client";

// Full-size shippable hero. The registry preview above is a scaled-down
// stand-in for this component at normal type scale.
import { motion } from "framer-motion";

function AppWindow({ tilt }: { tilt: boolean }) {
  return (
    <motion.div
      initial={{ opacity: 0, y: 28, rotateX: tilt ? 10 : 0 }}
      animate={{ opacity: 1, y: 0, rotateX: tilt ? 10 : 0 }}
      transition={{ duration: 0.7, ease: [0.16, 1, 0.3, 1] }}
      style={{ perspective: 1200 }}
      className="w-full max-w-4xl overflow-hidden rounded-2xl border border-white/10 bg-zinc-950 shadow-2xl"
    >
      <div className="flex items-center gap-2 border-b border-white/10 px-5 py-3">
        <span className="h-3 w-3 rounded-full bg-white/20" />
        <span className="h-3 w-3 rounded-full bg-white/20" />

  // ---------------------------------------------------------------
  // Full source available with a viberdy Pro subscription.
  // https://viberdy.dev/pricing
  // ---------------------------------------------------------------
}
Details

About this heroe

The structural bet here is proportion: the screenshot, not the sentence, gets the majority of the hero's real estate, so the headline is deliberately written and sized as a caption rather than a statement that needs room to breathe. It works for anything with a genuinely good-looking interface — the fake window here should be swapped for a real screenshot the moment this ships — and it's the wrong choice for products where the interface is incidental to the value (an API, a service, a policy change). The one non-obvious detail: the tilt is done with a CSS `perspective` set via inline `style` on the wrapper plus a Framer `rotateX`, not a Tailwind utility, because there is no theme token for perspective and 3D transforms need the perspective and the rotated element in a specific parent/child relationship to render correctly. Caveat: heavy tilt reads as gimmicky past about 10-12 degrees and can clip drop shadows at the frame edge — keep it subtle.

Pairs well with

Pro
Featured
Pro
Featured
Pro