Developer Record Photo Pair

Hartwell & Lowe

20 years of giving old buildings a second life

Alder Row is the developer's seventh scheme, and like the six before it, it starts with a building worth keeping.

An arched warehouse window lit at dusk, with brick around it and a birch branch in front
Ropewalk, Glasgow, 2016
An entrance hall with a cast iron column, an oak stair and a tall arched window
Maltings Row, Norwich, 2024
About this block

Developer Record Photo PairPRO

A minimal developer record: the heading and a short line on the left, and two tall photographs of past schemes on the right, the second set a little lower, each opening from the top once loaded and captioned with the scheme, city and year.

Realestate53: Developer Record Photo Pair

A minimal developer record: the heading and a short line on the left, and two tall photographs of past schemes on the right, the second set a little lower, each opening from the top once loaded and captioned with the scheme, city and year.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://beste.dev/r/realestate53?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://beste.dev/r-base/realestate53?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/realestate53.tsx plus the badge24 rule eyebrow; no shadcn/ui primitives are needed.

Quick start

The installed file exports realestate53Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.

tsx
import { Realestate53, realestate53Demo } from "@/components/beste/block/realestate53";

export default function Page() {
  return <Realestate53 {...realestate53Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Realestate53 } from "@/components/beste/block/realestate53";

export default function Page() {
  return (
    <Realestate53
      eyebrow="Hartwell & Lowe"
      heading="20 years of giving old buildings a second life"
      description="Every scheme starts with a building worth keeping."
      photos={[
        { src: "/schemes/ropewalk.webp", alt: "Ropewalk at dusk", caption: "Ropewalk, Glasgow, 2016" },
        { src: "/schemes/maltings.webp", alt: "The Maltings Row stair", caption: "Maltings Row, Norwich, 2024" },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstring–Short line above the heading, rendered through badge24.
headingstring–Section heading.
descriptionstring–Short line under the heading.
photosPhoto[][]Two portrait photographs; only the first two are shown.
classNamestring–Extra classes merged onto the section.
ts
type Photo = { src: string; alt: string; caption: string };

Behavior notes

  • On desktop the text takes five of twelve columns and the photographs seven; the text sits vertically centred beside them. On phones the text comes first and the two photographs follow side by side.
  • The photographs are 3:4 and the second is set mt-12 lower for a quiet offset. Each stays clipped until its file has loaded and its frame is in view, then opens from the top over 1.6 s while settling from a 1.18 to a 1.12 scale, and drifts from -6% to 6% with the scroll; captions fade up 0.6 s after their photo.
  • With prefers-reduced-motion every initial state is skipped and the photographs render in place.

More Real Estate blocks

View all Real Estate
PRO

realestate78

Minimal Development Footer

PRO

realestate65

Offset Photo Pair with Statement

PRO

realestate80

Partner Agents Side by Side

Get Pro