Skip to main content
Clever Ops

PR Leaderboard

The gym's record board in React, ranked lifters with heavy tabular kilograms, NEW flags on fresh PRs, a coach-verified footnote, and Tailwind contrast that reads across the room.

Preview & code

Loading PR Leaderboard preview

Installation

pnpm dlx shadcn@latest add @cleverui/pr-leaderboard

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

Usage

tsx
import { PrLeaderboard } from '@/components/blocks/pr-leaderboard'
Exampletsx
'use client'

import { PrLeaderboard } from '@/components/blocks/pr-leaderboard'

export default function PrLeaderboardDemo() {
  return (
    <div className="py-8 sm:py-12">
      <PrLeaderboard
        eyebrow="Chalk up"
        heading="The record board"
        liftLabel="Back squat, all-time"
        note="Coach-verified. Video or it didn't happen."
        entries={[
          {
            name: 'Dana Cole',
            weight: '212.5 kg',
            detail: '@ 82 kg BW',
            date: 'Mar 2026',
            isNew: true,
          },
          {
            name: 'Marcus Reed',
            weight: '205 kg',
            detail: '@ 94 kg BW',
            date: 'Jan 2026',
          },
          {
            name: 'Ava Okonkwo',
            weight: '180 kg',
            detail: '@ 68 kg BW',
            date: 'Feb 2026',
          },
          {
            name: 'Jules Park',
            weight: '175 kg',
            detail: '@ 76 kg BW',
            date: 'Nov 2025',
          },
          {
            name: 'Sam Rivera',
            weight: '167.5 kg',
            detail: '@ 71 kg BW',
            date: 'Oct 2025',
          },
        ]}
      />
    </div>
  )
}

API reference

PrLeaderboard accepts the following props.

PropTypeDefaultDescription
headingstring'The record board'
eyebrowstringcoach-voice kicker, e.g. CHALK UP
liftLabel*stringwhich record, e.g. Back squat, all-time; renders uppercase under the heading
entries*PrLeaderboardEntry[]ranked by array order (rank renders from index, deterministic)
newLabelstring'New'real-text mark on fresh PR rows, rendered uppercase
notestringverification footnote in plain sans

…plus everything from React.HTMLAttributes<HTMLElement>: className, event handlers, aria attributes and the rest pass straight through.

Referenced types

Typestsx
export interface PrLeaderboardEntry {
  name: string
  /** preformatted, e.g. 212.5 kg */
  weight: string
  /** e.g. @ 82 kg BW */
  detail?: string
  /** preformatted, e.g. Mar 2026, never derived from Date in render */
  date?: string
  /** renders the NEW mark */
  isNew?: boolean
}

Frequently asked questions

How do I install the PR Leaderboard component?

Register the @cleverui registry in your components.json ("@cleverui": "https://cleverops.com.au/r/{name}.json"), then run `npx shadcn@latest add @cleverui/pr-leaderboard`. 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 PR Leaderboard require?

PR Leaderboard uses motion on top of React and Tailwind CSS. You don't need to install it manually, the shadcn CLI resolves and installs npm dependencies automatically when you add the component.

Can I theme PR Leaderboard 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