reopt designreopt design
DocsExploreToolsPricingBuilder
시작하기
개요
시작하기
Next.js 설치
Private install
핵심 개념
아키텍처
컴포지션 패턴
접근성
키보드 패턴
스타일링
테마 시스템
고급 패턴
구축·운영
Skills
AI 연동
CLI (opt surface add)
의존 그래프
도구
Canvas 카탈로그
Theme Builder
Form Builder
템플릿
템플릿
릴리즈
릴리즈 노트
Oopt-ui
reopt designreopt design

AI 시대를 위한 디자인 시스템

  • 문서
  • 가격
  • 릴리즈 노트
  • GitHub
  • 서비스 약관
  • 개인정보처리방침

© 2026 reopt-ai. All rights reserved.

Form

core

접근성 폼 시스템. opt-ui-primitives Form API 기반. 31 exports: FormRoot, FormProvider, FormGroup, FormGroupLabel, FormDescription, FormField, FormControl, FormInput, FormTextarea, FormSelect, FormSelectPopover, FormSelectItem, FormSwitch, FormLabel, FormError, FormSubmit, FormCheckbox, FormRadioGroup, FormRadio, FormPush, FormRemove, FormReset, FormNumberInput, FormSlider, FormStarRating, FormColorPicker, FormIconPicker, FormTagInput, FormDateRangePicker + useFormStore, useFormContext hooks.

컴포넌트 의존 관계

깊이
▲ USED BY (5)settings-formform-loginform-wizardform-dynamicform-uploadForm
100%

기본 사용

회사 이메일을 입력해주세요.

FormGroup — 필드 시맨틱 그룹핑

개인 정보
직무 정보

FormField + FormControl + FormDescription

영문, 숫자, 하이픈만 사용 가능합니다.

최대 200자까지 입력할 수 있습니다.

FormCheckbox + FormRadioGroup — Form Store 바인딩

구독 설정
요금제 선택

FormPush + FormRemove — 동적 배열 필드

태그 목록

태그를 추가하거나 제거할 수 있습니다.

FormProvider — Context 기반 폼 공유

프로필 설정 — Textarea + Switch

마케팅 알림 수신

FormSelect — 드롭다운 선택

종합 — 회원가입 폼

계정 정보

영문, 숫자를 포함하여 8자 이상 입력해주세요.

역할
보유 기술

보유한 기술 스택을 입력해주세요.

테스트 커버리지

2026년 2월 4일2/2 통과
2성공
0실패
2전체
  • 폼 요소를 렌더링한다
  • 입력 필드에 타이핑할 수 있다

FormRoot Props

Prop타입기본값설명
storeFormStore—useFormStore()로 생성한 폼 스토어. 미지정 시 자식의 FormProvider가 제공.
children*ReactNode—폼 필드들
classNamestring—기본 스타일 오버라이드

FormInput Props

Prop타입기본값설명
name*string—폼 필드 이름 (스토어 키와 매칭)
typestring"text"입력 타입
placeholderstring—플레이스홀더
classNamestring—기본 스타일 오버라이드

FormTextarea Props

Prop타입기본값설명
name*string—폼 필드 이름
rowsnumber4표시 줄 수
resize"none" | "vertical" | "horizontal" | "both""vertical"크기 조절 방향
placeholderstring—플레이스홀더
classNamestring—추가 CSS 클래스

FormSelect Props

Prop타입기본값설명
name*string—폼 필드 이름
children*ReactNode—FormSelectPopover 등 자식 요소
placeholderstring—미선택 시 표시 텍스트
classNamestring—추가 CSS 클래스

FormSelectPopover Props

Prop타입기본값설명
children*ReactNode—FormSelectItem 목록
sameWidthbooleantrue트리거와 같은 너비
gutternumber4트리거와의 간격 (px)

FormSelectItem Props

Prop타입기본값설명
value*string—옵션 값
children*ReactNode—옵션 레이블

FormSwitch Props

Prop타입기본값설명
name*string—폼 필드 이름
size"sm" | "md" | "lg""md"스위치 크기
disabledboolean—비활성화 상태

FormLabel Props

Prop타입기본값설명
name*string—연결된 필드 이름
children*ReactNode—레이블 텍스트
classNamestring—기본 스타일 오버라이드

FormError Props

Prop타입기본값설명
name*string—연결된 필드 이름
classNamestring—기본 스타일 오버라이드

FormSubmit Props

Prop타입기본값설명
children*ReactNode—버튼 텍스트
classNamestring—기본 스타일 오버라이드

FormProvider Props

Prop타입기본값설명
store*FormStore—useFormStore()로 생성한 폼 스토어
children*ReactNode—자식 폼 요소

FormGroup Props

Prop타입기본값설명
children*ReactNode—그룹 내 필드들
classNamestring—기본 스타일 오버라이드

FormGroupLabel Props

Prop타입기본값설명
children*ReactNode—그룹 레이블 텍스트
classNamestring—기본 스타일 오버라이드

FormDescription Props

Prop타입기본값설명
name*string—연결된 필드 이름
children*ReactNode—도움말 텍스트
classNamestring—기본 스타일 오버라이드

FormField Props

Prop타입기본값설명
name*string—필드 이름
children*ReactNode—label + input + error 등
classNamestring—기본 스타일 오버라이드

FormControl Props

Prop타입기본값설명
name*string—연결된 필드 이름
classNamestring—기본 스타일 오버라이드

FormCheckbox Props

Prop타입기본값설명
name*string—폼 필드 이름 (스토어 키)
classNamestring—기본 스타일 오버라이드

FormRadioGroup Props

Prop타입기본값설명
name*string—폼 필드 이름 (스토어 키)
children*ReactNode—FormRadio 목록
classNamestring—기본 스타일 오버라이드

FormRadio Props

Prop타입기본값설명
name*string—폼 필드 이름 (스토어 키)
value*string—라디오 값
classNamestring—기본 스타일 오버라이드

FormPush Props

Prop타입기본값설명
name*string—배열 필드 이름
value*unknown—추가할 기본값
children*ReactNode—버튼 텍스트
classNamestring—기본 스타일 오버라이드

FormRemove Props

Prop타입기본값설명
name*string—배열 필드 이름
index*number—제거할 인덱스
children*ReactNode—버튼 텍스트
classNamestring—기본 스타일 오버라이드

FormReset Props

Prop타입기본값설명
children*ReactNode—버튼 텍스트
classNamestring—기본 스타일 오버라이드

useFormStore Props

Prop타입기본값설명
defaultValuesRecord<string, unknown>—초기 폼 값

Import

tsx
import {
  FormRoot,
  FormProvider,
  FormGroup,
  FormGroupLabel,
  FormDescription,
  FormField,
  FormControl,
  FormInput,
  FormTextarea,
  FormSelect,
  FormSelectPopover,
  FormSelectItem,
  FormSwitch,
  FormLabel,
  FormError,
  FormSubmit,
  FormCheckbox,
  FormRadioGroup,
  FormRadio,
  FormPush,
  FormRemove,
  FormReset,
  FormNumberInput,
  FormSlider,
  FormStarRating,
  FormColorPicker,
  FormIconPicker,
  FormTagInput,
  FormDateRangePicker,
  useFormStore,
  useFormContext,
} from "@reopt-ai/opt-ui";