# react-native-keyboard-controller

> Keyboard manager which works in identical way on both iOS and Android

Latest version **1.22.5** (published 2026-09-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install react-native-keyboard-controller
pnpm add react-native-keyboard-controller
yarn add react-native-keyboard-controller
bun add react-native-keyboard-controller
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.22.5 |
| Published | 2026-09-11 |
| First published | 2022-05-01 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 1.6 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 3726 |
| Author | Kiryl Ziusko |
| Maintainers | kiryl.ziusko |
| Keywords | react-native, keyboard, interactive, dismiss, animation, focused input, text changed, selection changed, avoiding view, avoid keyboard, sticky view, over keyboard view, keyboard background view, keyboard aware scroll view, keyboard toolbar, keyboard done button, keyboard next button, keyboard previous button, keyboard effects, extend keyboard, chat, chat scroll view, ios, android |

## Links

- npm: https://www.npmjs.com/package/react-native-keyboard-controller
- Repository: https://github.com/kirillzyusko/react-native-keyboard-controller
- Homepage: https://kirillzyusko.github.io/react-native-keyboard-controller/
- Issues: https://github.com/kirillzyusko/react-native-keyboard-controller/issues
- npm.io page: https://npm.io/package/react-native-keyboard-controller

## Dependencies (1)

- [react-native-is-edge-to-edge](https://npm.io/package/react-native-is-edge-to-edge.md) ^1.2.1

## Alternatives

- [@sindresorhus/slugify](https://npm.io/package/@sindresorhus/slugify.md) — 3.7M weekly downloads
- [solid-js](https://npm.io/package/solid-js.md) — 2.7M weekly downloads
- [expo-glass-effect](https://npm.io/package/expo-glass-effect.md) — 2.5M weekly downloads
- [nanoassert](https://npm.io/package/nanoassert.md) — 780.8K weekly downloads
- [@ffmpeg/ffmpeg](https://npm.io/package/@ffmpeg/ffmpeg.md) — 529.5K weekly downloads

## Recent versions

- 1.22.5 (latest) — 2026-09-11
- 1.21.0-beta.3 (beta) — 2026-02-24
- 1.22.4 — 2026-08-17
- 1.22.3 — 2026-08-05
- 1.22.2 — 2026-07-20
- 1.22.1 — 2026-07-14
- 1.22.0 — 2026-07-09
- 1.21.14 — 2026-07-06
- 1.21.13 — 2026-06-29
- 1.21.12 — 2026-06-22
- 1.21.11 — 2026-06-09
- 1.21.10 — 2026-06-08
- 1.21.9 — 2026-06-01
- 1.21.8 — 2026-05-21
- 1.21.7 — 2026-05-04
- … 119 more at https://npm.io/package/react-native-keyboard-controller/versions

## README

# react-native-keyboard-controller

A universal keyboard handling solution for React Native — lightweight, fully customizable, and built for real-world apps. Smooth animations, consistent behavior on both iOS and Android, with a developer-oriented design.

<div>
  <img align="right" width="32%" src="./gifs/demo.png?raw=true">
</div>

### Key features

- 🧬 Map keyboard movement to animated values
- 🧪 `keyboardWillShow` / `keyboardWillHide` events now available on Android
- 🔮 Change soft input mode on Android
- ⚡ Preload keyboard to avoid first-time focus lag
- 🚀 Reanimated support
- 📱 Interactive keyboard dismissing 👆📱
- 📚 Prebuilt components (`KeyboardStickyView`, `KeyboardAwareScrollView`, reworked `KeyboardAvoidingView`)
- 📐 `KeyboardToolbar` with customizable _**previous**_, _**next**_, and _**done**_ buttons
- 🌐 Display anything over the keyboard (without dismissing it) using `OverKeyboardView`
- 🎨 Match keyboard background with `KeyboardBackgroundView`
- 🧩 Extend keyboard with custom buttons/UI via `KeyboardExtender`
- 🌈 Enhance keyboard UI with `KeyboardEffects`
- 💬 Build chat interfaces (messenger and 🤖 AI chats) easily with `KeyboardChatScrollView`
- 📝 Easy retrieval of focused input info
- 🧭 Compatible with any navigation library
- ✨ More coming soon... stay tuned! 😊

### Installation

Check out the [installation](https://kirillzyusko.github.io/react-native-keyboard-controller/docs/installation) section of the docs for detailed setup instructions.

### Documentation

Full API reference and guides available at:  
[https://kirillzyusko.github.io/react-native-keyboard-controller/](https://kirillzyusko.github.io/react-native-keyboard-controller/)

### Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repo and development workflow.

### License

MIT

---
_Source: https://npm.io/package/react-native-keyboard-controller · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
