~ / developer / box-shadow-generator

🔲 CSS box-shadow 생성기

그림자의 가로·세로 오프셋, 흐림, 퍼짐, 색과 불투명도를 조절해 CSS box-shadow 코드를 만들고 바로 미리 봐요. inset 안쪽 그림자와 최대 4겹 겹치기를 지원해요.

box-shadow
그림자 레이어 (최대 4겹)
css
광고

사용법

  1. 미리보기 상자 아래 슬라이더로 그림자를 만들어요. 가로 x는 오른쪽(+)·왼쪽(−), 세로 y는 아래(+)·위(−)로 그림자를 밀어요.
  2. 흐림(blur)을 올릴수록 그림자 가장자리가 부드럽게 퍼지고, 퍼짐(spread)은 그림자 크기 자체를 키우거나(+) 줄여요(−).
  3. 색을 고르고 불투명도를 낮춰 은은하게 만들어요. 자연스러운 그림자는 대부분 검정에 5~25% 불투명도를 써요.
  4. inset을 켜면 그림자가 상자 안쪽에 생겨서 눌린 버튼이나 입력창 느낌을 낼 수 있어요.
  5. + 겹 추가로 그림자를 최대 4겹까지 겹쳐요. 오른쪽 css 칸의 코드를 copy 해서 스타일시트에 붙이면 끝이에요. 프리셋 버튼으로 카드·버튼용 예시에서 시작할 수도 있어요.

box-shadow 문법

MDN이 정리한 문법은 box-shadow: [inset] <offset-x> <offset-y> <blur-radius> <spread-radius> <color>;예요. 앞의 두 값(오프셋)은 필수이고, 흐림과 퍼짐, 색은 생략할 수 있어요. 생략하면 흐림과 퍼짐은 0, 색은 글자색(currentcolor)이 돼요. 이 도구는 흐림·퍼짐을 항상 적어 주고, 값이 0이면 단위 없이 0으로 써요(0은 단위가 필요 없어요).

값의미범위·주의
offset-x그림자의 가로 이동. +면 오른쪽, −면 왼쪽제한 없음
offset-y그림자의 세로 이동. +면 아래, −면 위제한 없음
blur-radius가장자리를 흐리게 하는 반경0 이상만 가능 (음수는 무효)
spread-radius그림자 크기를 사방으로 키우거나 줄임음수 가능. 음수면 그림자가 상자보다 작아져요
color그림자 색rgba()로 투명도를 함께 지정
inset상자 안쪽 그림자맨 앞에 써요

자연스러운 그림자를 만드는 요령

이 도구로 만든 예시 코드

느낌코드
부드러운 카드 (2겹)box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
눌린 버튼 (inset)box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.3);
색 번짐 글로우box-shadow: 0 0 24px 2px rgba(42, 120, 214, 0.55);
딱딱한 오프셋 (흐림 0)box-shadow: 6px 6px 0 0 #1d2024;

여러 겹의 순서와 inset을 같이 쓸 때

쉼표로 이은 여러 그림자는 앞에 쓴 것이 위에 그려져요. 그래서 선명한 그림자를 앞에, 넓게 퍼지는 그림자를 뒤에 두면 가장자리는 또렷하고 바깥은 부드럽게 보여요. inset 그림자는 상자 안쪽에, 일반 그림자는 바깥쪽에 그려지므로 둘을 함께 써도 서로 가리지 않아요. 예를 들어 입력창에 inset 0 1px 2px rgba(0, 0, 0, 0.2)를 주고 포커스일 때 0 0 0 3px rgba(42, 120, 214, 0.35)를 더하면 안쪽 음영과 바깥 윤곽 링을 한 속성으로 처리할 수 있어요.

box-shadow를 쓸 때 알아 둘 것

요소별로 시작하기 좋은 값

처음부터 숫자를 고르기 막막하다면 아래 표의 값에서 출발해 슬라이더로 조금씩 고쳐 보세요. 정답은 아니고 화면 크기와 배경색에 맞춰 조정하는 출발점이에요.

요소시작 값이유
작은 카드·목록 항목0 1px 3px 0 rgba(0, 0, 0, 0.12)배경에서 살짝만 분리해 줘요
일반 카드0 4px 6px -1px rgba(0, 0, 0, 0.1)음수 퍼짐으로 옆 번짐을 줄여요
드롭다운·팝오버0 10px 24px -4px rgba(0, 0, 0, 0.18)카드보다 높이 떠 있는 느낌이에요
모달0 20px 48px -8px rgba(0, 0, 0, 0.3)가장 높은 층이라 크고 진해요
입력창 포커스 링0 0 0 3px rgba(42, 120, 214, 0.35)흐림 0, 퍼짐으로 윤곽선 역할을 해요

다크 모드에서는 검정 그림자가 어두운 배경에 묻혀 잘 안 보이므로 불투명도를 높이거나(0.4~0.6) 경계선을 함께 쓰는 경우가 많아요. 이 도구에서 배경색을 직접 바꿀 수는 없지만, 만든 코드를 실제 화면에 붙여 라이트·다크 두 테마에서 모두 확인해 보세요.

text-shadow, drop-shadow와 비교

속성대상특징
box-shadow요소의 상자퍼짐(spread)과 inset 지원, 여러 겹 가능
text-shadow글자 모양퍼짐과 inset 없음, 오프셋·흐림·색만 사용
filter: drop-shadow()투명 영역을 뺀 실제 윤곽퍼짐과 inset 없음, 로고·PNG 아이콘에 적합

문법 출처: MDN Web Docs 「box-shadow」. 코드 생성 규칙은 위 예시를 같은 코드로 검산했고, 입력한 값은 브라우저 안에서만 처리돼요. 배경을 그라데이션으로 칠하려면 CSS 그라데이션 생성기, 픽셀을 rem으로 바꾸려면 px ↔ rem 변환기를 쓰세요.

자주 묻는 질문

box-shadow에서 blur와 spread는 뭐가 달라요?
blur는 그림자 가장자리를 흐리게 퍼뜨리는 정도이고, spread는 그림자 영역 자체를 사방으로 키우거나(+) 줄이는(−) 값이에요. blur만 키우면 번지고, spread를 키우면 그림자가 두꺼워져요.
그림자를 위쪽에만 주려면요?
y를 음수로 주세요. 예를 들어 0 -4px 6px -2px rgba(0, 0, 0, 0.2)처럼 spread를 음수로 하면 옆쪽 번짐이 줄어 위쪽에만 모여 보여요.
inset은 언제 써요?
상자 안쪽에 그림자를 넣어 눌린 버튼, 파인 입력창, 안쪽 음영을 표현할 때 써요. 맨 앞에 inset 키워드를 붙이면 돼요.
그림자를 여러 개 겹치려면요?
쉼표로 이어 쓰면 돼요. 앞에 쓴 그림자가 위에 그려져요. 이 도구는 최대 4겹까지 만들고 코드를 쉼표로 이어 줘요.
PNG 아이콘의 모양대로 그림자를 주고 싶어요.
box-shadow는 상자 모양 기준이라 투명 영역을 따르지 않아요. filter: drop-shadow()를 쓰면 이미지의 실제 윤곽을 따라 그림자가 생겨요.
blur에 음수를 넣을 수 있나요?
없어요. blur-radius는 0 이상만 유효하고, 음수를 쓰면 속성 전체가 무시돼요. 그림자를 줄이고 싶다면 spread를 음수로 쓰세요.

이 도구와 함께 보면 좋은 글

관련 도구

더 둘러보기

💻 개발자 다른 도구

🔥 많이 찾는 도구

🔮 재미로 한 번 더

📝 읽어 볼 만한 글

글 전체 보기 →