Landscape Everywhere: Full Mobile Redesign and iOS Support
Free Flick Football was always designed as a landscape game — the pitch is wider than it is tall, and flicking a ball sideways just feels right. But until now, if you opened the game on a phone held in portrait, you'd get a 'rotate your device' screen. And if you were on an iPhone, you couldn't play at all. Both of those problems are fixed today.
The game now forces landscape mode automatically using a CSS rotation trick. When a phone is in portrait, the entire HTML document rotates 90 degrees and swaps its width and height to fill the screen edge-to-edge. Touch coordinates are remapped through the inverse transform so flicking still works perfectly. The result: you can hold your phone however you want and the game always shows up in landscape.
iOS support was the bigger challenge. The original iOS block existed because Safari doesn't support the Fullscreen API, which the game relied on for an immersive experience. With the new forced-landscape approach, fullscreen isn't necessary — the game fills the viewport natively. We removed the block, and iPhone users can now play just like everyone else.
The hardest part of this update was fitting every screen into the limited vertical space of a phone in landscape. After subtracting the browser chrome (address bar, toolbar), you're left with roughly 280 pixels of height. The main menu, formation picker, online lobby, leaderboard, Pro modal, and tutorial all had to be completely redesigned for that constraint.
The main menu hides the logo, drops button subtitles, and tightens all spacing so every option is visible without scrolling. The formation picker switches to a 4-column grid so all 7 formations fit in two rows. The leaderboard uses a scrollable list with a compact header. The Pro modal lays out features in a 2-column grid. Every screen was touched.
Under the hood, viewport units needed special handling. CSS units like dvh and vw still reference the physical (pre-rotation) viewport inside the rotated container, so every inline style conditionally swaps dvh for dvw and vw for vh when the device is in portrait. It's not glamorous, but it's the kind of detail that makes the difference between 'it works' and 'it works everywhere'.
This update is live now. If you've been waiting to play on your iPhone, or if you've ever been annoyed by the rotate-your-device screen, go give it a try. The game looks and feels the same — it just works on every device now.