모바일에서 사용자 카드가 열리지 않습니다

이 문제를 재현할 수 있습니다. R2의 버그로 보입니다.

컴파일러에 :rtl 옵션이 전달되면 CSS가 R2를 통해 처리되어 RTL 관련 변경 사항이 적용됩니다.

이 방식은 잘 작동하지만, 어떤 이유로 인해 CSS가 뒤섞여 반환되는 엣지 케이스에 직면하는 것 같습니다. 모바일 내비게이션 메뉴의 페이드 효과를 생성하는 패턴을 사용하는데, 그 모습은 다음과 같습니다.

이것이 우리가 이 패턴을 사용하는 유일한 곳은 아니며, 단지 예시일 뿐입니다.

R2가 처리하기에는 이 패턴이 너무 복잡한 것 같습니다. RGBA 함수를 호출하고 CSS 변수를 전달한 후, 그 위에 스탑(stop)도 추가하고 있기 때문입니다.

R2를 통해 이 코드가 처리되면 다음과 같은 결과가 반환됩니다.

R2를 끄면 (RTL 로컬 환경에서도) 다음과 같은 결과가 나옵니다.

correct css

뒤섞인 CSS는 컴파일러를 혼란스럽게 하여 해당 규칙 이후의 모든 CSS를 적용되지 않는 무용한 코드로 압축시켜 버립니다.

따라서 그 스타일시트 이후에 위치한 여러 스타일시트가 모바일 RTL 환경에서 로드되지 않습니다. 사용자 카드 스타일시트가 그중 하나입니다.

스탑을 제거하여 해당 패턴의 복잡도를 낮추어 보았더니 작동하는 것 같습니다. 즉, 다음과 같은 코드를

background: linear-gradient(
  to right,
  rgba(var(--secondary-rgb), 0) 0%,
  rgba(var(--secondary-rgb), 1) 100%
);

다음과 같이 변경했습니다.

background: linear-gradient(
  to right,
  rgba(var(--secondary-rgb), 0),
  rgba(var(--secondary-rgb), 1)
);

이는 시각적인 변화를 일으키지 않습니다. 왜냐하면 그것이 기본적으로 사용되는 스탑 값이기 때문입니다. 또한 이 방법으로 문제가 해결됩니다.

여기서 이 패턴을 사용하는 모든 곳에 업데이트를 적용하기 위해 PR을 보냈습니다.

문제를 보고해 주셔서 감사합니다 @nildarar :+1:

7개의 좋아요