Date PickerReady
Date Picker allows user to enter a date either through text input, or by choosing a date from the calendar. Please note that the date must be passed in ISO-8601 format: YYYY-MM-DD.
<nord-date-picker label="Label" value="2021-01-13"></nord-date-picker>
Properties
Property | Attribute | Description | Type | Default |
---|---|---|---|---|
value | value | Date value. Must be in IS0-8601 format: YYYY-MM-DD. | string | "" |
valueAsDate | – | Get/set the value of the picker as a Date object. | Date | undefined | undefined |
valueAsNumber | – | Get/set the value of the picker as the number of milliseconds elapsed since the UNIX epoch. | number | undefined |
rawValue | – | Get the raw value of the input field without date formatting. This is a read-only property. | string | undefined | undefined |
open | open | Controls whether date picker dialog is open or not. | boolean | false |
min | min | Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD. This setting can be used alone or together with the max property. | string | undefined | undefined |
max | max | Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD. This setting can be used alone or together with the min property. | string | undefined | undefined |
firstDayOfWeek | first-day-of-week | Which day is considered first day of the week? | DaysOfWeek | undefined |
dateAdapter | – | Date adapter, for custom parsing/formatting. Must be object with a | DateAdapter | isoAdapter |
isDateDisabled | – | Controls which days are disabled and therefore disallowed. For example, this can be used to disallow selection of weekends. | DatePredicate | isDateDisabled |
isDateHighlighted | – | Controls which days are highlighted with a small indicator. Returning | (date: Date) => string | boolean | isDateHighlighted |
expand | expand | Controls whether the date picker expands to fill the width of its container. | boolean | false |
size | size | The size of the component. | "s" | "m" | "l" | "m" |
label | label | Label for the input. | string | "" |
hint | hint | Optional hint text to be displayed with the input. Alternatively use the hint slot. | string | undefined | undefined |
hideLabel | hide-label | Visually hide the label, but still show it to assistive technologies like screen readers. | boolean | false |
placeholder | placeholder | Placeholder text to display within the input. | string | undefined | undefined |
error | error | Optional error to be shown with the input. Alternatively use the error slot. | string | undefined | undefined |
required | required | Determines whether the input is required or not. An input marked as required will be announced as such to users of assistive technology. When using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors. | boolean | false |
hideRequired | hide-required | Visually hide the required indicator, but still show required attribute to assistive technologies like screen readers. | boolean | false |
readonly | readonly | Makes the component readonly, so that it is not editable. Readonly differs from disabled in that readonly fields are still focusable and will be submitted with a form. | boolean | false |
disabled | disabled | Makes the component disabled. This prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies. | boolean | false |
name | name | The name of the form component. | string | undefined | undefined |
form | form | Gets the form, if any, associated with the form element. The setter accepts a string, which is the id of the form. | HTMLFormElement | null | undefined |
Events
Event | Description | Type |
---|---|---|
change | Fired whenever the input's value is changed via user interaction. | NordEvent |
open | Dispatched when the popout is opened. | NordEvent |
close | Dispatched when the popout is closed. | NordEvent |
nord-focus-date | Dispatched when the calendar's focused date changes. | DateSelectEvent |
input | Fired as the user types into the input. | NordEvent |
Methods
Method name | Parameters | Description |
---|---|---|
hide(moveFocusToButton?: boolean) => void | moveFocusToButton : A boolean option to move the focus to the original button that opens the popout. | Hide the date picker programmatically. |
show() => void | N/A | Show the date picker programmatically. |
focus(options?: FocusOptions) => void | options : An object which controls aspects of the focusing process. | Programmatically move focus to the component. |
blur() => void | N/A | Programmatically remove focus from the component. |
click() => void | N/A | Programmatically simulates a click on the component. |
CSS Properties
CSS Custom Properties provide more fine grain control over component presentation. We advise utilizing existing properties on the component before using these.
Property | Description | Default |
---|---|---|
--n-label-color | Controls the text color of the label, using our color tokens. | var(--n-color-text) |
Localization
This component requires localization in a multi-lingual application. The following keys are required when registering a translation:
Key | Description |
---|---|
modalHeading | Heading for the date picker's modal. |
closeLabel | Accessible label for the close button. |
buttonLabel | Accessible label for the toggle button that opens the date picker modal. |
selectedDateMessage | Describes the selected date. This message is appended to the toggle button label when a date is selected. |
For full localization guidelines, please see Localization documentation.
Dependencies
This component is internally dependent on the following components:
Usage
This section includes guidelines for designers and developers about the usage of this component in different contexts.
Do
- Use when the user needs to choose a single date or a date range.
Don’t
- Don’t use for entering date of birth. Use input component instead.
- Don’t use to choose a date that is over 10 years in the future or the past.
Keyboard accessibility
Date picker is built to closely follow W3C Date Picker Dialog example with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.
Choose date button
Space, Enter
: Opens the date picker dialog and moves focus to the first select menu in the dialog.
Date picker dialog
Esc
: Closes the date picker dialog and moves focus back to the “choose date” button.Tab
: Moves focus to the next element in the dialog. Please note since the calendar usesrole="grid"
, only one button in the calendar grid is in the tab sequence. Additionally, if focus is on the last focusable element, focus is next moved back to the first focusable element inside the date picker dialog.Shift + Tab
: Same as above, but in reverse order.
Date picker dialog: Month/year buttons
Space, Enter
: Changes the month and/or year displayed.
Date picker dialog: Date grid
Space, Enter
: Selects a date, closes the dialog, and moves focus back to the “Choose Date” button. Additionally updates the value of the date picker input with the selected date, and adds selected date to “Choose Date” button label.Arrow up
: Moves focus to the same day of the previous week.Arrow down
: Moves focus to the same day of the next week.Arrow right
: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.Arrow left
: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.Home
: Moves focus to the first day (e.g Monday) of the current week.End
: Moves focus to the last day (e.g. Sunday) of the current week.Page Up
: Changes the grid of dates to the previous month and sets focus on the same day of the same week.Shift + Page Up
: Changes the grid of dates to the previous year and sets focus on the same day of the same week.Page Down
: Changes the grid of dates to the next month and sets focus on the same day of the same week.Shift + Page Down
: Changes the grid of dates to the next year and sets focus on the same day of the same week.
Date picker dialog: Close button
Space, Enter
: Closes the dialog, moves focus to “choose date” button, but does not update the date in input.
Integration
For integration guidelines, please see Web Components documentation. This documentation explains how to implement and use Nord Web Components across different technologies such as Vue.js, React, or Vanilla JavaScript.
Troubleshooting
If you experience any issues while using Nord Web Components, please head over to the Support page for more guidelines and ways to contact us.