/

Prism UI: Two Components Doing Most of the Work

Display Cards taken 4,642 times, Pricing 2,386, and fifteen neighbours. Plus the last-commit question, answered honestly.

Serafim Korablev
Serafim Korablev
@korablev

Prism UI has 791 stars and 17 components published here, and two of them account for most of the interest: Display Cards has been taken 4,642 times and Pricing 2,386. The other fifteen together do not come close.

That shape is normal and worth naming. A registry is usually two or three components people arrive for and a set of neighbours they take because they are already there.

The two

Display Cards is a stack of cards that fans out on hover, and it is the reason most people find this registry. Pricing is the animated pricing section, confetti included, which the pricing guide and the confetti guide both cover.

A fanning card stack has two obligations that are easy to miss. The cards behind the front one are decoration until they are not, so if they hold real content they need to be reachable without hovering, and if they do not they should not be announced at all. And hover does not exist on touch, so the arrangement a phone sees is the arrangement it keeps.

The neighbours

Expandable Card and Floating Action Panel are the interactive surfaces, Hero Pill and Hero Badge are the announcement banners covered by the banner guide, and Logo Carousel is the customer strip, which the marquee guide argues should usually not move at all.

Timeline is the minimal version of a timeline, and Action Button is a button with a loading state built in, which is the one button variant worth taking rather than writing.

useExpandable is the unusual entry: a hook rather than a component. Registries that ship behaviour separately from markup are rarer than they should be, and the primitives guide makes the case for why that split is the useful one.

The last commit was November 2025

Worth stating plainly, because it is the question anyone should ask about a registry before taking from it, and because the answer is less alarming than it sounds.

add copies source into your repository rather than linking to a package, so a set that stops shipping keeps working. What you give up is future fixes, which matters in proportion to how much the component has to keep up with: a pricing section is stable, a component that wraps a browser API less so. The updates guide covers what to do when you do want the newer version.

Where else to look

The honest list, because the answer is not always us:

SourceBest forTrade-off
shadcn/uiThe primitives these sit on top ofNo marketing sections
The registry directoryLast-commit dates across every tracked registryOnly registries that publish an index
A larger general registryA second option when one of these nearly fitsMore to search through
21stThese 17 with previews, beside the alternativesQuality varies by author, so preview before you take it

Taking one

Every component page has a live preview and the code. Installing goes through the shadcn CLI against our registry:

bash

That key comes from your 21st account, and installs require a membership. Set API_KEY_21ST once in your shell and the command works for anything in the catalogue.

Browse card components →

Frequently asked

What is Prism UI best known for?
Display Cards, a stack that fans out on hover and has been taken 4,642 times here, and an animated pricing section taken 2,386 times. The other fifteen components together do not come close, which is the normal shape for a registry.
What does a fanning card stack have to get right?
Two things. The cards behind the front one are decoration until they hold real content, at which point they must be reachable without hovering; and hover does not exist on touch, so the arrangement a phone sees on load is the arrangement it keeps.
Does an inactive registry still work?
Yes. add copies source into your repository rather than linking to a package, so a set that stops shipping keeps working. What you give up is future fixes, which matters in proportion to how much the component has to keep up with.
Why is a hook unusual in a component registry?
Because most registries ship markup and behaviour welded together. Shipping the behaviour separately, as this one does with an expandable hook, is the split that lets you keep your own markup, which is the whole argument for headless primitives.

Published

Aug 21, 2026

Read time

3 min

Tags

ComparisonRegistriesReactMarketing

Share