Stable
Date inputs use the browser's own date picker, so managers get the calendar they already know on desktop and phone. They use the same at-input class as a text input, with type="date".
The value is always sent as YYYY-MM-DD, whatever the browser shows on screen. Show dates back to managers as "4 Oct 2026".
Specifications
Anatomy
The first day the tenant can move in.
Anatomy
The first day the tenant can move in.
Size and spacing
Date input
Set min and max when only some dates make sense, for example no start dates in the past.
Example
States
Default
Hover
Focus
Error
Disabled
Example
States
Default
Hover
Focus
Error
Disabled
Usage
When to use
- Any single date: a start date, a due date, an inspection date.
When not to use
- A date of birth or other date far in the past: three text inputs (day, month, year) are quicker.
- A month only: use a select.
Content
- Label with what the date is for: "Start date", not "Date".
- Error messages give an example: "Enter a date after 5 Oct 2026".
Do and don't
Do
- Use the native date input.
Don't
- Add a third-party date picker.
Implementation
HTML
<div class="at-field">
<label class="at-label" for="start">Start date</label>
<input class="at-input" id="start" type="date" />
</div>Classes
| Class | What it does |
|---|---|
at-input with type="date" | Native date input |
Tokens used
--at-border, --at-surface, --at-text, --at-border-bold
Accessibility
- The native input supports keyboard entry.