Form Layout

Form Layout

폼 필드를 배치하는 레이아웃 유형입니다. form_vertical · form_horizontal · form_inline과 Grid를 조합해 다양한 폼 구조를 구성할 수 있습니다.

세로

레이블이 입력 위에 오는 기본 레이아웃입니다. form_vertical을 명시하거나 form_field만 나열해도 동일하게 동작합니다.

2~20자 이내로 입력해 주세요.

가로

레이블이 왼쪽, 입력이 오른쪽에 배치됩니다. 레이블은 기본적으로 오른쪽 정렬됩니다.

업무용 이메일을 입력해 주세요.

가로 — 레이블 정렬·너비

form_label-align-start로 레이블을 왼쪽 정렬하고, form_label-width-sm · form_label-width-lg로 레이블 너비를 조절합니다.

레이블 왼쪽 정렬 · sm

form_label-align-start · form_label-width-sm

레이블 너비 lg

form_label-width-lg — 라벨 열이 넓어져 입력 시작 위치가 달라집니다.

인라인

검색·필터처럼 필드를 한 줄에 나란히 배치합니다. 공간이 부족하면 자동으로 줄바꿈됩니다.

그리드

Grid 유틸리티와 조합해 2열·3열 폼을 구성합니다. grid_item-span-6이면 12열 기준 한 행에 2개씩 배치됩니다.

너비

폼 필드는 기본적으로 부모 너비 100%를 사용합니다. form_fit을 사용하면 --input-max-width(320px)로 제한할 수 있습니다.

기본 너비

부모 컨테이너 100%

form_fit

최대 320px로 제한

가로 레이아웃

입력 열이 남은 공간을 채움

액션 영역

form_actions로 제출·취소 버튼을 그룹화합니다. 가로 레이아웃에서는 레이블 열 너비만큼 들여쓰기됩니다.

세로

가로

전체 예시

세로 레이아웃 + 그리드 + 액션을 조합한 회원 정보 폼입니다.

영문·숫자 4~16자

API · Props

Prop타입기본값설명
layout'vertical' | 'horizontal' | 'inline'verticalform_vertical · form_horizontal · form_inline
fitbooleanfalse콘텐츠 너비에 맞춤 (form_fit)
compactbooleanfalse좁은 필드 간격 (form_compact)
label-align-startbooleanfalse라벨 상단·왼쪽 정렬 (form_label-align-start)
label-width'sm' | 'lg'가로 레이아웃 라벨 너비 (form_label-width-sm · form_label-width-lg)
tagstringform루트 HTML 태그 (form · div 등)

선언되지 않은 HTML 속성·이벤트(action, method, novalidate, @submit 등)는 루트 요소에 그대로 전달됩니다.

API · Slots

슬롯설명
defaultform_field · form_actions 등 폼 콘텐츠

API · Events

이벤트설명
submitform 제출 이벤트. @submit.prevent로 기본 제출 동작을 막을 수 있습니다.
resetform 초기화 이벤트

클래스 · 속성

Vue 컴포넌트가 렌더하는 OOCSS 클래스입니다. HTML 마크업으로 직접 작성할 때 동일하게 조합합니다.

클래스설명
form폼 루트
form_vertical · form_horizontal · form_inline레이아웃 방향
form_fit · form_compact · form_label-align-start간격·정렬
form_label-width-sm · form_label-width-lg라벨 너비
form_field · form_field-label · form_field-hint · form_field-error필드 블록
form_actions제출·취소 버튼 묶음
form_required필수 표시 마크

디자인 토큰

토큰기본값설명
--form-label-width · --form-label-width-sm · --form-label-width-lg7.5rem · 5rem · 10rem가로 레이아웃 라벨 너비
--form-field-gapvar(--space-lg)필드 간격
--form-inline-field-min-width8rem인라인 필드 최소 너비
--form-actions-gapvar(--space-sm)액션 버튼 간격