flutter_custom_keyboard 1.0.5
flutter_custom_keyboard: ^1.0.5 copied to clipboard
A highly customizable Flutter keyboard widget with modern animations, haptic feedback, and cross-platform support. Perfect replacement for system keyboards in forms, login screens, and search fields.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.5 - 2025-09-09 #
Enhanced #
- Landscape Mode Optimization: Complete redesign of keyboard behavior in landscape orientation
- Compact Design: Keyboard now uses 35% of screen height instead of 50% in landscape mode
- Visual Scaling: Added intelligent height-only scaling (scaleY: 0.8) to maintain full width coverage
- Responsive Sizing: Ultra-compact 25px key height for landscape mode (down from 42px)
- Zero Padding: Removed all horizontal and vertical padding in landscape for maximum space efficiency
- Smart Scrolling: Optimized auto-scroll behavior to position focused fields just above keyboard with minimal movement
Fixed #
- Tablet Detection: Improved landscape detection using
MediaQuery.orientation
instead of size comparison - Device Classification: Fixed tablet detection using
shortestSide > 600
for more reliable cross-device compatibility - Layout Consistency: Resolved width scaling issues that caused keyboards to appear narrower than screen width
- Border Radius Matching: Added consistent 16px rounded corners to bottom modal sheet
- Scroll Behavior: Fixed excessive scrolling by implementing smart field coverage detection (>50% threshold)
- Static Analysis: Resolved deprecated
withOpacity
warnings and removed debug print statements
Technical #
- Transform Optimization: Implemented separate X/Y scaling (scaleX: 1.0, scaleY: 0.8) for landscape mode
- Alignment Control: Added
Alignment.bottomCenter
to maintain proper keyboard positioning - Cross-File Consistency: Updated tablet detection logic across all scaffold files for unified behavior
- Performance: Maintained typing performance while adding landscape optimizations
- Scroll Algorithm: Reduced buffer from 150px to 50px total with intelligent field coverage detection
- Animation Tuning: Faster scroll animations (200ms) with smoother easeOut curve
User Experience #
- Android-like Behavior: Landscape keyboard now behaves similarly to default Android keyboard
- Screen Real Estate: Significantly more content visible in landscape mode
- Visual Polish: Seamless rounded corners between modal sheet and keyboard container
- Responsive Design: Automatic adaptation between portrait and landscape orientations
- Natural Scrolling: Focused text fields now appear with comfortable spacing above keyboard
- Reduced Motion: Eliminated excessive screen movement when keyboard appears
Validation #
- Mobile Testing: Verified compact landscape behavior on Android devices
- Orientation Switching: Confirmed smooth transitions between portrait and landscape modes
- Cross-Device: Tested tablet detection accuracy across different screen sizes
- Visual Consistency: Validated matching design elements and corner radius alignment
1.0.4 - 2025-08-31 #
Fixed #
- Critical Layout Bug: Fixed keyboard not updating visually when switching between QWERTY, numeric, and symbol layouts
- State Management: Resolved issue where layout data was cached outside AnimatedBuilder preventing UI updates
- Layout Switching Logic: Ensured proper keyboard rebuilding when tapping 123, !@#, and ABC keys
Enhanced #
- Debug Support: Added comprehensive debug logging for layout switching operations
- Error Tracking: Improved debugging capabilities for layout state changes
- Development Tools: Enhanced development experience with better error reporting
Technical #
- Widget Lifecycle: Moved layout data retrieval inside AnimatedBuilder for proper state updates
- Performance: Optimized layout switching without affecting typing performance
- State Synchronization: Improved synchronization between keyboard state and visual representation
Validation #
- Layout Testing: Verified all three keyboard layouts (QWERTY → Numeric → Symbols) switch correctly
- User Experience: Confirmed smooth transitions between different input modes
- Production Ready: Thoroughly tested layout switching in production-like scenarios
Breaking Changes #
- None (backward compatible)
Migration Notes #
- No migration required - all changes are internal improvements
- Existing implementations will automatically benefit from the fixes
1.0.3 - 2025-08-31 #
Fixed #
- Layout Switching: Fixed critical bug where number and symbol keyboards weren't displaying after tapping layout switch keys (123, !@#, ABC)
- UI Refresh: Fixed keyboard not rebuilding when layout state changes by moving layout data retrieval inside AnimatedBuilder
- Backspace Long Press: Improved continuous backspace deletion with proper gesture handling and faster repeat rate (50ms intervals)
Improved #
- Ultra-Fast Response: Optimized key tap responsiveness for instant character input
- Moved text input to onTapDown for zero-delay typing experience
- Reduced animation durations (80ms → 40ms) for faster visual feedback
- Streamlined haptic feedback for better performance
- Code Quality: Significant improvements to code structure and documentation
- Fixed 43 → 39 static analysis issues
- Added comprehensive dartdoc comments to all public APIs
- Improved import structure using proper package imports
- Enhanced example app with publish_to: none configuration
Performance #
- Memory Optimization: Cleaned up unused animation controllers and variables
- Widget Building: Optimized layout caching and reduced unnecessary rebuilds
- State Management: Improved keyboard state updates with synchronous processing
- Gesture Detection: Enhanced long press detection for backspace functionality
Documentation #
- API Documentation: Added detailed dartdoc comments for better developer experience
- Library Documentation: Comprehensive library-level documentation with usage examples
- Troubleshooting: Enhanced README with better examples and debugging guides
1.0.0 - 2025-01-30 #
Added #
- 🎉 Initial release of Flutter Custom Keyboard package
- ⌨️ Complete custom keyboard widget with QWERTY, numeric, and symbols layouts
- 🎨 Modern UI design with gradients, shadows, and rounded corners
- ⚡ Multi-layer animations including scale, ripple, flash, and glow effects
- 📱 Cross-platform support for Android and iOS
- 💫 Haptic feedback with different patterns for different key types
- 🔄 Smart state management for shift/caps lock functionality
- 📏 Responsive design that adapts to different screen sizes
- 🎯 Easy integration with drop-in
CustomTextField
widget - 📦
KeyboardScaffold
for global keyboard management - 🔒 Automatic input focus and scrolling management
- ✨ Visual feedback with instant response to key presses
- 🎮 Programmatic keyboard control via
KeyboardManager
- 📖 Comprehensive documentation and examples
- 🧪 Example app demonstrating all features
Features #
-
Keyboard Layouts:
- QWERTY layout with full alphabet support
- Numeric layout with number pad
- Symbols layout with special characters and punctuation
- Easy switching between layouts with dedicated keys
-
Visual Effects:
- Scale animation on key press
- Ripple effect expanding from tap point
- Flash animation for instant visual feedback
- Glow effect for special keys (Enter, Backspace, Shift)
- Dynamic elevation changes during interaction
- Modern gradient backgrounds and shadows
-
User Experience:
- Haptic feedback with contextual vibration patterns
- Smooth keyboard slide-in/out animations
- Automatic scrolling to keep focused fields visible
- Smart focus management between multiple text fields
- System keyboard suppression to prevent conflicts
-
Developer Experience:
- Simple drop-in replacement for TextField
- Minimal setup with KeyboardScaffold wrapper
- Flexible CustomKeyboard widget for advanced usage
- Comprehensive API with KeyboardManager
- TypeScript-like API documentation
- Rich example app with multiple use cases
-
Technical:
- Built with Flutter 3.10.0+ and Dart 3.0.0+
- Uses TickerProviderStateMixin for smooth animations
- Proper memory management with dispose methods
- Cross-platform haptic feedback implementation
- Optimized for performance with efficient state management
API Reference #
KeyboardScaffold
: Main wrapper widget for global keyboard functionalityCustomTextField
: Drop-in TextField replacement with keyboard integrationCustomKeyboard
: Core keyboard widget for advanced usageKeyboardManager
: Static class for programmatic keyboard controlKeyboardStateManager
: State management for keyboard layouts and modesKeyboardLayouts
: Predefined layout configurationsKeyData
: Individual key configuration model
Documentation #
- Comprehensive README.md with installation and usage guide
- API documentation with detailed property descriptions
- Multiple usage examples from basic to advanced
- Troubleshooting guide for common issues
- Platform-specific feature compatibility table
- Contributing guidelines and development setup
Known Issues #
- None reported in initial release
Breaking Changes #
- None (initial release)
Release Notes #
What's New in 1.0.0 #
This is the initial stable release of Flutter Custom Keyboard, providing a complete solution for custom keyboard implementation in Flutter applications.
Key Highlights:
- ✅ Production Ready: Thoroughly tested and optimized for performance
- ✅ Easy Integration: Drop-in replacement for standard TextField widgets
- ✅ Beautiful Design: Modern Material Design with smooth animations
- ✅ Cross-Platform: Works seamlessly on both Android and iOS
- ✅ Developer Friendly: Comprehensive documentation and examples
Perfect For:
- Login and registration forms
- Search functionality
- Chat applications
- Data entry forms
- Any app requiring custom text input
Get Started:
dependencies:
flutter_custom_keyboard: ^1.0.0
We're excited to see what you build with Flutter Custom Keyboard! 🚀