The 1977 IBM System/34 keyboard layout that introduced the shared arrow/numeric block later inherited by modern PCs.
*A 2021 Figma bug exposed a 40‑year‑old keyboard shortcut inherited from IBM. The quirk survived Windows 1.0 to 10, but vanished on Macs. Understanding the legacy reveals why modern UI bugs linger.*
In May 2021 a Figma user posted a puzzling bug: pressing Shift+2 on the main keyboard zoomed to selection, but the same shortcut on the numeric keypad moved the cursor down. The glitch appeared only on Windows machines, leaving macOS users untouched. The report sparked a deep dive into keyboard history, revealing that the behavior traced back to IBM’s early computer keyboards and a decades‑old MS‑DOS shortcut. The discovery underscores how legacy hardware decisions can echo through modern software, creating hidden friction for today’s designers.
The thread that surfaced the issue linked the problem to the Num Lock key, a relic from IBM’s 1977 System/34 and its 1980 Datamaster successor. Those machines forced arrow keys and numeric keys to share a single block, requiring a toggle. A Shift‑based “quasimode” let power users switch modes on the fly, a shortcut that survived every Windows release. When browsers finally supplied the needed key‑event granularity, Figma could correct the mapping, ending a bug that was really a historical artifact.
On 20 May 2021 a user reported that Shift+2 on a standard keyboard zoomed to selection, while Shift+2 on the numeric keypad moved the cursor down. The bug appeared only on Windows, not on macOS. Figma interpreted the numeric keypad combination as the down‑arrow key because Windows still treats Shift+numeric‑2 as a Num Lock‑controlled arrow. The behavior matched a long‑standing MS‑DOS shortcut that toggles Num Lock mode with Shift, a convention preserved through every Windows version.
In 1977 IBM launched the System/34, a small business computer with a 5251 display and a beam‑spring keyboard. The layout placed a numeric keypad on the right and arrow keys on the far left, reflecting the era’s limited need for arrow navigation. The machine cost five or six figures, making the keyboard a premium component. This arrangement seeded the dual‑function key design that later required a Num Lock toggle.
IBM’s 1980 Datamaster (System/23) reused the 5251 layout but added buckling‑spring switches. When the IBM PC arrived in 1981, designers copied the Datamaster keyboard, swapping the left block for function keys and moving arrows to the right side. To preserve users’ motor memory, they introduced a Num Lock key that switched the shared block between arrows and numbers. A power‑user shortcut—holding Shift while pressing the key—allowed rapid mode changes, a practice that survived into Windows.
Browser APIs eventually exposed enough detail to differentiate the two Shift+2 inputs. Figma could then map the numeric‑keypad combination to its intended function, closing the bug. The fix highlighted that the problem was never a software defect but an inherited hardware convention. Macs never suffered because early models lacked a combined numeric‑arrow block, and later Macs placed arrows and numbers in separate sections, eliminating the need for Num Lock.
Windows still treats Shift+numeric‑2 as a Num Lock‑controlled arrow key, so Figma received a down‑arrow command instead of the zoom shortcut.
IBM's 1977 System/34 placed arrows and numbers in the same block, leading to the Num Lock toggle that persisted through the 1980 Datamaster and the 1981 IBM PC.
Browser updates provided distinct key‑event data, allowing Figma to differentiate the two Shift+2 inputs and map the numeric keypad correctly.
The Figma incident is a reminder that software rarely exists in a vacuum. A single keystroke can carry four decades of engineering compromise, user habit, and corporate inertia. As UI teams chase speed, they must audit the hidden legacies embedded in every input device. Ignoring them risks repeating the same friction that once slowed spreadsheet users and now stalls designers.
Sources: https://aresluna.org/this-is-a-story-of-a-figma-bug/