Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Leaderboard Web3 Block for Radix UI

A season leaderboard of thirty contributors ranked by points, volume or votes, a season select, rank changes from the previous season as arrow, number and word, and your own row pinned under the list with the gap to the rank above.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Show where a member stands, and how far the next place is, with this leaderboard for React with Radix UI. It's the ranking of Seasonrank, a community program. A hairline frame with a plus mark on each corner starts with a toolbar: a Toggle Group picks the metric (Points, Volume or Votes) and a Native Select the season. Under it thirty typed contributors are ranked by that metric and shown ten at a time; each row has the rank, initials, a handle, the value and the change from the previous season as an arrow, a number and a word ("Up 3 places"). Your own row is pinned under the list with the gap to the rank above, "You are #17, 118 points behind #16", and keeps its space when you are already inside the list. Show 10 more extends the list in a scroll region that keeps its height. For DAOs, trading communities and any program that ranks by what people do.

FAQ

How are the ranks worked out?

Every contributor has three typed scores in each of two seasons. The list sorts them by the chosen metric, highest first, with ties keeping the list order, and the rank is the position. Change a score in the typed data and the order, the change column, the header sentence and your gap all follow.

Where does the rank change come from?

It compares a contributor's rank in this season with their rank for the same metric in the season before: Up 3 places, Down 2 places or No change. In Season 2 there is no earlier season in this demo, so the rows say so. The arrow is a shape and the words say the same, so no hue carries it.

What is the pinned row?

Your row, always, under the list: when you are below the visible ten it shows your rank and how far you are from the contributor above you in the metric's own unit. When you are already inside the list it keeps its space but is hidden, and the line above it says where you are, so the panel never changes height.

What stays local, and how do I wire it?

All of it. The thirty contributors and their scores are typed lines at the top of the file and the show-more count is local state; volume is sample figures in USD, not market data. In your app rank on your server with the same tie rule, page the list instead of holding it, and compute your own row's gap there.

Is it accessible from the keyboard?

Yes. The metric buttons are a labelled group of toggles, the season is a native select, the list is a named, focusable scroll region and Show 10 more is a button that explains itself when nothing is left. One polite status message reports each change.

How does it look on a phone?

The toolbar wraps, each row keeps the rank, the avatar, the name with the rank change under it, and the value at the end, and the pinned row and the button sit under the list.