Koi Pond Hero

Tamsin Tea Garden

Sit a while. The fish are in no hurry.

A tea garden around a hundred-year-old pond. Loose-leaf teas, quiet tables by the water and a few old koi that like to come and say hello.

About this block

Koi Pond HeroPRO

A tea garden hero over the koi-pond background component: koi seen from above swim with a flowing S-curve over a green floor lit by drifting sunlight caustics, casting soft shadows, while lily pads with a flower or two bob on the surface. The koi gather around the cursor, a click scatters food and sends ripple rings across the water. A semibold serif headline, an intro, an Arrow Pill and an underline link sit on a soft shade in the lower corner. Every pond setting passes through the pond prop.

Hero244: Koi Pond Hero

A full-height garden hero over the koi-pond component: koi seen from above swim over a green floor lit by drifting caustics while lily pads bob on the surface. A serif headline, an intro, an Arrow Pill and an underline link sit on a soft shade in the lower left corner.

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://ui.beste.co/r/hero244?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/hero244.tsx plus the koi-pond background and the button23 and button2 buttons it uses.

Quick start

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

tsx
import { Hero244, hero244Demo } from "@/components/beste/block/hero244";

export default function Page() {
  return <Hero244 {...hero244Demo} />;
}

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

tsx
import { Hero244 } from "@/components/beste/block/hero244";

export default function Page() {
  return (
    <Hero244
      eyebrow="Tamsin Tea Garden"
      heading="Sit a while. The fish are in no hurry."
      description="A tea garden around a hundred-year-old pond, with loose-leaf teas and quiet tables by the water."
      buttons={[
        { label: "Book a table", href: "/book" },
        { label: "See the teas", href: "/teas" },
      ]}
      pond={{
        fish: 7,
        palette: "mixed",
        waterColor: "#173f39",
        lilyPads: true,
      }}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstring–Small line above the headline
headingstring–Serif headline, rendered as the page h1
descriptionstring–Intro under the headline
buttonsActionButton[][]The first renders as a light Arrow Pill, every later one as a Button2 underline link
pondOmit<KoiPondProps, "className" | "children">–Forwarded to the KoiPond component: fish count, palette, water color, lily pads, caustics, ripples, curiosity and speed
classNamestring–Extra classes for the outer <section>
ts
type ActionButton = {
  label: string;
  href: string;
};

Behavior notes

  • The koi gather around the cursor, and a click scatters food and sends ripple rings across the water.
  • The copy container is pointer-events-none with only the button row re-enabled, so the pond stays interactive right up to the text.
  • A radial shade anchored at the lower left darkens the water behind the white copy.
  • KoiPond draws on Canvas 2D, pauses through an IntersectionObserver and on hidden tabs, and respects prefers-reduced-motion.
  • With reduced motion the copy renders in place; otherwise it rises 20px with delays from 0.1s to 0.5s.
  • The section fills at least max(640px, 100svh - 78px) and pins the copy to the bottom.

More Hero blocks

View all Hero
PRO

hero276

Ripple Water Hero

PRO

hero259

Ocean Horizon Hero

PRO

hero205

Pool Caustics Hero

Get Pro access