cool_datepicker 1.0.5 cool_datepicker: ^1.0.5 copied to clipboard
Cool datepicker ✨ This datepicker gives you cool animation, modern design, and you can customize colors and language for datepicker.
Cool datepicker #
Features #
- It's the best datepicker ui ever. (at least for me 😅)
- It's possible to set all colors of datepicker
- Support selected date list at the bottom. User can move selected date to selected year and month.
- "COOL"
Samples #
Installing #
command:
$ flutter pub add cool_datepicker
pubspec.yaml:
dependencies:
cool_datepicker: ^(latest)
Usage #
import 'package:cool_datepicker/cool_datepicker.dart';
CoolDatepicker(onSelected: (_) {})
Important options #
option | Type | Default | Description |
---|---|---|---|
onSelected | Function | required | when user selects dates and then click the ok button, it's triggered. You must put one parameter in the Function. (ex. onChange: (a) {}).Then, you will get return List<DateTime> / Map<String, DateTime> |
defaultValue | List<DateTime> / Map<String, DateTime> | null | Default selected dates. It will automatically detects single/range depends on which type you use |
disabledList | List<DateTime> | null | disabled dates list. You must pass List<DateTime> |
disabledRangeList | List<Map<String, DateTime>> | null | disabled dates range map. You must use 'start' and 'end' key on the Map<String, DateTime> |
isRange | bool | false | datepicker for single/range |
CoolDatepicker(
defaultValue: [DateTime(2020, 8, 24)], // single select
onSelected: (_) {},
disabledList: [DateTime(2021, 10, 22), DateTime(2021, 10, 12)],
disabledRangeList: [
{
'start': DateTime(2021, 11, 1),
'end': DateTime(2021, 11, 13)
},
],
)
CoolDatepicker(
defaultValue: { // range select
'start': DateTime(2020, 9, 25),
'end': DateTime(2021, 11, 24)
},
onSelected: (_) {},
)
Result options #
option | Type | Default | Description |
---|---|---|---|
iconSize | double | 20 | Datepicker icon size |
resultWidth | double | 220 | |
resultHeight | double | 50 | |
resultBD | BoxDecoration | below code | BoxDecoration of the result |
resultTS | TextStyle | below code | TextStyle of the result |
resultPadding | EdgeInsets | below code | Padding of the result |
isResultIconLabelReverse | bool | false | Reverse order of the result by row |
labelIconGap | double | 10 | Gap between the label and icon |
isResultLabel | bool | true | Show/hide the label of the result |
placeholder | String | null | |
placeholderTS | TextStyle | below code | |
iconSize | double | 20 | the size of the calendar icon in resultBox |
resultBD = BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.1),
spreadRadius: 1,
blurRadius: 10,
offset: Offset(0, 1),
),
],
);
resultTS = TextStyle(
fontSize: 20,
color: Colors.black,
);
resultPadding = const EdgeInsets.only(left: 10, right: 10);
placeholderTS = TextStyle(color: Colors.grey.withOpacity(0.7), fontSize: 20);
Datepicker options #
option | Type | Default | Description |
---|---|---|---|
calendarSize | double | 400 | Datepicker size |
minYear | double | DateTime.now().year - 100 | Datepicker minimum year |
maxYear | double | DateTime.now().year + 100 | Datepicker maximum year |
format | string | 'yyyy-mm-dd' | Format to show as result and bottom selected dates |
limitCount | int | 1 | Set how many dates can be picked |
weekLabelList | List | below code | Set week words on the datepicker |
monthLabelList | List | below code | Set month dropdown label on the datepicker datepicker |
firstWeekDay | int | 7 (Sunday) | Set de first weekday that will be shown. Possible values are:monday = 1, tuesday = 2 wednesday = 3, thursday = 4, friday = 5, saturday = 6, sunday = 7 (Can also use DateTime.monday, DateTime.sunday...) |
isYearMonthDropdownReverse | bool | false | Reverse order of dropdowns on the datepicker |
headerColor | Color | Color(0XFF6771e4) | Reverse order of dropdowns on the datepicker |
arrowIconAreaColor | Color | Color(0XFF4752e0) | Reverse order of dropdowns on the datepicker |
selectedCircleColor | Color | Color(0XFF6771e4) | Reverse order of dropdowns on the datepicker |
selectedBetweenAreaColor | Color | Color(0XFFe2e4fa) | Reverse order of dropdowns on the datepicker |
cancelFontColor | Color | Color(0XFF4a54c5) | Reverse order of dropdowns on the datepicker |
okButtonColor | LinearGradient | below code | Reverse order of dropdowns on the datepicker |
bottomSelectedBorderColor | Color | Color(0XFF6771e4) | Reverse order of dropdowns on the datepicker |
isDark | bool | false | dark mode |
cancelBtnLabel | String | 'CANCEL' | Cancel button label |
okBtnLabel | String | 'OK' | Ok button label |
weekLabelList = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];
monthLabelList = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
okButtonColor = const LinearGradient(colors: [
Color(0XFF4a54c5),
Color(0XFF6771e4),
]);