🎯 Input Forms Flutter Package
🚀 Supercharge Your Flutter Forms
Beautiful, validated, and customizable form fields for Flutter applications
Getting Started • Features • Usage • Examples • API Docs • Report Bug • Request Feature
🎯 Overview
Input Forms provides a comprehensive suite of pre-built, highly customizable form components that help you build beautiful forms in minutes instead of hours. Perfect for both rapid prototyping and production applications.
Why Choose Input Forms?
- 🎨 Beautiful by Default: Material Design 3 compliant with customizable themes
- ✨ Ready to Use: Pre-built components for common form scenarios
- 🔒 Built-in Validation: Comprehensive validation out of the box
- 🎮 Developer Friendly: Intuitive API with extensive documentation
- 📱 Cross Platform: Works seamlessly across all platforms
- 🔥 Performance Focused: Optimized for smooth performance
📦 Installation
dependencies:
input_forms: ^0.0.1
Then run:
flutter pub get
⚡ Quick Start
import 'package:input_forms/input_forms.dart';
// That's it! Now use any form field:
EmailField(
controller: emailController,
label: 'Email Address',
)
🎨 Features
Available Now
| Component | Description |
|---|---|
| 📧 EmailField | Validated email input with format checking |
| 🔒 PasswordField | Secure password input with visibility toggle |
| ✅ ConfirmPasswordField | Password confirmation with matching validation |
| 👤 UsernameField | Username input with length validation |
| 📅 DatePickerField | Date selection with calendar picker |
| 🎂 DOBField | Date of birth picker with age-appropriate ranges |
| 📝 DropdownField | Generic dropdown with custom data support |
Coming Q3-Q4 2025
| Component | Description |
|---|---|
| 🔍 SearchableDropdown | Smart dropdown with search functionality |
| 📱 PhoneField | International phone number input suite |
| 🌍 LocationFields | Geographic input with maps integration |
| 📤 FileUploadField | File upload with preview support |
| ✍️ SignatureField | Digital signature capture |
| 🎨 ColorPicker | Visual color selection |
| 🏷️ TagField | Dynamic tag management |
| 📝 RichTextEditor | Formatted text input |
💻 Usage
Complete Form Example
class LoginForm extends StatefulWidget {
@override
_LoginFormState createState() => _LoginFormState();
}
class _LoginFormState extends State<LoginForm> {
final _formKey = GlobalKey<FormState>();
final _emailController = TextEditingController();
final _passwordController = TextEditingController();
@override
Widget build(BuildContext context) {
return Form(
key: _formKey,
child: Column(
children: [
EmailField(
controller: _emailController,
label: 'Email',
decoration: InputDecoration(
prefixIcon: Icon(Icons.email),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
),
),
),
const SizedBox(height: 16),
PasswordField(
controller: _passwordController,
label: 'Password',
decoration: InputDecoration(
prefixIcon: Icon(Icons.lock),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
),
),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: _submitForm,
child: Text('Login'),
),
],
),
);
}
void _submitForm() {
if (_formKey.currentState!.validate()) {
// Process form
}
}
}
🎯 Platform Support
| Platform | Support |
|---|---|
| Android | ✅ |
| iOS | ✅ |
| Web | ✅ |
| Windows | ✅ |
| macOS | ✅ |
| Linux | ✅ |
🤝 Contributing
We love contributions! Here's how you can help:
- 🔍 Find a Bug? Open an issue!
- 🎯 Missing a Feature? Request it!
- 🎨 Want to Contribute? Submit a pull request!
📊 Project Stats
| Metric | Value |
|---|---|
| Latest Update | 2025-07-21 15:26:16 UTC |
| Maintained By | @KANAGARAJ-M |
| Version | 0.0.1 (Active Development) |
📚 Resources
📄 License
MIT License
Copyright (c) 2025 Kanagaraj.M
🔑 Keywords
flutter form builder, material design forms, flutter input validation, flutter form fields, flutter UI components, form validation, input widgets, flutter forms, dart forms, form components, mobile forms, cross-platform forms, form validation package, input fields, form elements, input forms, form fields, input fields
Made with ❤️ by Kanagaraj.M | NoCorps
⭐️ Star us on GitHub — it motivates us a lot!