@@ -39,7 +39,7 @@ npm install swiper@latest
3939```
4040
4141::: note
42- Create React App does not support pure ESM packages yet. Developers can still use Swiper, but they will need to use Swiper 7.2 .0+ and use direct file imports. This guide assumes you are using Create React App and will show you how to use these direct imports .
42+ Developers using Create React App must use ` react-scripts ` v5.0 .0+ with the latest version of Swiper .
4343:::
4444
4545## Swiping with Style
@@ -53,7 +53,7 @@ import React from 'react';
5353import { IonContent , IonPage } from ' @ionic/react' ;
5454import { Swiper , SwiperSlide } from ' swiper/react' ;
5555
56- import ' swiper/swiper.min. css' ;
56+ import ' swiper/css' ;
5757import ' @ionic/react/css/ionic-swiper.css' ;
5858
5959const Home: React .FC = () => {
@@ -68,10 +68,6 @@ export default Home;
6868Importing ` @ionic/react/css/ionic-swiper.css ` is ** not** required to use Swiper.js with Ionic. This files is used for backward-compatibility with the ` IonSlides ` component and can be safely omitted if you prefer not to use the CSS Variables provided in the stylesheet.
6969:::
7070
71- ::: note
72- Not using Create React App? You can import the Swiper CSS from ` swiper/css ` instead.
73- :::
74-
7571### Updating Selectors
7672
7773Previously, we were able to target ` ion-slides ` and ` ion-slide ` to apply any custom styling. The contents of those style blocks remain the same, but we need to update the selectors. Below is a list of selector changes when going from ` ion-slides ` to Swiper React:
@@ -92,7 +88,7 @@ import React from 'react';
9288import { IonContent , IonPage } from ' @ionic/react' ;
9389import { Swiper , SwiperSlide } from ' swiper/react' ;
9490
95- import ' swiper/swiper. less' ;
91+ import ' swiper/less' ;
9692import ' @ionic/react/css/ionic-swiper.css' ;
9793
9894const Home: React .FC = () => {
@@ -110,7 +106,7 @@ import React from 'react';
110106import { IonContent , IonPage } from ' @ionic/react' ;
111107import { Swiper , SwiperSlide } from ' swiper/react' ;
112108
113- import ' swiper/swiper. scss' ;
109+ import ' swiper/scss' ;
114110import ' @ionic/react/css/ionic-swiper.css' ;
115111
116112const Home: React .FC = () => {
@@ -125,14 +121,14 @@ export default Home;
125121
126122Swiper exports two components: ` Swiper ` and ` SwiperSlide ` . The ` Swiper ` component is the equivalent of ` IonSlides ` , and ` SwiperSlide ` is the equivalent of ` IonSlide ` .
127123
128- These components are imported from ` swiper/react/swiper-react.js ` :
124+ These components are imported from ` swiper/react ` :
129125
130126``` tsx
131127import React from ' react' ;
132128import { IonContent , IonPage } from ' @ionic/react' ;
133- import { Swiper , SwiperSlide } from ' swiper/react/swiper-react.js ' ;
129+ import { Swiper , SwiperSlide } from ' swiper/react' ;
134130
135- import ' swiper/swiper.min. css' ;
131+ import ' swiper/css' ;
136132import ' @ionic/react/css/ionic-swiper.css' ;
137133
138134const Home: React .FC = () => {
@@ -151,10 +147,6 @@ const Home: React.FC = () => {
151147export default Home ;
152148```
153149
154- ::: note
155- Not using Create React App? You can import the Swiper components from ` swiper/react ` instead.
156- :::
157-
158150## Using Modules
159151
160152By default, Swiper for React does not import any additional modules. To use modules such as Navigation or Pagination, you need to import them first.
@@ -166,15 +158,15 @@ To begin, we need to import the modules and their corresponding CSS files from t
166158``` tsx
167159import React from ' react' ;
168160import { IonContent , IonPage } from ' @ionic/react' ;
169- import { Swiper , SwiperSlide } from ' swiper/react/swiper-react.js ' ;
161+ import { Swiper , SwiperSlide } from ' swiper/react' ;
170162import { Autoplay , Keyboard , Pagination , Scrollbar , Zoom } from ' swiper' ;
171163
172- import ' swiper/swiper.min. css' ;
173- import ' swiper/modules /autoplay/autoplay.min.css ' ;
174- import ' swiper/modules /keyboard/keyboard.min.css ' ;
175- import ' swiper/modules /pagination/pagination.min.css ' ;
176- import ' swiper/modules /scrollbar/scrollbar.min.css ' ;
177- import ' swiper/modules /zoom/zoom.min.css ' ;
164+ import ' swiper/css' ;
165+ import ' swiper/css /autoplay' ;
166+ import ' swiper/css /keyboard' ;
167+ import ' swiper/css /pagination' ;
168+ import ' swiper/css /scrollbar' ;
169+ import ' swiper/css /zoom' ;
178170import ' @ionic/react/css/ionic-swiper.css' ;
179171
180172const Home: React .FC = () => {
@@ -193,24 +185,20 @@ const Home: React.FC = () => {
193185export default Home ;
194186```
195187
196- ::: note
197- Not using Create React App? You can import these modules from ` swiper/css/[MODULE NAME] ` instead (i.e. ` swiper/css/autoplay ` ).
198- :::
199-
200188From here, we need to provide these modules to Swiper by using the ` modules ` property on the ` Swiper ` component:
201189
202190``` tsx
203191import React from ' react' ;
204192import { IonContent , IonPage } from ' @ionic/react' ;
205- import { Swiper , SwiperSlide } from ' swiper/react/swiper-react.js ' ;
193+ import { Swiper , SwiperSlide } from ' swiper/react' ;
206194import { Autoplay , Keyboard , Pagination , Scrollbar , Zoom } from ' swiper' ;
207195
208- import ' swiper/swiper.min. css' ;
209- import ' swiper/modules /autoplay/autoplay.min.css ' ;
210- import ' swiper/modules /keyboard/keyboard.min.css ' ;
211- import ' swiper/modules /pagination/pagination.min.css ' ;
212- import ' swiper/modules /scrollbar/scrollbar.min.css ' ;
213- import ' swiper/modules /zoom/zoom.min.css ' ;
196+ import ' swiper/css' ;
197+ import ' swiper/css /autoplay' ;
198+ import ' swiper/css /keyboard' ;
199+ import ' swiper/css /pagination' ;
200+ import ' swiper/css /scrollbar' ;
201+ import ' swiper/css /zoom' ;
214202import ' @ionic/react/css/ionic-swiper.css' ;
215203
216204const Home: React .FC = () => {
@@ -234,15 +222,15 @@ Finally, we can turn these features on by using the appropriate properties:
234222``` tsx
235223import React from ' react' ;
236224import { IonContent , IonPage } from ' @ionic/react' ;
237- import { Swiper , SwiperSlide } from ' swiper/react/swiper-react.js ' ;
225+ import { Swiper , SwiperSlide } from ' swiper/react' ;
238226import { Autoplay , Keyboard , Pagination , Scrollbar , Zoom } from ' swiper' ;
239227
240- import ' swiper/swiper.min. css' ;
241- import ' swiper/modules /autoplay/autoplay.min.css ' ;
242- import ' swiper/modules /keyboard/keyboard.min.css ' ;
243- import ' swiper/modules /pagination/pagination.min.css ' ;
244- import ' swiper/modules /scrollbar/scrollbar.min.css ' ;
245- import ' swiper/modules /zoom/zoom.min.css ' ;
228+ import ' swiper/css' ;
229+ import ' swiper/css /autoplay' ;
230+ import ' swiper/css /keyboard' ;
231+ import ' swiper/css /pagination' ;
232+ import ' swiper/css /scrollbar' ;
233+ import ' swiper/css /zoom' ;
246234import ' @ionic/react/css/ionic-swiper.css' ;
247235
248236const Home: React .FC = () => {
@@ -281,15 +269,15 @@ We can install the `IonicSlides` module by importing it from `@ionic/react` and
281269``` tsx
282270import React from ' react' ;
283271import { IonContent , IonPage , IonicSlides } from ' @ionic/react' ;
284- import { Swiper , SwiperSlide } from ' swiper/react/swiper-react.js ' ;
272+ import { Swiper , SwiperSlide } from ' swiper/react' ;
285273import { Autoplay , Keyboard , Pagination , Scrollbar , Zoom } from ' swiper' ;
286274
287- import ' swiper/swiper.min. css' ;
288- import ' swiper/modules /autoplay/autoplay.min.css ' ;
289- import ' swiper/modules /keyboard/keyboard.min.css ' ;
290- import ' swiper/modules /pagination/pagination.min.css ' ;
291- import ' swiper/modules /scrollbar/scrollbar.min.css ' ;
292- import ' swiper/modules /zoom/zoom.min.css ' ;
275+ import ' swiper/css' ;
276+ import ' swiper/css /autoplay' ;
277+ import ' swiper/css /keyboard' ;
278+ import ' swiper/css /pagination' ;
279+ import ' swiper/css /scrollbar' ;
280+ import ' swiper/css /zoom' ;
293281import ' @ionic/react/css/ionic-swiper.css' ;
294282
295283const Home: React .FC = () => {
@@ -434,7 +422,7 @@ Accessing these properties can be tricky as you want to access the properties on
434422
435423``` tsx
436424import React , { useState } from ' react' ;
437- import { Swiper , SwiperSlide } from ' swiper/react/swiper-react.js ' ;
425+ import { Swiper , SwiperSlide } from ' swiper/react' ;
438426import { Swiper as SwiperInterface } from ' swiper' ;
439427...
440428const Home: React .FC = () => {
@@ -477,9 +465,9 @@ If you are using effects such as Cube or Fade, you can install them just like we
477465import React from ' react' ;
478466import { IonContent , IonPage , IonicSlides } from ' @ionic/react' ;
479467import { EffectFade } from ' swiper' ;
480- import { Swiper , SwiperSlide } from ' swiper/react/swiper-react.js ' ;
468+ import { Swiper , SwiperSlide } from ' swiper/react' ;
481469
482- import ' swiper/swiper.min. css' ;
470+ import ' swiper/css' ;
483471import ' @ionic/react/css/ionic-swiper.css' ;
484472
485473const Home: React .FC = () => {
@@ -504,10 +492,10 @@ Next, we need to import the stylesheet associated with the effect:
504492import React from ' react' ;
505493import { IonContent , IonPage , IonicSlides } from ' @ionic/react' ;
506494import { EffectFade } from ' swiper' ;
507- import { Swiper , SwiperSlide } from ' swiper/react/swiper-react.js ' ;
495+ import { Swiper , SwiperSlide } from ' swiper/react' ;
508496
509- import ' swiper/swiper.min. css' ;
510- import ' swiper/modules /effect-fade/effect-fade.min.css ' ;
497+ import ' swiper/css' ;
498+ import ' swiper/css /effect-fade' ;
511499import ' @ionic/react/css/ionic-swiper.css' ;
512500
513501const Home: React .FC = () => {
@@ -526,20 +514,16 @@ const Home: React.FC = () => {
526514export default Home ;
527515```
528516
529- ::: note
530- Not using Create React App? You can import these effects from ` swiper/css/[EFFECT NAME] ` instead (i.e. ` swiper/css/effect-fade ` ).
531- :::
532-
533517After that, we can activate it by setting the ` effect ` property on ` swiper ` to ` "fade" ` :
534518
535519``` tsx
536520import React from ' react' ;
537521import { IonContent , IonPage , IonicSlides } from ' @ionic/react' ;
538522import { EffectFade } from ' swiper' ;
539- import { Swiper , SwiperSlide } from ' swiper/react/swiper-react.js ' ;
523+ import { Swiper , SwiperSlide } from ' swiper/react' ;
540524
541- import ' swiper/swiper.min. css' ;
542- import ' swiper/modules /effect-fade/effect-fade.min.css ' ;
525+ import ' swiper/css' ;
526+ import ' swiper/css /effect-fade' ;
543527import ' @ionic/react/css/ionic-swiper.css' ;
544528
545529const Home: React .FC = () => {
0 commit comments