KeyboardKit supports 61 locales and comes packed with powerful features.

Page hero image for features page

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

🌐 Localization

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

💥 Actions

KeyboardKit comes with a bunch of keyboard-specific action types, like inputs, system keys, actions etc. and standard ways to handle these actions. You can easily add your own logic to the mix.

🎨 Appearance

KeyboardKit comes with an appearance engine that lets you customize images, texts, colors, fonts, shadows, callouts, and more, for any part of the keyboard.

KeyboardKit Pro unlocks a theme engine that lets you style your keyboards with themes. You can create your own themes or use the standard set that come with the engine.

💡 Autocomplete

KeyboardKit can show autocomplete suggestions as the user types. KeyboardKit Pro unlocks local and remote autocomplete providers that work with most keyboard locales.

🗯 Callouts

KeyboardKit can show an input callout when the user presses an input key and a secondary action callout when the user long presses an input key with secondary actions.

🎙️ Dictation

KeyboardKit has tools that let you perform dictation from your custom keyboard extension, as well as in your app.

😊 Emojis

KeyboardKit defines emojis and emoji categories, as well as a lot of additional information about each emoji. It also has an emoji keyboard that mimics 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 your software 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 a gesture engine that supports all native keyboard gestures, and that you can use to tailor the typing experience in your keyboards.

🔤 Input

KeyboardKit comes with standard alphabetic, numeric and symbolic input sets that determine the input keys of a keyboard. KeyboardKit Pro unlocks localized input sets for all 61 locales.

💱 Layout

KeyboardKit comes with a layout engine that determine the full set of keys of a keyboard, that can vary based on device, locale etc. KeyboardKit Pro unlocks localized layouts for all 61 locales.

👁️ Preview Utilities

KeyboardKit has utilites that help you preview keyboard views and components in SwiftUI, which means tighter feedback loops when developing.

➡️ Proxy Extensions

KeyboardKit defines a bunch of extensions to the document proxy, that make it more powerful and capable than it is 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 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 things to the next level, KeyboardKit Pro unlocks features like localized system keyboards and services, local and remote autocomplete, dictation, emoji skintone support etc.