>_ program-games.org
browse games
LearningOnlineFree

CSS Diner

Learn CSS selectors by writing them to grab the right plates, bento boxes and sushi off a restaurant table.

4.5 (312 reviews)24k playingReleased 2015

// About this game

CSS Diner is best understood as learning built around code as the main verb, not as a normal game with a small programming minigame attached. CSS Diner is a beloved little browser game where each level asks you to select specific items on a table by writing a CSS selector. It ramps from simple type selectors to nth-child and combinators, and is one of the fastest, most painless ways to internalise how selectors actually work. The useful question for a new player is not simply "is it about programming?", but what kind of thinking it asks for: CSS, css, web and free, and a willingness to test an idea by letting the simulation run. Released in 2015 by Flukeout, it sits in the catalog because the program you write is the thing that actually changes the game state.

The game is built as a teaching path, so the levels introduce one idea at a time and immediately ask you to apply it. Good learning games are valuable because they turn abstract syntax into a visible cause-and-effect loop. In CSS Diner, that means the fun is in the gap between an intention and a working implementation. You start with a rough plan, translate it into the tools the game provides, then watch the result expose every missing condition. A direct solution may pass the first level or match, but the better solutions usually come from noticing a pattern: repeated movement, wasted work, poor targeting, bad routing, a race condition, a blocked path, or a decision that should have been stored as state instead of hard-coded.

The language side is centered on CSS, but the transferable skill is broader than syntax. You practice decomposition, debugging, iteration and the habit of reading the rules before blaming the machine. The beginner rating does not mean it is trivial; it means the first useful program arrives quickly, before the game asks you to optimize or generalize. Because it is online, the game also has a social or persistent edge: your code has to survive contact with leaderboards, shared state, other players or changing live conditions instead of only beating a frozen puzzle once. The best sessions are usually not the ones where everything works immediately; they are the ones where a failed run gives you a clear hypothesis for the next version. If the game has leaderboards, ratings or community solutions, those become useful mirrors rather than just bragging rights, because they show how many different shapes a correct program can take.

CSS Diner is strongest for players who like the feeling of making a system slightly smarter each time they touch it. It will be less satisfying if you want fast reflex challenges, cinematic spectacle or a puzzle with only one intended answer. The reward is more specific: seeing your own instructions harvest, fight, route, query, build, solve or survive without your hand on the controls. It is also easy to recommend as a trial because the entry cost is low: you can open it, test whether the programming model clicks, and only then decide how deep you want to go. Taken on its own terms, it is a practical way to turn programming concepts into a visible loop, where every bug is part of the play and every improvement has a concrete effect on the world in front of you.

// What you’ll write

CSS Diner is all selectors. You are not styling the table; you are proving you can target the exact DOM nodes the level asks for.

style.csscss
plate
bento orange
#fancy pickle
plate > apple
plate:nth-child(2)

CSS Diner game page ↗

4.5
312 reviews
5 ★
4 ★
3 ★
2 ★
1 ★

// Related games

// Related guides