Card

Cascade Card

Dark card with gradient lines cascading from one edge over noise grain, in a warm finish from the top or a cool one from the bottom. Hover lifts it and reveals a fade-edge rule, honouring reduced motion.

The source comes with full access.

One payment of $149 ($49 for now) opens the source right here and lets the CLI install every paid component, with lifetime updates.

Installation

pnpm dlx shadcn add @01orbital/cascade-card
npx shadcn add @01orbital/cascade-card
yarn shadcn add @01orbital/cascade-card
bunx --bun shadcn add @01orbital/cascade-card

Part of the 01orbital library. With a license, put ORBITAL_TOKEN in .env.local and the same command installs it (licensed install, pricing).

It lands at components/card/cascade-card.tsx, as source you own and edit.

The example also uses card. Install it too:

pnpm dlx shadcn add @01orbital/card
npx shadcn add @01orbital/card
yarn shadcn add @01orbital/card
bunx --bun shadcn add @01orbital/card

Usage

import { CascadeCard } from "@/components/card/cascade-card"
import { CardDescription, CardHeader, CardTitle } from "@/components/ui/card"

// Every word on the page. Change copy here, not in the markup.
const COPY = {
  warm: {
    title: "Field notes, issue twelve",
    body: "Color thresholds, the pacing of sections, and the three rules we broke on purpose.",
  },
  cool: {
    title: "Field notes, issue thirteen",
    body: "Night grounds, quiet type, and why the cool finish falls from the floor.",
  },
} as const

// The two finishes side by side: warm falls from the top, cool from the bottom.
export default function CascadeCardDemo() {
  return (
    <div className="grid w-full max-w-3xl gap-6 sm:grid-cols-2">
      {(["warm", "cool"] as const).map((variant) => (
        <CascadeCard key={variant} variant={variant}>
          <CardHeader>
            <CardTitle>{COPY[variant].title}</CardTitle>
            <CardDescription>{COPY[variant].body}</CardDescription>
          </CardHeader>
        </CascadeCard>
      ))}
    </div>
  )
}

API reference

Prop

Type

It also accepts the props of the Base UI part it wraps, and the HTML attributes of the element it renders.

Dependencies

npm: @base-ui/react, cn. The CLI installs them for you.

No other registry pieces.