[CSS/SCSS] React에서 Swiper 스타일이 안 먹힐 때 – .swiper 대신 :global(.swiper)를 써야 하는 이유

2025. 4. 16. 11:11CSS

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

반응형

리액트에서 Swiper 라이브러리를 사용할 때, SCSS로 커스텀 스타일을 주려는데 스타일이 전혀 적용되지 않았던 경험, 혹시 있으신가요?

이 문제는 SCSS 모듈(CSS Modules) 때문에 발생합니다. 그 이유와 해결 방법에 대해서 알아봅시다.

문제의 원인: SCSS Modules의 클래스 네이밍 방식

SCSS 모듈을 사용하면 클래스명은 로컬 스코프(local scope)로 변환됩니다. 즉, 아래처럼 작성한 .swiper 클래스는 실제 HTML에선 swiper_xyz123처럼 바뀝니다.

하지만 Swiper 라이브러리는 HTML을 렌더링할 때 순수한 전역 클래스명인 .swiper를 사용합니다.
결과적으로, SCSS 모듈에서 정의한 스타일은 Swiper의 클래스에 적용되지 않는 거예요.

 

해결 방법: :global()을 사용하자

SCSS 모듈 안에서도 전역 클래스명을 그대로 적용하려면 :global()을 써야 합니다.

/* Swiper.module.scss */

:global(.swiper) {
  width: 100%;
  background: red;
}

 

 

이렇게 작성하면 Swiper가 렌더링하는 .swiper 요소에 스타일이 정확히 적용됩니다.

 

 

추가 팁: Swiper 내부 요소 커스터마이징

Swiper는 .swiper, .swiper-slide, .swiper-button-prev, .swiper-pagination 등 다양한 클래스명을 사용해요.
이런 클래스들에도 동일하게 :global을 적용하면 커스터마이징이 가능합니다.

 

:global(.swiper-slide) {
  padding: 10px;
}

:global(.swiper-button-prev),
:global(.swiper-button-next) {
  color: #000;
}

 

Swiper 커스터마이징 시 꼭 알아야 할 포인트

SCSS 모듈을 사용할 때 Swiper의 기본 클래스명인 .swiper, .swiper-slide 등에 스타일을 적용하려면 :global()을 반드시 사용해야 합니다. SCSS 모듈은 클래스명을 자동으로 고유화하기 때문에, 그냥 .swiper라고 작성하면 Swiper가 생성한 실제 DOM 클래스와 일치하지 않아 스타일이 적용되지 않습니다. 반면, 일반 SCSS 파일을 사용할 경우에는 이런 문제가 발생하지 않기 때문에 그대로 클래스명을 써도 무방합니다. Swiper를 커스터마이징할 때 어떤 방식으로 스타일을 관리하고 있는지에 따라, 적절히 :global()을 활용하는 것이 중요합니다.

 

 

이렇게 SCSS 모듈을 사용할 때 Swiper의 전역 클래스에 :global()을 꼭 써야 스타일이 제대로 적용되는 이유에 대해 알아보았습니다.

 

 

 

 

[Git] git rebase에서 충돌이 날 때 대처법 (feat. 커밋 메시지 수정)

개발을 하다 보면 git rebase를 수행할 때 충돌이 발생하거나, 예상치 못한 커밋 메시지 편집 화면이 나타나는 경우가 있습니다. 이번 포스팅에서는 git rebase 중 충돌 해결 및 커밋 메시지 편집 방법

dev-chim.tistory.com

 

 

[Javascript] e.target vs e.currentTarget : 웹 개발자가 알아야 할 이벤트 객체의 중요한 속성

브라우저에서 이벤트가 발생하면 해당 이벤트에 대한 정보를 담은 이벤트 객체(event)가 생성됩니다. 이 객체는 다양한 정보와 메서드를 제공하며, 이벤트 핸들러 내에서 이를 활용하여 작업을

dev-chim.tistory.com

 

 

[Utility] 구독 없이 바로 사용 가능한 무료 온라인 디자인 툴 : Photopea(포토피아)

포토피아(Photopea)에 대해서 들어보셨나요? 오늘은 이 인기 있는 온라인 이미지 편집 도구에 대해 알아보겠습니다. 포토피아는 Adobe Photoshop과 유사한 기능을 무료로 제공하는데요. 인터넷 브라우

dev-chim.tistory.com

 

 

[macOS] 화면 공간을 더 넓게 사용하는 방법은?

사용자 맞춤형으로 작업 습관과 선호에 따라 화면 공간을 더욱 효율적으로 활용할 수 있습니다. 그와 관련하여 몇 가지 방법에 대해서 소개하겠습니다. 1. Dock bar 가리기 아무래도 작업할 때는

dev-chim.tistory.com

 

 

유용한 터미널 명령어

자주 사용하는 터미널 CLI(Command Line Interface)에 대해서 알아봅시다. pwd 현재 경로 출력하기 pwd #현재 경로 출력 cd 디렉터리로 이동하기 cd #홈 이동 cd ../ #이전 디렉토리 이동 cd ../../ #이전 이전 디

dev-chim.tistory.com

 

반응형