Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Description

Range pickers allow picker allows the user to set a customized range of dates using a unified component.

Much of the range Range picker’s structure and behavior is are based on the Date Picker, and therefore are not repeated here.

...

General guidelines

Structure

Range pickers consist picker consists of:

  • A range picker field with two date inputs, for:

    • From date. The start of the range.

    • To date. The end of the range.

  • Date picker button. A calendar Icon Button which opens the calendar a drop-down.

  • Calendar A drop-down, which consists of:

    • Range picker menu, with a month and year pickers for each half of the calendar.

    • Two-month calendars.

Component

Image

Comments

Range picker field

A string indicating the range (From - To) and an icon button. Next to the field, a preceding label can be set describing the purpose of the control.

Range picker menu

2 month calendars, displayed horizontally from left (start) to right (end). The direction of the dates might change according to RTL languages.

...

  • The months displayed in the menu can be changed independently.

    • The user cannot select a To (end) date which is earlier than the From (start) date, or a From (start) date which is later than the To (end) date.

  • The range picker field will be updated in response to selections made in the calendar drop-down.

  • When 2 consecutive months are displayed together on the menu, the arrows are disabled accordingly, so that the From month cannot be moved forward and the To month cannot be moved backward:

...

  • Drop-down selectors for months and years should be disabled to prevent a From date which is later than the To date.

  • The two date inputs in the range picker field can be directly edited, with no need to use the calendar drop-down.

  • Clicking either the From or To fields or the date picker icon will open the calendar drop-down with the relevant date selected (either From or To).

    • Clicking the date picker icon is equivalent to clicking on the From date.

Interaction

Happy flow

1. Clicking on the From field.

Opens the menu:

...

  • By default, the From field is highlighted in the calendar (if exist), and the From text selected in the range picker field.

  • Clicking outside of the control is equivalent to the Cancel operation (closes the dropdown without applying any change).

Image Added

2. Selecting the From date.

Image Removed
  • The selected date is indicated on the calendar and in the range picker field.

  • The focus automatically moves to the To field.

  • Clicking outside the menu is equivalent to the Cancel operation.

Image Added

As the user hovers over another date, the dates between it and the selected From date should be highlighted. (The hover state is displayed only if the hovered date is later than the currently selected From date or range).

Image Modified

3. Selecting the To date

  • Clicking on a date which is the same or later than the From date:

    • the calendar drop-down will close

...

    • .

    • the range picker field dates will be updated accordingly.

  • Clicking outside the menu (without selecting any date) is equivalent to the Cancel operation.

...

Image Added

4. Editing an existing range

Clicking on either a From or To field will

...

select the date within the fields

...

and open the menu.

Image Modified
  • If the From field is selected, the next selection in the menu will move focus to the To field.

Image RemovedImage Removed
  • If the To field is selected, the next selection will close the menu.

Image RemovedImage Removed

Additional case

Whenever a user selects a date that is earlier than the currently selected From date, only the From field will update without changing focus in the range picker fields.

Image Added

The To field will reset.

...

Image Removed

Image Modified

Validations and errors

...

Warning

Error

Comments

In the example, the From date is later than the To date (manually entered).

Transitions

The calendar drop-down should slide up and down (as with and selecting the right and left arrows should swipe horizontally the dates, see in the Date Picker).

<TBD animations>

Best practices

Use:

  • Whenever whenever a user is required to set a custom period.

Don’t use:

  • When when a default set of ranges can be is pre-defined to satisfy the user → a Segmented Button Selector can be a better approach for offering different periods.

General:

  • If start and end times are also required, use the Time Picker component adjacent to the range picker. Example:

...

Zeplin link

Screen thumbnail

<TBD>

Code

...