다크 모드에서 Razorpay Iframe 흰색 배경 수정

발행: (2026년 1월 31일 오전 06:34 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Problem

다크 모드가 활성화된 페이지에 Razorpay Checkout을 삽입하면, iframe이 반투명 배경 대신 불투명한 흰색 배경으로 표시됩니다. 이 때문에 다크 테마 페이지에 모달이 흰색 박스로 나타나 시각적으로 어색합니다.

  • 이는 브라우저 동작이며 Razorpay 버그가 아닙니다.
  • 삽입 페이지가 color-scheme(예: dark)을 정의하면, 브라우저는 iframe에도 일치하는 배경을 적용하려고 합니다. Razorpay Checkout이 다크 모드를 기본적으로 지원하지 않기 때문에, 브라우저가 iframe 내용에 불투명한 밝은 배경을 강제합니다.

Solution

iframe에 color-scheme: light;를 명시적으로 설정합니다. 이렇게 하면 브라우저가 부모 페이지의 다크 모드 추론을 무시하고, iframe을 항상 밝은 색 구성표로 렌더링하도록 강제합니다.

Global stylesheet rule

/* Prevent the browser from forcing a dark‑mode background on iframe content */
iframe {
  color-scheme: light;
}

Inline style on the iframe element

Scoped to Razorpay iframes only

iframe[src*="razorpay"] {
  color-scheme: light;
}

Why it works

color-scheme CSS 속성은 브라우저가 요소에 대해 기본 UI와 배경을 어떻게 렌더링할지를 제어합니다. iframe에 color-scheme: light;를 설정하면:

  • 브라우저가 부모 페이지로부터 다크 색 구성표를 상속받는 것을 중단합니다.
  • iframe이 의도된 라이트 모드 스타일로 렌더링됩니다.
  • 반투명 배경이 정상적으로 표시됩니다.

Razorpay Affordability Widget의 경우 공식 설정 옵션을 통해 다크 모드를 활성화할 수 있습니다. 일반 Razorpay Checkout에서는 이 CSS 규칙이 권장되는 해결 방법이며, 시각적 렌더링에만 영향을 주고 결제 기능에는 영향을 주지 않습니다.

References

  • CSS color-scheme and iframes – Sergeyski
  • Transparent iframes and dark mode – fvsch
  • Tailwind CSS iframe dark mode discussion
Back to Blog

관련 글

더 보기 »

JavaScript의 비밀스러운 삶: Proxy

Timothy는 책상에 앉아 약간 압도된 표정을 짓고 있었다. 그는 간단한 user 객체를 가지고 있었지만, 코드가 if 문으로 가득 차 있었다. js let user = { name: 'Timothy',...