Coming back with a code
In a new home-screen app, "I have a code" goes straight to the code without the tutorial, Paste is a button under the code tiles that finds the code in whatever was copied, and a sheet's last line clears the home indicator and the keyboard.
Context
Ru, adding the game to a home screen: "I don't want the instructions to come up if you have selected already played; go straight to inputting the code. Also the paste feature doesn't work." Then: "the I have an older, longer code is cut off on my phone."
On 3.25.3 the tutorial opened 650ms after any load on a phone that hadn't seen it. A fresh home-screen app is such a phone, so the tutorial opened with Played before?, stayed open behind Bring back your account, and opened again after the restore's reload. The code field was an input at opacity: 0 over the tiles, with "Paste works too." under them; iPhone doesn't offer Paste on an invisible field, and the saved note pasted whole switched to the long-code field. The code sheet has no foot, so its last line, "I have an older, longer code", ended 4px from the bottom of the screen.
Options
| Option | What it is | Result |
|---|---|---|
| Close the tutorial when I have a code is tapped | Leave the timer as it was; close the sheet on the answer | It would still open after the restore's reload, as for a new player. Not chosen |
| The tutorial waits for the answer | Played before? holds it; I have a code, a ?code= link or a restore marks it seen; I'm new opens it | Chosen |
| Keep "Paste works too." and make the field visible to iPhone | A see-through input in place of opacity: 0 | Kept, but pressing and holding an empty row of tiles is hard to find. Not enough on its own |
| A Paste button, and a code found in any text | Paste under the tiles reads the clipboard; any paste takes the code out of what was copied | Chosen, with the see-through field |
| A foot for the code sheet | Move Find my account into a foot | Changes the sheet's layout for one fix; other sheets with no foot would still sit under the home indicator. Not chosen |
| The body clears the inset when there's no foot | .modal-body:last-child adds env(safe-area-inset-bottom); a keyboard lifts the sheet | Chosen |
Decision
On a fresh home-screen install, the tutorial waits until Played before? is answered. I have a code, a ?code= link and a restore each mark the tutorial seen, so it doesn't open then or after the reload; I'm new, let's play opens it as before.
The code panel holds the tiles and, under them, Paste: the outlined icon button (44px, radius 12) with a clipboard icon. It reads the clipboard (iPhone asks first) and takes the first six code letters it finds, written ACD-347, acd 347, or inside the whole saved note or its link. A paste into the tiles does the same. If the clipboard can't be read, the tiles take focus and the sheet says "Press and hold the tiles, then tap Paste." The input over the tiles is see-through (color: transparent), never opacity: 0, and is 50px to tap. Under 360px the tiles are 38px.
A sheet with no foot adds the home-indicator inset under its body, as the foot does. While a keyboard is up, the app reads its height from the visual viewport into --kb; the sheet sits on top of it and drops the inset.
Evidence
Measured in Chromium as a home-screen app with the database stubbed, at 390×844, 390×664 and 320×568:
| 3.25.3, fresh home-screen app | "Played before?" and "How Outword works" open together; after I have a code, the code sheet and the tutorial |
| 3.25.4, the same | Played before? alone; after I have a code, the code sheet alone; after the restore and a reopen, no tutorial and the restored player kept; after I'm new, the tutorial |
| Paste | the whole saved note gives ACD347; "acd 347" pasted into the tiles gives ACD347, without the long-code field |
| Paste, clipboard refused | "Press and hold the tiles, then tap Paste." |
| A 336px keyboard | the sheet's bottom on the keyboard's top at every size; at 320×568 the body scrolls inside the sheet |
| The tiles at 320 | 296px in a 286px panel before; 272px after |
| The release check's audit | no number worse than 3.25.3 |
Consequences
- A returning player goes from Played before? to their code with nothing in between, and the tutorial stays for new players.
- Paste works whatever the phone does with the invisible field, and a player can paste their note without picking the code out of it.
- Every sheet without a foot ends above the home indicator in the home-screen app; nothing changes where there's no inset.
- Under a keyboard taller than the room left, a sheet scrolls inside itself instead of hiding behind the keyboard.
- What happens on a real iPhone (the clipboard prompt, the keyboard's height) wasn't measured; Chromium stands in for both.