TIC TAC TOE
An interactive, logic-driven game built with Figma Variables and Interactive Components
Project Type: Figma Game
Role: Product Owner
Date: February 2025
Project Context
This prototype leverages Figma’s Variables and Interactive Components to build a fully functional Tic Tac Toe game which requre no code. It demonstrates how I can manage state, implement win/draw logic and create seamless reset flows, pushing the boundaries of what’s possible in a design tool.
Problem Statement
Design tools like Figma are often used only for static mockups or basic click through flows. I wanted to push the boundaries of what a design tool can do by building a fully functional game complete with turn tracking, win/draw logic, and a reset flow, all without writing any code.
Project Goal
-
Demonstrate how Figma Variables can manage game state (current player, move count, win/draw)
-
Accurately detect all win conditions (rows, columns, diagonals) and draws
-
Prevent extra input after the game ends
-
Provide a seamless “Play Again” reset that restores every variable and component to its initial state
My Role
-
Logic Architect: Defined variables and mapped out win/draw rules.
Accurately detect all win conditions (rows, columns, diagonals) and draws
-
Interaction Designer: Built Components, set up Variables, and created on-click triggers.
-
Usability Tester: Ran peer play-tests, gathered feedback, and refined the prototype.
Tools Used

-
Figma: Components, Variables, Interactive Prototype
-
FigJam: Brainstorming, Low fidelity wireframes
Design Process
1. Research and Planning
I used a FigJam board to plan the entire Tic Tac Toe prototype before building it in Figma. On the board, I documented every variable, enumerated all eight win scenarios (three horizontals, three verticals, two diagonals) plus the draw rule and sketched the component variants for each cell (Empty, X, O). I also mapped out the full state diagram—start, player turns, win/draw checks and restart flow—and detailed the on-click interaction sequence: update cell, run win check, run draw check, then toggle the player. Having it all laid out in FigJam ensured a smooth, error-free build in Figma.
Visualizes every game state:
-
Start → Player X’s Turn → Place X → Check Win/Draw → Player O’s Turn → …
-
End states branch to “Player X Won,” “Player O Won,” or “Draw,” then loop back via Restart.

Enumerates all eight winning lines:
-
Three horizontal conditions
-
Three vertical conditions
-
Two diaagonal conditions
-
Defines the draw rule: if neither “X” nor “O” wins, the game stops so the user can exit or restart the game.

2. Component and Variable Setup
I turned my FigJam plan into Figma components and variables:
-
Cell Components (c1–c9): Created one master “Cell” with three variants—Empty, X and O.
-
Key Variables:
-
currentPlayer (tracks whose turn it is)
-
moveCount (counts taps to detect a draw)
-
gameOn / gameOver flags (controls when the board is interactive)
-
Winner (stores “X” or “O” when someone wins)
-
Overlay flags (e.g. c1h, c3d) to highlight the winning line
-
With components in place and variables defined, I was ready to build the interactive rules.


3. Interaction Design & Prototyping
In this phase, I brought the static components and variables together to create a fully interactive prototype in Figma. By configuring simple on-click rules and automated logic checks, the prototype handles turns, win/draw detection, and restart functionality. Finally, I linked frames and added smooth transitions so users can play the game seamlessly.




4. Usability Testing & Iteration
In this phase, I brought the static components and variables together to create a fully interactive prototype in Figma. By configuring simple on-click rules and automated logic checks, the prototype handles turns, win/draw detection, and restart functionality. Finally, I linked frames and added smooth transitions so users can play the game seamlessly.
Learnings & Outcomes
After iterating on feedback, I applied final polish on refining typography, spacing and color contrast and smoothing out transitions. The prototype achieved robust playability with 100% task completion in tests and clear, immediate feedback for users. This project reinforced the value of upfront planning, modular component design, and rapid peer testing in delivering polished, interactive experiences without writing a single line of code.
Future Improvements & Next Steps
-
Score Tracking
Implement a persistent round-by-round scoreboard that records wins, losses, and draws, encouraging competitive replay and allowing users to reset or review their stats. -
Expand to Mobile & Desktop
Adapt the current tablet-only prototype into fully responsive mobile and desktop versions, optimizing layoutsfor each platform. -
Add Dark/Light Mode Toggle
Implement a theme switch so users can seamlessly toggle between dark and light modes, improving comfort and accessibility in various lighting conditions.​
Conclusion
This Tic Tac Toe case study demonstrates how thorough planning and Figma’s advanced prototyping features can bring a dynamic, rule-based game to life without code. By mapping every condition in FigJam, building modular components and iterating through peer testing, I created a polished, fully playable prototype that tracks turns, detects wins/draws and supports a one-tap restart.