Reka UI logoReka
backdrop
Components

Year Picker

Alpha
Presents a calendar view tailored for selecting years.
2020 - 2031
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
Year Picker, 2020 - 2031

Features

  • Full keyboard navigation
  • Can be controlled or uncontrolled
  • Focus is fully managed
  • Localization support
  • Highly composable
  • Configurable years per page

Preface

The component depends on the @internationalized/date package, which solves a lot of the problems that come with working with dates and times in JavaScript.

We highly recommend reading through the documentation for the package to get a solid feel for how it works, and you'll need to install it in your project to use the date-related components.

Installation

Install the date package.

sh
$ npm add @internationalized/date

Install the component from your command line.

sh
$ npm add reka-ui

Anatomy

Import all parts and piece them together.

vue
<script setup>
import {
  YearPickerCell,
  YearPickerCellTrigger,
  YearPickerGrid,
  YearPickerGridBody,
  YearPickerGridRow,
  YearPickerHeader,
  YearPickerHeading,
  YearPickerNext,
  YearPickerPrev,
  YearPickerRoot,
} from 'reka-ui'
</script>

<template>
  <YearPickerRoot>
    <YearPickerHeader>
      <YearPickerPrev />
      <YearPickerHeading />
      <YearPickerNext />
    </YearPickerHeader>
    <YearPickerGrid>
      <YearPickerGridBody>
        <YearPickerGridRow>
          <YearPickerCell>
            <YearPickerCellTrigger />
          </YearPickerCell>
        </YearPickerGridRow>
      </YearPickerGridBody>
    </YearPickerGrid>
  </YearPickerRoot>
</template>

API Reference

Root

Contains all the parts of a year picker

Data AttributeValue
[data-readonly]Present when readonly
[data-disabled]Present when disabled
[data-invalid]Present when invalid

Contains the navigation buttons and the heading segments.

Prev Button

Calendar navigation button. It navigates the calendar one page (default: 12 years) in the past.

Data AttributeValue
[data-disabled]Present when disabled

Next Button

Calendar navigation button. It navigates the calendar one page (default: 12 years) in the future.

Data AttributeValue
[data-disabled]Present when disabled

Heading

Heading for displaying the current year range (e.g., "2020 - 2031").

Data AttributeValue
[data-disabled]Present when disabled

Grid

Container for wrapping the year picker grid.

Data AttributeValue
[data-readonly]Present when readonly
[data-disabled]Present when disabled

Grid Body

Container for wrapping the grid body.

Grid Row

Container for wrapping the grid row.

Cell

Container for wrapping the year picker cells.

Data AttributeValue
[data-disabled]Present when disabled

Cell Trigger

Interactable container for displaying the cell years. Clicking it selects the year.

Data AttributeValue
[data-selected]Present when selected
[data-value]The ISO string value of the date.
[data-disabled]Present when disabled
[data-unavailable]Present when unavailable
[data-today]Present when the year is the current year
[data-focused]Present when focused

Accessibility

Keyboard Interactions

KeyDescription
Tab
When focus moves onto the year picker, focuses the first navigation button.
Space
When the focus is on either YearPickerNext or YearPickerPrev, it navigates the calendar. Otherwise, it selects the year.
Enter
When the focus is on either YearPickerNext or YearPickerPrev, it navigates the calendar. Otherwise, it selects the year.
ArrowLeftArrowRightArrowUpArrowDown
When the focus is on YearPickerCellTrigger, it navigates the years, changing the page if necessary.
PageUp
When the focus is on YearPickerCellTrigger, it navigates to the previous page of years.
PageDown
When the focus is on YearPickerCellTrigger, it navigates to the next page of years.