Skip to content

Hero

Hero Bento

Inner page opening above a grid of a large cover photo and two photo + fact rows.

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

Installation

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

Usage

import { HeroBento } from "@/components/hero-bento";

<HeroBento
  title="About us"
  cover={{ image: { src: "/about/team.jpg", alt: "Our team" }, label: "Northstar", text: "Helping brands grow." }}
  facts={[
    { image: { src: "/about/1.jpg", alt: "…" }, title: "Campaigns delivered", value: "100+" },
    { image: { src: "/about/2.jpg", alt: "…" }, title: "Raised by our clients", value: "$10M+" },
  ]}
/>

Props

PropTypeDefaultDescription
as"h1" | "h2""h1"Heading level of the title.
breadcrumbs{ label, href? }[]Home / AboutTrail above the heading; [] hides it.
title / descriptionstring—Page heading and the text under the divider.
cover{ image: { src, alt }, label?, text }—Large photo with a small label and a line of text over its bottom edge.
facts[fact, fact] — { image, title, value, caption? }—Two rows: photo beside a card with a statement, a big figure and a caption.
classNamestring—Classes for the <section>.
  • Below 768px everything stacks; from 768px each fact row is 340px tall and the second row puts its card first; from 1024px the grid is 700px tall with the cover on the left.
  • The first card uses the muted surface, the second primary. Text over the cover is white on a black gradient in every theme — photos don't follow the theme.
  • No motion.

AI prompt

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

Create a React + Tailwind CSS block called HeroBento (Next.js).
- <section className="py-(--section-y)">, container mx-auto max-w-(--container) px-(--gutter), column gap-12.
- Page title: breadcrumbs (text-sm muted, "/" separators), h1 font-heading text-h1 font-semibold tracking-tight, an <hr>, and a
  text-lead muted description max-w-xl.
- Grid: column gap-5; from 1024px a 700px-tall row. Left: a cover photo (rounded-xl, square below 768px, 5:3 from 768px, fills
  the height from 1024px) with a bottom gradient (transparent → black/60) holding white text: a small label and a
  font-heading text-h3 line. Right: two rows (340px tall from 768px, equal share from 1024px), each a photo (7:5 on phones)
  beside a card (h-75 on phones) — the second row reversed from 768px. Card: rounded-xl p-6, statement (font-heading text-h3)
  at the top, a font-heading text-h1 figure and a small caption at the bottom; first card bg-muted, second
  bg-primary text-primary-foreground.
- Only shadcn variables and block tokens; plain <img> with alt text. No motion.

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