CSS 버튼 생성기
기본, 호버, 키보드 포커스, 누름, 비활성, 로딩 상태를 확인하면서 버튼을 만드세요. 단색 또는 2색 그라데이션, 테두리, 여백, 모서리, 그림자와 상태별 색상을 설정할 수 있습니다. 생성기는 버튼 문구를 이스케이프하고 디자인을 브라우저에만 보관하며 의미에 맞는 HTML과 범위가 제한된 CSS를 만듭니다.
CSS 버튼 만드는 방법
-
1
버튼 문구 입력
버튼에 보일 일반 텍스트를 입력합니다. HTML처럼 보이는 문자도 실행하지 않고 텍스트로 보존합니다.
-
2
기본 디자인 설정
단색 또는 그라데이션 배경, 글자와 테두리 색, 크기, 안쪽 여백, 둥근 모서리와 그림자를 선택합니다.
-
3
상호작용 상태 지정
호버, 누름, 포커스 색과 움직임을 설정합니다. 비활성과 로딩 규칙은 자동으로 포함됩니다.
-
4
안내 수치 확인
가장 낮은 글자 대비, 포커스 표시 대비와 보장되는 최소 조작 영역 크기를 확인합니다.
-
5
복사 또는 다운로드
이스케이프된 HTML과 CSS를 함께 복사하거나 독립형 UTF-8 HTML 미리보기를 다운로드합니다.
생성 코드에 포함되는 내용
HTML은 실제 <button type="button"> 요소를 사용하고 표시 문구를 span 안에 넣습니다. CSS는 다음 6가지 상태를 다룹니다.
- 기본: 아무 조작이 없을 때의 모습
- 호버: 포인팅 장치로 가리킬 때
- 키보드 포커스:
:focus-visible로 표시 - 누름: 버튼을 누르는 동안
- 비활성: 기본
disabled속성으로 표시 - 로딩:
aria-busy="true"로 표시
버튼을 언제 비활성 또는 처리 중으로 바꿀지는 실제 애플리케이션이 결정해야 합니다. 생성기는 표시 규칙만 제공하며 애플리케이션 상태를 만들거나 클릭 동작을 연결하지 않습니다.
대비 안내는 검사 자료이지 적합성 인증이 아닙니다
편집기는 기본색, 그라데이션 끝색, 호버색, 누름색 중 가장 낮은 글자 대비를 계산합니다. 일반 크기 글자의 기준으로 4.5:1을 사용합니다. 또한 포커스 윤곽선과 밝은 미리보기 배경을 비교하고 비텍스트 기준으로 3:1을 사용합니다.
이 수치는 흔한 문제를 찾는 데 도움이 되지만 완성된 페이지에서는 버튼이 다른 배경 위에 놓일 수 있습니다. 실제 레이아웃에서 포커스와 테두리 대비를 다시 확인하세요. 비활성 컨트롤은 투명도가 낮아지므로 용도가 명확하지 않다면 가까운 곳에 이유를 설명해야 합니다.
조작 영역 크기와 움직임
내보낸 규칙은 인라인 및 블록 방향 최소 크기를 44 px로 지정합니다. 여러 터치 환경에서 편하게 누를 수 있고 WCAG 2.2 성공 기준 2.5.8의 최소 24 CSS px보다 큰 값입니다. 최종 제품에서는 레이아웃, 간격, 예외와 플랫폼 지침도 함께 고려해야 합니다.
사용자가 움직임 줄이기를 요청하면 호버와 누름 이동을 없앱니다. 로딩 표시는 사라지지 않고 회전만 느려져 처리 중 상태를 계속 알 수 있습니다.
안전한 출력 범위
표시 문구는 정규화하고 최대 120개 자소 클러스터로 제한합니다. 보이지 않는 방향 제어 문자를 제거하고 코드와 다운로드에서 HTML 이스케이프합니다. 색은 6자리 16진수만 허용합니다. 모든 숫자 설정은 반올림하고 각 컨트롤에 표시된 범위로 제한합니다.
전체 편집기는 브라우저 메모리에서 작동합니다. 선택 사항인 4페이지 흐름에서는 버전이 지정된 디자인을 현재 탭의 sessionStorage에 저장합니다. 문구와 디자인 값은 흐름 URL이나 Livewire로 전송되지 않습니다.
로딩 상태 사용법
애플리케이션 코드에서 처리 중 속성을 추가하거나 제거하세요.
<button type="button" class="generated-button" aria-busy="true" disabled>
<span class="generated-button__label">저장 중</span>
</button>
aria-busy는 업데이트가 진행 중임을 알립니다. 반복 실행을 막아야 한다면 disabled도 추가하세요. 작업이 끝나면 두 속성을 모두 제거하고 중요한 성공 또는 오류 메시지는 적절한 상태 영역에 표시하세요.
자주 묻는 질문
아니요. 대비 계산, 뚜렷한 포커스 규칙, 움직임 줄이기 처리, 의미에 맞는 HTML과 최소 44 px 조작 영역을 제공하지만 준수 여부는 최종 페이지의 주변 색, 콘텐츠, 동작과 실제 검사 결과에 달려 있습니다.
아니요. 문구와 디자인은 브라우저 메모리에 보관됩니다. 선택 사항인 여러 페이지 흐름은 같은 탭의 세션 저장소를 사용하며 입력값을 URL이나 Livewire 요청에 넣지 않습니다.
제출, 열기, 전환 같은 동작에는 버튼이 맞습니다. 페이지 이동에는 실제 href가 있는 a 요소를 사용하고 같은 모양이 필요하면 생성된 클래스를 조정하세요.
실패를 알리고 수동으로 복사할 수 있도록 읽을 수 있는 텍스트 영역에서 전체 출력을 선택합니다. Clipboard API가 완료된 경우에만 성공으로 표시합니다.
관련 도구
2진수 8진수 변환기
비트를 세 개씩 묶어 2진수를 8진수로 변환합니다. Unix 권한, 레거시 시스템, 간결한 숫자 표시에 유용합니다.
BBCode → HTML 변환기
BBCode(게시판 마크업)를 깔끔한 HTML로 변환합니다. 서식 태그, 목록, 인용, 코드, 이미지, 링크, 표를 처리합니다.
Base64 → Hex 변환기
Base64 문자열을 실제 바이트로 디코딩한 뒤 16진수로 표현합니다. 토큰, 키, 인증서, JWT를 살펴볼 때 유용합니다.
불 대수 간소화 도구
Karnaugh map과 Quine-McCluskey 알고리즘으로 불 대수 식을 간소화합니다. 모든 최소화 단계와 최종 SOP/POS 형태를 보여줍니다.
랜덤 영어 글자 생성기
A-Z 영어 글자를 무작위로 생성합니다. 개수와 대문자, 소문자, 혼합 대소문자를 선택해 게임, 과제, 수업 활동에 활용하세요.
랜덤 색상 팔레트 생성기
2~15개의 색상으로 랜덤 팔레트를 만들고, 비비드, 파스텔, muted, dark 스타일을 선택한 뒤 HEX 코드나 CSS 변수를 복사하세요.