A card's recent activity, only when you ask.
Every shadcn style · one file
v2.0 · Updated Oct 13pnpm dlx shadcn@latest add https://notchset.dev/r/hover-momentum.jsonpnpm dlx shadcn@latest add https://notchset.dev/r/hover-momentum.jsonFree, no account or key. One command for every shadcn style. With the @notchset registry added, @notchset/<name> works too.
Works with React 18.3 or 19 on Tailwind CSS v4, in any shadcn project. What's tested
The CLI adds the styles to the CSS file named in components.json (tailwind.css). Check that it points at your global stylesheet, that the project uses Tailwind CSS v4, and that the file is imported in your root layout. Installed by hand: paste styles.css into that file.
Import it and pass your content. The props that matter most are listed next.
"use client";
import { CompanyMark } from "@/components/ui/notchset/company-mark";
import { HoverMomentum } from "@/components/ui/notchset/hover-momentum";
/* the companies' own marks, 24×24 paths as the CRM seed draws them */
const GLYPH: Record<string, string> = {
airtable: "M11.992 1.966c-.434 0-.87.086-1.28.257L1.779 5.917c-.503.208-.49.908.012 1.116l8.982 3.558a3.266 3.266 0 0 0 2.454 0l8.982-3.558c.503-.196.503-.908.012-1.116l-8.957-3.694a3.255 3.255 0 0 0-1.272-.257zM23.4 8.056a.589.589 0 0 0-.222.045l-10.012 3.877a.612.612 0 0 0-.38.564v8.896a.6.6 0 0 0 .821.552L23.62 18.1a.583.583 0 0 0 .38-.551V8.653a.6.6 0 0 0-.6-.596zM.676 8.095a.644.644 0 0 0-.48.19C.086 8.396 0 8.53 0 8.69v8.355c0 .442.515.737.908.54l6.27-3.006.307-.147 2.969-1.436c.466-.22.43-.908-.061-1.092L.883 8.138a.57.57 0 0 0-.207-.044z",
};
const TOUCHES = [0, 1, 0, 0, 2, 1, 0, 0, 1, 0, 3, 0, 2, 1];
export default function HoverMomentumDemo() {
return (
<HoverMomentum label="Airtable deal" values={TOUCHES} summary="11 touches in 14 days, 3 this week" className="w-[260px]">
<span className="flex items-center gap-2.5">
<CompanyMark name="Airtable" color="#18bfff" glyph={GLYPH.airtable} size={24} />
<span className="flex min-w-0 flex-1 flex-col">
<span className="text-[var(--ns-ink)]">Airtable</span>
<span className="text-[length:var(--ns-text-small)] text-[var(--ns-ink-3)]">Team plan upgrade</span>
</span>
<span className="text-[var(--ns-ink)] tabular-nums">$118k</span>
</span>
</HoverMomentum>
);
}This example also uses Company mark. This command installs them with it, so the example pastes as it is:
pnpm dlx shadcn@latest add https://notchset.dev/r/hover-momentum.json https://notchset.dev/r/company-mark.jsoncomponents/ui/notchset/hover-momentum.tsx
values–
number[]one value per day, oldest first
label–
stringwhat the card is, for screen readers ("Raycast deal")
summary–
stringthe chart's meaning in words
range–
[string, string]what the first and last bars stand for; by default the last bar is today and the first is as many days back as there are bars after it ("13 days ago" for 14 values, "4 days ago" for 5)
Give your coding assistant the Markdown guide instead of screenshots.
https://notchset.dev/api/mcp (setup)v2.0.0 · 2026-10-13
Released with the Notchset system.
Not inside a template yet: it ships on its own, ready for yours.