✎ PROBLEM STATEMENT & RESEARCH FOCUS
Analyzing the Steam Interface
Steam is a digital storefront and gaming platform developed by Valve Corporation. It launched in 2003 as a way for Valve to deliver updates to its own games and has since grown into the dominant marketplace for PC games, where players browse, buy, download, review, and discuss titles in one place. Its scale is enormous: in March 2025 the platform passed 40 million users online at the same time for the first time, and it has continued to set new concurrent-user records since.
In terms of design, Steam takes an approach where the game is always at the center. The site uses muted color palettes and a very simple design reminiscent of the early 2000s. In many ways this serves the user by keeping the focus on the product. However, it also makes Steam as a platform feel flat and uninviting. In most instances when a user clicks a button, they experience no interaction at all; they are simply moved on to the next leg of the journey.
This felt like a missed opportunity. As an ecommerce platform operating at this scale, Steam has a lot of room to explore how microinteractions might drive further engagement across its core channels, such as purchasing games, leaving reviews, and discovering new titles. I wanted to know:
“How might we introduce meaningful feedback and delight into Steam’s everyday actions without breaking the visual system that keeps games at the center?”
✎ PICKING A PIECE OF THE INTERFACE
Why the wishlist tile?
I chose the Steam Wishlist tile specifically for two reasons:
01 HIGH FREQUENCY
It is something Steam users rely on constantly. The wishlist is how players save games they're interested in, and Steam uses it to notify them when a game releases or goes on sale, which makes it one of the most direct paths between interest and purchase.
02 SYSTEM COVERAGE
A single tile uses many of Steam's core design system components (buttons, tags, ratings, pricing, and tooltips), which makes it a useful case study in how interactions like these could scale across the rest of the site.
From a business perspective, the wishlist is also one of the most direct links between a player's interest in a game and their decision to buy it. Players can wishlist both released games and upcoming ones, and Steam notifies them when a wishlisted game launches or goes on sale, so the list works as an ongoing bridge from "I want to hear more about this" to "I'm ready to buy." That link shows up in the data: industry analysis from GameDiscoverCo found that games typically sell about 15 copies in their first week for every 100 wishlists. That means wishlists do drive purchases, but most wishlisted interest doesn't convert right away. By bringing more joy into interaction, I saw an opportunity to keep wishlisted games feeling exciting and encourage more of that interest to turn into purchases.
✎ CURRENT STATE AUDIT
What happens when a user wishlists a game?
When a user wishlists a game on Steam, it gets added to their Wishlist tab, which is nested under both the store and their account. Within the wishlist, the user can:
- review the release date
- review the aggregate of the game's ratings
- browse the game's tags to find similar titles
- add the game to their cart directly to purchase it
Within each of these potential interactions, the user is given very little in terms of feedback. Clicking a button typically results in a simple state change, such as visiting a new page, with no transitional animation or hover effect. Beyond the tooltip popup and a slight color change when the user hovers over tags or the Add to Cart button, there is little to encourage exploration, engagement, or purchasing, and very little to indicate that the user is engaging with the platform as a whole (i.e. that their actions are doing something within the system).
Why are microinteractions important?
Nielsen Norman Group defines microinteractions as trigger-feedback pairs: a user action or system change (the trigger) followed by a small, contextual response in the interface (the feedback). Building on Dan Saffer's framework, they describe four jobs microinteractions do well:
System Status
Telling users their action worked.
Missing on SteamError Prevention
Catching mistakes before they happen.
Engagement
Inviting users to explore further.
Missing on SteamBrand
Giving a product a recognizable personality.
Steam's wishlist largely skips the first and third. Visibility of system status is the very first of Nielsen's usability heuristics, and Jakob Nielsen's long-standing response-time research suggests that feedback within about 0.1 seconds is what makes an interface feel like it's reacting instantly to the user. When a click produces no visible response, users are left to wonder whether anything happened at all.
For a store like Steam, that silence is a cost. Every wishlist add, tag click, and cart action is a small signal of intent, and acknowledging it is a chance to build momentum toward a purchase. Within this interaction design, I sought to fill those two gaps: making sure every action on the tile gets an immediate, visible response, and turning that response into a small invitation to keep exploring, all without pulling focus from the games themselves.
To keep the interactions intentional, I structured the project around Dan Saffer’s microinteraction model, as guided by my instructor. For every element on the tile, I documented four things to guide building each interaction.
01 TRIGGERS
What starts the interaction: hover, focus, press, click, page load.
02 RULES
What happens, in what order, and with what timing.
03 FEEDBACK
What the user sees and feels as a result.
04 LOOPS & MODES
What repeats, and how the behavior changes across screen sizes and settings.
The result was a full specification covering eight components, from the wishlist card itself down to the modal’s close button. Writing the rules first meant every duration and scale value had a reason behind it, and gave me a checklist to build and test against. I then built the final prototype in HTML, CSS, and JavaScript, piecemeal.
Try the live prototype →✎ THE SOLUTION
Adding Flare
The final build turns the wishlist from a static list into something that responds to the user at every step, from the moment the page loads to the moment a game lands in their cart. Each interaction stays inside Steam’s existing colors and components; the only thing that changed is how they move.
INTERACTION 1
The Wishlist Card
Page load, and hovering over a card.
Cards fade in and rise 16px one after another, 90ms apart. On hover, the card lightens and the game art zooms 3% and brightens over a slow 500ms.
The staggered entrance makes the list feel like it’s being built for the user. The slow zoom draws the eye to the game art, keeping the game the hero, without feeling jumpy.
INTERACTION 2
Rating Tooltip
Hovering over or keyboard-focusing the review rating.
After a short 80ms delay, a tooltip grows out of a small arrow with a slight overshoot, and the rating brightens from 75% to full opacity. Ratings are color-coded: green for positive, blue for mixed, red for negative.
The delay stops the tooltip from flickering when the mouse just passes by. Color-coding lets users read a game’s reception at a glance before committing to the details.
INTERACTION 3
Tag Buttons
Hovering, focusing, or pressing a genre tag.
The tag scales up 15% with a springy ease, turns Steam blue (#66c0f4), and lifts above its neighbors. Pressing settles it to 105% so the click feels physical.
Tags are one of Steam’s main paths to discovering similar games, but today they read as plain labels. The pop signals that they’re clickable and invites exploration.
INTERACTION 4
Add to Cart
Hovering, focusing, pressing, or clicking the Add to Cart button.
A green gradient slides across the button in a seamless 4-second loop, with a soft green glow. Moving away pauses the loop where it is instead of resetting it. Pressing snaps the button to 95%, then it springs back.
This is the most important action on the tile, so it gets the most energy. Pausing rather than resetting the gradient keeps the motion feeling continuous instead of glitchy.
INTERACTION 5
“Added to your Cart!” Modal
Successfully adding a game to the cart.
The background dims to 60% and blurs 3px. The modal eases up 24px with a slight spring, its heading, game panel, and buttons fade in one after another, and a blue accent line draws across the top once it lands. Closing takes just 200ms.
Clicking Add to Cart on the wishlist gives little sense of what just happened. The modal confirms the action and offers two clear next steps: Continue Shopping or View My Cart. Closing faster than opening keeps users moving once they’ve decided.
✎ TAKEAWAYS AND FUTURE CONSIDERATIONS
What did
Mack
learn and what would she do next?
Designing within a rigid system turned out to be the most valuable constraint of the project. With color, layout, and components off the table, every decision had to come down to intent of the animations I was adding to each interaction. I had to think a lot about what would actually drive forward my goals of increasing joy and encouraging users to engage across core channels.
If I continued this project, I would:Test the prototypes with Steam users to see whether the interactions change how often they explore tags or add to cart.
Extend the same motion language to other high-traffic areas, such as the store page, reviews, and the checkout flow.
Document the interactions as reusable motion tokens (durations, easing curves) so they could scale across Steam's design system.
Explore sound or haptic feedback for the Steam Deck, where motion alone may not carry as far.