PackageTrack
Sign in Get early access

formz

A unified form representation in Dart which aims to simplify form representation and validation in a generic way.

0.8.1 178K downloads/mo #898 most downloaded on pub.dev VeryGoodOpenSource/formz

What this package is like to depend on

Last release 14 days ago

10 Aug 2026

Release timing varies

gaps range from 3 weeks to 1.8 years

Nearly every release is documented

notes for 14 of 15 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

17 releases · first in 2020

1 release in the last 12 months

see the full history below

Release timeline

17 releases · May 2020 to Aug 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 17
  1. 0.8.1 10 Aug 2026
    Release notes

    0.8.1 (2026-08-06)

    Features

    Miscellaneous Chores

    • deps: bump very_good_analysis from 6.0.0 to 7.0.0 (#135) (971f906)
    • deps: bump very_good_analysis from 6.0.0 to 7.0.0 in /example (#134) (126237f)
    • deps: bump very_good_analysis from 7.0.0 to 9.0.0 (#139) (3da77ad)
    • deps: bump very_good_analysis from 9.0.0 to 10.0.0 (#143) (5e967a2)
    • deps: upgrade very_good_analysis to ^10.3.0 (#155) (2bf536f), closes #154
    • fixing changelog formatting (#132) (54eaea0)

    Docs

    Open source →
    Release notes

    Features

    Miscellaneous Chores

    • deps: bump very_good_analysis from 6.0.0 to 7.0.0 (#135) (971f906)
    • deps: bump very_good_analysis from 6.0.0 to 7.0.0 in /example (#134) (126237f)
    • deps: bump very_good_analysis from 7.0.0 to 9.0.0 (#139) (3da77ad)
    • deps: bump very_good_analysis from 9.0.0 to 10.0.0 (#143) (5e967a2)
    • deps: upgrade very_good_analysis to ^10.3.0 (#155) (2bf536f), closes #154
    • fixing changelog formatting (#132) (54eaea0)

    Docs

    Open source →
  2. 0.8.0 22 Oct 2024
    Release notes
    • chore: tighten dependencies (#127) - Note: This now requires Dart 3.5.0 or higher.
    • chore(deps): bump VeryGoodOpenSource/very_good_coverage from 2 to 3 (#120)
    • chore(deps): bump very_good_analysis from 5.1.0 to 6.0.0 in /example (#124)
    • chore(deps): bump very_good_analysis from 5.1.0 to 6.0.0 (#125)
    Open source →
    Release notes
    • chore: tighten dependencies (#127) - Note: This now requires Dart 3.5.0 or higher.
    Open source →
  3. 0.7.0 21 Feb 2024
    Release notes
    • feat!: update Dart version constraints to "^3.0.0" (#115)
    Open source →
    Release notes
    • feat!: update Dart version constraints to "^3.0.0" (#115)
    Open source →
  4. 0.6.1 20 Sep 2023
    Release notes
    • fix(example): update validation to throw on empty values (#100)
    • chore: update very good analysis to 5.1.0 (#104)
    • fix(docs): wrong docs (#106)
    Open source →
    Release notes
    • fix(example): update validation to throw on empty values (#100)
    • chore: update very good analysis to 5.1.0 (#104)
    • fix(docs): wrong docs (#106)
    Open source →
  5. 0.6.0 23 Mar 2023
    Release notes
    • feat: add FormzInputErrorCacheMixin mixin
    • feat: add isInProgressOrSuccess to FormzSubmissionStatusX
    • feat: add purity check to FormzMixin
    Open source →
    Release notes
    • feat: add FormzInputErrorCacheMixin mixin
    • feat: add isInProgressOrSuccess to FormzSubmissionStatusX
    • feat: add purity check to FormzMixin
    Open source →
  6. 0.5.0 28 Feb 2023
    Release notes
    • docs: add a caching example
    • refactor: update very good analysis, workflows, flutter/dart version
    • feat: update very good analysis
    • feat: add dependabot
    • BREAKING: this release promotes 0.5.0-dev.1 which brings breaking changes
    Open source →
    Release notes
    • docs: add caching example
    • refactor: update very good analysis, workflows, flutter/dart version
    • feat: update very good analysis
    • feat: add dependabot
    • BREAKING: this release promotes 0.5.0-dev.1 which brings breaking changes
    Open source →
  7. 0.5.0+1 28 Feb 2023

    Nothing published for this version

  8. 0.5.0-dev.1 03 May 2022 pre-release
    Release notes

    0.5.0-dev.1

    • docs: use nullable validator in README

    • feat: add example Flutter app

    • BREAKING: decouple purity, validity, and submission status

      Changes

      1. FormzStatus renamed to FormzSubmissionStatus:
      /// Enum representing the submission status of a form.
      enum FormzSubmissionStatus {
      /// The form is in the process of being submitted.
      inProgress,
      
      /// The form has been submitted successfully.
      success,
      
      /// The form submission failed.
      failure,
      
      /// The form submission has been canceled.
      canceled
      }
      1. FormzInput class no longer exposes a status (FormzInputStatus). Instead there are isValid and isNotValid getters:
      class NameInput extends FormzInput<String, NameInputError> {
      const NameInput.pure() : super.pure('');
      const NameInput.dirty({String value = ''}) : super.dirty(value);
      
      @override
      NameInputError? validator(String value) {
          return value.isNotEmpty == true ? null : NameInputError.empty;
      }
      }
      
      void main() {
      const name = NameInput.pure();
      print(name.isValid); // false
      print(name.isNotValid); // true
      
      const joe = NameInput.dirty(value: 'joe');
      print(joe.isValid); // true
      print(joe.isNotValid); // false
      }
      1. FormzInput has a displayError getter which returns an error to display if the input is not valid and has been modified by the user (closes #44)
      void main() {
      const name = NameInput.pure();
      print(name.displayError); // null
      
      const invalid = NameInput.dirty(value: '');
      print(name.displayError); // NameInputError.empty
      }
      1. Renamed pure to isPure for consistency
    Open source →
    Release notes
    • docs: use nullable validator in README

    • feat: add example Flutter app

    • BREAKING: decouple purity, validity, and submission status

      Changes

      1. FormzStatus renamed to FormzSubmissionStatus:
      /// Enum representing the submission status of a form.
      enum FormzSubmissionStatus {
      /// The form is in the process of being submitted.
      inProgress,
      
      /// The form has been submitted successfully.
      success,
      
      /// The form submission failed.
      failure,
      
      /// The form submission has been canceled.
      canceled
      }
      
      1. FormzInput class no longer exposes a status (FormzInputStatus). Instead there are isValid and isNotValid getters:
      class NameInput extends FormzInput<String, NameInputError> {
      const NameInput.pure() : super.pure('');
      const NameInput.dirty({String value = ''}) : super.dirty(value);
      
      @override
      NameInputError? validator(String value) {
          return value.isEmpty ? NameInputError.empty : null;
      }
      }
      
      void main() {
      const name = NameInput.pure();
      print(name.isValid); // false
      print(name.isNotValid); // true
      
      const joe = NameInput.dirty(value: 'joe');
      print(joe.isValid); // true
      print(joe.isNotValid); // false
      }
      
      1. FormzInput has a displayError getter which returns an error to display if the input is not valid and has been modified by the user (closes #44)
      void main() {
      const name = NameInput.pure();
      print(name.displayError); // null
      
      const invalid = NameInput.dirty(value: '');
      print(name.displayError); // NameInputError.empty
      }
      
      1. Renamed pure to isPure for consistency
    Open source →
  9. 0.4.1 14 Oct 2021
    Release notes
    • feat: add submissionCanceled to FormzStatus
    Open source →
    Release notes
    • feat: add submissionCanceled to FormzStatus
    Open source →
  10. 0.4.0 26 Apr 2021
    Release notes
    • BREAKING: opt into null safety
    • feat!: upgrade Dart SDK constraints to >=2.12.0-0 <3.0.0
    Open source →
    Release notes
    • BREAKING: opt into null safety
    • feat!: upgrade Dart SDK constraints to >=2.12.0-0 <3.0.0
    Open source →
  11. 0.4.0-nullsafety.0 22 Dec 2020 pre-release
    Release notes
    • BREAKING: opt into null safety
    • feat!: upgrade Dart SDK constraints to >=2.12.0-0 <3.0.0
    Open source →
  12. 0.3.2 08 Oct 2020
    Release notes
    • chore: fix code formatting
    • ci: update to Dart 2.10.0
    Open source →
  13. 0.3.1 14 Sep 2020
    Release notes
    • Allow value to be null in FormzInput
    Open source →
  14. 0.3.0 30 Jul 2020
    Release notes
    • Add FormzMixin
    • Fix Formz.validate to take pure into consideration
    • Lint improvements
    Open source →
  15. 0.2.0 15 May 2020
    Release notes
    • Remove redundant extensions on FormzInputStatus
    • Add isValidated extension on FormzStatus
    • Add invalid getter to FormzInput
    Open source →
  16. 0.1.0 15 May 2020
    Release notes
    • Add extensions on FormzStatus
    • Add extensions on FormzInputStatus
    Open source →
  17. 0.0.1 08 May 2020
    Release notes

    Initial Release of the formz.

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive