KeyboardKit supports 60 locales, localized system keyboards, custom keys and layouts, autocomplete, audio and haptic feedback etc.

KeyboardKit icon with features

Visit the project site for information, documentation, a getting-started guide and a demo app.

🌐 Locales

KeyboardKit supports 60 keyboard locales, with more being added over time.

💥 Actions

KeyboardKit comes with a bunch of keyboard-specific actions, like characters, emojis, actions etc. You can easily complete or replace the standard action handling with your own logic.

🎨 Appearance

KeyboardKit comes with an appearance engine that lets you change the button images and texts as well as the colors, fonts, shadows, callouts etc. for any part of the keyboard.

💡 Autocomplete

KeyboardKit can present autocomplete suggestions as the user types. KeyboardKit Pro has local and remote autocomplete services that work with most of the supported locales.

🗯 Callouts

KeyboardKit can show an input callout when the user types, as well as a secondary callout when the user long presses a key that has secondary actions.

😊 Emojis

KeyboardKit defines emojis and emoji categories that you can use in your own keyboards. It also has an emoji keyboard that aims to mimic the native iOS emoji keyboard.

⌨️ External Keyboards

KeyboardKit lets you detect whether or not an external keyboard is used, so that you can hide or customize the keyboard if needed.

👋 Feedback

KeyboardKit can give customizable haptic and audio feedback feedback as the user types or when certain actions are triggered.

👆 Gestures

KeyboardKit comes with keyboard-specific gestures that you can use to tailor the typing experience in your own keyboards.

🔤 Input

KeyboardKit comes with standard alphabetic, numeric and symbolic input sets that determine the input keys of your keyboard. You can even create your own.

💱 Keyboard Layouts

KeyboardKit comes with standard keyboard layouts that determine the keys of a keyboard. These layouts can vary based on device, locale etc.

⌨️ Keyboard Utilities

KeyboardKit has a large set of additional, general keyboard-specific utilities, inspectors, observable state etc. that you can use without the rest of the library.

🌐 Locales

KeyboardKit defines keyboard-specific locales that provide localized content and assets, that can be used to create completely localized system keyboards.

➡️ Proxy Extensions

KeyboardKit defines a bunch of UITextDocumentProxy extensions, that make it more powerful and capable than when you only have the native APIs.

🚏 Routing

KeyboardKit lets you route text to other destinations than the main app, for instance a text field within the keyboard extension itself.

⬅️ RTL

KeyboardKit supports both LTR (left-to-right) and RTL (right-to-left) locales, such as Arabic, Persian, Kurdish Sorani, Kurdish Arabic etc.

⚙️ System Settings

KeyboardKit has tools for accessing and linking to an app’s keyboard settings, which makes it easy for a user to enable a keyboard, give it full access etc.

👑 KeyboardKit Pro

If you want to take your keyboard to the next level, KeyboardKit Pro is a license-based extension that unlocks pro features like localized system keyboards, input sets, layouts and callout actions, local and remote autocomplete engines, emoji skintone support etc.