feMorphology 는 각 픽셀 주변 radius 범위 안에서 알파값의 최댓값(dilate) 또는 최솟값(erode) 을 취하는 필터입니다 — 이미지 처리에서 말하는 팽창·침식 연산 그대로입니다. x·y 로 반지름을 따로 줄 수도 있습니다.
dilate 는 글자·아이콘의 획을 굵게 만들다가 결국 인접한 획끼리 들러붙게 하고, erode 는 반대로 획을 얇게 깎다가 가느다란 부분부터 끊어놓습니다 — 데모에서 얇은 사슬 서체가 erode 단계에서 조각조각 갈라지는 걸 볼 수 있습니다.
계산량은 반지름의 제곱에 가깝게 늘어나는 min/max 컨볼루션이라 radius 가 크면 비쌉니다. dilate 로 만든 윤곽선은 픽셀 격자를 그대로 반영해 각져 보이는데, 뒤에 feGaussianBlur 를 살짝 얹으면 모서리가 둥글어져 자연스러워집니다. Safari 포함 주요 브라우저 모두 잘 지원합니다.
언제 쓰나
아이콘 윤곽선을 두껍게/얇게 만들거나, 마스크 가장자리의 노이즈를 정리할 때. radius 는 작게 유지하고, 각진 결과가 싫으면 뒤에 blur 를 살짝 더하세요.