User clarity
Clear meaning in every state
Component state model
Each state defines what the player sees, what they can do next and how success would be measured. It gives Product, Engineering, QA and Compliance a shared model before build starts
Clear meaning in every state
A flow from discovery to completion
Clear rules for build and QA
Urgency without pressure tactics
Available
30/30 · £0.10
Available, low footprint
Goal
Create awareness during play
Risk
Reward ignored in a busy game UI
Metric
Discovery rate
Design decision
Keep it persistent but compact, visible enough to notice without competing with the game
Free Spins
Available
Spins
30
of 30
Bet
£0.10
Expires
2h 14m
from now
Use on Big Bass Bonanza. Max bet £2.00. Winnings credit as cash.
Full info, ready to use
Goal
Make the next action obvious
Risk
Player sees it but does not activate
Metric
Activation rate
Design decision
Use progressive disclosure so the minimised state creates awareness and the expanded state supports action
Free Spins
Active
Spins in progress, live counter
Goal
Keep progress visible
Risk
Player loses track of active spins
Metric
Completion rate
Design decision
Show progress and remaining spins clearly, without adding more noise to the slot screen
Free Spins
Paused
You paused with 13 remaining. They'll be kept for 24 hours.
Player paused, resume available
Goal
Support return to game
Risk
Player forgets to resume
Metric
Session return rate
Design decision
Treat pause as recoverable, not as failure. The CTA focuses on resuming the journey
Free Spins
Expiring soon
Heads up, 12 ending soon. No rush, only use them if you want to.
Urgency without pressure
Goal
Show expiry clearly
Risk
Urgency feels too pushy
Metric
Expired bonus rate
Design decision
Use factual time messaging, not pressure copy. The player should still feel in control
Free Spins
Action needed
Your bet is too high
Adjust your bet to £2.00 or less to use Free Spins.
Bet too high. Instructional
Goal
Help the player recover
Risk
Confusion or support contact
Metric
Recovery rate
Design decision
Explain what happened and what to do next. The error should solve, not just warn
Free Spins
Done
You won
£12.40
Credited as cash · No wagering left
All spins used, winnings shown
Goal
Close the journey clearly
Risk
Winnings feel unclear
Metric
Completion clarity
Design decision
Show completion, winnings and next action together so the component does not simply disappear
Free Spins
Multiple games
Free Spins are ready in two games. Pick one to start.
Pirots 4
30 · £0.10
Gates of Olympus
20 · £0.10
Spins available in more than one game
Goal
Guide eligible game choice
Risk
Player cannot find where to use it
Metric
Game entry rate
Design decision
Make eligibility visible before activation so the player does not have to guess
Edges I kept thinking about
01 · Active, two beats
The brief separates active, about to spin from spin running. I understood them as one state with two beats: the counter sits still between spins and then ticks down the instant the reels move. If player testing shows people miss the spin moment, I would split them
Free Spins
Active
02 · Small phones
Smaller mobile widths need to be treated as a real constraint, not a QA surprise. Auto Layout handles most of it: the info column fills and wraps, the CTA hugs content, and the timer pill moves to a second row instead of being squeezed
Free Spins
Available
Spins
30
of 30
Bet
£0.10
Expires
2h 14m
from now
Use on Big Bass Bonanza. Max bet £2.00. Winnings credit as cash.
simulated at ≈ 260px
03 · BR and FI
Localisation is not just translation. Free Spins becomes Rodadas Grátis in BR and ilmaiskierrosta in FI, which changes width, wrapping, decimal formatting and CTA length. That is why the component needs flexible content rules from the start