general_calendar 0.0.1
general_calendar: ^0.0.1 copied to clipboard
A flexible and customizable calendar and date-picker UI library for Flutter
general_calendar #
A flexible and customizable calendar and date-picker UI library for Flutter.
Designed to work seamlessly with the general_datetime package and date formatting utilities.
Features #
- Customizable calendar widgets
- Date picker and date range picker
- Multiple calendar views (month, year, decade, etc.)
- Full theming support for colors, shapes, and typography
- Responsive layout for mobile, tablet, desktop, and web
- Extensible architecture for building custom pickers
- Supports any calendar system when used with
general_datetime - Composable UI components
- Lightweight and fast with no unnecessary dependencies
Getting Started #
Installation #
dependencies:
general_calendar: ^1.0.0
Run:
flutter pub get
Basic Usage #
Simple Date Picker #
final date = await showGeneralDatePicker(
context: context,
initialDate: DateTime.now(),
);
Inline Calendar #
GeneralCalendar(
onDateSelected: (date) {
print("Selected: $date");
},
);
Date Range Picker #
final range = await showGeneralDateRangePicker(
context: context,
initialRange: DateTimeRange(
start: DateTime.now(),
end: DateTime.now().add(Duration(days: 7)),
),
);
Customization #
Custom Theme #
GeneralCalendarTheme(
selectedDayColor: Colors.blue,
todayColor: Colors.red,
dayTextStyle: TextStyle(fontSize: 14),
child: GeneralCalendar(),
);
Custom Day Builder #
GeneralCalendar(
dayBuilder: (context, day) {
return Container(
alignment: Alignment.center,
decoration: BoxDecoration(
color: day.isToday ? Colors.orange : null,
shape: BoxShape.circle,
),
child: Text("${day.day}"),
);
},
);
Architecture Overview #
The general_calendar package is designed with a modular architecture:
- Core calendar engine powered by
general_datetime - Rendering layer for days, weeks, and months
- Picker implementations (dialog, popup, inline)
- Theming and customization system
- Overridable components for advanced use cases
Package Compatibility #
| Package | Purpose |
|---|---|
| general_datetime | Calendar logic, conversions, computations |
| general_calendar | Calendar UI widgets and pickers |
| Formatter package | Date formatting utilities |
Roadmap #
- Dark mode presets
- Multi-date selection
- Scrollable month and year selectors
- Jalali, Hijri, and Solar calendar UI examples
- Event calendar
- Animated transitions
Example Project #
cd example
flutter run
License #
MIT License.
Contributions #
Contributions, issues, and feature requests are welcome.