backdrop-filter 오판을 정정하고 리퀴드 글래스 기법을 기록한다
All checks were successful
ci / build (push) Successful in 25s

'backdrop-filter 에 SVG 를 얹으면 Chrome 이 선언 전체를 버린다' 고
적어두고 페이지 프리플라이트 로그에까지 실었다. 사실이 아니었다.

Chrome 151 에서 재측정
  computed 값이 none 이 아니라 url(#id) 로 유지된다
  대비 높은 배경 위에서 실제로 굴절된다(줄무늬가 가장자리에서 압축됨)

진짜 원인은 feImage 의 width/height 를 요소 크기와 맞추지 않은 것이었다.
backdrop-filter 는 필터 이미지를 자동으로 조정하지 않는다.

검색도 다시 했다. feTurbulence grain 에 갇혀 2019년 글만 보고 있었다.
liquid glass 계열 최신 자료를 보니 변위 지도는 노이즈가 아니라
물리 기반 사전계산 이미지였다 — R=X변위, G=Y변위, 128 이 중립,
감쇠는 Squircle 곡선. 캔버스로 즉석 생성하면 240x160 이 2.7KB 다.

스킬 svg-filters.md 에 '리퀴드 글래스' 절을 넣었다.
구조 · 변위 지도 만드는 법 · 함정 넷 · @supports 폴백.
오판 정정도 문서 첫 줄에 남겼다.

한 번 실패한 것을 '안 되는 것' 으로 적으면 그 문장이 다음 사람의
상한선이 된다. 페이지 로그 항목도 그 내용으로 바꿨다.
This commit is contained in:
Yun Chan 2026-08-20 22:09:22 +09:00
parent 31c0690d4b
commit e1e6002bee
4 changed files with 84 additions and 7 deletions

View file

@ -248,6 +248,21 @@ WebGL 게이트: `prefers-reduced-motion` 이면 **아예 시작하지 않는다
한 층은 반드시 고정이다 — 파이프라인의 단계명은 움직이지 않는다.
전부 움직이면 기준이 없어 그냥 흔들리는 페이지가 된다.
### backdrop-filter 오판을 정정했다
`"backdrop-filter 에 SVG 를 얹으면 Chrome 이 선언 전체를 버린다"` 고 적어두고
페이지의 프리플라이트 로그에까지 실었다. **사실이 아니었다.**
Chrome 151 에서 재측정: computed 값이 `none` 이 아니라 `url("#id")` 로 유지되고,
대비 높은 배경 위에서 실제로 굴절된다. 진짜 원인은 **`feImage``width`/`height`
요소 크기와 맞추지 않은 것**이었다 — `backdrop-filter` 는 필터 이미지를 자동으로 조정하지 않는다.
아직 헤더에 얹지 않은 이유는 브라우저 탓이 아니라 비용이다. Chrome 전용이고,
요소가 리사이즈될 때마다 변위 맵을 다시 만들어야 한다. 헤더는 폭이 계속 변한다.
**한 번 실패한 것을 '안 되는 것'으로 적으면 그 문장이 다음 사람의 상한선이 된다.**
로그 항목을 그 내용으로 바꿔 실었다.
### 패럴랙스를 "고정"으로 바꿨다
세 번 고친 뒤에도 티가 나지 않았다. 원인은 **방식 자체**였다 —