장기적으로 커스텀 테마를 커스터마이징하고 있는데, 햄버거/사이드바 메뉴(.menu-panel)에 이미 .d-header에서 잘 작동하고 있는 동일한 반투명 및 블러 효과를 적용하려고 합니다. 투명도는 작동하지만 블러는 작동하지 않으며, 이 컴포넌트를 코어 스타일이 어떻게 처리하는지에 대한 몇 가지 사항이 예상보다 작업 난이도를 높였기 때문에 피드백으로 전달하고 싶습니다.
목표
backdrop-filter: blur()를 적용하여 메뉴 패널 뒤에 페이지 콘텐츠가 흐릿하게 보일 수 있도록 하는 반투명 메뉴 패널입니다. 이는 네이티브 앱에서 흔히 볼 수 있는 얼룩진 유리(frosted-glass) 효과와 유사합니다. 투명 효과와 블러 효과 모두 저에게는 중요합니다. 블러가 없는 투명도는 복잡한 토픽 목록 위에서 혼란스러운 외관을 만들 뿐이므로요.
이미 작동하는 부분
.d-header에는 다음 코드만 적용하면 신뢰할 수 있게 작동합니다 (iOS Safari 및 데스크톱 Chrome에서 테스트 완료):
.d-header {
background-color: color-mix(in srgb, var(--header_background) 50%, transparent);
-webkit-backdrop-filter: blur(3px) saturate(1.2);
backdrop-filter: blur(3px) saturate(1.2);
}
작동하지 않는 부분
.menu-panel에 동일한 코드를 적용하면 투명도는 적용되지만, iOS Safari에서는 블러 효과가 전혀 나타나지 않습니다:
.menu-panel {
background-color: color-mix(in srgb, var(--secondary) 85%, transparent) !important;
-webkit-backdrop-filter: blur(6px) saturate(1.2);
backdrop-filter: blur(6px) saturate(1.2);
border-radius: 14px;
}
블러 효과를 나타나게 하려고 시도했지만 도움이 되지 않은 것들:
backdrop-filter/-webkit-backdrop-filter선언 자체에!important를 추가.transform: translateZ(0)과overflow: hidden을 결합하여 전용 컴포지팅 레이어를 강제 (다른 backdrop-filter 문제의 일반적인 Safari 우회 방법) — 여기서는 차이가 없었기 때문에, 그 자리를 차지할 가치가 없는 해킹 코드를 유지하기보다 다시 제거했습니다.- 올바른 요소를 타겟팅하고 있는지 확인:
menu-panel.scss에 따라 불투명한 배경색은.menu-panel에 직접 설정되어 있습니다(자식 요소인.panel-body가 아님). 처음에는 이 부분을 잘못 이해했으나 나중에 수정했습니다.
.menu-panel이 왜 .d-header와 다르게 동작하는지, 또는 작동하는 레시피를 알고 계신 분이라면 기꺼이 듣고 싶습니다.
두 번째 문제: 개별 메뉴 행의 하드코딩된 배경색
패널 자체의 배경을 투명하게 만들었음에도 불구하고, 코어가 패널의 배경을 통해 간접적으로 설정하는 대신 배경색을 직접 설정하기 때문에 내부의 여러 요소가 여전히 단색(solid)으로 렌더링됩니다:
.user-notifications-list .read및.bookmark— 사용자 메뉴의 읽음 알림과 북마크에background-color: var(--secondary)가 직접 설정되어 있어, 각 행이 반투명 패널 위에 떠 있는 불투명한 블록처럼 보입니다..hamburger-panel .sidebar-footer-wrapper .sidebar-footer-container— 사이드바 하단의 프로필/로그인 푸터도 동일한 문제가 있습니다.
이것들은 제 테마에서 오버라이드할 수 있었고 실제로 그렇게 했습니다. 하지만 menu-panel.scss에서 하드코딩된 모든 var(--secondary)를 하나씩 찾아내는 것을 의미하며, 코어가 동일한 패턴으로 새 요소를 추가하는 다음 업데이트 시 다시 깨질 것입니다. 대신 CSS 커스텀 프로퍼티로 폴백되도록 하면 훨씬 도움이 될 것입니다. 예를 들어 var(--secondary)를 기본값으로 하는 --d-menu-panel-background와 같은 변수를 사용하면, 테마가 개별 셀렉터를 추적하는 대신 하나의 변수만 재정의하면 패널 전체(행 포함)를 일관되게 투명하게 만들 수 있습니다.
도움이 된다면 변경 전/후 스크린샷을 공유할 수 있으며, 제안된 수정 사항을 제 환경에서 테스트하는 것도 기꺼이 하겠습니다.

