Drawn Line Changelog

Release notes

Alinethroughtheyear.

Each release is a point on the line. Scroll and it draws itself.

  1. 2.4

    4 September 2026

    Motion that respects the reader

    Every entrance and parallax now checks the reduced motion setting before it moves.

    • Reduced motion support across all sections
    • Photographs blur in only once the file has loaded
    • Sticky headers no longer overlap the first heading
  2. 2.3

    21 August 2026

    Yearly pricing

    Pricing sections gained a monthly and yearly switch, with the saving shown next to it.

    • Monthly and yearly toggle on every pricing section
    • Prices are read to screen readers as they change
  3. 2.2

    2 August 2026

    Faster first paint

    The hero photo is requested before the fonts, which brought the first frame forward on slow connections.

    • Hero photograph is preloaded
    • Serif headline no longer reflows once the font arrives
    • Footer newsletter form accepts pasted addresses
  4. 2.1

    12 July 2026

    Text effects

    Nineteen small text components that share the language of the sections around them.

    • Word stagger, line reveal, letter cascade and more
    • Replay button on animated previews
About this block

Drawn Line ChangelogPRO

Releases as points on a vertical line that draws itself in ink as the page scrolls: version and date on the left of the line, a serif title, a paragraph and a plain dotted list of changes on the right. Serif headline settles in word by word with a sliding-marker pill at the header's right end.

Changelog34: Drawn Line Changelog

Releases as points on a vertical line that draws itself in ink as you scroll, with the version and date on one side of it and the notes on the other.

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

Base UI flavor

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

This installs the block to components/beste/block/changelog34.tsx plus the button22 sliding-marker pill and the text1 word stagger it uses.

Quick start

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

tsx
import { Changelog34, changelog34Demo } from "@/components/beste/block/changelog34";

export default function Page() {
  return <Changelog34 {...changelog34Demo} />;
}

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

tsx
import { Changelog34 } from "@/components/beste/block/changelog34";

export default function Page() {
  return (
    <Changelog34
      eyebrow="Release notes"
      heading="A line through the year."
      description="Each release is a point on the line."
      buttons={[{ label: "Subscribe", href: "/updates", tone: "outline" }]}
      entries={[
        {
          version: "2.4",
          date: "4 September 2026",
          title: "Motion that respects the reader",
          description: "Every entrance now checks the reduced motion setting.",
          changes: ["Reduced motion support across all sections"],
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstring–Small-caps line above the heading
headingstring–Page heading, rendered as the h1 through Text1
descriptionstring–Paragraph under the heading
buttonsActionButton[][]Pill actions at the right end of the header
entriesEntry[][]Releases, newest first
classNamestring–Extra classes for the outer <section>
ts
type Entry = {
  version: string;
  date: string;
  title: string;
  description: string;
  changes: string[];
};

type ActionButton = {
  label: string;
  href: string;
  tone?: "primary" | "light" | "dark" | "outline";
};

Behavior notes

  • The ink line is a scaleY transform driven by the list's own scroll progress, laid over a static hairline so the undrawn part of the line is still visible.
  • Its scroll offset runs from start 70% to end 70%, which means the line tracks a point about two thirds down the viewport rather than the top edge, and lands on each release roughly as you reach it.
  • Under reduced motion the scale starts at 1, so the line is simply drawn rather than frozen at zero length.
  • The line moves from the far left on a phone to an inset position at the medium breakpoint, where the version column appears to its left.
  • Dots are positioned against the same offset as the line and pulled back by half their width, so they sit centred on it at both breakpoints.
  • Entries are list items in an ordered list, so the sequence is semantic and not only drawn.
  • Changes are a plain dotted list. The set does not use tagged pills for change kinds, since a tracked small-caps label overflows its pill at some widths.

More Changelog blocks

View all Changelog
PRO

changelog32

Ruled Changelog

PRO

changelog33

Month Index Changelog

PRO

changelog35

Latest and Earlier

Get Pro access