CSS 박스 그림자 생성기 — 레이어 그림자, 뉴모피즘, 텍스트 그림자

실시간 미리보기와 엘리베이션·뉴모피즘·글로 프리셋으로 레이어형 box-shadow와 text-shadow 효과를 디자인하고 CSS를 복사하세요.

미리보기 카드
프리셋
레이어 (2) · 첫 번째가 맨 위
box-shadow:
  0 10px 30px -6px rgba(15, 23, 42, 0.18),
  0 4px 10px -4px rgba(15, 23, 42, 0.1);
shadow-[0_10px_30px_-6px_rgba(15,23,42,0.18),0_4px_10px_-4px_rgba(15,23,42,0.1)]

전적으로 브라우저에서 실행됩니다. 입력한 내용은 전송되거나 저장되지 않습니다. 모든 무료 도구 보기.

문제를 발견하셨거나 개선할 점이 있나요? 모든 메시지를 읽고 빠르게 고칩니다.

이 무료 CSS 박스 그림자 생성기로 눈으로 보면서 그림자를 디자인하고 정확한 box-shadow나 text-shadow CSS를 복사하세요. 레이어를 필요한 만큼 쌓을 수 있고, 각 레이어마다 가로·세로 오프셋, 흐림, 확산, 색상, 불투명도, inset을 따로 설정할 수 있습니다. 미리보기 카드의 배경, 색상, 모서리 반경을 디자인에 맞게 바꿔 가며 확인하세요.

사실적인 그림자는 레이어 하나로 끝나는 경우가 거의 없습니다. 가깝고 선명한 그림자와 크고 옅은 그림자를 함께 쓰면 물체가 페이지에서 떠 있는 것처럼 보이며, Material Design의 엘리베이션 단계가 바로 이 방식입니다. 뉴모피즘에는 배경과 같은 색의 카드에 서로 반대 방향인 그림자 두 개가 필요합니다. 프리셋이 이런 패턴을 다루며, 아래 설명에서 box-shadow 문법, 레이어를 쌓으면 더 좋아 보이는 이유, 그림자가 렌더링 성능에 주는 부담을 다룹니다.

사용 방법

  1. 박스 그림자 또는 텍스트 그림자를 고르세요.
  2. 프리셋에서 시작하거나, 선택한 레이어를 슬라이더로 조정하세요. 오프셋, 흐림, 확산, 색상, 불투명도, inset을 바꿀 수 있습니다.
  3. + 레이어 추가로 레이어를 더하고(선택한 레이어를 복사함), 목록에서 레이어를 선택해 편집하고, 화살표로 순서를 바꾸세요. 첫 번째 레이어가 맨 위에 그려집니다.
  4. 미리보기를 디자인에 맞추세요. 페이지 배경, 카드 색상, 모서리 반경을 설정할 수 있습니다.
  5. CSS나 Tailwind 임의 값 클래스를 복사하세요.

자주 묻는 질문

box-shadow 값은 각각 무슨 뜻인가요?

box-shadow: inset? x-오프셋 y-오프셋 흐림 확산 색상. x 오프셋은 그림자를 오른쪽으로(음수면 왼쪽으로), y 오프셋은 아래로(음수면 위로) 옮깁니다. 흐림은 가장자리가 얼마나 부드러운지이며 0이면 날카로운 가장자리가 됩니다. 확산은 흐리기 전에 그림자를 키웁니다(음수면 줄어들며, 큰 흐림이 옆으로 비치지 않게 하는 방법입니다). inset은 그림자를 요소 바깥이 아니라 안쪽에 그립니다. 여러 그림자는 쉼표로 구분하며, 첫 번째가 맨 위에 그려집니다.

부드럽고 사실적인 그림자는 어떻게 만드나요?

진한 그림자 하나보다 불투명도가 낮은 그림자 두 개 이상을 겹치세요. 접촉면에는 작고 촘촘한 그림자(약 10% 검정의 0 1px 2px), 주변광에는 더 크고 부드러운 그림자(8~12%의 0 8px 24px)를 씁니다. 큰 그림자에는 약간 음수인 확산을 줘서 요소 아래에 머물게 하세요. 순수한 검정 대신 배경색을 어둡게 한 색으로 그림자에 색조를 주면 색이 있는 페이지에서도 더 자연스러워 보입니다.

뉴모피즘 효과는 어떻게 만드나요?

요소에 부모와 같은 배경색을 주고 그림자 두 개를 추가하세요. 오른쪽 아래로 이동한 어두운 그림자와 왼쪽 위로 이동한 밝은(보통 흰색) 그림자입니다. 예를 들어 #e0e5ec 위에 9px 9px 16px rgba(163,177,198,0.6), -9px -9px 16px rgba(255,255,255,0.5)를 씁니다. 눌린 상태는 inset으로 만드세요. 컨트롤에 쓸 때는 주의하세요. 뉴모피즘 버튼은 배경과의 대비가 매우 낮아서, 테두리나 더 강한 외곽선을 추가하지 않으면 UI 구성 요소에 대한 WCAG 3:1 요건을 대개 충족하지 못합니다.

box-shadow와 filter: drop-shadow()의 차이는 무엇인가요?

box-shadow는 border-radius를 포함한 요소의 사각형 박스를 따르고 확산과 inset을 지원합니다. filter: drop-shadow()는 보이는 픽셀을 따르므로 투명 PNG, SVG 아이콘, 잘린 도형의 윤곽을 따라가지만, 확산과 inset이 없고 함수 하나에 그림자 하나만 받습니다. 카드와 버튼에는 box-shadow를, 불규칙한 이미지와 아이콘에는 drop-shadow를 쓰세요.

text-shadow에도 확산이나 inset이 있나요?

아니요. text-shadow는 x 오프셋, y 오프셋, 흐림, 색상만 받습니다. 외곽선을 흉내 내려면 각 방향으로 1px씩 이동한 날카로운 그림자를 네 개 이상 겹치거나(외곽선 프리셋), 이제 널리 지원되는 -webkit-text-stroke를 쓰세요. 부드럽고 불투명도가 낮은 텍스트 그림자는 사진 위 흰 글자의 가독성을 높일 수 있지만, WCAG 대비 계산에는 포함되지 않습니다.

박스 그림자가 성능을 떨어뜨리나요?

정적인 그림자는 부담이 적습니다. 흐림 반경이 큰 그림자는 매 프레임 다시 그려질 때 비싸집니다. 예를 들어 많은 카드에서 호버 시 box-shadow를 애니메이션하는 경우입니다. 표준적인 요령은 그림자를 가상 요소에 넣고 대신 그 불투명도를 애니메이션하는 것입니다. 그러면 브라우저가 흐림을 다시 그리지 않고 GPU에서 합성할 수 있습니다.

엘리베이션: 일관된 그림자 단계

디자인 시스템은 엘리베이션 단계를 몇 개만 정의하고 그것만 써서, 요소가 '얼마나 높이' 떠 있는지가 의미를 갖게 합니다. 카드는 1단계, 드롭다운은 2~3단계, 대화상자는 4~5단계입니다. 여기의 엘리베이션 프리셋도 이 패턴을 따라, 촘촘한 그림자와 넓은 그림자를 짝지어 높이에 따라 함께 커집니다.

• 1단계, 평소 상태의 카드와 목록 항목: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24).

• 2단계, 올라온 카드와 호버한 항목: 0 3px 6px rgba(0,0,0,0.15), 0 2px 4px rgba(0,0,0,0.12).

• 3단계, 드롭다운과 팝오버: 0 10px 20px rgba(0,0,0,0.15), 0 3px 6px rgba(0,0,0,0.1).

• 4·5단계, 모달과 대화상자: 더 큰 오프셋과 흐림, 그래도 불투명도는 20% 미만.

값을 컴포넌트에 붙여 넣지 말고 CSS 사용자 정의 속성(--shadow-1~--shadow-5)이나 Tailwind 테마에 단계로 저장하세요. 그래야 단계를 한곳에서 조정할 수 있습니다.

다크 모드의 그림자

거의 검은 배경 위의 검은 그림자는 보이지 않으므로, 어두운 인터페이스는 엘리베이션을 다르게 표현합니다. 높은 표면일수록 배경색이 조금 더 밝아지고, 그림자를 유지한다면 더 크고 진해집니다. 은은한 1px 밝은 테두리나 내부 하이라이트(inset 0 1px 0 rgba(255,255,255,0.06))가 어떤 바깥 그림자보다 잘 보이는 경우가 많습니다. 글로우 프리셋 같은 글로우 효과는 빛을 빼는 대신 더하기 때문에 어두운 배경에서 효과적입니다. 모든 카드가 아니라 포커스 상태와 강조에만 쓰세요.

관련 무료 도구

  • CSS 그라디언트 생성기 — 드래그할 수 있는 색상 지점, 각도 다이얼, 프리셋으로 선형·원형·원뿔형 그라디언트를 만들고 CSS나 Tailwind 클래스를 복사하세요.
  • 색상 팔레트 생성기 — 스페이스바를 눌러 새 팔레트를 만들고, 마음에 드는 색은 잠그고, 색 조합을 고르거나 사진에서 팔레트를 추출하세요. CSS, Tailwind, SCSS, JSON, PNG로 내보낼 수 있습니다.
  • 색상 대비 검사기 — 텍스트와 배경 색상을 WCAG 2.x AA·AAA 기준으로 검사하고, APCA Lc 값을 확인하고, 통과하는 가장 가까운 색상을 찾아보세요.
  • 색상 선택기·변환기 — 화면 어디서든 색상을 추출하거나 HEX, RGB, HSL 간에 즉시 변환하세요.