bee_date_picker 0.1.1
bee_date_picker: ^0.1.1 copied to clipboard
A highly customizable, performant, and accessible date picker widget for Flutter. Supports single date selection, date range selection, custom themes, and localization out of the box.
🐝 Bee Date Picker #
A highly customizable and lightweight date selection suite for Flutter.
bee_date_picker provides a reliable and responsive set of widgets for selecting dates and ranges. It's designed to be easy to integrate, deeply customizable through themes, and keeps your project lightweight with zero external dependencies.
🍯 Showcase #
Experience the fluid interaction and premium design of Bee Date Picker. Please check the Example Project.
🌓 Professional Dark & Light Support #
| Light Mode | Dark Mode |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
✨ Features Matrix #
| Feature | Single | Range | Month | Year |
|---|---|---|---|---|
| Inline Widget | ✅ | ✅ | ✅ | ✅ |
| Dialog Helper | ✅ | ✅ | ✅ | ✅ |
| Dark/Light Theme | ✅ | ✅ | ✅ | ✅ |
| Localization | ✅ | ✅ | ✅ | ✅ |
| Custom Builders | ✅ | ✅ | ✅ | ✅ |
| Min/Max Constraints | ✅ | ✅ | ✅ | ✅ |
🚀 Getting Started #
1. Installation #
Add to your pubspec.yaml:
dependencies:
bee_date_picker: ^0.1.0
2. High-Fidelity Dialogs (The "One-Liner") #
Launch a professional, pre-styled picker dialog immediately.
import 'package:bee_date_picker/bee_date_picker.dart';
void _pickDate() async {
// 1. Single Date
final DateTime? date = await showBeeDatePicker(context: context);
// 2. Date Range
final DateRange? range = await showBeeDateRangePicker(context: context);
// 3. Specialized
final DateTime? month = await showBeeMonthPicker(context: context);
final int? year = await showBeeYearPicker(context: context);
}
3. Inline Picker (The "Embedded" Way) #
Use widgets directly in your layouts for custom integration.
BeeDatePicker(
controller: BeeDateController(initialDate: DateTime.now()),
onDateSelected: (date) => print(date),
)
🏗️ Mastering the Theme (Signature Pro) #
Bee Date Picker uses a centralized BeePickerTheme that adaptations dynamically to system brightness.
Theme Priority #
- Provided
themeparameter in individual pickers. - Parent
BeePickerThemeScopein the widget tree. - Default
BeePickerDefaults(adapts to Light/Dark mode).
Key Theme Properties #
| Property | Summary |
|---|---|
selectedDayColor |
The primary brand color for selected days. |
rangeDayColor |
Background color for dates within a range selection. |
borderRadius |
Curvature of picker container and selection markers. |
headerTitleTextStyle |
Styling for the Month/Year navigation title. |
todayBorderColor |
Indicator color for the current date. |
dialogBackgroundColor |
Background color of the popup dialog. |
BeePickerThemeScope(
theme: BeePickerTheme(
selectedDayColor: Color(0xFFFACC15), // Bee Yellow
borderRadius: 16,
headerIconColor: Colors.black,
),
child: MyApp(),
)
⚙️ Behavior Configuration #
Fine-tune how the picker behaves using BeePickerConfig.
Constraints & Formatting
| Property | Type | Description |
|---|---|---|
minDate |
DateTime |
Earliest date allowed. |
maxDate |
DateTime |
Latest date allowed. |
firstDayOfWeek |
Enum |
monday or sunday. |
showOutsideDays |
bool |
Show dates from next/prev months. |
locale |
Locale |
Force a specific language/formatting. |
Controlling Disabled Dates
config: BeePickerConfig(
disabledDates: DisabledDates(
weekdays: [DateTime.sunday], // No selection on Sundays
predicate: (date) {
// Custom business logic: e.g., no selection on national holidays
return isPublicHoliday(date);
},
),
)
🎮 Advanced: BeeDateController #
For power users, BeeDateController provides programmatic control over the picker's state.
final controller = BeeDateController();
// Navigate programmatically
controller.nextPage();
controller.goToMonth(DateTime(2025, 12));
// Switch View Mode
controller.switchView(BeeCalendarView.year);
// Clear or Set Selection
controller.selectDate(DateTime(2024, 1, 1));
🛠️ Extensibility (Custom Builders) #
Wish to replace the header or the day cells entirely? Use our builder API.
BeeDatePicker(
controller: controller,
config: BeePickerConfig(
dayCellBuilder: (context, date, isSelected, isDisabled, isToday, isOutside) {
return Center(
child: Text(
'${date.day}',
style: TextStyle(color: isSelected ? Colors.amber : Colors.black),
),
);
},
),
)
🐝 Powered by Orion B Project #
"Making coding feels like magic."





