
미리캔버스 엔진팀이 공개하는 CSS의 한계를 넘는 강력한 복합 오버레이 레이어 합성 기술
본 아티클은 CSS 스타일링만으로는 제어하기 힘든 이너 섀도우, 바깥쪽 아웃라인 등의 복합 오버레이 효과를 SVG 필터 파이프라인을 통해 구현하는 최적화 여정을 담고 있습니다. 웹킷 엔진을 포함한 크로스 브라우저 호환성 버그를 우회하고, 포토샵 레이어와 유사한 그래픽 합성을 브라우저 네이티브 기술로 구현하는 실무 팁을 전합니다.
웹 기반 그래픽 에디터나 풍부한 시각 효과가 필요한 UI 컴포넌트를 설계 중이며, Safari를 포함한 멀티 브라우저에서 동일한 그래픽 퀄리티를 유지하려는 시니어 프론트엔드 엔지니어에게 적극 추천합니다.
웹 브라우저에서 CSS만으로는 SVG 도형이나 텍스트에 정교한 이너 섀도우 및 외곽선 효과를 일관되게 렌더링하기 어려우며, 특히 다양한 필터를 조합할 때 브라우저 간의 스펙 미지원으로 마스킹이나 레이아웃 깨짐 현상이 발생합니다.
feFlood, feComposite, feMorphology, feMerge 등 다양한 SVG 프리미티브를 단일 필터 파이프라인 내에 체인 구조로 연결하고, feMergeNode를 통해 레이어를 최종 합성하는 방식을 도입했습니다.
Safari(WebKit), Chromium, Firefox를 포함한 모던 브라우저 엔진 전반에서 깨짐 현상 없이 고품질의 드롭 섀도우, 이너 섀도우, 아웃라인 다중 합성을 완벽히 구현하였습니다.
Trade-off
다양한 효과를 단일 필터로 통합해야 하므로 오프셋과 블러 값에 맞춰 필터 영역(x, y, width, height)의 크기를 사전에 넉넉하게 확장해 주지 않으면 이미지 외곽 영역이 잘려 나가는 제약이 따릅니다.
두 개의 이미지 입력을 대상 영역의 알파 채널 정보(Porter-Duff 연산자)를 바탕으로 교집합 또는 차집합 형태로 픽셀 합성하는 SVG 프리미티브입니다.
커널 반경(radius) 값을 기준으로 이미지의 픽셀 경계를 팽창(dilate)시키거나 수축(erode)시켜 실루엣 두께를 조정하는 형태학 연산 도구입니다.
필터 내부에서 생성된 여러 개의 중간 결과물들을 선언한 순서대로 쌓아 하나의 최종 그래픽으로 합성하는 레이어 병합 시스템입니다.




