Skip to content

pastetaste

Compound Scrub Chart

DataInteractionCards

A recurring-investment calculator: preset baskets and three sliders drive a two-layer area chart (value over paid-in) that you scrub with the pointer or arrow keys, with year-by-year header and result tiles.

Paste it into Claude Code: it installs the component, asks for your brand and content, and places it on the page you name.

Install

Or by hand, in a Next.js project with shadcn set up. It writes components/pastetaste/compound-scrub-chart.tsx.

npx shadcn@latest add https://pastetaste.com/r/compound-scrub-chart.json

Prompt

Install the pastetaste component "Compound Scrub Chart" (compound-scrub-chart) into this Next.js project and use it.

What it is: A recurring-investment calculator: preset baskets and three sliders drive a two-layer area chart (value over paid-in) that you scrub with the pointer or arrow keys, with year-by-year header and result tiles.

Before you place it, ask me (one short message, in my language; "skip" = sensible default): which page and section it goes in, my brand colour (hex), the text, labels or images it should show, and whether I want my logo or my own copy in the demo content. Then:

Steps:
1. If the project has no components.json, run: npx shadcn@latest init -y -d. Then run: npx shadcn@latest add https://pastetaste.com/r/compound-scrub-chart.json
   (it writes components/pastetaste/compound-scrub-chart.tsx; install any npm packages it reports).
2. Import it: import { CompoundScrubChart } from "@/components/pastetaste/compound-scrub-chart" (check the file for the exact named export).
3. Put it where it fits on the page I name, keep the rest of the page untouched, and pass props for my colours instead of editing the installed file.
4. It does not depend on Tailwind; colours come from CSS variables (--pt-*) or props.
5. It supports prefers-reduced-motion with a still state; do not remove it.

Props (all optional unless the type has no default):
- baskets: { key: string; label: string; rate: number }[] = 4 baskets — Preset chips that set the assumed return; a basket with key 'custom' is selected when the return slider is moved by hand.
- defaultMonthly / defaultYears: number = 300 / 10 — Initial slider values.
- monthlyRange: [min, max, step] = [25, 2000, 25] — Range of the monthly amount slider.
- maxYears: number = 30 — Longest horizon.
- currency: string = '€' — Currency symbol.
- accent: string = '#3b5bdb' — Colour of the value layer.
- className / style: string / CSSProperties — On the root.

Live preview: https://pastetaste.com/c/compound-scrub-chart
Then run the dev server, check it in the browser at desktop and mobile width, and tell me the page URL.

Props 7

PropTypeDefaultDescription
baskets{ key: string; label: string; rate: number }[]4 basketsPreset chips that set the assumed return; a basket with key 'custom' is selected when the return slider is moved by hand.
defaultMonthly / defaultYearsnumber300 / 10Initial slider values.
monthlyRange[min, max, step][25, 2000, 25]Range of the monthly amount slider.
maxYearsnumber30Longest horizon.
currencystring'€'Currency symbol.
accentstring'#3b5bdb'Colour of the value layer.
className / stylestring / CSSProperties-On the root.
View all →