Skip to main content
vibld

Template

Clearpath

A three-step wizard that turns a list of debts into a concrete payoff plan. Users enter balances, rates and minimums, pick avalanche or snowball, and set a monthly budget; the planner reveals a debt-free date, compares strategies, charts the balance to zero and exports the schedule. Plans can be shared by URL.

Debt snowball and avalanche plan · App · Small tools and apps · front-end app (local state)

A mock-up of the homepage, drawn from this design’s layout, palette and typefaces. A build follows the full prompt below.

Add app screens

Pick up to 6 screens, such as a dashboard, settings or an empty state. Each is built in this design’s own palette and typefaces, with its states and guardrails.

Account setup
Add edit
Analytics
Appearance
Calendar
Chat
Checklist
Checkout
Confirmation
Dashboard
Delete account
Details
Discovery questions
Empty state
Flowchart
Import export
Inbox
Integrations
Invite team
Loading
Login
Onboarding
Plans
Playground
Product tour
Referral
Search
Settings
Share
Sign up
Success
Table
Team members
Text editor
Upgrade
Usage
Verification
Welcome

Start from this templateRead the build prompt

Typefaces

Gantari is a soft, open geometric sans that keeps a heavy money topic approachable and hopeful, with clear figures for the plan inputs.

  • GantariHeadings: hero 56-64px semibold, card titles 30px
  • GantariBody: body 16px, labels 13px, numeric inputs

Who it is for

  • Households with credit card, car and student debt
  • People juggling two to ten balances
  • Financial coaches presenting plans to clients
  • Anyone comparing avalanche and snowball

Layout

  1. Header: card icon + title left, white 'Share' pill and overflow menu right
  2. Centered hero title and subtitle on an indigo-to-violet gradient
  3. Glass stepper bar: 1 Your Debts, 2 Strategy, 3 Budget
  4. Glass card 'Your Debts': table of editable rows (nickname, category select, balance, APR, minimum) with delete icons, an 'Add another debt' link, and totals
  5. White pill 'Continue' bottom right
  6. Later steps: strategy cards; budget slider with feasibility warning
  7. Results: debt-free date count-up with confetti, strategy comparison, balance timeline chart, interest donut, collapsible amortization table, CSV/PDF export

Palette

hopeful, supportive, clear, modern, motivating. It turns a stressful subject into a guided plan with a celebratory finish.

  • gradient top indigo#342e91
  • gradient bottom violet#5b5bd6
  • glass card#6565d8
  • text on gradient#ffffff
  • button text indigo#342e91
  • app surface#e9f1f9
  • body text#151b24

Every checked pair, measured again

SampleWhereRatioNeeds
Aawhite text on gradient top10.79:14.5:1
Aawhite text on gradient bottom5.37:14.5:1
Aawhite text on glass card (worst case)4.77:14.5:1
Aaindigo label on white pill10.79:14.5:1
Aaresults text on surface15.17:14.5:1
Aawarning chip text10.36:14.5:1
white focus ring on violet5.37:13:1
white input outline on glass4.77:13:1

As vibld’s tokens

The palette on the 15+ color tokens vibld styles a project with, each text color on the fill it is read on. Marked tokens are solved from the palette, because no swatch held that role at 4.5:1.

  • background
  • card
  • muted
  • primary
  • secondary
  • accent
  • destructive *

Type scale

Display
Gantari SemiBold 64px hero, 30px card titles
Body
Gantari 16px body, 13px labels; right-aligned numeric inputs

Soft geometric sans keeps a financially heavy topic feeling approachable.

Spacing and imagery

Centered 720px column; glass cards with about 1.1rem radius; pill inputs and buttons; table rows about 72px tall with hairline dividers.

No photos; frosted glass surfaces over a smooth gradient; Recharts area and donut charts; a confetti burst on reveal.

Components

  • Header with Share button
  • Glass stepper
  • Editable debt table rows
  • Category select
  • Currency and percent inputs
  • Add/remove debt
  • Running totals
  • Strategy choice cards (avalanche/snowball)
  • Budget slider with numeric input
  • Feasibility warning
  • Debt-free date reveal with confetti
  • Strategy comparison panel
  • Balance timeline area chart
  • Interest donut and collapsible amortization table

Interactions

  • Validation gates block Continue until rows are valid
  • Add or delete debt rows with animation
  • Totals update live
  • Dragging the budget slider recomputes date, chart and interest instantly
  • Warning appears when budget is below the sum of minimums
  • Debt-free date counts up with confetti on reveal
  • Share copies a URL with encoded state
  • Export CSV/PDF

Data

  • Debt{id, nickname, category, balance, apr, minPayment}
  • Plan{strategy avalanche|snowball, monthlyBudget}
  • MonthRow{month, debtId, payment, principal, interest, balance}
  • Result{debtFreeDate, months, totalInterest, perDebtPayoffMonth, comparisonDelta}

Build prompt

The baseline every prompt in the catalog assumes, then this design’s own ten sections, from goal to guardrails.

The baseline
### How to use these prompts
Paste a template's build prompt into your coding agent as the first message. Each prompt names its own stack, tokens and acceptance criteria; the rules below apply to all of them and can be prepended once per project.

### Engineering baseline
- TypeScript strict mode, no `any`, small typed components, feature folders, and one source of truth for design tokens (CSS variables consumed by Tailwind).
- Validate every input with a shared zod schema on the client and again on the server or edge function. Never trust client-side checks alone.
- Show loading, empty and error states for every async view. Surface errors in plain language with a retry, and log details to the console in development only.
- Keep secrets out of the bundle. Only publishable keys (for example a Supabase anon key) belong in client code; service-role keys, API keys and webhooks live in server or edge-function environment variables.

### Data and auth baseline (full-stack templates)
- Enable Row Level Security on every table before inserting data. Default-deny, then add owner-scoped policies (`auth.uid() = user_id`) and explicit role checks for admin views.
- Store roles in a separate table checked by a security-definer function, never in a user-editable profile field.
- Upload files to private storage buckets with size and MIME limits, and serve them through signed URLs.
- Rate-limit public endpoints (forms, auth, AI calls) and add a honeypot field or captcha to anonymous forms.
- Take payments through a hosted checkout and verify webhooks by signature. Never handle raw card data.

### Accessibility and UX baseline
- Target WCAG 2.2 AA: 4.5:1 contrast for normal text and 3:1 for large text, input borders, focus rings and meaningful icons or chart lines. Every palette in this catalog lists its verified pairs; re-check with a contrast tool after any color change.
- Keep body text at 16px or larger with 1.5 line height, nothing below 12px, no light weights under 24px, and uppercase only for short labels.
- Give every interactive element a visible focus ring, full keyboard support, semantic landmarks, labeled form fields, and alt text on meaningful images.
- Respect `prefers-reduced-motion` for every animation. Give drag-and-drop and carousels keyboard and button alternatives.
- Build mobile-first and test at 375px, 768px and 1280px.

### Content guardrails
- Use original copy, fictional sample data and placeholder or licensed imagery. Do not reuse another product's name, logo, screenshots or marketing text.
- Label demo testimonials and metrics as samples. Collect the minimum personal data the feature needs.
### Goal
Build **Clearpath**, a friendly debt payoff planner. In three short steps a user lists their debts, picks a payoff strategy and sets a monthly budget, then sees when they'll be debt-free, how much interest they'll pay and how the two main strategies compare. It is useful on its own and as a tool financial coaches can share with clients.

### Stack
React 18 + TypeScript + Vite, Tailwind CSS, shadcn/ui (Radix: Select, Slider, Collapsible, Tooltip, DropdownMenu) and lucide-react. Use Recharts for the balance timeline and interest donut, Framer Motion for step transitions and the count-up, canvas-confetti for the reveal, react-hook-form + zod (useFieldArray) for debt rows, date-fns for dates, and jsPDF for the PDF export. No backend: state lives in the URL.

### Pages & layout
1. **Header**: logo and title on the left; a Share pill and an overflow menu (Reset, Export CSV, Export PDF) on the right.
2. **Hero**: centered title and subtitle on an indigo-to-violet gradient.
3. **Stepper**: a glass bar with three numbered steps; the current step gets a ring and completed steps a check.
4. **Step 1, Debts**: a glass card with a table of rows (nickname, category, balance, APR, minimum), a delete button per row, "Add another debt", and totals (balance, combined minimums).
5. **Step 2, Strategy**: two large choice cards, highest-rate-first vs smallest-balance-first, each with a one-line explanation.
6. **Step 3, Budget**: a slider plus a numeric input; a warning if the budget is below the minimums.
7. **Results**: debt-free date (count-up and confetti), months and total interest, a comparison panel (difference in dollars and months), a balance-to-zero area chart, an interest-vs-principal donut, per-debt payoff order, and a collapsible monthly table. A what-if slider stays pinned.

### Design system
- Tokens: `--grad-from: #342e91`, `--grad-to: #5b5bd6`, glass `rgba(255,255,255,.06)` (≈`#6565d8` over the lighter violet) with a `rgba(255,255,255,.5)` border and 12px blur, `--on-grad: #ffffff`, `--primary-ink: #342e91` (text on white pills), `--surface: #e9f1f9`, `--fg: #151b24`, `--warning: #fbbf24` used as a chip fill with `#151b24` text.
- Font: Gantari. Hero 56-64px semibold, card title 30px, body 16px (line-height 1.5), labels 13px, inputs 16px with tabular numerals.
- Spacing on an 8px grid; column max 760px.
- Radius: 18px on cards, full on inputs and buttons.
- Motion: 250ms step slide, 1.2s count-up, a single confetti burst.
- One light-on-gradient theme; results tables sit on the lighter surface for legibility.

### Components & interactions
Stepper (clickable for completed steps), DebtRow (error per field, delete with an undo toast), MoneyInput and PercentInput (formatting, min/max), StrategyCard (radio semantics, selected ring), BudgetControl (slider and input kept in sync), FeasibilityAlert, ResultHero, ComparisonPanel, TimelineChart (tooltip per month), InterestDonut, AmortizationTable (monthly/yearly, sticky header), ShareButton (copied toast), ExportMenu (CSV and PDF generation states). Continue stays disabled until the step is valid, and the reasons are listed.

### Data & state
A pure module `simulate(debts, strategy, budget) -> {rows, result}` with monthly interest accrual, minimums first, extra money rolling to the target debt, and freed-up minimums snowballing onward. Unit-test the edge cases: zero APR, a budget exactly equal to the minimums, and a payoff inside a month. Encode state into compact URL params and validate them with zod on load. Use generic seed nicknames ("Rewards card", "Car loan", "Student loan") with no lender names.

### Accessibility
The glass fill is kept at 6% white so white text on it stays above 4.5:1 even over the lighter violet. Each table input gets an `aria-label` combining the row nickname and the column. The slider exposes `aria-valuetext` in dollars. Announce the result date through a live region. Skip confetti and the count-up under reduced motion. Charts have data tables. Stepper items use `aria-current="step"`.
Verified contrast: white on violet: #ffffff on #5b5bd6 = 5.4:1; white on glass: #ffffff on #6565d8 = 4.8:1; pill label: #342e91 on #ffffff = 10.8:1.

### Security
Everything stays on the device: don't send debts anywhere, and point out that shared URLs contain the figures. Validate and clamp URL params (balance up to $10M, APR 0-100%). Commit no keys. Generate PDFs locally. Add a clear "estimates only" note. Use a CSP with no third-party scripts.

### Performance & SEO
Run the simulation in a memoized selector or a web worker for 10+ debts. Lazy-load jsPDF and confetti. Add meta/OG tags and a single H1. Target Lighthouse 95+.

### Guardrails
- Write fresh copy; use no bank or lender names or logos.
- No fake success stories.
- Store nothing on a server.
- Keep components small and typed; no `any`. Show validation errors visibly.
- Done when: (1) results match a reference spreadsheet within a cent; (2) avalanche vs snowball differences are correct; (3) a shared URL restores the exact plan; (4) the infeasible-budget warning appears correctly; (5) the whole wizard works by keyboard.

Open the builderAll templatesThis palette on its own