Skip to content

pastetaste

Slider Estimator

FormsInteractionData

A quote calculator with package buttons and two range sliders whose filled tracks follow the thumb; the estimated total and reach recompute live with a long-run discount.

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/slider-estimator.tsx.

npx shadcn@latest add https://pastetaste.com/r/slider-estimator.json

Prompt

Install the pastetaste component "Slider Estimator" (slider-estimator) into this Next.js project and use it.

What it is: A quote calculator with package buttons and two range sliders whose filled tracks follow the thumb; the estimated total and reach recompute live with a long-run discount.

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/slider-estimator.json
   (it writes components/pastetaste/slider-estimator.tsx; install any npm packages it reports).
2. Import it: import { SliderEstimator } from "@/components/pastetaste/slider-estimator" (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):
- packs: { id; name; base; per }[] = Local, City, Launch — base is the flat fee; per is the price per screen per four weeks.
- title / intro / cta: string = estimator copy — Text of the card and its button.
- screens / weeks: { min; max; step; default } = 20-240 / 2-16 — Slider ranges.
- discountFrom / discount: number = 8 / 0.15 — Weeks from which the screen fee is discounted, and the discount.
- reachPerScreen / currency / defaultPack: number / string / string = 620 / '€' / second pack — Reach model, currency symbol and starting package.
- onRequest: (plan) => void = - — Called with pack, screens, weeks, total and reach.
- ink / muted / line / background / surface / fontFamily: string = warm neutral palette — Colours and font.
- className / style: string / CSSProperties — On the section.

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

Props 8

PropTypeDefaultDescription
packs{ id; name; base; per }[]Local, City, Launchbase is the flat fee; per is the price per screen per four weeks.
title / intro / ctastringestimator copyText of the card and its button.
screens / weeks{ min; max; step; default }20-240 / 2-16Slider ranges.
discountFrom / discountnumber8 / 0.15Weeks from which the screen fee is discounted, and the discount.
reachPerScreen / currency / defaultPacknumber / string / string620 / '€' / second packReach model, currency symbol and starting package.
onRequest(plan) => void-Called with pack, screens, weeks, total and reach.
ink / muted / line / background / surface / fontFamilystringwarm neutral paletteColours and font.
className / stylestring / CSSProperties-On the section.
View all →