Basic
A single-date calendar with native button cells and month navigation.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Icons by @ng-icons/tabler-icons
The component library does not provide icons.
Date and range selection with dropdown captions, week numbers, disabled dates, timezone formatting, and RTL support.
Preview
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
TS
import { FormControl, ReactiveFormsModule } from '@angular/forms';
import { FrCalendarModule } from '@frame-ui-ng/components/calendar';
date = new FormControl<Date | null>(new Date());HTML
<frame-calendar [formControl]="date" />A single-date calendar with native button cells and month navigation.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Set mode="range" and optionally render multiple months for start and end date selection.
| Mo | Di | Mi | Do | Fr | Sa | So |
|---|---|---|---|---|---|---|
Use captionLayout="dropdown" with fromYear and toYear to expose month and year selects.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Compose preset buttons around the calendar and update the selected date from application state.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Pair the calendar with native time inputs when the flow needs a date and time range.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Pass disabledDates to prevent selection and style unavailable dates.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Use --frame-calendar-cell-size to resize the day grid, including custom date labels.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Use the select trigger and panel primitives to present a compact date-picker style calendar.
Use showWeekNumber to display ISO week numbers at the start of each row.
| Wk | Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|---|
| 05 | |||||||
| 06 | |||||||
| 07 | |||||||
| 08 | |||||||
| 09 | |||||||
| 10 |
Pass timeZone when date labels and selected dates should be formatted for a specific zone.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Time zone: UTC
Pass dir="rtl" and an RTL locale to mirror layout and localize month and weekday labels.
| الأحد | الاثنين | الثلاثاء | الأربعاء | الخميس | الجمعة | السبت |
|---|---|---|---|---|---|---|
Override calendar tokens locally to tune the surface, selected day color, focus ring, navigation controls, or cell size.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Inspect the calendar shell, navigation, caption, weekday labels, day cells, selected state, and range state.
| Mo | Di | Mi | Do | Fr | Sa | So |
|---|---|---|---|---|---|---|
Use these CSS custom properties to tune calendar surface, navigation, cells, selected dates, ranges, disabled dates, and focus treatment.
SCSS
--frame-calendar-bg: var(--frame-surface);
--frame-calendar-color: var(--frame-surface-foreground);
--frame-calendar-border: var(--frame-border);
--frame-calendar-radius: var(--frame-radius-lg);
--frame-calendar-padding: 0.875rem;
--frame-calendar-gap: 1rem;
--frame-calendar-cell-size: 2.25rem;
--frame-calendar-cell-radius: var(--frame-radius-md);
--frame-calendar-muted-color: var(--frame-muted-foreground);
--frame-calendar-day-hover-bg: var(--frame-muted);
--frame-calendar-day-selected-bg: var(--frame-primary);
--frame-calendar-day-selected-color: var(--frame-primary-foreground);
--frame-calendar-day-range-bg: color-mix(in srgb, var(--frame-primary) 14%, transparent);
--frame-calendar-day-today-border: color-mix(in srgb, var(--frame-primary) 55%, var(--frame-border));
--frame-calendar-day-disabled-opacity: 0.38;