Skip to content

Blog Post Page

A long-form article page with real reading progress and a ToC that tracks scroll.

DOM + CSS0 deps1 file · 5 KB TSX

Proeditorialminimal
Preview

Props

Table of contents

The source is part of Pro

$27/month or $179 once. See Pro

No runtime dependencies
// Full, shippable page — real size at normal type scale. The registry
// preview above is a scaled-down miniature of this same composition, not
// a different component.
import type { ReactNode } from "react";

function Nav() {
  return (
    <header className="flex items-center justify-between border-b border-white/10 px-6 py-4">
      <span className="font-sans font-bold">Nova</span>
      <nav className="flex gap-6 text-sm text-neutral-400">
        <a href="#">Blog</a>
        <a href="#">Docs</a>
      </nav>
    </header>
  );
}

function PostHeader({

  // ---------------------------------------------------------------
  // Full source available with a viberdy Pro subscription.
  // https://viberdy.dev/pricing
  // ---------------------------------------------------------------
}
Details

About this page template

The reading column deliberately narrows to max-w-2xl for the article body while the header and cover image stretch wider — a body column that wide starts running 90+ characters per line, which measurably hurts reading speed, so the composition trades width for readability the instant the actual prose begins. The centered post header (category, title, byline) reads as a magazine masthead rather than a typical left-aligned blog header, which is the deliberate editorial choice signaled by the vibe tags. The non-obvious detail is the pull-quote: it isn't decorative filler, it's a visual rest stop that breaks a long column of gray body text and gives skimmers something to land on. Caveat: there's no author bio block or related-posts footer — this template stops at the article's last paragraph, which is the right scope for a template but not a complete blog, so plan a second pass for post-article content before shipping a real blog.

Pairs well with

Pro
Pro
Pro