All Docs
FeaturesCalmony Sanctions MonitorUpdated March 11, 2026

Fixing iOS Auto-Zoom on Form Inputs

Fixing iOS Auto-Zoom on Form Inputs

Release: v0.1.62 · MOB-17

The Problem

When using the platform on an iPhone or iPad, tapping into any form field — the people search bar, the Add Person form, the API key settings field, match review notes, or filter dropdowns — caused iOS Safari to automatically zoom the page in. After finishing with the field the page stayed zoomed, forcing users to manually pinch-zoom back out before continuing.

This is a well-known iOS Safari behaviour: the browser zooms the viewport whenever a focused <input> or <textarea> has a computed font-size below 16px. All form inputs in the application were set to text-sm (14px), consistently triggering the zoom on every interaction.

The Fix

The solution is straightforward: raise input font sizes to at least 16px (text-base in Tailwind). Two locations were updated:

1. AccessibleInput component

src/components/ui/accessible-form.tsx is the shared component used by the majority of form fields across the app. Its className was updated:

- w-full rounded-lg border border-input bg-background px-3 py-2 text-sm ...
+ w-full rounded-lg border border-input bg-background px-3 py-2 text-base ...

This single change covers the Add Person form, settings API key form, and match review notes textarea in one go.

2. Direct inputs on the People page

people/page.tsx contains a search <input> and one or more <select> filter elements that are styled directly rather than via AccessibleInput. These were updated individually:

- className="... text-sm ..."
+ className="... text-base ..."

Affected Surfaces

SurfaceComponent / File
Add Person formAccessibleInput
Settings — API key formAccessibleInput
Match review notes textareaAccessibleInput
People search inputpeople/page.tsx (direct)
People filter selectspeople/page.tsx (direct)

Why 16px?

iOS Safari's zoom threshold is a hard browser-level rule: any focused input with font-size < 16px triggers automatic viewport scaling. There is no CSS meta-tag or JavaScript workaround that reliably prevents this without also disabling intentional user zoom. The only robust fix is ensuring all inputs meet the 16px minimum — which aligns with WCAG 2.1 SC 1.4.4 (Resize Text) recommendations anyway.

Visual Impact

Input text increases from 14px to 16px. This is a minor size change and is consistent with the surrounding body text. No layout or spacing changes are included in this release.