Skip to main content
Clever Ops

Changelog Toast

A corner toast announcing a release, version in mono, a one-line note, and a view link. Enters after a set delay, dismisses through a callback, appears instantly under reduced motion.

Preview & code

Loading Changelog Toast preview

Installation

pnpm dlx shadcn@latest add @cleverui/banner-changelog-toast

Requires the @cleverui registry in your components.json, a one-off, two-line setup.

Usage

tsx
import { BannerChangelogToast } from '@/components/ui/banner-changelog-toast'
Exampletsx
'use client'

import { useState } from 'react'
import { BannerChangelogToast } from '@/components/ui/banner-changelog-toast'

export default function BannerChangelogToastDemo() {
  const [key, setKey] = useState(0)

  return (
    <div className="relative flex min-h-[360px] items-end justify-center px-4 py-10 sm:px-6">
      {/* in-flow so the preview frame owns the layout */}
      <BannerChangelogToast
        key={key}
        version="v2.14.0"
        note="Dark theme contrast pass, 12 new blocks, and quieter focus outlines on graphite."
        link={{ label: 'View changelog', href: '#' }}
        delay={0.6}
        docked={false}
        onDismiss={() => {
          window.setTimeout(() => setKey((k) => k + 1), 400)
        }}
      />
    </div>
  )
}

API reference

BannerChangelogToast accepts the following props.

PropTypeDefaultDescription
version*stringrelease tag rendered in mono, e.g. 'v2.14.0'
note*stringone-line release note, e.g. 'Dark theme contrast pass and 12 new blocks'
link{ label: string; href: string }view link, e.g. label 'View changelog'
delaynumber2seconds after mount before the toast enters; scheduling in useEffect
onDismiss() => voidfired when dismiss is pressed; parent owns 'seen this version' persistence
position'bottom-right' | 'bottom-left''bottom-right'viewport corner when docked
dockedbooleantrueposition:fixed in the chosen corner when true; renders in-flow for previews/embeds when false

…plus everything from Omit< React.HTMLAttributes<HTMLDivElement>, 'onDrag' | 'onDragStart' | 'onDragEnd' | 'onAnimationStart' >: className, event handlers, aria attributes and the rest pass straight through.

Frequently asked questions

How do I install the Changelog Toast component?

Register the @cleverui registry in your components.json ("@cleverui": "https://cleverops.com.au/r/{name}.json"), then run `npx shadcn@latest add @cleverui/banner-changelog-toast`. The shadcn CLI copies the source into your project, you own the code from that point. You can also copy the source directly from this page.

What dependencies does Changelog Toast require?

Changelog Toast uses motion and lucide-react on top of React and Tailwind CSS. You don't need to install them manually, the shadcn CLI resolves and installs npm dependencies automatically when you add the component.

Can I theme Changelog Toast to match my brand?

Yes. The component is styled entirely with Tailwind utilities over standard design tokens (primary, background, muted, border), so it inherits your existing shadcn/ui theme automatically. Change your CSS variables and the component follows, no source edits needed for palette, radius, or fonts.

Want this built for you?

CleverUI is built by the Clever Ops web team. If you'd rather ship a hand-coded, fast, custom website than assemble one, we build them for Australian businesses every week.

Explore web development services