Linked Alternating Slabs

About this block

Linked Alternating SlabsPRO

Full-width ruled rows that alternate the photograph left and right, each row a whole link carrying a large serif title, a paragraph and a meta line beside an arrow that lifts as the row tints on hover.

Showcase53: Linked Alternating Slabs

Full-width ruled rows that alternate the photograph left and right, each row a whole link.

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/showcase53?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/showcase53.tsx plus the text1 word stagger it uses.

Quick start

The installed file exports showcase53Demo alongside the block: the exact props behind the preview above. Spread it to get a working linked Alternating Slabs in one line.

tsx
import { Showcase53, showcase53Demo } from "@/components/beste/block/showcase53";

export default function Page() {
  return <Showcase53 {...showcase53Demo} />;
}

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

tsx
import { Showcase53 } from "@/components/beste/block/showcase53";

export default function Page() {
  return (
    <Showcase53
      eyebrow="The rooms"
      heading="Every space, and what it is for."
      slabs={[
        {
          title: "The front room",
          description: "Two armchairs and a door that closes properly.",
          meta: "Rua da Prata, second floor",
          href: "/rooms/front",
          image: { src: "/rooms/front.jpg", alt: "A sunlit room with two low armchairs" },
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstring–Small-caps line above the heading
headingstring–Section heading, rendered as an h2 through Text1
slabsSlab[][]Linked rows; every second one flips
classNamestring–Extra classes for the outer <section>
ts
type Slab = {
  title: string;
  description: string;
  meta?: string;
  href: string;
  image: Image;
};

type Image = { src: string; alt: string };

Behavior notes

  • Flipped rows use explicit md:col-start-* with md:row-start-1 rather than an order utility, because reordering alone pushes the photograph onto a second grid row.
  • The whole row is one Link, so the photograph and the copy lead to the same page and the row tints as a unit on hover.
  • Rows carry no index: the alternation and the rule between them already say where one ends and the next begins, so a number would be decoration.
  • The block ships no pill: the rows are the navigation, which is why it carries text1 but not button22.
  • Rows collapse to a single column below md, photograph first, so the alternation costs nothing on a phone.
  • Each row owns its own scroll listener and drifts -8% to 8% against a 1.18 scale.
  • Photos clear from blur(24px) on decode, with a complete check for cached files.

More Showcase blocks

View all Showcase
PRO

showcase45

Alternating Asset Rows

PRO

showcase52

Linked Programme Cards

PRO

showcase37

Showcase Scroller

Get Pro access