CSS 폼 생성기
폼은 대부분의 사이트에서 가장 많이 만지는 부분이자 많은 곳에서 가장 덜 다듬어진 부분입니다. 이 생성기는 일관된 시각 스타일로 완전한 스타일링 폼의 CSS를 출력합니다: 반응형 폼 그리드, 레이블 + 입력 쌍, 텍스트영역, 셀렉트, 그리고 또렷한 포커스 상태를 포함합니다. 액센트 색상, 모서리 반경, 간격을 설정한 뒤 스타일시트를 복사하세요. CSS는 네이티브 폼 시맨틱을 유지하므로 검증, 키보드 사용, 스크린 리더가 모두 동작합니다.
생성기 사용 방법
-
1
액센트 색상 설정
액센트 색상이 모든 필드의 포커스 링과 테두리 색상을 결정합니다.
-
2
모서리 반경 선택
반경은 입력, 텍스트영역, 셀렉트에 적용되어 모두 같은 모양을 공유합니다.
-
3
간격 설정
간격은 폼 그리드에서 필드 사이의 세로 공간을 조절합니다.
-
4
CSS 복사
HTML을 건드리지 않고 붙여넣고 변형할 수 있는 완전한 스타일시트.
기본 폼
<form class="form">
<label class="field">
<span class="field-label">Email</span>
<input type="email" required>
<span class="field-error">Please enter a valid email.</span>
</label>
<label class="field">
<span class="field-label">Password</span>
<input type="password" minlength="8" required>
</label>
<button type="submit" class="button">Sign up</button>
</form>
.field {
display: block;
margin-bottom: 1.25rem;
}
.field-label {
display: block;
font-weight: 500;
margin-bottom: .25rem;
}
.field input {
width: 100%;
padding: .5rem .75rem;
font: inherit;
border: 1px solid #d1d5db;
border-radius: 6px;
background: #fff;
transition: border-color 120ms, box-shadow 120ms;
}
.field input:focus-visible {
outline: none;
border-color: #2563eb;
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.field input:invalid:not(:placeholder-shown) {
border-color: #dc2626;
}
.field-error { display: none; color: #dc2626; font-size: .875rem; margin-top: .25rem; }
.field input:invalid:not(:placeholder-shown) ~ .field-error { display: block; }
흔한 네 가지 스타일
| 스타일 | 무엇인가 | 적합한 곳 |
|---|---|---|
| 외곽선 | 입력 둘레의 테두리, 투명 배경 | 데스크톱 폼, 밀집 레이아웃 |
| 밑줄 | 아래쪽 테두리만 | 미니멀 / 에디토리얼 UI |
| 채움 | 회색 배경, 테두리 없음 | Material Design 영향 UI |
| 플로팅 레이블 | 레이블이 안에 있다가 focus/값에 위로 애니메이션 | 모바일 우선, 랜딩 페이지 |
플로팅 레이블이 가장 예쁘지만 빈 상태 감지를 위해 추가 마크업이나 JavaScript가 필요합니다. 외곽선이 가장 범용적입니다.
접근성 체크리스트
- 모든 입력에 보이는 레이블. placeholder를 유일한 레이블로 쓰지 마세요, focus 시 사라지고 대비에 실패합니다.
<label for>또는 감싸는<label>. 둘 다 유효하며, 감싸는 쪽이 약간 더 쉽습니다.- 포커스 표시. 대체 없이
outline: none을 절대 쓰지 마세요. 키보드 사용자에게 필요합니다. - 오류 메시지: 입력에
aria-describedby로 연결하세요. 오류를 색으로만 표시하지 마세요, 텍스트 메시지나 아이콘을 포함하세요. - 필수 필드:
required속성을 쓰세요. 시각 사용자를 위해 레이블에 시각 표시(별표)를 추가하세요. - 입력 타입:
type="email",type="tel",type="url",type="number"를 쓰세요. 모바일 키보드가 적응합니다. autocomplete속성:autocomplete="email",autocomplete="current-password"등. 사용자의 입력을 많이 줄여줍니다.
네이티브 검증 상태
CSS에는 폼 유효성을 위한 의사 클래스가 있습니다:
:required/:optional:valid/:invalid:in-range/:out-of-range(min/max가 있는 숫자 입력용):placeholder-shown(비어 있음, placeholder 보임):user-invalid(유효하지 않고 그리고 사용자가 상호작용함, 오류 스타일에 맞는 것)
:user-invalid 의사 클래스는 사용자가 무언가 한 뒤에만 오류를 보여주는 가장 깔끔한 방법으로, 상호작용 전 빨간 테두리를 피합니다. 2023년 무렵 모든 주요 브라우저에 지원이 들어왔습니다.
비활성화 상태
.field input:disabled {
background: #f3f4f6;
color: #9ca3af;
cursor: not-allowed;
}
비활성화된 입력은 포커스도 제출도 되지 않습니다. 스크린 리더용으로 포커스 가능하게 하려면 readonly를 쓰세요, 폼이 값을 제출하지만 사용자는 편집할 수 없습니다.
자주 묻는 질문
아니요. placeholder는 사용자가 입력하는 즉시 사라지므로 레이블 역할을 할 수 없습니다. 또한 placeholder 텍스트는 보통 대비가 낮아 WCAG에 실패합니다. 보이는 레이블에 형식 힌트용 선택적 placeholder를 더하세요.
:invalid가 빈 필수 필드에 즉시 적용되기 때문입니다. (상호작용 인식) :user-invalid를 쓰거나, 구형 브라우저에서는 :invalid:not(:placeholder-shown)을 우회책으로 조합하세요.
appearance: none을 설정하고 기본 화살표를 제거한 뒤, 배경 이미지나 의사 요소 화살표가 있는 감싸는 span으로 직접 추가하세요. 안의 옵션 목록은 OS 스타일로 남고 CSS로 커스터마이즈할 수 없습니다.
둘 다요. HTML 검증(required, type, pattern)은 JavaScript 없이 단순한 경우를 잡습니다. JavaScript는 복잡한 규칙(비밀번호 강도, 필드 간 의존성)을 처리합니다. 항상 서버 검증도 하세요, 클라이언트 검증은 UX용이지 보안용이 아닙니다.
관련 도구
ASCII 표 참조
NUL, LF, DEL 같은 제어 문자를 포함해 모든 문자에 대한 10진수, 16진수, 8진수, 2진수, HTML 숫자 문자 참조를 담은 0부터 127까지의 전체 ASCII 표.
FPS 카운터
requestAnimationFrame으로 브라우저 FPS를 측정하세요. 스무딩, 최소/최대 프레임레이트, 경고 임계값, 선택형 그래프를 제공합니다. 업로드나 API 없이 로컬에서 실행됩니다.
HTML 문자 참조
HTML 엔티티의 검색 가능한 목록, 각 엔티티의 이름 및 숫자 코드, 그리고 특수 문자 및 기호에 대한 1클릭 복사 기능을 제공합니다.
색상 혼합기
두 HEX 색상을 2-20개의 균등한 색상 견본으로 섞습니다. 양 끝 색상을 포함해 각 중간 색상을 대문자 HEX 코드로 확인하세요.
ASCII 이진수 변환기
ASCII 문자열을 이진수 표현으로 변환하세요. 각 문자는 8비트가 되고 공백으로 구분되어 프로토콜 추적이나 과제에 바로 붙여넣기 좋습니다.
색상 틴트 생성기
기준 색의 밝은 틴트를 생성합니다. 디자인 시스템 토큰, 배경, 호버 상태를 위한 3-20단계 스케일.
이 도구는 다른 언어로도 제공됩니다
- Generator formularzy CSS [PL]
- เครื่องมือสร้างฟอร์ม CSS [TH]
- Generador de Formularios CSS [ES]
- CSSフォームジェネレーター [JA]
- مولد نماذج CSS [AR]
- Bộ tạo biểu mẫu CSS [VI]
- Générateur de formulaires CSS [FR]
- CSS-Formular-Generator [DE]
- Pembuat Formulir CSS [ID]
- Gerador de Formulário CSS [PT]
- CSS-formulärgenerator [SV]
- CSS-formuliergenerator [NL]
- CSS Form Generator [EN]
- Generatore di Moduli CSS [IT]
- Генератор форм CSS [RU]
- CSS Form Üreticisi [TR]
- CSS表单生成器 [ZH]