text-shadow 는 콤마로 여러 개를 나열할 수 있고, 각각 x·y 오프셋·블러·색을 따로 가집니다. 블러를 0으로 두고 같은 색으로 1px, 2px, 3px… 오프셋을 늘려가며 겹겹이 쌓으면, 매 레이어가 글자 전체를 한 칸씩 밀어낸 복사본이라 쌓인 모습이 옆에서 본 두께처럼 보입니다.
마지막에 블러가 있는 그림자 하나를 더 얹으면 그 압출된 덩어리 아래에 은은한 실제 그림자가 깔려 바닥에 놓인 입체물처럼 마무리됩니다.
레이어 수만큼 글자 전체를 다시 그리는 것과 같아서, 레이어가 많을수록(특히 20장 이상) 큰 제목에서 페인트 비용이 늘고 그 상태에서 애니메이션까지 겹치면 눈에 띄게 느려집니다. 실무에서는 레이어 수를 고정값으로 박아두고, 성능이 중요하면 -webkit-text-stroke 하나 + filter: drop-shadow() 하나로 훨씬 싼 "압출 느낌"으로 대체하는 편이 낫습니다.
언제 쓰나
히어로 타이틀 하나처럼 큼직하고 개수가 적은 텍스트에 씁니다. 레이어 수는 고정하고, 본문·리스트처럼 반복되는 텍스트에는 쓰지 마세요.