Calendar

The calendar component is a web component that displays a calendar with the ability to select a date.

Examples

The calendar component is using the dayjs library to handle dates. The best way to use the calendar component if you are using the dayjs library in your project. The component settings are properties, not attributes, so you have to set them in JavaScript.

Default

The calendar component can be used to select a date. The default date is the current date.

<dap-ds-calendar></dap-ds-calendar>
Value

The value property can be used to set the selected date.

HTML

Js

const calendar = document.querySelector('dap-ds-calendar')
calendar.value = dayjs().add(1, 'day')
Current date

The currentDate property can be used to set the current visible date. Only the month and year are considered.

HTML

Js

const calendar = document.querySelector('dap-ds-calendar')
calendar.currentDate = new Date('2022-08-15T22:00:00.000Z')
calendar.value = dayjs('2022-08-13T22:00:00.000Z')
Min date, Max date

The minDate and maxDate properties can be used to set the minimum and maximum date of the calendar. Only the month and year are considered.

In this example the minDate is set to the previous month and the maxDate is set to the next month, so you can do the paging only between the previous and next month.

HTML

Js

const calendar = document.querySelector('dap-ds-calendar')
calendar.minDate = dayjs().add(-1, 'month')
calendar.maxDate = dayjs().add(1, 'month')
calendar.value = dayjs()
Disabled date

The disabledDate property can be used to set a function to determine if the date is disabled. The function should return true if the date is disabled.

In this example the disabledDate function is set to disable the weekends.

HTML

JS

const calendar = document.querySelector('dap-ds-calendar')
calendar.disabledDate = (date) => date.day() === 0 || date.day() === 6
Localization

The locale property can be used to set the locale of the calendar. The default locale is the current locale of the browser. The available locales are en and hu.

HTML

Hungarian locale

English locale

Js

const calendar = document.querySelector('dap-ds-calendar')
calendar.locale = 'hu'
calendar.value = dayjs().add(1, 'day')

Importing
import { DapDSCalendar } from 'dap-design-system/dist/dds'
Importing React
import { DapDSCalendarReact } from 'dap-design-system/dist/react'
Attributes
PropertyTypeDefaultDescription
valueDayjsThe value of the calendar.
currentDateDayjsdayjs()The current visible date of the calendar. Only the month and year are considered.
minDateDayjsdayjs('1901-01-01')The minimum date of the calendar. Only the month and year are considered.
maxDateDayjsdayjs('2099-12-31')The maximum date of the calendar. Only the month and year are considered.
disabledDateFunction() => falseThe function to determine if the date is disabled.
localestringdayjs.locale()The locale of the calendar.
Slots
NameDescription
(default)The content of the calendar.
Events
Event NameDescription
dds-changeFired when the calendar value changes.
CSS Parts
Part NameDescription
baseThe main calendar container.
headerThe header of the calendar.
bodyThe body of the calendar.
CSS Custom Properties
Property NameDescription
--dds-calendar-displayThe display property of the calendar container. Default is flex.
--dds-calendar-isolationThe isolation property of the calendar. Default is isolate.
--dds-calendar-block-displayThe display property of the calendar block. Default is block.
--dds-calendar-transitionThe transition property for the calendar. Default is 'all 0.2s ease-in-out'.
--dds-calendar-header-displayThe display property of the calendar header. Default is grid.
--dds-calendar-header-grid-flowThe grid-auto-flow property of the calendar header. Default is column.
--dds-calendar-header-widthThe width of the calendar header. Default is 100%.
--dds-calendar-header-gapThe gap between header items. Default is the design system's spacing-100.
--dds-calendar-select-min-heightThe minimum height of the select trigger. Default is auto.
--dds-calendar-select-max-heightThe maximum height of the select trigger. Default is 32px.
--dds-calendar-select-paddingThe padding of the select trigger. Default is the design system's spacing-200.
--dds-calendar-select-border-radiusThe border radius of the select trigger. Default is the design system's radius-rounded.
--dds-calendar-select-border-colorThe border color of the select trigger. Default is the design system's border-neutral-transparent-interactive.
--dds-calendar-select-backgroundThe background color of the select trigger. Default is the design system's button-subtle-background-enabled.
--dds-calendar-select-colorThe text color of the select trigger. Default is the design system's button-subtle-text-enabled.
--dds-calendar-select-font-sizeThe font size of the select trigger. Default is the design system's font-sm.
--dds-calendar-select-font-styleThe font style of the select trigger. Default is normal.
--dds-calendar-select-font-weightThe font weight of the select trigger. Default is the design system's font-weight-bold.
--dds-calendar-nav-button-marginThe margin of the navigation buttons. Default is the design system's spacing-200.
--dds-calendar-nav-button-colorThe color of the navigation button icons. Default is the design system's button-subtle-icon-enabled.
Components Calendar cell <dap-ds-calendar-cell/> Attributes
PropertyTypeDefaultDescription
valueDayjsThe value of the calendar cell.
selectedbooleanfalseWhether the calendar cell is selected.
disabledDaybooleanfalseWhether the calendar cell is disabled.
todaybooleanfalseWhether the calendar cell is today.
outOfRangebooleanfalseWhether the calendar cell is out of range.
headerbooleanfalseWhether the calendar cell is a date header.
focusedbooleanfalseWhether the calendar cell is focused.
Slots
NameDescription
(default)The content of the calendar cell.
Events

No custom events available.

CSS Parts
Part NameDescription
baseThe main calendar cell container.
today-markThe today mark of the calendar cell.
CSS Custom Properties

No CSS custom properties available.