Loader

Rothko Progress

Progress bar drawn as a Rothko canvas whose lower field rises with the value while its color develops from grey to full chroma. Exposes progressbar semantics with a 0 to 100 value.

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/rothko-progress
npx shadcn add @01orbital/rothko-progress
yarn shadcn add @01orbital/rothko-progress
bunx --bun shadcn add @01orbital/rothko-progress

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/loader/rothko-progress.tsx, as source you own and edit.

Usage

"use client"

import { useEffect, useState } from "react"

import { RothkoProgress } from "@/components/loader/rothko-progress"

const PALETTES = {
  vesper: {
    ground: "oklch(0.28 0.06 300)",
    upper:
      "radial-gradient(ellipse 135% 105% at 50% 35%, oklch(0.90 0.04 55) 0%, oklch(0.90 0.04 55 / 0.7) 53%, transparent 100%)",
    lower:
      "radial-gradient(ellipse 130% 95% at 50% 80%, oklch(0.42 0.13 305) 0%, oklch(0.42 0.13 305 / 0.85) 56%, transparent 100%)",
    glow: "oklch(0.82 0.07 50)",
    form: "strong",
  },
} as const

export default function RothkoProgressDemo() {
  const [value, setValue] = useState(8)

  useEffect(() => {
    const tick = setInterval(() => {
      setValue((v) => (v >= 100 ? 8 : v + 4))
    }, 400)
    return () => clearInterval(tick)
  }, [])

  return <RothkoProgress value={value} palette={PALETTES["vesper"]} />
}

API reference

Prop

Type

It also accepts the HTML attributes of the element it renders.

Dependencies

npm: cn. The CLI installs them for you.

No other registry pieces.