Label
폼 컨트롤의 이름을 눈에 보이게 제공하고 텍스트도 클릭 영역으로 연결할 때 사용합니다.
미리보기
입력과 설정의 레이블
이메일 레이블로 입력에 포커스하고 주간 리포트 레이블로 연결된 스위치를 전환합니다.
레이블을 클릭하면 연결된 입력으로 이동합니다.
설치
Registry를 처음 사용한다면 기본 설정과 공통 스타일 설치 을 먼저 완료하세요.
npx shadcn@latest add @neumorphism-ui/label공통 base를 한 번 설치한 뒤 CLI로 필요한 컴포넌트와 의존성을 추가합니다.
입력과 설정의 레이블
npx shadcn@latest add @neumorphism-ui/input @neumorphism-ui/label @neumorphism-ui/switch사용법
Label의 htmlFor와 컨트롤의 id를 일치시키세요. 레이블은 계속 보이게 두고 예시나 오류 안내는 별도 보조 텍스트로 제공합니다.
"use client";
import { useId } from "react";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
export default function Example() {
const id = useId();
return (
<div className="grid gap-2">
<Label htmlFor={id}>Project name</Label>
<Input id={id} name="projectName" />
</div>
);
}API 레퍼런스
native label을 얇게 감싼 컴포넌트로 모든 표준 속성을 전달합니다. peer-disabled 상태와 일치하는 글자색과 cursor를 제공합니다.
| 컴포넌트 | 속성 | 타입 | 기본값 | 설명 |
|---|---|---|---|---|
Label | htmlFor | string | — | 연결할 form control의 id입니다. |
Label | children필수 | React.ReactNode | — | control의 목적을 설명하는 텍스트입니다. |
Label | className | string | — | 레이아웃과 상태 스타일을 확장합니다. |
접근성
- 01
htmlFor는 대상 control의 id와 정확히 일치해야 합니다.
- 02
RadioGroup처럼 여러 control을 묶는 이름에는 단독 Label 대신 fieldset/legend 또는 aria-labelledby를 사용합니다.
- 03
필수 여부와 보조 설명은 시각적 표시뿐 아니라 required, aria-describedby로도 전달합니다.