[go: up one dir, main page]

input_forms 0.0.4 copy "input_forms: ^0.0.4" to clipboard
input_forms: ^0.0.4 copied to clipboard

A comprehensive Flutter input_forms package providing pre-built, customizable form components for rapid application development. Includes email, password, date picker, and more form fields with built- [...]

๐ŸŽฏ Input Forms [Flutter Package] #

pub package License: MIT GitHub stars GitHub forks

Buy Me a Coffee


Supercharge Your Flutter Forms

Beautiful, validated, and customizable form fields for Flutter applications.


Table of Contents

Overview #

Input Forms is a comprehensive Flutter package providing pre-built, highly customizable form components for rapid application development. It includes all the essential fields you needโ€”email, password, date picker, dropdown, phone, file upload, location, signature, and moreโ€”with built-in validation and Material Design 3 support.

Why Choose Input Forms? #

  • ๐ŸŽจ Beautiful by Default: Material Design 3 compliant, 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, extensive documentation
  • ๐Ÿ“ฑ Cross Platform: Android, iOS, Web, Windows, macOS, Linux
  • ๐Ÿ”ฅ Performance Focused: Optimized for smooth performance

Installation #

Add to your pubspec.yaml:

dependencies:
  input_forms: ^0.0.4

Then run:

flutter pub get

Quick Start #

import 'package:input_forms/input_forms.dart';

// Use any form field:
EmailField(
  controller: emailController,
  label: 'Email Address',
)

Features #

  • All fields are Material Design 3 ready
  • Built-in validation for all fields
  • Highly customizable (labels, icons, error messages, etc.)
  • Easy integration into any Flutter app
  • Cross-platform support

All Available Fields #

Field Widget Description
๐Ÿ“ง Email EmailField Validated email input with format checking
๐Ÿ”’ Password PasswordField Secure password input with visibility toggle
โœ… Confirm Password ConfirmPasswordField Password confirmation with matching validation
๐Ÿ‘ค Username UsernameField Username input with length and custom validation
๐Ÿ“… Date Picker DatePickerField Date selection with calendar picker
๐ŸŽ‚ DOB Picker DOBField Date of birth picker with age-appropriate ranges
๐Ÿ“ Dropdown DropdownField<T> Generic dropdown with custom data support
๐Ÿ” Searchable Dropdown SearchableDropdownField<T> Dropdown with search, multi-select, async, and more
๐Ÿ“ฑ Phone PhoneField International phone number input with country picker
๐ŸŒ Location LocationField Geographic input with map, search, and geolocation
๐Ÿ“ค File Upload FileUploadField File upload with preview, cloud, and security options
โœ๏ธ Signature SignatureField Digital signature capture

Usage #

Import the package:

import 'package:input_forms/input_forms.dart';

Example: Login Form #

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',
          ),
          const SizedBox(height: 16),
          PasswordField(
            controller: _passwordController,
            label: 'Password',
          ),
          const SizedBox(height: 24),
          ElevatedButton(
            onPressed: _submitForm,
            child: Text('Login'),
          ),
        ],
      ),
    );
  }

  void _submitForm() {
    if (_formKey.currentState!.validate()) {
      // Process form
    }
  }
}

Complete Example: All Fields #

Form(
  child: Column(
    children: [
      EmailField(
        controller: emailController,
        label: 'Email',
      ),
      PasswordField(
        controller: passwordController,
        label: 'Password',
      ),
      ConfirmPasswordField(
        passwordController: passwordController,
        confirmController: confirmPasswordController,
      ),
      UsernameField(
        controller: usernameController,
        label: 'Username',
      ),
      DatePickerField(
        controller: dateController,
        label: 'Date',
      ),
      DOBField(
        controller: dobController,
        label: 'Date of Birth',
      ),
      DropdownField<String>(
        label: 'Country',
        items: ['India', 'USA', 'UK'],
        value: selectedCountry,
        onChanged: (val) => setState(() => selectedCountry = val),
        itemLabel: (item) => item,
      ),
      SearchableDropdownField<String>(
        label: 'City',
        items: ['Chennai', 'Bangalore', 'Delhi'],
        value: selectedCity,
        onChanged: (val) => setState(() => selectedCity = val),
        itemLabel: (item) => item,
      ),
      PhoneField(
        controller: phoneController,
        label: 'Phone',
      ),
      LocationField(
        label: 'Location',
        // See API Reference for advanced options
      ),
      FileUploadField(
        // See API Reference for advanced options
      ),
      SignatureField(),
    ],
  ),
)

API Reference #

EmailField #

Validated email input with built-in format checking and error messages.

PasswordField #

Password input with visibility toggle and custom validation.

ConfirmPasswordField #

Ensures password and confirmation match.

UsernameField #

Username input with length and custom validation.

DatePickerField #

Date selection with calendar picker and formatting.

DOBField #

Date of birth picker with age-appropriate ranges.

Generic dropdown with custom data, item labels, and flexible binding.

SearchableDropdownField #

Dropdown with search, async loading, multi-select, custom item builder, and more.

PhoneField #

International phone number input with country picker, flag, and validation.

LocationField #

Geographic input with map, search, geolocation, and advanced configuration (offline, multi-select, favorite locations, etc.).

FileUploadField #

File upload with preview, cloud storage, security, virus scanning, and advanced file processing options.

SignatureField #

Digital signature capture for forms and agreements.


Platform Support #

Platform Supported
Android โœ…
iOS โœ…
Web โœ…
Windows โœ…
macOS โœ…
Linux โœ…

Contributing #

We love contributions! Here's how you can help:

  1. ๐Ÿ” Find a Bug? Open an issue!
  2. ๐ŸŽฏ Missing a Feature? Request it!
  3. ๐ŸŽจ Want to Contribute? Submit a pull request!

License #

MIT License ยฉ 2025 Kanagaraj.M

View Full License


Made with โค๏ธ by Kanagaraj.M | NoCorps

๐Ÿ’ป 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:

  1. ๐Ÿ” Find a Bug? Open an issue!
  2. ๐ŸŽฏ Missing a Feature? Request it!
  3. ๐ŸŽจ 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.3 (Active Development)

๐Ÿ“š Resources #

๐Ÿ“„ License #

MIT License
Copyright (c) 2025 Kanagaraj.M

View Full License

๐Ÿ”‘ 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!

2
likes
110
points
31
downloads

Publisher

verified publishernocorps.org

Weekly Downloads

A comprehensive Flutter input_forms package providing pre-built, customizable form components for rapid application development. Includes email, password, date picker, and more form fields with built-in validation.

Homepage
Repository (GitHub)
View/report issues

Topics

#form #widget #validation #material-design #input-fields

Documentation

API reference

Funding

Consider supporting this project:

github.com

License

unknown (license)

Dependencies

flutter, intl

More

Packages that depend on input_forms