Date Input

Masked text input for typing dates and times, with automatic formatting, min and max limits, and validation.

import { DateInput } from "@plexui/vue/components/DateInput";

Examples

Overview

variant
size

With time

With seconds

Limits

US format

ISO format

With Field

Validation

Disabled

API

PropTypeDefaultDescription
value / v-model:valueDateTime | null—Selected date (Luxon DateTime)
@update:value(date: DateTime | null) => void—Emitted when a complete valid date is entered or the field is cleared
@change(date: DateTime | null) => void—Same payload as update:value, named after React's onChange
modeMaskitoDateMode"dd/mm/yyyy"Date format mode: dd/mm/yyyy, mm/dd/yyyy, yyyy/mm/dd, etc.
separatorstring"."Character between date parts
time-modeMaskitoTimeMode—Enable time input: HH:MM, HH:MM:SS, etc.
date-time-separatorstring", "Separator between date and time parts
time-stepnumber0Arrow-key increment step for time segments
minDateTime—Earliest allowed date
maxDateTime—Latest allowed date
clearablebooleanfalseShow clear button when input has a value
sizeControlSize"md"Input size (3xs to 3xl)
variant"outline" | "soft""outline"Visual style
pillbooleanfalseFully rounded corners
disabledbooleanfalseDisable input
invalidbooleanfalseMark as invalid
placeholderstring—Generated from the format if not set

Other attributes, listeners and the startAdornment / endAdornment slots go to the underlying Input. The mask is Maskito (@maskito/vue), with the same options as the React component.

Styling

Date Input reads these component tokens. Override them at any scope to restyle it:

  • --input-border-color-invalid: border color invalid (default var(--color-border-danger-outline))
  • --input-gap-lg: gap lg (default 10px)
  • --input-gap-md: gap md (default 8px)
  • --input-gap-sm: gap sm (default 6px)
  • --input-gap-xs: gap xs (default 4px)
  • --input-outline-border-color: outline border color (default var(--color-border-primary-outline))
  • --input-outline-border-color-focus: outline border color focus (default var(--alpha-50))
  • --input-outline-border-color-hover: outline border color hover (default light-dark(var(--alpha-25), var(--alpha-30)))
  • --input-placeholder-text-color: placeholder text color (default var(--color-text-tertiary))
  • --input-soft-background-color: soft background color (default var(--color-background-primary-soft-alpha))
  • --input-soft-border-color-focus: soft border color focus (default var(--alpha-20))
  • --input-text-color: text color (default var(--color-text))