Magazine MosaicPRO

A six-slot magazine mosaic with a parenthetical eyebrow and a large heading, pairing a dominant two-by-two tile with a tall tile, wide tiles, and unit tiles that each caption their photo over a graded scrim.

Blog50: Magazine Mosaic

A blog listing section that lays articles into a fixed magazine mosaic of six tiles: a dominant two-by-two tile, a tall tile, two wide tiles, and two unit tiles, each captioning its own photo over a graded scrim. The tile shape belongs to the position in the grid, so the mosaic keeps its rhythm whatever the copy length.

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

Base UI flavor

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

This installs the block to components/beste/block/blog50.tsx and its dependencies, including the Badge7 component it renders.

Quick start

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

tsx
import { Blog50, blog50Demo } from "@/components/beste/block/blog50";

export default function Page() {
  return <Blog50 {...blog50Demo} />;
}

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

tsx
import { Blog50 } from "@/components/beste/block/blog50";

export default function Page() {
  return (
    <Blog50
      badge={{ label: "Press office" }}
      heading="Northwind newsroom"
      description="Operating updates and filings, published as they are released."
      items={[
        {
          image: { src: "/press/aragon.jpg", alt: "Storage containers at dusk" },
          category: "Operations",
          title: "Northwind opens its second grid-scale storage site in Aragon",
          date: "Mar 4, 2026",
          author: { name: "David Chen", title: "Backend Engineer" },
          href: "/press/aragon-storage",
        },
        {
          image: { src: "/press/q1.jpg", alt: "Quarterly figures on a table" },
          category: "Markets",
          title: "First-quarter revenue rises 12 percent",
          date: "Feb 26, 2026",
          author: { name: "Lisa Park", title: "Senior Developer" },
          href: "/press/q1-revenue",
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badgeBadgeBadge7 parenthetical eyebrow above the heading
headingstringSection heading
descriptionstringMuted supporting paragraph under the heading
itemsArticle[][]Articles placed into the mosaic tiles, in order
classNamestringExtra classes merged onto the outer section element
ts
type Badge = {
  label: string;
};

type Article = {
  image: ArticleImage;
  category: string;
  title: string;
  date: string;
  author: Author;
  href: string;
};

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

type Author = {
  name: string;
  title?: string;
  avatar?: { src: string; alt: string };
  href?: string;
};

Only author.name is rendered, in the tile byline. The optional title, avatar, and href fields on the author exist for shape parity with the other blog blocks and are not displayed here.

Behavior notes

More Blog blocks

View all Blog
PRO

blog56

Category Mosaic

A six-slot photo mosaic under a parenthetical eyebrow and a large heading, where every tile is bound to one newsroom category so the grid doubles as a section map, with a ruled legend naming the sections above it.

PRO

blog51

Mixed Tile Mosaic

A six-slot mosaic under a parenthetical eyebrow and a large heading, mixing full-bleed photo tiles with flat text tiles on muted and inverted surfaces, where the treatment belongs to the slot and every tile advances one story through a larger article pool on a timer, staggered 100 milliseconds apart so the refresh reads as a wave running left to right, pausing on hover, focus, hidden tabs, and reduced motion.

PRO

blog43

Editorial Article Grid

A blog listing with an eyebrow over a hairline rule, a two-column heading, and three linked article cards with a hover-zoom image, a category label, a title, an excerpt, and byline.

PRO

blog27

Newspaper Editorial Style

Classic newspaper layout with serif fonts and bordered headline. Large main story on left, stacked secondary stories on right with dividers.

PRO

blog62

Newsletter Panel With Back Issues

A blog section splitting a bordered container between the newsletter pitch with a cadence line on a hairline and an image tile holding a working subscribe row, over three linked back issues.

PRO

blog52

Newsroom Masonry

A CSS-columns masonry of linked newsroom cards under a parenthetical eyebrow and a large heading, where the image aspect ratio cycles by position so the wall keeps an uneven, magazine-like rhythm.

Markdown version