Ark UI Primitives + Tailwind CSS v4

Ark Date Input

Component nhập liệu ngày tháng dạng segmented input từng phân đoạn (ngày, tháng, năm, giờ, phút, giây) chuẩn hoá **Zero-Padded** (đệm số 0 ở đầu: 05/08/2026), hỗ trợ bàn phím đầy đủ, chế độ ngày đơn, khoảng ngày (Date Range), thời gian (Date & Time), và 4 kích thước chuẩn ChillCMS.

Single Date Input (Chuẩn Zero-Padded)

Chế độ nhập ngày chuẩn định dạng dd/mm/yyyy với ngày và tháng có số 0 ở đầu (05/08/2026) giúp giữ layout đồng đều.

08052026

Tự động đệm số 0 ở đầu (05/08/2026), điều hướng bằng Tab hoặc mũi tên

Giá trị hiển thị & Event:
Formatted string: 05/08/2026
ISO Date value: 2026-08-05
<ArkDateInput
  label="Ngày cấp giấy phép"
  value={singleDate}
  shouldForceLeadingZeros // Chuẩn zero-padded: 05/08/2026
  clearable
  onValueChange={(details) => setSingleDate(details.value)}
/>

So sánh Zero-Padded vs Non Zero-Padded

shouldForceLeadingZeros={true} tự động giữ định dạng 2 chữ số (05/08/2026) thay vì dạng rút gọn (5/8/2026).

Zero-Padded (Khuyên dùng)05/08/2026
08052026
Non Zero-Padded5/8/2026
852026
// Chuẩn đệm số 0 (Mặc định)
<ArkDateInput shouldForceLeadingZeros={true} value="2026-08-05" /> // => 05/08/2026

// Không đệm số 0
<ArkDateInput shouldForceLeadingZeros={false} value="2026-08-05" /> // => 5/8/2026

Date & Time Input (Ngày và Giờ)

Bổ sung phân đoạn giờ, phút hoặc giây với tuỳ chọn chu kỳ 24h hoặc 12h (kèm AM/PM) đệm số 0 chuẩn (09:05:08).

Granularity:
Hour Cycle:
08052026––––
<ArkDateInput
  label="Thời gian đặt lịch hẹn"
  granularity="minute"
  hourCycle={24}
  shouldForceLeadingZeros // 05/08/2026 09:05
  value={dateTimeValue}
  clearable
/>

Date Range Input (Khoảng ngày)

Hỗ trợ chọn khoảng ngày bắt đầu và ngày kết thúc với hai Segment Group tách biệt và ký hiệu phân cách tuỳ biến.

08012026
08092026

Nhập ngày bắt đầu và ngày kết thúc (01/08/2026 → 09/08/2026)

Kết quả chuỗi ngày:
Start: 01/08/2026 | End: 09/08/2026
<ArkDateInput
  selectionMode="range"
  label="Khoảng thời gian chiến dịch"
  rangeSeparator="→"
  shouldForceLeadingZeros
  value={rangeDate}
  clearable
  onValueChange={(details) => setRangeDate(details.value)}
/>

Ma trận kích thước chuẩn ChillCMS (Size Matrix)

Bốn kích thước: xs (28px), sm (32px), md (36px), lg (40px) hiển thị zero-padded date đồng bộ hoàn hảo với Input chuẩn.

Size: xs28px
08052026
Size: sm32px
08052026
Size: md36px
08052026
Size: lg40px
08052026

Trạng thái & Validation

Hỗ trợ hiển thị trạng thái hợp lệ, thông báo lỗi (invalid / error), trường bắt buộc (required), chỉ đọc (readOnly) và vô hiệu hoá (disabled).

08052026
08052026

Ngày hết hạn không được trước ngày hiện tại

08052026
08052026

Compound Component API (Tuỳ biến nâng cao)

Sử dụng trực tiếp các thành phần con ArkDateInput.Root, Control, SegmentGroup, Segment để tự do tuỳ chỉnh layout với shouldForceLeadingZeros.

Zero-padded: 05/08/2026
08052026
Ark UI Raw
<ArkDateInput.Root shouldForceLeadingZeros defaultValue={[parseDate('2026-08-05')]}>
  <ArkDateInput.Label>Custom Composed Field</ArkDateInput.Label>
  <ArkDateInput.Control className="border-primary/40">
    <CalendarDays className="size-4 text-primary" />
    <ArkDateInput.SegmentGroup index={0}>
      <ArkDateInput.SegmentContext>
        {(segment) => <ArkDateInput.Segment key={segment.type} segment={segment} />}
      </ArkDateInput.SegmentContext>
    </ArkDateInput.SegmentGroup>
  </ArkDateInput.Control>
</ArkDateInput.Root>

Interactive Playground (Thử nghiệm tương tác trực tiếp)

Điều chỉnh động tất cả thuộc tính, kích thước, chế độ ngày/khoảng ngày, bật/tắt zero-padding và theo dõi dữ liệu JSON trả về thời gian thực.

Cấu hình tham số

Selection Mode
Kích thước (Size)
Locale (Ngôn ngữ/Định dạng)

Live Component

05082026

Đang áp dụng: Zero-Padded (05/08/2026)

Event onValueChange Details (JSON)

{
  "selectionMode": "single",
  "locale": "vi-VN",
  "shouldForceLeadingZeros": true,
  "valueAsString": [
    "05/08/2026"
  ],
  "rawDateValue": "2026-08-05"
}
© 2026. FlatVn All rights reserved. Version 4.3.40