Back to components
ComponentWidgetFree

Spin to Win Wheel React component

A gamified discount-capture widget where visitors spin a weighted SVG prize wheel for a reward, with five glass themes, a themed reveal modal and code copy, rendered inline or as a corner-launched popup with manual/delay/scroll triggers.

About the Spin to Win Wheel component

Spin to Win Wheel is a prize wheel for discounts and promotions. Visitors press the button, the wheel spins for about four seconds and stops on a prize, and a modal shows the prize with its code and a copy button. Each visitor gets a set number of spins (3 by default), and every prize won is listed so they can copy the codes later.

theme loads one of five ready prize sets (ecommerce, campaign, restaurant, saas, event), each with its own title, eight prizes and codes. Prizes are picked with weights, so a 30% discount can be rarer than 5%, and a Try Again slice uses up a spin without giving a prize. The spins left and the prizes won are saved in localStorage, so a reload does not reset them. It can show inline or as a popup that opens from a button, on click, after a delay or on scroll.

When to use it

Use it for newsletter sign-up rewards, first-order discounts, sale campaigns, restaurant promotions and event ticket upsells, where a playful moment makes a discount more memorable.

For a prize revealed with a single roll, use Dice Roll Discount Popup. For a scratch-off reveal, use Scratch Card Popup.

Installation

Add the Spin to Win Wheel component to your project with the shadcn CLI. It lands in components/spin-to-win-wheel.tsx as plain React + Tailwind CSS source you own and can edit.

Install
Copied!
npx shadcn@latest add @reactframe/spin-to-win-wheel

Or copy the source by hand and install its dependencies:

Install
Copied!
npm install clsx tailwind-merge

More Widget components

Memory Cards Widget
Free
Glow Jump Widget
Free
Globe Studio
Space Invaders Game
Free
Matrix Rain Background
Dino Runner Game
Free