date_range_picker_sheet 0.1.1 copy "date_range_picker_sheet: ^0.1.1" to clipboard
date_range_picker_sheet: ^0.1.1 copied to clipboard

A pretty, customizable date range picker presented as a Material bottom sheet, with an inline month calendar and quick-select chips.

date_range_picker_sheet #

pub package

A pretty, customizable date range picker presented as a Material bottom sheet. Includes an inline month calendar with range highlighting, quick-select chips, and from/to fields.

Default orange theme    Customized teal theme with a range selected

  • ✅ Inline month calendar with smooth range highlight
  • ✅ Quick-select chips: Today, Last week, Last month
  • ✅ Fully theme-able (colors, radii, labels)
  • ✅ Configurable min/max selectable dates
  • ✅ Custom date format (defaults to dd-MMM-yyyy)
  • ✅ Localizable strings
  • ✅ Pure Dart/Flutter — no native code, no platform channels

Installation #

Add this to your pubspec.yaml:

dependencies:
  date_range_picker_sheet: ^0.1.0

Then run:

flutter pub get

Usage #

Show as a modal bottom sheet #

import 'package:date_range_picker_sheet/date_range_picker_sheet.dart';

ElevatedButton(
  onPressed: () {
    DateRangePickerSheet.show(
      context,
      initialFromStr: '01-JAN-2026',
      initialToStr: '07-JAN-2026',
      onApply: (from, to) {
        debugPrint('Picked: $from -> $to');
      },
      onReset: () {},
    );
  },
  child: const Text('Pick a date range'),
);

Embed inline in any layout #

DateRangePickerSheet(
  initialFromStr: '01-JAN-2026',
  initialToStr: '07-JAN-2026',
  onConfirm: (from, to) => debugPrint('Confirmed: $from -> $to'),
  onClose: () => Navigator.of(context).pop(),
);

Customize colors and labels #

DateRangePickerSheet.show(
  context,
  initialFromStr: from,
  initialToStr: to,
  theme: const DateRangePickerSheetTheme(
    primaryColor: Color(0xFFFF6F00),
    surfaceColor: Color(0xFFF7F7F8),
    borderColor: Color(0xFFE5E7EB),
  ),
  labels: const DateRangePickerSheetLabels(
    title: 'Pick dates',
    confirm: 'Apply',
    close: 'Cancel',
  ),
  onApply: (from, to) {},
);

Limit the selectable range #

DateRangePickerSheet.show(
  context,
  initialFromStr: from,
  initialToStr: to,
  minDate: DateTime(2026, 1, 1),
  maxDate: DateTime.now().add(const Duration(days: 30)),
  onApply: (from, to) {},
);

Format helpers #

final str = DateRangePickerSheet.formatOrderDate(DateTime.now()); // 30-APR-2026
final dt  = DateRangePickerSheet.parseOrderDate('30-APR-2026');   // DateTime(2026,4,30)

API overview #

Class Purpose
DateRangePickerSheet The widget itself. Embed directly or present via show().
DateRangePickerSheetTheme Visual configuration (colors, border radii).
DateRangePickerSheetLabels Localized strings (title, buttons, week labels...).

Selection rules #

  • Tapping any selectable day starts a new range from that day.
  • Tapping a second day extends/closes the range.
  • Tapping a date earlier than the current "from" while picking the "to" will move the "from" to the earlier date instead.

Example #

A complete runnable example lives in example/.

cd example
flutter run

Maintainer #

This package is built and maintained by Mohamed Rizwan.

GitHub github.com/riz9882
LinkedIn linkedin.com/in/mohamed-rizwan-b667a1248
Email riz9882@gmail.com

Contributing #

Contributions, issues, and feature requests are welcome.

  • Found a bug? Please open an issue with steps to reproduce, expected vs. actual behavior, and your Flutter / Dart version (flutter --version).
  • Want a feature? Open an issue first to discuss the design before sending a pull request — this avoids wasted effort if the API needs to be shaped a particular way.
  • Sending a PR?
    1. Fork the repo and create a feature branch (git checkout -b feat/my-change).
    2. Run flutter analyze and flutter test — both must be green.
    3. Update the CHANGELOG.md under an Unreleased heading describing your change.
    4. Open the PR against main and link any related issue.

If you find this package useful, please consider starring the GitHub repository — it helps others discover it.

License #

This package is released under the MIT License © Mohamed Rizwan.

1
likes
160
points
34
downloads
screenshot

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A pretty, customizable date range picker presented as a Material bottom sheet, with an inline month calendar and quick-select chips.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, intl

More

Packages that depend on date_range_picker_sheet