native_virtual_keyboard
An almost pixel perfect Flutter replica of iOS and Android native keyboards.
Showcase
The original iOS 26 (Liquid Glass) keyboard on the left, the Flutter replica is on the right.

Features
- Native Appearance: Ships with pixel-perfect designs for:
- Android
- iOS 18 (Classic)
- iOS 26 (Liquid Glass)
- Automatic Detection: Automatically selects the correct keyboard style based on the platform.
- Theming API: Powerful theming system to customize colors, shadows, and fonts.
- Native Behavior: Key tap animations, overlays, and sound effects matching native behavior.
Usage
Basic
The widget automatically detects the platform and renders the appropriate native keyboard.
VirtualKeyboard(
controller: VirtualKeyboardController(
layout: EnglishQwertyKeyboardLayout(),
onKeyPress: (key) {
// Handle key press
},
),
),
Custom Theme
You can fully customize the keyboard appearance using KeyboardTheme.
VirtualKeyboard(
// Use a pre-built native theme
theme: KeyboardTheme.androidDark(),
controller: ...,
),
Or create a completely custom theme:
VirtualKeyboard(
theme: KeyboardTheme(
backgroundColor: Color(0xFF1E3167),
keyTheme: KeyboardKeyTheme(
backgroundColor: Color(0xFF526087),
pressedBackgroundColor: Color(0xFF4164C8),
foregroundColor: Colors.white,
shadows: [
BoxShadow(offset: Offset(0, 1), color: Colors.black26),
],
),
specialKeyTheme: KeyboardSpecialKeyTheme(
backgroundColor: Color(0xFF4164C8),
// ... special key properties
),
),
controller: ...,
),
Getting Started
Please see the example project for a complete implementation. This plugin has no native dependencies and can be used on any platform.
Author
This plugin is developed by Chunky Tofu Studios.
You can support us by checking out our apps!
For commercial support please reach out to hello@chunkytofustudios.com.
Libraries
- gen/assets.gen
- GENERATED CODE - DO NOT MODIFY BY HAND
- native_virtual_keyboard