TimeInput
시각을 직접 입력. 12/24시간은 언어 설정대로.
- 라이브러리 전용
개요
미리보기
예시
상태
비어 있음
입력됨
도움말
서울 시간 기준이에요.오류
09:00부터 18:00 사이로 입력해 주세요.필수
비활성
15분 단위
읽기 전용
이렇게 · 이렇게 하지 않기
- 이렇게 정확한 시각을 알고 있을 때 쓴다.
- 이렇게 네이티브 time 입력을 먼저 쓴다.
- 이렇게 하지 않기 12/24시간을 우리가 강제하지 않는다. 오전·오후 표기는 사용자 언어를 따른다.
- 이렇게 라벨은 항상 보이게 둔다. placeholder는 예시일 뿐 라벨이 아니다.
토큰과 속성
| 이름 | 타입 | 기본값 | 설명 |
|---|---|---|---|
label | ReactNode | 시작 시각 | 항상 보이는 라벨(<label for> 또는 <legend>). placeholder로 대신하지 않는다. |
hint? | ReactNode | | 상시 도움말. FieldMessage로 그리고 aria-describedby의 첫 번째로 연결한다. 비우면 없음. |
error? | ReactNode | | 오류 문장. 있으면 aria-invalid="true". 오류 노드는 항상 마운트되어 있고 내용만 바뀐다. |
required? | boolean | false | required 속성과 함께 라벨 옆에 “필수” 텍스트를 보인다(별표만 쓰지 않음). |
disabled? | boolean | false | Tab에서 빠지고 제출되지 않는다. 값을 보여 줘야 하면 readOnly를 쓴다. |
readOnly? | boolean | false | 초점을 받고 복사할 수 있지만 바꿀 수 없다. |
defaultValue? | string | | 비제어 초기 시각(HH:mm, 24시간 값). 표시는 브라우저·OS 로캘. |
step? | 60 | 900 | 60 | 유효한 시각 간격(초). 900이면 15분 단위. |
min? | string | | 가장 이른 시각(HH:mm). |
max? | string | | 가장 늦은 시각(HH:mm). |
ref | — | — | ref는 <input type="time">으로 전달된다. |
| 그 밖의 속성 | — | — | name, value, defaultValue, onChange, onBlur, autoComplete, aria-* 등 네이티브 속성은 입력 요소로 전달된다. id를 주면 라벨 연결에 그 id를 쓴다. className·style은 받지 않는다. |
접근성
키보드: 네이티브: Tab으로 이동, 시·분(·오전/오후) 칸은 ↑↓로 바꾸거나 숫자를 친다.
- aria-describedby 순서는 도움말 → 오류. 오류가 있으면 aria-invalid="true".
- 오류는 alert로 알리지 않는다. 제출 실패 시 FormLayout이 첫 오류 필드로 초점을 옮긴다.
- 붙여넣기를 막지 않는다. 라벨 포함 행이 44px 이상이다.
- 아이콘을 따로 넣지 않는다(브라우저의 시계 버튼과 겹친다). 값은 항상 24시간 HH:mm으로 제출된다.