Skip to content

Hero

Hero Showreel

A short line beside a display heading, a text block with a corner mark and two buttons, and a small showreel of your work.

Layout and motion from the Kalme template — see it in context

Installation

$ npx shadcn@latest add https://framebrick.co/r/blocks/hero-showreel.json

Usage

import { HeroShowreel } from "@/components/hero-showreel";

<HeroShowreel
  label="Digital marketing that drives growth"
  title="Lift your brand with work people remember"
  actions={[
    { label: "Start a project", href: "/contact" },
    { label: "Our case studies", href: "/projects" },
  ]}
  images={["/work/one.jpg", "/work/two.jpg", "/work/three.jpg", "/work/four.jpg"]}
  caption={["Studio showreel", "(Clients — 2018/2026)"]}
/>

Props

PropTypeDefaultDescription
as"h1" | "h2""h1"Heading level — h1 when the hero opens the page.
label / title / textstring—The short line (a 150px column beside the heading from 1024px), the display heading and the text under the corner mark.
actions{ label, href }[]—Up to two buttons: filled, then outlined.
imagesstring[]4 photosFrames of the showreel (decorative, 5:3).
caption[string, string?]—Two short lines under the showreel.
intervalnumber2000Milliseconds each frame stays.
classNamestring—Classes for the <section>.
  • On phones the showreel comes first, full width, and the text under it; from 768px the text sits at the left and the showreel (250px, 300px from 1024px) at the right; from 1024px the text is indented 200px and both align to the bottom.
  • The showreel cuts to the next frame every 2s with no transition and holds the first with reduced motion (showreel). The buttons roll their label (flip-button).

AI prompt

Paste into v0, Lovable, Bolt or Claude to rebuild this block in your own project.

Create a React + Tailwind CSS block called HeroShowreel (Next.js).
- <section className="py-(--section-y)">, container mx-auto max-w-(--container) px-(--gutter), column gap-8 / md:gap-12.
- Title row: a muted line above the h1 (font-heading text-display semibold); from 1024px the line is a 150px column beside the heading (750px,
  pt-4 on the line, gap-12).
- Details: phones — a 5:3 showreel (rounded-xl) full width, then the text; from 768px a row (justify-between, items-start; items-end from
  1024px): the text block (lg: pl-50) and the showreel (250px / 300px wide) with two muted text-sm caption lines under it.
- Text block: a 14px corner mark (border-t-2 border-r-2 border-foreground, pt-1.5 pr-4 around it), then the text (text-lead, max 325px) and two
  buttons (filled, outline) whose label rolls up on hover (spring bounce 0, 0.4s).
- Showreel: frames stacked, the next one shown every 2s with no transition (the others invisible); the first only with prefers-reduced-motion.
- Only shadcn variables and block tokens; plain <img>.

Be the first to know

Get new templates and components first

One short email when we release a template or a free component. No spam — unsubscribe anytime.

We use your email only for Framebrick updates. Privacy policy