A Cool Datepicker Built With Flutter

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
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),
]);

GitHub

View Github