Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Trial Upgrade Multi-Action Banner Block for React

A trial prompt card for a video editor that sets what you have now beside what stays after the trial, in two columns, with upgrade, compare and remind-me-later actions.

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

A trial upgrade banner for React with Base UI, for the moment a trial is ending and the choice should be clear. A card between the page rails opens with a heading and one sentence, then splits into two columns on a solid divider: Now (unlimited projects, priority support, custom domains) and After the trial (3 projects, community support, no custom domain), each a list of labelled rows. A footer holds the three ways forward: a Shine Button link to upgrade, an outline link to compare plans, and a ghost Remind me later that folds the whole block away to its top rule. It's built from Data List, Badge, Shine Button, Button and Guides, and follows your theme.

FAQ

How do I change what each column says?

Edit PLANS at the top of the file. Each plan has a title, a badge and a list of facts, each a label and a value; set muted: true on a fact the free plan leaves out. The rows are a real description list, so a screen reader says "Custom domains, Not included".

What does Remind me later do?

It folds the block's rows from full height to nothing, so it ends at its top rule, then makes the card inert and moves focus to a short line that is visible only to screen readers ("Reminder set. This prompt will come back later."). To remember it, set a cookie or a flag in your own remindLater handler and read it on the server, so the card is never drawn and then removed after the first paint.

Why three actions?

They answer three different intents: buy, look first, or not now. Only the first is primary, a Shine Button; Compare plans is an outline button and Remind me later is a ghost, so the card never reads as a wall of equal choices. For a plain sentence with a live timer, see the trial countdown banner instead.

Why does it not say when the trial ends?

A date typed into a block goes stale. Pair this card with your own number of days left (or the trial countdown banner) and keep the comparison as it is: it stays true however long the trial runs.

How does it fit on a phone?

The two columns stack, with a rule between them, and the buttons wrap in the footer with Remind me later on its own line. Nothing scrolls sideways at 320 pixels, and in a right-to-left layout the divider and the card mirror.

  • Pro

    A trial notice for a writing app: a clock, a sentence with the time left ticking, a line on what upgrading keeps, a Shine Button to upgrade and a dismiss button that folds the block away.

  • Pro

    A cookie prompt for an online shop: one split card with a stack of three equal-width choices, Accept all, Reject non-essential and Manage preferences.

  • Pro

    Expandable Banner

    Disclosures and tabs

    A fee-change notice for a rent-collection tool as a card in card: one header line that opens a sentence, three rows of facts (Now, From next renewal, Why) and a link.

  • Pro

    A start-aligned early-access card for an API platform: a corner ribbon on the end-top corner, a sparkle, a heading, two sentences, a data list of three facts and a link to the migration guide.

  • Pro

    A thumbs vote for a feature-flag tool that opens an optional comment box in place, with a Shine Button Send feedback, a ghost Skip and a thank-you line that replaces the vote.

  • Pro

    An in-page info callout for an invoicing app: a card in card with an info icon, a heading, two sentences about a change coming next month, a Shine Button link and a dismiss button that folds the block away.