---
description: Capacitor plugin to read and control the WebView text zoom, so you can offer a custom text-size setting and respect the operating system's preferred font size. Supports Android and iOS.
title: Capacitor Text Zoom Plugin for Android and iOS - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/text-zoom.png
---

<!doctype html> 

[Skip to content ](#capacitor-text-zoom-plugin) 

[📲 Introducing **Build Sharing** — get your builds onto testers' devices with a link & QR code. No account required. ](/blog/share-mobile-app-builds-with-testers/) 

* [ SDKs ](/docs/sdks/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ Gyroscope ](/docs/sdks/capacitor/gyroscope/)
* [ Haptics ](/docs/sdks/capacitor/haptics/)
* [ Home Indicator ](/docs/sdks/capacitor/home-indicator/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Intercom ](/docs/sdks/capacitor/intercom/)
* [ Intune ](/docs/sdks/capacitor/intune/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Light Sensor ](/docs/sdks/capacitor/light-sensor/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Localization ](/docs/sdks/capacitor/localization/)
* [ Mail Composer ](/docs/sdks/capacitor/mail-composer/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ Network ](/docs/sdks/capacitor/network/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ Node.js ](/docs/sdks/capacitor/nodejs/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Passkeys ](/docs/sdks/capacitor/passkeys/)
* [ Password Autofill ](/docs/sdks/capacitor/password-autofill/)
* [ PDF Generator ](/docs/sdks/capacitor/pdf-generator/)
* [ PDF Viewer ](/docs/sdks/capacitor/pdf-viewer/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Permissions ](/docs/sdks/capacitor/permissions/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ Photo Manipulator ](/docs/sdks/capacitor/photo-manipulator/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Proximity Sensor ](/docs/sdks/capacitor/proximity-sensor/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Root Detection ](/docs/sdks/capacitor/root-detection/)
* [ Screen Brightness ](/docs/sdks/capacitor/screen-brightness/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screen Reader ](/docs/sdks/capacitor/screen-reader/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Settings Launcher ](/docs/sdks/capacitor/settings-launcher/)
* [ Shake ](/docs/sdks/capacitor/shake/)
* [ Silent Mode ](/docs/sdks/capacitor/silent-mode/)
* [ SIM ](/docs/sdks/capacitor/sim/)
* [ SMS Composer ](/docs/sdks/capacitor/sms-composer/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ System WebView ](/docs/sdks/capacitor/system-webview/)
* [ Tauri ](/docs/sdks/capacitor/tauri/)
* [ Text Interaction ](/docs/sdks/capacitor/text-interaction/)
* Text Zoom [ Text Zoom ](/docs/sdks/capacitor/text-zoom/)
* [ Migration from @capacitor/text-zoom ](#migration-from-capacitortext-zoom)
* [ API ](#api)
* [ Platform Notes ](#platform-notes)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ Toast ](/docs/sdks/capacitor/toast/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Volume ](/docs/sdks/capacitor/volume/)
* [ Wallet ](/docs/sdks/capacitor/wallet/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ YouTube Player ](/docs/sdks/capacitor/youtube-player/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Notifications
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ Migration from @capacitor/text-zoom ](#migration-from-capacitortext-zoom)
* [ API ](#api)
* [ Platform Notes ](#platform-notes)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)

# Capacitor Text Zoom Plugin[¶](#capacitor-text-zoom-plugin "Permanent link")

Capacitor plugin for reading and controlling the WebView text zoom.

[ ![Deliver Live Updates to your Capacitor app with Capawesome Cloud](../../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](https://cloud.capawesome.io/) 

## Features[¶](#features "Permanent link")

* 🔍 **Read zoom**: Read the current text zoom of the WebView.
* 🔠 **Set zoom**: Set the text zoom, e.g. to offer your own text-size setting.
* ♿ **Preferred zoom**: Read the device's preferred text zoom to respect the operating system's font size settings.
* 🤝 **Compatibility**: Works alongside the [Accessibility Preferences](https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/) plugin, whose font scale is a natural input for the text zoom.
* 📦 **CocoaPods & SPM**: Supports CocoaPods and Swift Package Manager for iOS.
* 🔁 **Up-to-date**: Always supports the latest Capacitor version.

Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!

## Use Cases[¶](#use-cases "Permanent link")

The Text Zoom plugin is typically used to make the text size of an app adjustable, for example:

* **Custom text-size settings**: Offer an in-app setting that lets users increase or decrease the text size with `setZoom(...)`.
* **Accessibility**: Read the device's preferred text zoom with `getPreferredZoom()` and apply it to respect the operating system's font size settings.
* **Reading-focused apps**: Let users of news, book, or documentation apps adjust the text size to their comfort.
* **Restoring the zoom on app launch**: Read the persisted value from a preferences plugin and re-apply it with `setZoom(...)` on startup.

## Compatibility[¶](#compatibility "Permanent link")

| Plugin Version | Capacitor Version | Status         |
| -------------- | ----------------- | -------------- |
| 0.x.x          | \>=8.x.x          | Active support |

## Installation[¶](#installation "Permanent link")

You can use our **AI-Assisted Setup** to install the plugin. Add the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:

`[](#%5F%5Fcodelineno-0-1)npx skills add capawesome-team/skills --skill capacitor-plugins
`

Then use the following prompt:

`` [](#%5F%5Fcodelineno-1-1) Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-text-zoom` plugin in my project.
 ``

If you prefer **Manual Setup**, install the plugin by running the following commands:

`[](#%5F%5Fcodelineno-2-1)npm install @capawesome/capacitor-text-zoom
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

This plugin is available on **Android** and **iOS**. On Web, all methods reject as unimplemented.

## Configuration[¶](#configuration "Permanent link")

No configuration required for this plugin.

## Usage[¶](#usage "Permanent link")

The following examples show how to read the current text zoom, read the device's preferred text zoom, and set the text zoom of the WebView.

### Read the current text zoom[¶](#read-the-current-text-zoom "Permanent link")

Get the current text zoom of the WebView, where `1.0` equals `100%` (no zoom). Only available on Android and iOS:

`[](#%5F%5Fcodelineno-3-1)import { TextZoom } from '@capawesome/capacitor-text-zoom';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const getZoom = async () => {
[](#%5F%5Fcodelineno-3-4)  const { zoom } = await TextZoom.getZoom();
[](#%5F%5Fcodelineno-3-5)  return zoom;
[](#%5F%5Fcodelineno-3-6)};
`

### Read the preferred text zoom of the device[¶](#read-the-preferred-text-zoom-of-the-device "Permanent link")

Get the preferred text zoom based on the operating system's font size settings, for example to use it as an input for `setZoom(...)`. Only available on Android and iOS:

`[](#%5F%5Fcodelineno-4-1)import { TextZoom } from '@capawesome/capacitor-text-zoom';
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const getPreferredZoom = async () => {
[](#%5F%5Fcodelineno-4-4)  const { zoom } = await TextZoom.getPreferredZoom();
[](#%5F%5Fcodelineno-4-5)  return zoom;
[](#%5F%5Fcodelineno-4-6)};
`

### Set the text zoom[¶](#set-the-text-zoom "Permanent link")

Set the text zoom of the WebView. The value must be greater than `0` and is not persisted across app restarts. Only available on Android and iOS:

`[](#%5F%5Fcodelineno-5-1)import { TextZoom } from '@capawesome/capacitor-text-zoom';
[](#%5F%5Fcodelineno-5-2)
[](#%5F%5Fcodelineno-5-3)const setZoom = async () => {
[](#%5F%5Fcodelineno-5-4)  await TextZoom.setZoom({ zoom: 1.5 });
[](#%5F%5Fcodelineno-5-5)};
`

## Migration from `@capacitor/text-zoom`[¶](#migration-from-capacitortext-zoom "Permanent link")

This plugin is a drop-in alternative to the official [@capacitor/text-zoom](https://www.npmjs.com/package/@capacitor/text-zoom) plugin with a slightly more explicit API:

| @capacitor/text-zoom       | @capawesome/capacitor-text-zoom |
| -------------------------- | ------------------------------- |
| get() → { value }          | getZoom() → { zoom }            |
| getPreferred() → { value } | getPreferredZoom() → { zoom }   |
| set({ value })             | setZoom({ zoom })               |

## API[¶](#api "Permanent link")

* [getPreferredZoom()](#getpreferredzoom)
* [getZoom()](#getzoom)
* [setZoom(...)](#setzoom)
* [Interfaces](#interfaces)

### getPreferredZoom()[¶](#getpreferredzoom "Permanent link")

`[](#%5F%5Fcodelineno-6-1)getPreferredZoom() => Promise<GetPreferredZoomResult>
`

Get the preferred text zoom of the device based on the operating system's font size settings.

This value can be used as an input for `setZoom(...)` to respect the user's system font size preference.

Only available on Android and iOS.

**Returns:** `Promise<[GetPreferredZoomResult](#getpreferredzoomresult)>`

**Since:** 0.1.0

---

### getZoom()[¶](#getzoom "Permanent link")

`[](#%5F%5Fcodelineno-7-1)getZoom() => Promise<GetZoomResult>
`

Get the current text zoom of the WebView.

Only available on Android and iOS.

**Returns:** `Promise<[GetZoomResult](#getzoomresult)>`

**Since:** 0.1.0

---

### setZoom(...)[¶](#setzoom "Permanent link")

`[](#%5F%5Fcodelineno-8-1)setZoom(options: SetZoomOptions) => Promise<void>
`

Set the text zoom of the WebView.

The zoom is not persisted across app restarts. Persist the value with a preferences plugin and re-apply it on app launch if needed.

Only available on Android and iOS.

| Param       | Type                              |
| ----------- | --------------------------------- |
| **options** | [SetZoomOptions](#setzoomoptions) |

**Since:** 0.1.0

---

### Interfaces[¶](#interfaces "Permanent link")

#### GetPreferredZoomResult[¶](#getpreferredzoomresult "Permanent link")

| Prop     | Type   | Description                                              | Since |
| -------- | ------ | -------------------------------------------------------- | ----- |
| **zoom** | number | The preferred text zoom where 1.0 equals 100% (no zoom). | 0.1.0 |

#### GetZoomResult[¶](#getzoomresult "Permanent link")

| Prop     | Type   | Description                                            | Since |
| -------- | ------ | ------------------------------------------------------ | ----- |
| **zoom** | number | The current text zoom where 1.0 equals 100% (no zoom). | 0.1.0 |

#### SetZoomOptions[¶](#setzoomoptions "Permanent link")

| Prop     | Type   | Description                                                                   | Since |
| -------- | ------ | ----------------------------------------------------------------------------- | ----- |
| **zoom** | number | The text zoom to set where 1.0 equals 100% (no zoom). Must be greater than 0. | 0.1.0 |

## Platform Notes[¶](#platform-notes "Permanent link")

### iOS[¶](#ios "Permanent link")

The text zoom is implemented via the `-webkit-text-size-adjust` CSS property, which only takes effect when the WebView runs in **mobile content mode**. On iPad, the WebView defaults to desktop content mode, so `setZoom(...)` has no visible effect unless you set the following in your `capacitor.config`:

`[](#%5F%5Fcodelineno-9-1){
[](#%5F%5Fcodelineno-9-2)  "ios": {
[](#%5F%5Fcodelineno-9-3)    "preferredContentMode": "mobile"
[](#%5F%5Fcodelineno-9-4)  }
[](#%5F%5Fcodelineno-9-5)}
`

### Persistence[¶](#persistence "Permanent link")

The text zoom is **not** persisted across app restarts. Persist the value with a preferences plugin (e.g. [@capacitor/preferences](https://www.npmjs.com/package/@capacitor/preferences)) and re-apply it on app launch if needed.

## FAQ[¶](#faq "Permanent link")

### How is this plugin different from other similar plugins?[¶](#how-is-this-plugin-different-from-other-similar-plugins "Permanent link")

It lets you read and set the WebView text zoom on Android and iOS, and it can also read the device's preferred zoom so your app can respect the operating system's font size settings for better accessibility. The API is explicit and fully typed, supports both CocoaPods and Swift Package Manager on iOS, and is actively maintained against the latest Capacitor and OS versions, with clear platform notes for cases like iPad content mode. If you only need a fixed text size, you may not need it at all; if you want an adjustable, accessibility-aware text size, it is built for exactly that.

### How is this plugin different from the official `@capacitor/text-zoom` plugin?[¶](#how-is-this-plugin-different-from-the-official-capacitortext-zoom-plugin "Permanent link")

This plugin is a drop-in alternative to the official `@capacitor/text-zoom` plugin with a slightly more explicit API: `get()` becomes `getZoom()`, `getPreferred()` becomes `getPreferredZoom()`, and `set({ value })` becomes `setZoom({ zoom })`. See the [migration table](#migration-from-capacitortext-zoom) above for a side-by-side comparison.

### Why does `setZoom` have no effect on iPad?[¶](#why-does-setzoom-have-no-effect-on-ipad "Permanent link")

On iOS, the text zoom is implemented via the `-webkit-text-size-adjust` CSS property, which only takes effect when the WebView runs in mobile content mode. On iPad, the WebView defaults to desktop content mode, so you need to set `preferredContentMode` to `mobile` in the `ios` section of your `capacitor.config` (see [Platform Notes](#platform-notes)).

### Is the text zoom persisted across app restarts?[¶](#is-the-text-zoom-persisted-across-app-restarts "Permanent link")

No, the text zoom is not persisted. Persist the value with a preferences plugin such as `@capacitor/preferences` and re-apply it with `setZoom(...)` on app launch if needed.

### How do I respect the user's system font size?[¶](#how-do-i-respect-the-users-system-font-size "Permanent link")

Call `getPreferredZoom()` to read the preferred text zoom of the device based on the operating system's font size settings, and pass the returned value to `setZoom(...)`. This way, the text size of your app follows the user's system preference.

### Which platforms are supported?[¶](#which-platforms-are-supported "Permanent link")

The plugin is available on Android and iOS. On Web, all methods reject as unimplemented.

### Can I use this plugin with Ionic, React, Vue or Angular?[¶](#can-i-use-this-plugin-with-ionic-react-vue-or-angular "Permanent link")

Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.

## Related Plugins[¶](#related-plugins "Permanent link")

* [Accessibility Preferences](https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/): Read the user's system accessibility preferences, such as the font scale.
* [Screen Reader](https://capawesome.io/docs/sdks/capacitor/screen-reader/): Interact with screen readers.
* [Text Interaction](https://capawesome.io/docs/sdks/capacitor/text-interaction/): Enable and disable text interaction (selection, magnifier, callout menu) in the app's WebView.

## Newsletter[¶](#newsletter "Permanent link")

Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).

## Changelog[¶](#changelog "Permanent link")

See [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/text-zoom/CHANGELOG.md).

## License[¶](#license "Permanent link")

See [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/text-zoom/LICENSE).

July 8, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/text-zoom/#article", "headline": "Capacitor Text Zoom Plugin for Android and iOS", "name": "Capacitor Text Zoom Plugin for Android and iOS", "description": "Capacitor plugin to read and control the WebView text zoom, so you can offer a custom text-size setting and respect the operating system's preferred font size. Supports Android and iOS.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/text-zoom/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/text-zoom/", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "about": {"@id": "https://capawesome.io/docs/sdks/capacitor/text-zoom/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/text-zoom/#software", "name": "Capacitor Text Zoom Plugin for Android and iOS", "description": "Capacitor plugin to read and control the WebView text zoom, so you can offer a custom text-size setting and respect the operating system's preferred font size. Supports Android and iOS.", "url": "https://capawesome.io/docs/sdks/capacitor/text-zoom/", "programmingLanguage": "TypeScript", "runtimePlatform": "Capacitor", "codeRepository": "https://github.com/capawesome-team", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}}]}
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "How is this plugin different from other similar plugins?", "acceptedAnswer": {"@type": "Answer", "text": "It lets you read and set the WebView text zoom on Android and iOS, and it can also read the device's preferred zoom so your app can respect the operating system's font size settings for better accessibility. The API is explicit and fully typed, supports both CocoaPods and Swift Package Manager on iOS, and is actively maintained against the latest Capacitor and OS versions, with clear platform notes for cases like iPad content mode. If you only need a fixed text size, you may not need it at all; if you want an adjustable, accessibility-aware text size, it is built for exactly that."}}, {"@type": "Question", "name": "How is this plugin different from the official @capacitor/text-zoom plugin?", "acceptedAnswer": {"@type": "Answer", "text": "This plugin is a drop-in alternative to the official @capacitor/text-zoom plugin with a slightly more explicit API: get() becomes getZoom(), getPreferred() becomes getPreferredZoom(), and set({ value }) becomes setZoom({ zoom }). See the migration table above for a side-by-side comparison."}}, {"@type": "Question", "name": "Why does setZoom have no effect on iPad?", "acceptedAnswer": {"@type": "Answer", "text": "On iOS, the text zoom is implemented via the -webkit-text-size-adjust CSS property, which only takes effect when the WebView runs in mobile content mode. On iPad, the WebView defaults to desktop content mode, so you need to set preferredContentMode to mobile in the ios section of your capacitor.config (see Platform Notes)."}}, {"@type": "Question", "name": "Is the text zoom persisted across app restarts?", "acceptedAnswer": {"@type": "Answer", "text": "No, the text zoom is not persisted. Persist the value with a preferences plugin such as @capacitor/preferences and re-apply it with setZoom(...) on app launch if needed."}}, {"@type": "Question", "name": "How do I respect the user's system font size?", "acceptedAnswer": {"@type": "Answer", "text": "Call getPreferredZoom() to read the preferred text zoom of the device based on the operating system's font size settings, and pass the returned value to setZoom(...). This way, the text size of your app follows the user's system preference."}}, {"@type": "Question", "name": "Which platforms are supported?", "acceptedAnswer": {"@type": "Answer", "text": "The plugin is available on Android and iOS. On Web, all methods reject as unimplemented."}}, {"@type": "Question", "name": "Can I use this plugin with Ionic, React, Vue or Angular?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects."}}], "url": "https://capawesome.io/docs/sdks/capacitor/text-zoom/"}
```
