Swiper Changelog

11.1.3 (2024-05-13)

Bug Fixes

11.1.2 (2024-05-13)

Bug Fixes

  • autoplay: keep 0 transition on touchmove with 0 timeout delay (8ccb08e), closes #7515
  • core: centerInsuffientSlides takes offsets into account (#7437) (5a271ff)
  • types: fixed SwiperModule, slideTo, effectInit types (#7428) (bc61bce)

Performance Improvements

  • do not remove and re-add visibility classes for unchanged slides to prevents unnecessary style recalculations (This performance difference is mostly noticable when moving a slide with a mouse or touchmove because updateSlidesProgress is triggered for every keyboard-/touchevent) (#7505) (2c08227)

11.1.1 (2024-04-09)

Bug Fixes

  • zoom: fix zoom pan not preventing slide changes using touch (f73cc2a), closes #7308

11.1.0 (2024-03-28)

Bug Fixes

  • a11y: fixed issue with not working "enter" navigation on arrows (aac2dcf), closes #7423
  • a11y: prevent falsy focus handlers (a7c260a), closes #7406
  • core: add/remove slide classes only when changed (3312fba), closes #7356
  • core: don't fix the loop on simple resize (641793f), closes #7325
  • core: fixed thrown error on calling slideTo methods on destroyed swiper (8c6a3c6), closes #7416
  • core: handle grabCursor within breakpoints (e853908), closes #7364
  • core: reset animating flag on translateTo call (7da50bf), closes #7403
  • scrollbar: fix warning (e5371f7), closes #7415
  • thumbs: fix thumbs .swiper type prop to accept string (5b0fa84), closes #7421
  • virtual: don't render first slides when initialSlide set (bab9230), closes #7353
  • zoom: fix panning on SVG elements (eed8a5b), closes #7352

11.0.7 (2024-02-27)

Bug Fixes

  • core: fix initial slide index shift with centeredSlides and slidesPerView auto (#7319) (cae9c2d)
  • history: fix setting history in virtual slides (d4de17b), closes #7327
  • react: make sure the key is unique in virtual mode (829a253), closes #7329


  • add swiper-effect-utils (df5f873), closes #7336
  • zoom: add ability to constrain max zoom to 100% of original image size (#7311) (645f266)

11.0.6 (2024-02-05)

Bug Fixes

  • add optional swiperElementNodeName param to allow more flexible web component usage (#7284) (178511f)
  • fixed behavior where the combination of 'initialSlide:0' and 'slidesPerView:auto' would shift the first slide position (e5c04c3), closes #7216
  • Safari 3D fix for webview (d42ce05), closes #7167
  • scrollbar: correctly update scrollbar on changeDirection (6bbb73d), closes #7263
  • SwiperOptions documentation for loopAddBlankSlides (#7289) (cbc3dba)


  • core: prevent running .slideTo methods when Swiper is destroyed (05f9c64), closes #7265

11.0.5 (2023-11-22)

Bug Fixes

  • core: swipe to last with slidesPerView: auto (#7183) (2e3f47d)
  • modules/a11y: filter out falsy pagination elems (#7201) (a044626)


  • core: new slidesUpdated event (8a0c7c4)

11.0.4 (2023-11-09)

Bug Fixes

  • effectx: fix Safari issue with rotates even to 90deg (e005b69), closes #7167

11.0.3 (2023-10-26)

Bug Fixes

  • core: fixed legacy condition preventing touch move when zoom enabled (2f64043), closes #7137
  • core: prevent observer updates on loop fix (7a5eacc), closes #7135

11.0.2 (2023-10-25)

Bug Fixes

  • core: correctly handle loopAdditionalSlides parameter (3f5e05d)

11.0.1 (2023-10-24)

Bug Fixes

  • types: fix eventsPrefix type (fd0f601)

11.0.0 (2023-09-24)

Bug Fixes

  • autoplay: fix negative autoplay values after stop/start, fix autoplay with free mode (8bef84d), closes #7084
  • autoplay: fix pauseOnPointerEnter if hovered during transition (5080d95), closes #7107
  • core: remove grid class on rows change (2f65e89), closes #7053
  • element: correctly respond to object params assignment (f23c742)
  • scrollbar: allow multiple classes in scrollbar parameters (89a6f71), closes #7096


  • core: add fully visible slides classes (902a4c4), closes #6773
  • core: add handling for native touch events (74bb1cc), closes #6478 #6381 #6897
  • core: loop support for grid, new loopAddBlankSlides parameter (b5db223)
  • core: remove loopedSlides parameter, add loopAdditionalSlides parameter (d647985)
  • core: reworked loop mode (2a99dbd)
  • core: update loop mode logic and lowered requirements (703ede6)
  • element: makeeventPrefix parameter default to swiper (88d463a)
  • core: move default container overflow back to hidden (88941a8)

10.3.1 (2023-09-28)

Bug Fixes

  • autoplay: fix autoplay stop when disableOnInteraction is active (ecfb3fb), closes #7060 #7059
  • types: detection of custom html tags (#7055) (c55f76d)

10.3.0 (2023-09-21)

Bug Fixes

  • core: correctly destroyor create loop on breakpoints (12a44fb), closes #6967
  • core: don't call realIndexChange on initialIndex if runCallbacksOnInit is disalbed (48c4e0a), closes #6976
  • core: fix slideToClickedSlide when using Element slide slots (af0519c), closes #6958
  • core: fix lazy preloader in later initialized slides (e4fddc0), closes #6946
  • core: fix loop on centeredSlides slide to beginning (c496835), closes #7011
  • core: fix loopFix in loop and cssMode (8180a52), closes #6919
  • core: fixed ignored allowSlidePrev/Next in loop mode (1b74619), closes #6987
  • core: remove grid class on rows change (908becc), closes #7053
  • element: correctly respond to object params assignment (2ef1ff5)
  • element: do not bubble hashchange event (106a3d7), closes #6943
  • element: fix issue updating with boolean module params (1cc359e), closes #6947
  • navigation: fix lock class on enable (ea39c33), closes #7009
  • react: add breakpointsBase param (0eb4122), closes #7014
  • react: fix react components props type (1cd412e), closes #7000
  • scrollbar: add 'touch-action: none' to swiper-scrollbar (#7024) (9542d09)
  • virtual: fix issue with loop mode and initialSlide enabled (f4afd9d), closes #6945
  • virtual: fix removing nested slides (c3321e1), closes #7005
  • virtual: recalc cache on removeSlide (96e5166), closes #7020
  • vue: add breakpointsBase param (6800dbb)
  • zoom: fix scale origin when document is scrolled (2cf3fc2), closes #6950 #6955


  • core: allow createElements to process object params with {enabled: true} (abf8405)
  • core: make slidesPerViewDynamic public (ae434b0), closes #7036

10.2.0 (2023-08-17)

Bug Fixes

  • autoplay: fix autoplay pause during transition (db9b17f), closes #6896
  • controller: fix issues with loop mode (fbb84fe), closes #6659
  • core: fix touch move and loop behavior when transition-delay enabled on swiper-wrapper (ac27d02)
  • core: handle contextmenu event (721ccaf), closes #6692
  • element: fix missing elements part when added dynamically (db5b5d6), closes #6899
  • element: fix parallax on elements passed to component root (265e466)
  • element: fixed issue with incorrect lookup for lazy prelader and images (64513ac), closes #6901
  • element: fixed issue with pointer-events:none in fade effect (2dcb802), closes #6908
  • pagination: fixed issue in loop mode when sometimes it switches slides with transiton (3d7dc58), closes #6856


  • pagination: allow multiple clickableClass (703d13b), closes #6741

10.1.0 (2023-08-01)

Bug Fixes


  • element: support slides as slots (697b028)
  • types: make VirtualOptions generic (#6852) (068ee68)

10.0.4 (2023-07-08)

Bug Fixes

v10.0.3 (2023-07-03)


  • added overflow:hidden for fallback if clip is not supported in target… (#6807) (5d8d6f9)
  • element: use usual <style> tag if adopted stylesheet are not supported (18613df)

v10.0.2 (2023-07-03)

Bug Fixes

v10.0.1 (2023-07-03)

Bug Fixes

  • types: fix types for swiper/modules (fa6e597)

10.0.0 (2023-07-03)


  • tweak browserslist to iOS >= 15 (96a4e7e)
  • rework package to use .mjs files and all scripts and styles are minified (a267785)
  • fully rework scripts structure in package (2c87f13)
  • rename package files .esm.js to .mjs (7a17821)
  • browser ES modules (ab20bd1)
  • change swiper container overflow to clip (#6738) (a8447b7)
  • element: attributes can accept JSON stringified strings (5b93954)
  • element: highly reworked Swiper web component (a6f8a0f)
    • navigation arrows use SVGs instead of font
    • changed shadow DOM layout to have <div class="swiper"> inside
    • component styles now added using adoptedStylesheets
    • no more global styles injection
  • set transform 3d on wrapper for iOS devices (90c590d)
  • tweak types exports to be Node 16+ compatible (30ce8e0)

Bug Fixes

10.0.0-beta.5 (2023-06-26)


  • tweak browserslist to iOS >= 15 (96a4e7e)

10.0.0-beta.3 (2023-06-23)


  • rework package to use .mjs files and all scripts and styles are minified (a267785)

10.0.0-beta.2 (2023-06-23)


  • fully rework scripts structure in package (2c87f13)
  • rename package files .esm.js to .mjs (7a17821)

10.0.0-beta.1 (2023-06-23)

Bug Fixes


  • browser ES modules (ab20bd1)
  • change swiper container overflow to clip (#6738) (a8447b7)
  • element: attributes can accept JSON stringified strings (5b93954)
  • element: highly reworked Swiper web component (a6f8a0f)
    • navigation arrows use SVGs instead of font
    • changed shadow DOM layout to have <div class="swiper"> inside
    • component styles now added using adoptedStylesheets
    • no more global styles injection
  • set transform 3d on wrapper for iOS devices (90c590d)
  • tweak types exports to be Node 16+ compatible (30ce8e0)

9.4.1 (2023-06-13)

Bug Fixes

  • core: fix issue with calling freeMode introduced in 9.4.0 (581eea8), closes #6751

9.4.0 (2023-06-12)

Bug Fixes

  • core: lazyPreloadPrevNext not working with grid (883f006), closes #6725
  • core: fix case with not enough slides with centeredSlidesBounds (93b4279), closes #6689
  • core: fix error for swiperSlideSize in hidden slider (36ef2e6), closes #6718
  • core: fix issue with allowSlideNext in RTL mode (d61da52), closes #6737
  • core: fix navigation can be disabled in breakpoints (1fd36ad), closes #6746
  • core: fix to preload lazyPreloadPrevNext prior to active slide (d2f718c), closes #6684
  • core: lazyPreloadPrevNext not working with loop mode #6724 (#6726) (69acab4)
  • effect-cards: fixed in RTL mode (e402f05), closes #5534
  • hash-navigation: get active slide element using the old method if Virtual is not being… (#6704) (db7e72f)


  • core: cssMode now supports freeMode (abe1ec7)
  • element: add part="bullet[-active]" to pagination bullets (8b4cccd), closes #6717

9.3.2 (2023-05-15)

Bug Fixes

  • core: don't call update() on lazy loaded if spv !== auto and no autoHeight (378a3c6)
  • core: don't call update() on lazy loaded in css mode (efc294c)
  • core: fix for smoothScroll check in Support module (e0f4ae4)
  • element: fix not working correctly injectStylesUrls (6a50d45), closes #6662
  • element: remove/re-add navigation, pagination, scrollbar elements based on prop value (45f8d4a), closes #6672
  • hash-navigation: handle slide to none existing hash (#6681) (7f3fa96)


  • add string type for effect param (7340629), closes #6676
  • mousewheel: add noMousewheelClass param (0fcd210)
  • mousewheel: support for swiper-no-mousewheel ignore class (#6671) (c9130c3)
  • react: export SwiperClass type from 'swiper/react' (6768efe), closes #5500

9.3.1 (2023-05-10)

Bug Fixes

  • element: correct extending of HTMLElementEventMap in types (d6a0aca), closes #6657


  • element: added all events arguments in TS declarations (abb0688)

9.3.0 (2023-05-08)

Bug Fixes

  • a11y: add notification span to shadow root in Swiper Element (aa83a03), closes #6634
  • core: fix cases when spaceBetween set in % (446af7e), closes #6647
  • element: don't reinit nested swipers rearranged by parent swiper loop (926828a), closes #6642
  • element: don't render swiper on every connected (5a5ebb4)


  • element: element events types (83774fa)
  • element: add shadow parts (e4f3def), closes #6594
  • element: more complex ts definitions (4cab52d)

9.3.0-beta.1 (2023-05-08)

Bug Fixes

  • a11y: add notification span to shadow root in Swiper Element (aa83a03), closes #6634
  • core: fix cases when spaceBetween set in % (446af7e), closes #6647
  • element: don't reinit nested swipers rearranged by parent swiper loop (926828a), closes #6642
  • element: don't render swiper on every connected (5a5ebb4)


  • element: add shadow parts (e4f3def), closes #6594
  • element: more complex ts definitions (4cab52d)

9.2.4 (2023-04-21)

Bug Fixes

  • core: fix autoHeight in virtual slides (dd30829), closes #6570
  • loop: update slides grids before loop fix when spv is "auto" (035e79d), closes #6599
  • virtual: fix last slide index check in virtual slides (154f048), closes #6595


  • hash-navigation: new getSlideIndex to specify slide index by hash (3eb0ae2), closes #6588

9.2.3 (2023-04-17)

Bug Fixes

9.2.2 (2023-04-14)

Bug Fixes

  • element: fix redefining injectStyles (36ddaf2), closes #6584

9.2.1 (2023-04-14)

Bug Fixes

  • controller: add a conditional to early return if the swiper controller is destroyed (#6555) (3fbec6e)
  • controller: correct interpolation per slider (706fdf8), closes #6506
  • controller: fix controllers multiplier on 0 translates (4b8bd02), closes #6498
  • element: add injectStyles to be acceptable as props (7c1c5d3), closes #6578
  • pagination: update pagination direction class on direction change (e6247d9), closes #6511
  • vue: fix deep slots (642b455), closes #6574


  • virtual: patch for very large sliders using virtual slides (#6533) (e48daa5)

9.2.0 (2023-03-31)

Bug Fixes

  • controller: add null type (3177936), closes #6505
  • controller: prevent controlled swipers from being called when destroyed (#6501) (a266b78), closes #6491
  • mousewheel: Initialize lastClickTime to very old time (#6497) (0983ded), closes #6496
  • pagination: fix pagination.d.ts render functions return types (#6499) (34973a1)
  • zoom: fix zoom out on double tap on sensitive touch screens (7f5c626)
  • zoom: reset transform origin on zoom out (7f7f57e)


  • core: lazyPreloadPrevNext option to preload prev/next images (#6544) (1cb3233)
  • lazyPreloadPrevNext option to preload prev/next images (6d08635)
  • zoom: highly improve pinch-zoom gestures handling (6016a50)

9.1.1 (2023-03-16)

Bug Fixes

  • core: fixed loop when using custom slideActiveClass (#6495) (756ecdb)
  • element: reset initialized flag on disconnectedCallback (#6474) (1e4a235)
  • loop: fix loopFix for controlled swipers (d7c0ef7), closes #6491
  • loop: fix slides closure when removing last slide (1a02271), closes #6477
  • pagination: correctly support multiple bullets paginations (e24bd8c), closes #6462
  • pagination: escape + char in pagination classes (d0beb9f), closes #6486
  • pagination: support bulle multiple classes (20b05fa), closes #6447
  • react: fix virtual loop when not enough slides (57d8eea), closes #6487


  • element: add eventsPrefix prop to avoid collision with native events (d5df91f), closes #6450
  • pagination: add border-radius variable (#6476) (c912590)

9.1.0 (2023-02-28)

Bug Fixes

  • autoplay: fix a crash with resize when the autoplay has gone away during timeout (#6431) (adb40f4)
  • core: correctly calc slide's DOM indexes, actual for Element (18b1f2b)
  • core: fix loop when slidesPerGroup is not even to number of slides (f998115), closes #6412
  • core: prevent observer trigger because of grab cursor (9597442), closes #6423
  • core: proceed iOS's pointercancel as pointerup (50b65f6), closes #6414 #6382
  • effect-creative: fix origin (7883408), closes #6439
  • element: fix ignored on event handlers (898f76c), closes #6399
  • pagination: double check if bullet exists (a335a41), closes #6422
  • pagination: fix clickable pagination with slidesPerView > 1 and loop (cf8cdf5), closes #6415
  • virtual: fix escaped HTML in virtual slides content (a61638a), closes #6404
  • zoom: fix zoom stick on pointer out (6700980), closes #6396


  • element: new global window.SwiperElementRegisterParams method to register acceptable element props (fb63358)

9.0.5 (2023-02-13)

Bug Fixes

  • scrollbar: fix duplicated scrollbar (e99361d), closes #6386

9.0.4 (2023-02-10)

Bug Fixes

  • autoplay: fixing autoplay undefined error (#6366) (f2a0572)
  • pagination: fix pagination bullets children clicks (8bcff39), closes #6361
  • virtual: grab DOM slides only from wrapper children (d59183d)
  • zoom: fix gesture scale origin (c89b2dd), closes #6371

9.0.3 (2023-02-06)

Bug Fixes

  • core: don't proceed lazy if swiper destroyed (4ea0102), closes #6322
  • core: fix loop handling with virtual (69462d2), closes #6343
  • element: fix converting boolean/string params to module object (192e0d4), closes #6328
  • navigation: allow multiple classes in navigation options (#6345) (ca49b9f), closes #6344
  • thumbs: ensure there is a slide to add a class (c6294ad), closes #6335


9.0.2 (2023-02-03)

Bug Fixes

  • core: fixed loop behavior in free mode with mousewheel (336d908), closes #6323
  • types: spaceBetween can also be a string (446fb06), closes #6286
  • vue: declaration for autoplayTimeLeft event (8467397), closes #6333

9.0.1 (2023-02-02)

Bug Fixes

  • core: fix class removal in setBreakpoints (6cb79cf), closes #6319
  • virtual: fix undefined document (9cee290), closes #6318

9.0.0 (2023-02-01)


  • new oneWayMovement parameter
  • removed Dom7 dependency
  • all new Loop mode without slides duplication
  • removed images loading functionality: preloadImages, updateOnImagesReady parameters


  • all new Swiper Element (WebComponent)
  • removed Swiper Solid components (in favor of Swiper WebComponent)
  • removed Swiper Angular components (in favor of Swiper WebComponent)
  • removed Swiper Svelte components (in favor of Swiper WebComponent)


  • all new autoplay module


  • now controller.control parameter also accepts HTMLElement or CSS string with the selector of swiper to control


  • Lazy module has been moved to core and simplified in favor of native loading="lazy"
  • more CSS variables to control appearance and position


  • support parallax rotate


  • now thumbs.swiper parameter also accepts HTMLElement or CSS string with the selector of thumbs swiper

Virtual Slides

  • added support for loop mode
  • improved performance
  • will work now with slides initially rendered in DOM


  • swiper.zoom.in(ratio) method now accepts custom zoom ratio


  • add wrapperClass to swiper-wrapper in React & Vue components (7aaa0d1), closes #6254 #5942
  • core: add loopPreventsSliding parameter (6533890)
  • core: new oneWayMovement parameter (ce2ea7f)
  • navigation: more CSS variables to control appearance and position (6db9439)
  • pagination: more CSS variables to control appearance and position (c8b1228)
  • scrollbar: more CSS variables to control appearance (cfad536)
  • add element core version (de6c7f7)
  • export element css styles (51334a3)
  • injectStyles and injectStylesUrls params (71b10b2)
  • parallax: support parallax rotate (4949163), closes #6126
  • zoom: in method now accepts custom zoom ratio (d88df61), closes #5527
  • core: add loopedSlides parameter (1b076d9)
  • element: add option to avoid styles injecting (2291ec8)
  • thumbs: init thumbs on their appearance in DOM (a6b4cf7)
  • element: add standalone styles (284b130)
  • controller: support updated loop (6059e48)
  • controller: support updated loop (03d9895)
  • controller: support updated loop (e73b577)
  • core: "fix" loop based on touch move direction (5ab7217)
  • element: add CSS styles for modules for Swiper Element (6c36c80)
  • core: add --swiper-wrapper-transition-timing-function CSS var (797bcda)
  • navigation: more CSS vars (f41abe6)
  • paginatrion: more CSS vars (6f63fe2)
  • scrollbar: more CSS vars (875b35a)
  • virtual: renderSlide to support slide outer HTML and HTML element (fdcd644)
  • core: support for "swiper-slide-transform" element for better effects compatability with CSS mode (18b3e3f)
  • core: remove Dom7 (44de97b)
  • core: remove Dom7 (7cdcebf)
  • core: don't prevent slidePrev/Next when animating in loop mode (b358737)
  • autoplay: correct support for virtual slides delay + fix for stopping autoplay on click (43bf429)
  • element: support for comples parameters via attrs in a form of autoplay-delay (8161c57)
  • virtual: support for DOM virtual slides (59da65c)
  • virtual: support loop mode with virtual slides (f890f1e)
  • autoplay: all new Autoplay module (1b4ac21)
  • core: remove unused slide*DuplicateClass parameters (8007e1a)
  • core: all new loop mode without slides duplication (f57aa3b)
  • remove postinstall script (12255cf)
  • core, zoom: rework touch handling logic to PointerEvents only (ede6b6d)
  • core: make threshold parameter default to 5 (dfce8a3)
  • lazy: simplify Lazy module in favor of native loading="lazy" (d46d5d0)
  • move new Lazy module to the Core (d51e1ce)
  • react: add boolean lazy prop to SwiperSlide to render lazy prelaoder (f5d137f)
  • remove Images loading functionality: preloadImages, updateOnImagesReady (4d02653)
  • vue: add boolean lazy prop to SwiperSlide to render lazy prelaoder (e36b580)
  • add new Swiper Custom Element (47f9518)
  • remove Angular and SolidJS components (1329c10)
  • remove Swiper Svelte components (52433ac)

Bug Fixes

  • effect-cube: fix for iOS 16.2 fixed perspective (2f5ed48), closes #6293
  • history: fix handling popstate on init (483534f)
  • core: make isBeginning and isEnd true when translate is less than 1px diff (b2313d5), closes #6287
  • react: fix React 18 compat types (4c916d4), closes #5799
  • virtual: fix Virtual with CSS Mode when initialSlide > 0 (5ddf1d8)

8.4.7 (2023-01-30)

Bug Fixes

  • svelte: autoplay options typescript problem (#6294) (3317f5e)

8.4.6 (2023-01-17)


8.4.5 (2022-11-21)

Bug Fixes

  • a11y: fix JS error "swiper.a11y is undefined" (#6226) (02c1502)
  • touch focusableElements jumps element (#6139) (339f52e)


  • svelte: add tag and wrapperTag props (71e7f5a), closes #6181

8.4.4 (2022-10-12)


  • add direct JS/CSS core and bundle exports (f519f80)

8.4.3 (2022-10-06)

Bug Fixes

  • a11y: don't focus slide on slide inner elements clicks (c8e22f7), closes #6116


  • build-config: allow to custom modules by process.env.SWIPER_BUILD_MODULES (#6043) (b3c51c5)
  • solid: fix handling dynamic slides (708133d), closes #6031
  • solid: keep solid components in .jsx (d7f7f65)

8.4.2 (2022-09-15)

Bug Fixes

  • onTouchStart.js: Fix target element assignment (#6065) (cb46a9a)

8.4.1 (2022-09-15)

Bug Fixes

  • core: fix swiping over nested shadow doms (7d09ab0), closes #6063
  • react: fix issue with checking children (37a94ea), closes #6064

8.4.0 (2022-09-14)

Bug Fixes


  • build: upgrade deps & cjs to esm (#5927) (921809b)
  • cards-effect: add perSlideRotate and perSlideOffset parameters (db08a70), closes #5939
  • core: new loopedSlidesLimit parameter to re-duplicate slides (1afa4b8)
  • react: Allow SwiperSlide children as long as displayName includes SwiperSlide (#5954) (d1f7582)
  • solid: keep solid components incompiled (18c6670), closes #5943


  • Revert "chore(deps): upgrade angular to v14 (#5926)" (#5929) (ae429c4), closes #5926 #5929

8.3.2 (2022-07-26)

Bug Fixes

  • a11y: fix focus handling (8a3dfee), closes #5905
  • autoplay: don't run autoplay if swiper is hidden (4f2e30f), closes #5907


  • core: new loopedSlidesLimit paramter and new functionality to increase duplicated slides (5156071)

8.3.1 (2022-07-13)

Bug Fixes

  • packages: add index.js in /solid and /react (#5863) (6e94701)
  • solid: fix reactivity (502c152), closes #5862
  • solid: stop using cloneNode in sliders without loops in SolidJS (#5860) (d14c432)

8.3.0 (2022-07-06)


  • all new Swiper SolidJS components thanks to @TiagoCavalcante 🎉
  • move common helpers for React/Vue/Svelte/Solid to single files (90e8da1)
  • a11y: allow disabling slideRole (#5838) (b376aa1)

8.2.6 (2022-06-29)

Bug Fixes


  • core: add changeLanguageDirection method to change it to RTL/LTR after init (f5bb7af), closes #3279
  • navigation: add navigationPrev and navigationNext events (d0c6365), closes #5832

8.2.5 (2022-06-27)

Bug Fixes

  • pagination: double check for $el (baafb55)

8.2.4 (2022-06-13)

Bug Fixes

8.2.3 (2022-06-10)


  • a11y: allow slideLabelMessage: null (#5783) (78a8d90)
  • angular: update to angular v14 (097390d)
  • scrollbar: add directional classes to scrollbar container (083a83f)

8.2.2 (2022-06-01)

Bug Fixes

  • scrollbar: fix draggable scrollbar (28cd6c2), closes #5759


  • Revert "fix(autoplay): immediate proceed autoplay when autoplay.delay = 0" (d942e83)
  • Revert "fix(autoplay): fix swiper getting stuck with 0 autoplay delay" (56e050b)

8.2.1 (2022-05-31)

Bug Fixes

  • core: fix issues with navigation/pagination enabled prop (af9ed85)

8.2.0 (2022-05-31)

Bug Fixes

  • autoplay: fix swiper getting stuck with 0 autoplay delay (61db26f)
  • core: fix type Number in slideToLoop (#5732) (1e1336b)


  • navigation: allow navigation to be enabled/disabled in breakpoints (052f863)
  • pagination: allow pagination to be enabled/disabled in breakpoints (d748d49)
  • scrollbar: allow scrollbar to be enabled/disabled in breakpoints (3f09fc7)

8.1.6 (2022-05-25)

Bug Fixes

  • a11y: update slides a11y on slides amount change (31e2005), closes #5692
  • autoplay: immediate proceed autoplay when autoplay.delay = 0 (81a4cc8)
  • lazy: loadPrevNext fix when slidesPerView is fractional (94d4c9e), closes #5712
  • lazy: unset lazy-loading class on swiper destroy (81d7fc4), closes #5737
  • types: add snapIndex and snapGrid props (ee3d2dc), closes #5733


  • navigation: default opacity: 0 styles for hidden navigation buttons (85f72f4)

8.1.5 (2022-05-16)

Bug Fixes


  • history: plugin fixes and new option adding (#5665) (798c7c0)

8.1.4 (2022-04-24)

Bug Fixes

  • core: animate preloader in visible slides if watchSlidesProgress is enabled (8174b5a)
  • core: more checks for when swiper is destroyed (de47f09), closes #5656 #5635
  • lazy: animate preloader in not visible slides (865529b)

8.1.3 (2022-04-20)

Bug Fixes

  • effects: improve dynamic slide shadows re-creation for Cube and Flip effects (98b8a3e)

8.1.2 (2022-04-20)

Bug Fixes

  • effects: fix slide shadows flickering in Safari for Cube and Flip effects (52f5ef7)


  • cube-effect: set --swiper-cube-translate-z CSS property on swiper-wrapper (758ad28)

8.1.1 (2022-04-15)

Bug Fixes

  • lazy: fix lazy preloader in iOS 15 (794a625)
  • virtual: fix leaked effects translate when Virtual enabled (a0e8dd4), closes #5588

8.1.0 (2022-04-08)

Bug Fixes


8.0.7 (2022-03-04)

Bug Fixes


  • effect-cards: support for use with Virtual Slides (69a8870)
  • virtual: better support for other effects rather than slide (2dae84f)

8.0.6 (2022-02-14)

Bug Fixes

8.0.5 (2022-02-10)

Bug Fixes

8.0.4 (2022-02-10)

Bug Fixes

  • core: wrap resize observer callback in requestAnimationFrame (#5441) (0567641), closes #5440


8.0.3 (2022-02-03)

Bug Fixes

  • react: useSwiper context value (#5421) (60cbe75)
  • react: add autoplay to watched modules (#5419) (16059ad)
  • svelte: add autoplay to watched modules (1463e05)
  • vue: add autoplay to watched modules (da4d3cc)

8.0.2 (2022-02-02)

Bug Fixes

  • core: fix slider freeze with enabled observer (8ff2691), closes #5414

8.0.1 (2022-02-01)

Bug Fixes

  • angular: fix angular export (8785e2b), closes #5414
  • react: types for useSwiper and useSwiperSlide hooks (2cbf82c), closes #5413


  • angular: remove deprecated index property (#5412) (63642a1)

8.0.0 (2022-02-01)

Bug Fixes

  • a11y: update aria-disabled on lock/unlock (8183466), closes #5383
  • angular: [@output](https://github.com/output) events emitting (#5225) (a34eb7a)
  • angular: get params types (#5390) (8731204)
  • angular: toggle input (#5229) (#5254) (03acbe2)
  • core: don't prevent focusable elements click when allowTouchMove: false (f0eac04), closes #5358
  • core: don't swipe over <select> element (faeb14a), closes #5268
  • lazy: only activate preloader-spin animation when slide is active (#5203) (b7d89ea), closes #5202
  • react: compatibility with React 18 strict mode (68bcec8), closes #5398
  • react: update controller.control on control prop array change (7c53de8), closes #5368
  • svelte: swiperSlide slot data with context (89f14ab)
  • types: bullets type should be Dom7Array (#5405) (d248a14)


  • a11y: automatically switch slides on focus (Tab) in inactive slides (1288271), closes #3149
  • angular: update to angular 13 and enable tsconfig strict (#5231) (23ee4b3)
  • autoplay: autoplayPause and autoplayResume events (aea56ed)
  • free-mode: stop scrolling when touch event happens in freeMode (80958d5), closes #4616
  • react: useSwiper and useSwiperSlide context hooks (#5364) (18bb89b)
  • svelte: swiper and swiperSlide context (#5391) (b5c2d3b)
  • svelte: import index (c91f222), closes #4976 #4975
  • virtual: support rewind functionality with Virtual slides (e52de28)
  • vue: useSwiper and useSwiperSlide context hooks (987a32e)
  • new maxBackfaceHiddenSlides param to prevent flicker in Safari (d679a98)
  • new maxBackfaceHiddenSlides param to prevent flicker in Safari (8c05e6d)
  • svelte: types for Swiper slot virtualData (682f56f)
  • svelte: types for SwiperSlide slot data (1fa70e1), closes #5349
  • vue: provide - inject swiper and swiperSlide context (#5377) (f3145b1)
  • update dom7 to latest (a6b1a47)

7.4.1 (2021-12-24)

Bug Fixes

  • types: fix rewind description (83574e1)

7.4.0 (2021-12-24)

Bug Fixes

  • core: autoHeight shouldn't ignore zero height slides (b3697f1), closes #5281
  • pagination: fix dynamic bullets position with loop enabled (3d377c2), closes #5304


7.3.4 (2021-12-22)

Bug Fixes

7.3.3 (2021-12-16)

Bug Fixes

  • angular: setElement call updateInitSwiper bug (#5296) (99be5ea)

7.3.2 (2021-12-13)

Bug Fixes


  • a11y: add aria-current to current bullet (#5258) (b5df68e)
  • update dom7 and ssr-window to latest (627ca3a)

7.3.1 (2021-11-24)


7.3.0 (2021-11-18)

Bug Fixes

  • docs: property -> properly (#5187) (2824b0c)
  • zoom: use only one element to zoom (60a9886), closes #5170
  • core: fallback $selector to $wrapperEl if no children exist (#5173) (d8b4ca1)
  • types: fixed typo progressMultipler -> progressMultiplier (#5158) (815e837)


  • react: export SwiperProps and SwiperSlideProps types (d543020), closes #5141

7.2.0 (2021-10-27)


  • add "main" and "module" package fields (f228391)
  • update dom7 and ssr-window to latest (7d45076)

7.1.0 (2021-10-25)

Bug Fixes

  • core: centeredSlides won't work when use creative-effect (#5115) (264ca64)
  • coverflow effect: interface CoverflowEffectOptions updated. (#5123) (b1c317a)


  • core: add support to loop with slotted elements (#5117) (33c411e)

7.0.9 (2021-10-18)

Bug Fixes

  • core: Change opacityString and scaleString to originalProgress (#5095) (244cc2e)
  • vue: fix SwiperSlide types (114fee7), closes #5069

7.0.8 (2021-10-04)


  • virtual: improve behavior with cssMode (b478058)

7.0.7 (2021-09-29)

Bug Fixes

  • angular: removed stray setIndex debug code (nolimits4web#5006) (#5007) (59e44ae)
  • vue: make swiperRef not required in SwiperSlide vue component (#4992) (1cd6af8)

7.0.6 (2021-09-16)

Bug Fixes

  • angular: deprecate [(index)] and setIndex() (#4951) (7ee3d58)
  • effect-creative: fix autoplay by watching all slides transition end (86e6fb6), closes #4961
  • types: add missing cards effect (#4950) (c18aa08)


7.0.5 (2021-09-09)

Bug Fixes

  • core: don't auto create elements on destroy/init (b4cdea8)
  • core: passes modules shouldn't extend prototype (f07d43f), closes #4928

7.0.4 (2021-09-08)

Bug Fixes

  • core: fix cssMode animation in Safari 14 (7fd04fe), closes #4925
  • virtual: fix Virtual slides in React, Vue & Angular (e80925e), closes #4899


  • pagination: more pagination bullet CSS variables (#4927) (25416de)

7.0.3 (2021-09-03)

Bug Fixes

7.0.2 (2021-08-31)

Bug Fixes

  • a11y: fix argments for initNavEl() method (#4884) (2987700)
  • core: reset slides size when slidesPerView switches to auto (2c8784b), closes #4881
  • description typo (#4887) (d3c4764)

7.0.1 (2021-08-26)

Bug Fixes

  • autoplay: add missing .start() method (dda14bc), closes #4865
  • pagination: check for bullets before destroy (ea06b4c), closes #4859

7.0.0 (2021-08-25)

Bug Fixes

  • angular: container classNames (#4854) (fd092dc)
  • angular: demo (9fa84e6)
  • angular: try paths for build/types (04b4eae)
  • angular: tsignore (9011756)
  • types: make loopSlides & loopCreate & loopDestroy internal (d6fdd1b)
  • zoom: zoom elements only in swiper-zoom-container (a4e351f), closes #4847
  • keyboard: fix not working keyboard module (31ee849)
  • pagination: avoid adding direction classes to other swiper's pagination's (f1c8c89)
  • core: prevent watchOverflow from unlocking slidePrev/Next (f1b7397)
  • scrollbar: fix scrollbar size with centeredSlides (91f2f2f)
  • core: fix slide progress in CSS Mode and centered slides (1b0165a)
  • core: better handle loop fix with cssMode enabled (ff84073)
  • core: fix auto create elements feature with breakpoints (3b50feb)
  • components: add modules prop (596e2a1)
  • types: add modules parameter (0d599e2)
  • core: grab cursor to be set based on touchEventsTarget (cffc3aa)
  • core: double check for documentElement in smoothScroll detection (ac09e38)


  • creative-effect: add shadowPerProgress parameter (980c4c7)
  • angular: better typing (e132ee8)
  • angular: better typing (6b562fa)
  • angular: support 'strictTemplates' flag (613f12c)
  • effect-creative: add progressMultiplier option (ed3bd7a)
  • angular: partial ivy build (#4834) (e86b2b3)
  • core swiper-container class to swiper (ad8002c)
  • core swiper-container class to swiper (c763c9c)
  • core: watchOverflow is now enabled by default (b97286f)
  • core: improve watchOverflow detection (627ae4c)
  • creative-effect: add shadows (cce4f23)
  • cards-effect: add slide shadow (09666c8)
  • cards-effect: new Cards effect (21af858)
  • creative-effect: add limitProgress and perspective options (1c7d49e)
  • core: new "Creative" effect (f72f5ba)
  • svelte: add Svelte components typings (5a64bdc)
  • core: new slidesPerGroupAuto feature (2b6f133), closes #4168
  • coverflow-effect: support cssMode (e13d268)
  • fade-effect: support cssMode (18b49cc)
  • flip-effect: support cssMode (82859a1)
  • pagination: keep pagination styles when it is outside of container (1b11429), closes #3736
  • core: better RTL support in CSS Mode (3503ced)
  • core: support for centeredSlides in CSS Mode (c940953)
  • core: support for coverflow effect in CSS Mode (8300225)
  • core: support for Virtual Slides in CSS Mode (0e26d52)
  • core: use easing for custom scroll animation (f40a370)
  • zoom: support Zoom in CSS Mode (4639702)
  • core: watchSlidesProgress and watchSlidesVisibility merged into single watchSlidesProgress (33dbf62)
  • core: custom animation for CSS Mode where smooth scrolling is not supported (a61da6a)
  • core: remove isEdge browser detection (9c9970c)
  • core: move slides manipulation methods to Manipulation module (74873f1)
  • core: move slidesPerColumn functionality to new Grid module (0f1df44)
  • core: increase package build target (65f96c1)
  • core: tweak browserslist (82a23a5)
  • core: convert A11y to functional module (5906115)
  • core: convert Autoplay to functional module (ace1e54)
  • core: convert FreeMode to functional module (4d307c0)
  • core: convert Keyboard to functional module (ed63a3b)
  • core: convert Lazy to functional module (8d4f99a)
  • core: convert Mousewheel to functional module (1e4bf98)
  • core: convert Navigation to functional module (e4aa156)
  • core: convert Pagination to functional module (1c718d0)
  • core: convert Scrollbar to functional module (96b8b17)
  • core: convert Thumbs to functional module (bea5ac2)
  • core: convert Virtual to functional module (6899e83)
  • core: convert Zoom to functional module (eb1437e)
  • core: remove object-syntax modules support (287d14a)
  • core: touchEventsTarget is now default to wrapper (71ffcb5), closes #4751 #3816
  • core: convert effects to functional modules (b6f64a5)
  • core: convert HashNavigation to functional module (ac384c6)
  • core: convert History to functional module (7e7c95a)
  • core: convert Observer to functional module (a31b80e)
  • core: convert Parallax to functional module (a7c26b5)
  • core: convert Resize to functional module (133047c)
  • core: new functional modules syntax (e45285a)
  • core: remove mouse events listeners in favor of pointer events (b9254ab)
  • core: remove MutationObserver support detection (consider it is supported everywhere) (6ed6786)
  • core: remove pointerEvents support detection (b7d171b)
  • core: resizeObserver is not enabled by default (552a7ea)
  • package: use type: module (e8d89f2)
  • core: remove CJS formats (3978367)
  • core: remove Less and SCSS variables in favor of CSS variables (91e8ea1)
  • freeMode: init (#4240) (895da28)
  • slidesPerColumn: init (#4508) (c469d29)

6.8.4 (2021-08-23)

Bug Fixes

6.8.3 (2021-08-20)

Bug Fixes

  • fix missing package.json in swiper/types

6.8.2 (2021-08-16)

Bug Fixes

  • core: support tailwind's ! in classes (0cfbc53), closes #4812
  • vue: add missing emitted events (enable & disable) into 'emits' option (95665cc)
  • vue: fix focusableElements prop type (7f1b1b9), closes #4822

6.8.1 (2021-08-03)

Bug Fixes

  • core: reset slides margin-top on slidesPerColumn breakpoint (c94a115), closes #4044
  • core: fix server side check for HTMLElement (close #4787) (#4788) (ca4f6b8)


6.8.0 (2021-07-22)

Bug Fixes

6.7.5 (2021-07-01)

Bug Fixes

  • lazy: lazy load when no sides resistance enabled (1949a9e), closes #4729
  • zoom: compatibility with slidesPerView to zoom only clicked slide (aa1a778), closes #4716


6.7.1 (2021-06-23)

Bug Fixes

  • angular: don't set main class on wrapper element (1285195), closes #4679
  • core: don't extend html elements (#4691) (32ae99b)
  • core: unset top margin on slide when slidesPerColum changed (1ced4f7), closes #4658
  • react: dynamically enable/disable navigation/pagination/scrollbar (d87ac0c), closes #4681
  • react: update parallax on Virtual slides rendered (ce210f3), closes #4673
  • react, svelte, vue: allow to accept enabled prop (76dd086), closes #4633
  • svelte: dynamically enable/disable navigation/pagination/scrollbar (8711bb9)
  • typings: fixed methods definitions for navigation, pagination and scrollbar (77d6909)
  • vue: dynamically enable/disable navigation/pagination/scrollbar (4821008)
  • vue: update parallax on Virtual slides rendered (b78c6e0)


  • core: add ParallaxOptions types (7cc22fe), closes #4684
  • core: allow wrapperClass to be multiple classes (0d578b0), closes #4680
  • core: make focusableElements configurable (6ff0866), closes #4677
  • core: use window.matchMedia to detect window width for breakpoints (1a4afe0), closes #4682

6.7.0 (2021-05-31)

Bug Fixes


  • core: starter html layout can be optional with new createElements: true parameter (#4507) (aef2865)
  • autoplay: if disableOnInteraction and pauseOnMouseEnter, it will stop autoplay on interaction (e7e5031), closes #4598
  • vue: add support for use Swiper as async component (ff53797), closes #4613

6.6.2 (2021-05-19)

Bug Fixes

  • autoplay: fix resume after pause on mouseenter (3d480be), closes #4569
  • navigation: better SCSS interpolation (a1337df)
  • svelte: auto update Virtual slides on slides prop change (ddf11b8), closes #4564

6.6.1 (2021-05-11)

Bug Fixes

  • core: fix breakpoints enabled detection (0be8099), closes #4543

6.6.0 (2021-05-11)

Bug Fixes

  • core: make autoHeight work with Virtual slides (6925acf), closes #4525
  • zoom: don't toggle zoom on slides without zoom-container (e1de61b), closes #4535


  • autoplay: new pauseOnMouseEnter parameter to pause autoplay on mouse enter over container (1a10247), closes #4482
  • core: new parameters and methods to enable/disable Swiper dynamically (575bc84), closes #4356 #4311
  • react: add the missing render function type (cfa1459)

6.5.9 (2021-04-30)

Bug Fixes

  • angular: custom naviation & pagination (c96bcf6)
  • angular: don't remove Swiper styles on destroy (96ad4f0), closes #4443
  • angular: extend current params (71be609)
  • angular: pagination true should work (434a19c)
  • angular: update value (20e25b5)
  • build: size calc (769e9df)
  • docs: postinstall bakers-> backers typo (839aea4)
  • hash-navigation: fixed issue when using with freeMode without transition (c90a7bd), closes #4478
  • history: fixed issue when using with freeMode without transition (2902ea9)
  • react: load lazy images (if enabled) on children change (ca0347b), closes #4463
  • vue: load lazy images (if enabled) on children change (335daff)


  • angular: support id input (ad51e32)
  • core-js postinstall script (fd5c01d)
  • angular: use class & ngClass on <swiper> component (66c5a55)

6.5.8 (2021-04-23)

Bug Fixes

  • components: fixed issue with navigation, pagination, scrollbar custom elements added after initialization (cfd4efd), closes #4458
  • react: make events reactive (301ffb0), closes #3762


  • a11y: add a11y.slideRole parameter for custom slide role (097109f), closes #4435
  • history: new root parameter to avoid issues with root path detection (e6d1202), closes #3205

6.5.7 (2021-04-16)

Bug Fixes

  • react: fixed issue with Virtual, Controller and Thumbs when running React.StrictMode


  • core: new swiper.setProgress method to set whole Swiper translate progress (from 0 to 1)

6.5.6 (2021-04-09)

Bug Fixes

  • angular: custom html element support (b7d0c1f)
  • angular: custom html element support (dec54c2)

6.5.5 (2021-04-08)

Bug Fixes

  • core: removed Svelte from peerDependencies
  • utils: dom not writeable (8775c1a)

6.5.4 (2021-04-05)

Bug Fixes

  • core: fix pagination and a11y classes escaping (49e06f9), closes #4403
  • svelte: don't destroy on server-side (8a8fb62), closes #3961

6.5.3 (2021-03-31)

Bug Fixes

  • navigation: fix wrong nav button position (ef97693), closes #4393

6.5.2 (2021-03-30)

Bug Fixes

  • core: fix params extending loosing Swiper instance (32092ae), closes #4384

6.5.1 (2021-03-29)

Bug Fixes

  • a11y: correct aria-roledescription attribute name (1b73c3b), closes #4371
  • core: fixed proto pollution (ec358de)
  • core: fixed proto pollution (9dad273)
  • isObject cross window (7c36077)
  • isObject cross window (95b5dfe)
  • update virtual slides (e33242c)
  • core: replace unsupported Object.entries (6dff71d), closes #4341
  • core: use getComputedStyle helper (9698e58), closes #4337


  • a11y.slideLabelMessage (9fd6e68)
  • custom html element support (f96db02)
  • navigation: set disabled prop on nav element if it is a <button> element (7536fbd), closes #4312

6.5.0 (2021-03-05)

Bug Fixes

  • a11y: space should trigger role button (3d4039b)
  • core: correctly update slideIndex when other elements are present in slides wrapper (21e7713)
  • core: don't toggle zoom during transition (16f185e), closes #4259
  • core: don't try to move slider when it is locked (51fd048), closes #4284
  • e2e: initSwiper (9915f8b)
  • lazy: fixed issue with lazy loading when freeMode stops without momentum (82bcc5c), closes #4274 #4275
  • navigation: don't hide navigation on pagination click (7b7cccf), closes #4285
  • pagination: don't hide pagination on navigation click (68b8a93), closes #4285
  • svelte: fix Svelte cjs exports (478289c), closes #4297


  • components: added "resizeObserver" boolean option/prop to enable ResizeObserver (f03ffbb), closes #4244
  • core: added support to use ResizeObserver with new "resizeObserver" parameter (5f80052), closes #4244
  • core: possible to enable breakpoints based on container width (instead of window width) (42db86d), closes #4244
  • init cypress (6159524)

6.4.15 (2021-02-18)

Bug Fixes

  • angular, vue, svelte: add 'observer', etc. to params-list (8f1cd29)
  • core: correctly store class names (02265ec), closes #4247

6.4.14 (2021-02-17)

Bug Fixes

  • svelte: add "observer" params support to props (703ea53)
  • vue: add "observer" params support to props (1d37ff7)
  • fixed error bundling CJS module (0cda5e4), closes #4242
  • react: add 'observer', etc. to params-list (205c14e)


  • angular: thumbs & controller support (76acd28)

6.4.12 (2021-02-16)

Bug Fixes

  • angular: autoplay SSR (4f1e9c4)
  • angular: don't enable observer when virtual enabled (8810b18)
  • angular: virtual SSR (63fed99)

Performance Improvements

  • angular: call swiperRef outside of angular (4e544ef)

6.4.11 (2021-02-06)

Bug Fixes

  • angular: BrowserAnimationsModule slides deletion (fef6ebd)
  • react: navigation, pagination and scrollbar is not disabled when #4181 (460787d)
  • react: correctly check for virtual params (92c0137)
  • react: support SwiperSlider components wrapped in higher order components and fix nested fragments bug #4144
  • vue: update virtual slides on nextTick (5208b1a), closes #4172
  • svelte/vue navigation, pagination and scrollbar is not disabled when false #4181 (ffedb6b)


  • angular: use observer to update swiper on slides changes (962a0c0)
  • angular: use swipers observer (30dd7c9)

6.4.10 (2021-01-29)

Bug Fixes

  • core: don't throw error when trying to init on non existent element (31aa87a)
  • core: fixed issue with "scroll container" (c3d0b97), closes #4161
  • react: fixed issut with Virtual Slides not working correctly (c24f7ef), closes #4162
  • vue: fixed updating virtual slides on virtual data change (5979102)

6.4.9 - Released on January 28th, 2021

Bug Fixes

  • angular: Cannot set property 'classNames' of undefined (13bcf39)
  • angular: content slider ngIf (4ca13e4)
  • angular: tsconfig path (f2dcf16)
  • angular: zoom container custom class (5d4f11c)
  • core: disable extra grid item for free mode (9159d89), closes #4010
  • docs: change url api -> swiper-api (3dc9203)
  • docs: heading levels (e8157e6)
  • scrollbar: fixed issue when initialized with empty scrollbar.el will throw an error on destroy
  • svelte: slots container start & end (b23b4e1)
  • zoom: consider window scroll for offsets (60cd60a), closes #4039


6.4.8 - Released on January 22th, 2021

  • Core
    • Improved default behavior on Windows touch screen devices
  • Types
    • Some docs comments fixes

6.4.7 - Released on January 21th, 2021

  • Types
    • Added full docs comments for all Swiper parameters
  • Angular
    • Proper support for zoom functionality with required extra "zoom" element. Can be enabled with zoom prop on slides, e.g. <ng-template swiperSlide [zoom]="true">
    • Fixed issue with SSR
    • Fixed issue with not working custom pagination.el

6.4.6 - Released on January 20th, 2021

  • Core
    • edgeSwipeDetection parameter now can receive string 'prevent' to prevent system swipe-back navigation
    • Fixed issue when with decimal slidesPerView last slide never received "active" class/state
    • Cube
      • Fixed shadow rendering issues in Chrome
  • React/Svelte/Vue/Angular
    • Fixed rendering issue when virtual slides used with breakpoints
  • Minor fixes

6.4.5 - Released on December 18th, 2020

  • Fixed issue with postinstall script

6.4.4 - Released on December 18th, 2020

6.4.1 - Released on December 9th, 2020

  • Fixed types errors introduced in 6.4.0

6.4.0 - Released on December 8th, 2020

  • All new Swiper Angular components (kudos to @vltansky) 🎉
  • React
    • Now Swiper won't cleanup styles on destroy
  • Svelte
    • Now svelte package contains source .svelte components
    • Now Swiper won't cleanup styles on destroy
  • Vue
    • Now Swiper won't cleanup styles on destroy
  • Lazy
    • Now it has options to check is Swiper also is in view before loading the images (thanks to @ygj6)
  • Build
    • Fixed sourcemap missing original sources
  • Lots of minor fixes

6.3.5 - Released on October 30th, 2020

  • Build
    • Fixed builds on Windows
  • Core
    • Fixed no swiping class in shadow component (#3868)
    • Typecheck for slideTo's index parameter

6.3.4 - Released on October 20th, 2020

  • Vue
    • Fixed issue with Maximum recursive updates

6.3.3 - Released on October 9th, 2020

  • Core
    • Fixed issue with wrong slides calculation when slides have inner scrollbars
  • Autoplay
    • Now it will continue autoplay if it reaches the end and new slides will be added later
  • React
    • Fixed issue when slide render function data was set only after interaction
  • Minor fixes

6.3.2 - Released on September 28th, 2020

  • Svelte
    • Fixed issue with throwing error when using breakpoints

6.3.1 - Released on September 25th, 2020

  • Core

    • A11y
      • Init module after all other modules initialized

6.3.0 - Released on September 25th, 2020

  • Core

    • A11y
      • Added new parameters containerMessage, containerRoleDescriptionMessage and itemRoleDescriptionMessage (#3834 thanks to @jenemde)
  • React

    • Now SwiperSlide component requires unique virtualIndex to be set so Swiper can know which slide is rendered exactly
  • Vue

    • Fixed issue when SwiperSlide was not rendered if used with v-for
    • Now SwiperSlide component requires unique virtualIndex to be set so Swiper can know which slide is rendered exactly
  • All new Swiper Svelte components:

    <Swiper spaceBetween="{50}" slidesPerView="{3}">
      <SwiperSlide>Slide 1</SwiperSlide>
      <SwiperSlide>Slide 2</SwiperSlide>
      import { Swiper, SwiperSlide } from 'swiper/svelte';

6.2.0 - Released on September 4rd, 2020

  • All new Swiper Vue.js (v3) components:

      <swiper :space-between="50" :slides-per-view="3">
        <swiper-slide>Slide 1</swiper-slide>
        <swiper-slide>Slide 2</swiper-slide>
      import { Swiper, SwiperSlide } from 'swiper/vue';
      export default {
        components: {

6.1.3 - Released on September 3rd, 2020

  • Core
    • Pagination
      • Now it won't set a11y attributes on customly rendered bullets
  • React
    • Fixed issue with loop mode and breakpoints not being recalculate slides

6.1.2 - Released on August 17th, 2020

  • React
    • Fixed issue generating useLayoutEffect warning in Next.js
    • Fixed issue with Virtual List in RTL mode

6.1.1 - Released on July 31th, 2020

  • Fixed ESM/CJS import paths

6.1.0 - Released on July 31th, 2020

  • Core
    • Mousewheel
      • New mousewheel parameters thresholdDelta and thresholdTime (#3720)
    • Fixed issue with Navigation and Pagination .less files (#3724)
    • Fixed issue with setting proper sideEffects causing some bundlers to not include imported styles (#3708)
  • React
    • Now SwiperSlide accepts render function with isActive, isVisible, isPrev, isNext, isDuplicate props:
          {({ isActive }) => <div>Current slide is {isActive ? 'active' : 'not active'}</div>}
  • Minor fixes

6.0.4 - Released on July 15th, 2020

  • Fixed TS definitions for Swiper React component (#3692)

6.0.3 - Released on July 14th, 2020

  • Dom7 updated to latest with correct __proto__ setters/getters

6.0.2 - Released on July 9th, 2020

  • React
    • Now Swiper will be auto updated if pagination.el, scrollbar.el, navigation.nextEl and navigation.prevEl are passed from later-available refs

6.0.1 - Released on July 7th, 2020

  • Core

    • SCSS:Fixed issue with missing $colors var in Navigation and Pagination
  • React

    • Fixed Swiper instance argument typings in event handler props
    • Added event handler props definitions for modules events

6.0.0 - Released on July 3rd, 2020

  • New NPM package structure

    • All scripts transpiled to ES5

    • New and renamed files (BREAKING CHANGE):

      • swiper.less - core Swiper LESS
      • swiper.scss - core Swiper SCSS
      • swiper-bundle.css - Swiper bundle CSS
      • swiper-bundle.js - Swiper bundle JavaScript in UMD format
      • swiper-bundle.cjs.js - Swiper bundle JavaScript in CommonJS format
      • swiper-bundle.esm.js - Swiper bundle JavaScript in ESM format
      • swiper.cjs.js - Swiper core JavaScript in CommonJS format
      • swiper.esm.js - Swiper core JavaScript in ESM format
    • Following imports are now available

      • import Swiper from 'swiper' - imports core version
      • import Swiper from 'swiper/bundle' - imports bundle version
      • import Swiper from 'swiper/core' - imports core version
    • Components can be imported from core version using named imports, or using direct import:

      import { Navigation } from 'swiper';
      // or
      import Navigation from 'swiper/components/navigation';
      // and styles (Less or SCSS only)
      import 'swiper/components/navigation/navigation.less';
  • Full server-side rendering support (SSR) with new parameters:

    • userAgent - device user agent, required for some initial detection
    • url - required to correctly detect and set initial slide if Hash Navigation or History modules are used
  • New loopPreventsSlide boolean parameter (by default enabled), that prevents slidePrev/Next transitions while transition is in progress

  • Full support for Node.js DOM libraries like JSDOM and Domino

  • Added new onAny(callback) listener to listen for any swiper event

  • All events now emit swiper instance as a first argument (BREAKING CHANGE)

  • Added official TypeScript definitions

  • Updated to use next generation dom7 and ssr-window libraries

  • All new Swiper React components:

    import { Swiper, SwiperSlide } from 'swiper/react';
    export default () => {
      return (
          onSwiper={(swiper) => console.log(swiper)}
          onSlideChange={() => console.log('slide change')}
          <SwiperSlide>Slide 1</SwiperSlide>
          <SwiperSlide>Slide 2</SwiperSlide>

5.4.5 - Released on June 16th, 2020

  • Core
    • Fixed issue when checkOverflow method could throw error if Navigation module wasn't installed (#3621)
  • Keyboard
    • New parameter pageUpDown to enable/disable pageUp and pageDown keys (enabled by default)

5.4.3 - Released on June 13th, 2020

  • Core
    • Removed UIWebView text from code
    • Fixed resize handler calling slideTo to last slide when it shouldn't

5.4.2 - Released on June 3rd, 2020

  • Mousewheel
    • Fixed issue when enabling forceToAxis also inverted scrolling
  • Coverflow Effect
    • Added support for scale parameter (#3598)
  • Pagination
    • Fixed detection of uniqueNavElements (#3590)

5.4.1 - Released on May 20th, 2020

  • Fixed dependencies versions

5.4.0 - Released on May 15th, 2020

  • Hash Navigation
    • Added hashChange and hashSet events (#3557)
  • Lazy
    • Added support for <picture> lazy loading (#3560)
  • Mousewheel
    • Potentially improved vertical scrolling issues on Windows/Linux OS
  • Updated ssr-window and dom7 dependencies to latest versions
  • Minor fixes

5.3.8 - Released on April 24th, 2020

  • Core
    • Fix iOS bug with double bounce on free mode momentum bounce
  • A11y
    • Fixed focus ring on navigation buttons (#3544)
    • Fixed RegExp issue in paginationBulletMessage (#3540, #3541)
  • Thumbs
    • Added thumbs.autoScrollOffset parameter that allows to set on what thumbs active slide from edge. It should automatically move scroll thumbs
  • Minor fixes

5.3.7 - Released on April 10th, 2020

  • Core
    • Fixed cssMode behavior in RTL layout
  • Zoom
    • Fixed issue with not working double-tap to toggle with virtual slides
  • Minor fixes

5.3.6 - Released on February 29th, 2020

  • Core
    • Fixed wrong auto height calculation with centeredSlides enabled
  • Lazy
    • Now it will update auto height (if enabled) on lazy image loaded (#3466)
  • Zoom
    • Fixed issue when previously active slide could be zoomed with zoom.in() API (#3451)
    • Fixed issue when zoom didn't work on <picture> element (#3456)
    • Added support for custom zoom-target element by adding swiper-zoom-target class to such elements
  • Coverflow Effect
    • stretch parameter now can be set in % (#3468)
  • Minor fixes

5.3.1 - Released on February 8th, 2020

  • Core
    • Fixed issue when slider could stuck after last slide (#3414)
    • Added label to list of form events to keep clicks on it (#3407)

5.3.0 - Released on January 11th, 2020

  • Core
    • New slidesPerGroupSkip behavior (#3361)
    • New ratio-based breakpoints (#3389)
    • Added SCSS interpolation (#3373, #3374)
  • Mousehweel
    • Fixed issue when it can fail on load (#3383)
  • Minor fixes

5.2.1 - Released on November 16th, 2019

  • Core
    • New loop events beforeLoopFix and loopFix
    • New parameter updateOnWindowResize (by default true) that will update/recalc swiper on window resize/orientationchange
    • Added SCSS interpolation for --swiper-theme-color variable when not building from source (#3334)
    • Quote SCSS color names (#3316)
    • Fixed issue when .once could be called more than once (#3322)
  • Mousewheel
    • Fixed scroll wheel unwanted frozen effect (#3328)
  • Thumbs
    • New multipleActiveThumbs (by default true) option to control whether multiple thumbnail slides may get activated or not.
  • Minor fixes

5.2.0 - Released on October 26th, 2019

  • Core
    • New centeredSlidesBounds parameter that when enabled will keep first and last slides at bounds
    • Fixed issue when freeMode could break position on resize (#2708, #3303)
    • Fixed transition duration issue with freeModeSticky (#3302)
    • Fixed issue with wrong row/column if not full groups (#3294)
    • Fixed issue when watchOverflow and slidesOffsetBefore/slidesOffsetAfter couldn't work together (#3291)
  • Mousewheel
    • Faster & smoother mousewheel inertial scrolling (#3304)
  • Package
    • Added source maps to package builds (#3306)
    • Added minified version of browser.esm.bundle
  • Minor fixes

5.1.0 - Released on October 16th, 2019

  • Core
    • Fixed issues with touch on iOS 13
    • New translateTo method #3268
  • Pagination
    • Improved dynamic bullets behavior when loop: true #3255
  • Zoom
    • Fixed issue with pinch to zoom on Android
  • Minor fixes

5.0.4 - Released on September 30th, 2019

  • Core
    • Now on short swipes over navigation buttons, it will treat it like nav button click (#3237 by @robpop)
    • Fixed issue when passing float slidesPerView could break loop mode (#3225 by @robpop)
  • Scrollbar
    • Fixed issue with wrong "pointer" position calculation on scroll bar tap
  • Autoplay
    • Fixed issue when it was paused after returning from hidden tab
  • Minor fixes

5.0.3 - Released on September 19th, 2019

  • Core
    • touchEventsTarget defaults back to container
    • Added handling of touchcancel event #3219
    • Fixed issue with wrong order calculation in slidesPerColumnFill: 'row' mode
    • Fixed issue with slides missplacing when prepending slides in virtual mode
    • Fixed issue when zoomed image still swiped to another slide on mobiles

5.0.1 - Released on September 17th, 2019

  • Core
    • Fixed typo in code

5.0.0 - Released on September 17th, 2019

  • Core
    • All new CSS Scroll Snap mode (can be enabled with cssMode: true). It doesn't support all of Swiper's features, but potentially should bring a much better performance in simple configurations
    • Fully removed Internet Explorer support
    • breakpointsInverse parameter has been removed and now breakpoints behave like with breakpointsInverse: true before.
    • touchMoveStopPropagation parameter now defaults to false
    • click event won't be fired with 300ms delay anymore. Now it will be fired at the same time as tap event
    • When slidesPerColumnFill: 'column' it now uses flex-direction: column layout which requires specified height on swiper-container
    • touchEventsTarget now defaults to wrapper (rather than container like before)
    • slidesPerColumn now can be used with breakpoints
    • Now Swiper styles use CSS Custom Properties (CSS Custom Variables) to specify swiper's color theme (color of navigation buttons/pagination). It is now --swiper-theme-color: #007aff;
    • Improved es module "tree-shake-ability"
    • New swiper.esm.browser.bundle.js package that can be used directly in browser (import Swiper from 'swiper.esm.browser.bundle.js')
  • Autoplay
    • Now it will be paused when document becomes hidden (in not active tab) and continued again when document becomes visible
  • Lazy
    • Swiper preloader image replaced with a little bit simpler loader. Now its color can be changed with --swiper-preloader-color CSS custom property (which is defaults to --swiper-theme-color)
  • Pagination
    • Active pagination bullets and pagination theme colors now use CSS Custom Properties. It can be defined with --swiper-pagination-color property (which is defaults to --swiper-theme-color)
  • Navigation
    • Navigation icons reworked with built-in (base64) icon font. It allows to apply any color and size without replacing image
    • Navigation buttons colors now use CSS Custom Properties. It can be defined with --swiper-navigation-color property (which is defaults to --swiper-theme-color)
    • With --swiper-navigation-size (defaults to 44px) it is now possible to change size of the navigation buttons (and icons)
  • Minor fixes and improvements

4.5.1 - Released on September 13th, 2019

  • Core
    • Fixed issue when callbacks fires on init even if it disabled (#2807)
    • Fixed issue when "swiper-slide-visible" class name in some situations shows up when it shouldn't
    • slidesPerColumnFill: 'row' now considers groups (#3077)
  • Thumbs
    • Fixes bug 'Cannot read property indexOf of undefined' that sometimes occurs on use of thumbnails
  • Keyboard
    • Added PageUp/PageDown keybindings.
  • Autoplay
    • Fixed issue when window resize stopped autoplay
  • Parallax
    • Fixed issue when parallax opacity didn't work (#3147)
  • Minor fixes and improvements

4.5.0 - Released on February 22nd, 2019

  • Core
    • New swiper.changeDirection() method to change direction from horizontal to vertical (and back) dynamically
    • direction parameter can be used in breakpoints
  • Virtual Slides
    • swiper.virtual.appendSlide now accepts array of slides to add
    • swiper.virtual.prependSlide now accepts array of slides to prepend
    • New swiper.virtual.removeSlide(indexes) to remove virtual selected slides
    • New swiper.virtual.removeAllSlides() to remove all virtual slides
  • Navigation
    • Now it emits navigationHide and navigationShow events when on nav hide/show
  • Pagination
    • Now it emits paginationHide and paginationShow events when on pagination hide/show
  • Dom7 updated to latest 2.1.3
    • Fixed issue when .once bound event could still be there after unbinding it with .off
  • Source
    • Source styles are now available in SCSS in addition to LESS
  • Minor fixes and improvements

4.4.6 - Released on December 19th, 2018

  • Core
    • Fixed issue with wrong slide size calculation in some cases

4.4.5 - Released on December 14th, 2018

  • Core
    • New observeSlideChildren parameter to enable auto update on slide children update
    • Fixed issue when slide padding was not considered when calculating sizes
    • Fixed issue with wrong touch support detection on Windows Chrome
    • Fixed some issues with wrong slides grid calculation in multi row mode
  • Zoom
    • Now it emits zoomChange event with scale, imageEl and slideEl arguments
  • Minor fixes

4.4.2 - Released on November 1st, 2018

  • New touchStartForcePreventDefault parameter to force touch start event prevent default
  • Breakpoints fix when breakpoint keys are strings
  • Fixed issue when draggable scrollbar may not work on desktop Safari
  • Fixed issue with wrong sort of Virtual Slides
  • Minor fixes

4.4.1 - Released on September 14th, 2018

  • Fixed issue with preventing touchstart event

4.4.0 - Released on September 14th, 2018

  • Core
    • New centerInsufficientSlides parameter to center slides if the amount of slides less than slidesPerView
    • New breakpointsInverse parameter (boolean), if enabled then it will count breakpoints in reversed direction, e.g. will override parameters if window width is more than specified breakpoint
  • Virtual Slides
    • New addSlidesBefore and addSlidesAfter parameters to increase amount of pre-rendered slides
  • Thumbs
    • All new "Thumbs" module/component designed to control slider thumbnails, in more logical and correct way than with Controller module.
  • Lots of minor fixes

4.3.5 - Released on July 31th, 2018

  • Core
    • iOSEdgeSwipeThreshold parameter renamed to just edgeSwipeThreshold. Old iOSEdgeSwipeThreshold name is still supported
    • Improved observer performance if there are many mutations at a time. Thanks to @rayvincent-bsd
  • Controller
    • Fixed issue with wrong auto height resizing
  • Scrollbar
    • Fixed issue when it was using active event listeners instead of passive. Thanks to @nyon
  • Minor fixes

4.3.3 - Released on June 5th, 2018

  • Core
    • Fixed issue when slidePrev goes to wrong slide #2650
    • Fixed issue when roundLength was not considered for grids calculation #2656
    • Fixed typo in API #2659

4.3.2 - Released on June 1st, 2018

  • Core
    • Added addSlide(index, slide) method to add slide at required position. Thanks to @kochizufan
    • Fixed issue with loop #2647. Thanks to @kochizufan
  • Pagination
    • New formatFractionCurrent(number) parameter to format current number in Fraction pagination
    • New formatFractionTotal(number) parameter to format total number in Fraction pagination
  • Minor fixes

4.3.0 - Released on May 27th, 2018

  • Core
    • Fixed issue when swipeBack sometimes slides to wrong slide
    • Fixed issue when window resizing can break Coverflow effect layout
    • Fixed issue with wrong detection of iOSEdgeSwipeDetection. Thanks to @langjun
  • Dom7 update to latest v2.0.6:
    • Fixed issue with remove event listeners when they was not added
  • Minor fixes

4.2.6 - Released on May 1st, 2018

  • console.log cleanup

4.2.5 - Released on April 29th, 2018

  • Core
    • Prevent apply grab cursor when swiper is locked
    • Fixed breakpoint with loop getting wrong realIndex when on init
    • Fixed "transformed" slides sizes calculation that could cause issues in with Coverflow effect
  • Autoplay
    • Fixed issue that can cause memory leak
  • Dom7 update to latest
    • Improved internal events proxies logic for better memory management
  • Minor fixes

4.2.2 - Released on April 1st, 2018

  • Core
    • Respect and update breakpoints when calling Swiper's .update() method
  • Pagination
    • New progressbarOpposite parameter to make pagination progressbar opposite to direction parameter, means vertical progressbar for horizontal swiper direction and horizontal progressbar for vertical swiper direction
  • Mousewheel
    • Fixed issue in loop + freeMode for loop not being set correctly
  • Minor fixes

4.2.0 - Released on March 16th, 2018

  • Core
    • swiper.updateAutoHeight(speed) now supports speed parameter to resize swiper wrapper with duration
    • Fixed issues in free mode with freeModeSticky not being able to snap to closest snap point
    • New swiper.slideToClosest() method to slide to closest snap point when it is somewhere in between
  • A11y (Accessibility)
    • It is now enabled by default (if installed)
  • Controller
    • Fixed RTL issue when vertical swiper controls horizontal one
  • Lazy
    • Fixed issue when lazy loading not always triggered on window resize
  • Minor fixes

4.1.6 - Released on February 11th, 2018

  • Fixed onTouchMoveOpposite event on touch devices

4.1.5 - Released on February 10th, 2018

  • Improved touch events support on desktop Windows devices with touch screen
  • Improved "loop fix" when slider is in the free mode
  • New noSwipingSelector parameter that can be used instead of noSwipingClass
  • New preventIntercationOnTransition parameter to prevent interaction during slice change transition
  • New .slideToLoop method to be used in loop mode
  • Fixed issue with slideChange events being fired when slide wasn't actually changed
  • Scrollbar
    • Now doesn't require to enable simulateTouch for desktops when it is draggable
  • Keyboard
    • Fixed detection statement whether a swiper is in the viewport
  • Pagination
    • Added new multiple main bullets support for dynamic bullets pagination
  • Zoom
    • Now supports Virtual Slides
  • Minor fixes

4.1.0 - Released on January 13th, 2018

  • Improved IE 10 support. But it is recommended to use proto polyfill
  • Improved touch support for Edge
  • New watchOverflow (disabled by default). When enabled Swiper will be disabled and hide navigation buttons on case there are not enough slides for sliding
  • Autoplay
    • New reverseDirection to enable autoplay in reverse direction
    • New waitForTransition parameter when autoplay will wait for wrapper transition to continue (enabled by default). Can be disabled in case of using Virtual Translate when your slider may not have transition
  • Keyboard
    • New onlyInViewport parameter (enabled by default). When enabled it will control sliders that are currently in viewport

4.0.7 - Released on November 28th, 2017

  • Fixed issue with not working correctly touchReleaseOnEdges on iOS
  • Fixed issue with not working allowSlideNext/Prev change on Breakpoints
  • Fixed wrong scrollbar dragging when using custom dragSize
  • Minor fixes

4.0.6 - Released on November 13th, 2017

  • Fixed Coverflow effect issue using with breakpoints
  • iOSEdgeSwipeDetection will also be in consideration with right-edge swipe
  • Fixed freeModeSticky behavior in RTL mode
  • Swiper now emits breakpoint event on breakpoint change
  • Minor fixes

4.0.5 - Released on November 7th, 2017

  • Fixed issue with not working noSwiping parameter
  • Parallax now considers slidesPerGroup parameter
  • Zoom: improved gestures handling
  • Pagination: fixed issues with wrong positioned dynamic-bullets when there are not enough slides
  • Fixed issues with some effects being broken with enabled breakpoints
  • Minor fixes

4.0.3 - Released on October 27th, 2017

  • Fixed Parallax opacity and scale transitions
  • Better compatability with SSR by using dummy document object
  • Fixed styles for dynamic pagination buttons in RTL mode
  • Fixed issue with last pagination button not being active with slidesPerView: 'auto'
  • Renamed build tasks: build-dev -> build:dev, build-prod -> build:prod

4.0.2 - Released on October 18th, 2017

  • Lazy loading support for Virtual slides
  • Added beforeResize event
  • Minor fixes

4.0.1 - Released on October 11th, 2017

  • Fixed issue with pagination being broken with loop mode
  • Reworked realIndex calculation ordering
  • ES-module files renamed (possible breaking change):
    • swiper.module.js -> swiper.esm.bundle.js (exported by default)
    • swiper.modular.js -> swiper.esm.js
  • Minor fixes

4.0.0 - Released on October 4th, 2017 🎉

  • New API (check Documentation)
  • Virtual Slides - new module that keeps in DOM just required amount of slides
  • Source code has been fully rewritten in ES-next syntax
  • Dist package contains additional ES-next modules:
    • swiper.module.js - swiper bundle for import Swiper from 'swiper'
    • swiper.modular.js - modular version for using Swiper with required components only
  • New scripts/build-config.js for creating custom Swiper build with required components and custom color theme
  • jQuery version of Swiper has been removed
  • Improved compatibility with server-side rendering
  • Hundreds of improvements and fixes

4.0.0-beta.4 - Released on September 20th, 2017

  • Fixed issue with draggable Scrollbar in RTL layout
  • Minor fixes

4.0.0-beta.3 - Released on September 13th, 2017

  • Dom7 update to latest version
  • Small core refactoring to get better results within tree-shaking bundles

4.0.0-beta.2 - Released on September 2nd, 2017

  • Disable a11y by default
  • Fixed issue with events sharing between multiple swipers
  • Fixed issue with resize handling after destroy
  • Few minor fixes

4.0.0-beta.1 - Released on August 30th, 2017

  • Initial 4.0.0 release

3.4.2 - Released on March 10th, 2017

  • Fixed an issue with lazy loading callbacks when swiper is destroyed
  • New onAfterResize and onBeforeResize callbacks
  • New onKeyPress callback when keyboard control is used
  • Fixed Chrome+Windows issue with not clickable links that have "title" attribute
  • Minor fixes

3.4.1 - Released on December 13th, 2016

  • Fixed Zoom for RTL
  • Improved slideToClickedSlide behavior when loop is enabled
  • Minor fixes

3.4.0 - Released on October 16th, 2016

  • Custom build available. Now you can create custom swiper build using the folowing modules: effects, lazy-load, scrollbar, controller, hashnav, history, keyboard, mousewheel, parallax, zoom, a11y. Using cli gulp custom -zoom,effects,lazy-loading
  • New zoom functionality that enables double tap and pinch to zoom slide's inner image:
    • Required slide layout for zoom:
      <div class="swiper-slide">
        <div class="swiper-zoom-container">
          <img src="path/to/image">
    • New zoom parameters:
      • zoom - enable zoom functionality
      • zoomMax - maximum image zoom multiplier, by default is 3
      • zoomMin - minimum image zoom multiplier, by default is 1
      • zoomToggle - enable/disable zoom-in by slide's double tap
    • zoomMax can be also overridden for specific slide by using data-swiper-zoom attribute
  • New swiper.enableTouchControl() and swiper.disableTouchControl() methods to enable disable touch control (it toggles onlyExternal parameter)
  • New swiper.realIndex property in addition to swiper.activeIndex that returns index of active slide considering loop
  • New History API with new history parameter. It uses history pushState to set active slide URL
  • New hashnavWatchState parameter to navigate through slides (when hashnav is enabled) by browser history or by setting directly hash on document location
  • New replaceState parameter that work in addition to hashnav or history to replace current url state with the new one instead of adding it to history
  • New methods s.unsetGrabCursor() and s.setGrabCursor() to enable/disable grab cursor
  • Draggable Scrollbar now works when simulateTouch:false
  • New normalizeSlideIndex parameter to improve work of controller (see #1766)
  • lazyLoadingInPrevNextAmount now works with slidesPerView: 'auto'
  • New passiveListeners parameter to use passive event listeners to improve scrolling performance on mobile devices. Enabled by default
  • New freeModeMomentumVelocityRatio parameter to control moment velocity
  • Now it is possible to specify autoplay delay for every (or specific) slides by using data-swiper-autoplay attribute on them
  • Lazy loading now also respects sizes responsive images attribute
  • Improved mousewheel cross browser behavior (see #1797)
  • New mousewheelEventsTarged parameter (by default 'container') where you can specify mousewheel events target
  • New onScroll event/callback that triggers when swiping/scrolling happens with mousewheel
  • New touchReleaseOnEdges parameter to release touch events on slider edge position (beginning, end) and allow for further page scrolling
  • Multirow (slidesPerColumn) support for vertical direction, which is in this case becomes multicolumn
  • paginationBulletRender now accepts swiper instance as a first argument, paginationBulletRender(index, className) -> paginationBulletRender(swiper, index, className)
  • New "swiper-slide-duplicate-active", "swiper-slide-duplicate-next", "swiper-slide-duplicate-prev" classes that will be added in loop mode to the slides representing duplicated looped slides
  • All css classes are now configurable via new parameters: lazyLoadingClass, notificationClass, containerModifierClass, paginationClickableClass, paginationModifierClass, lazyStatusLoadingClass, lazyStatusLoadedClass, lazyPreloaderClass, notificationClass, preloaderClass, zoomContainerClass, slideDuplicateActiveClass, slideDuplicateNextClass, slideDuplicatePrevClass

3.3.1 - Released on February 7th, 2016

  • New uniqueNavElements parameter. If enabled (by default) and navigation elements' parameters passed as the string (like .pagination) then Swiper will look for such elements through child elements first. Applies for pagination, prev/next buttons and scrollbar
  • New onPaginationRendered callback. Will be fired after pagination elements generated and added to DOM
  • New .reLoop() method, which combines .destroyLoop() + .createLoop() methods with additional positioning fixes. Useful to call after you have changed slidesPerView parameter, it will dynamically recreate duplicated slides required for loop
  • New .nextButton and .prevButton properties with Dom7/jQuery element with next/prev button HTML element
  • Fixed not working mousewheel control in IE 11
  • Fixed issue with lazy loading images not being recalculated after window resize
  • Fixed issues when using loop with breakpoints changing slidesPerView/Group parameters
  • Numerous minor fixes

3.3.0 - Released on January 10th, 2016

  • New 3D Flip effect. Can be enabled with `effect: 'flip' parameter
  • New types of pagination with new parameters:
    • paginationType - type of pagination. Can be 'bullets' (default) or 'fraction' or 'progress' or 'custom'
    • paginationFractionRender(swiper, currentClass, totalClass) - custom function to render "fraction" type pagination
    • paginationProgressRender(swiper, progressbarClass) - custom function to render "progress" type pagination
    • paginationCustomRender(swiper, current, total) - custom function to render "custom" type pagination
  • New lazyLoadingInPrevNextAmount parameter allows to lazy load images in specified amount of next/prev slides
  • New autoplayStopOnLast parameter (true by default) tells to autoplay should it stop on last slide or start from first slide
  • New onAutoplay(swiper) callback
  • Minor fixes

3.2.7 - Released on December 7th, 2015

  • Fixed issue with using HTMLElements for next/prevButton parameters with breakpoints
  • Fixed issue with not working Auto Height when using Controller

3.2.6 - Released on November 28th, 2015

  • Fixed issue in RTL layout using mousewheelControl
  • Fixed issue in RTL layout using Parallax

3.2.5 - Released on November 21st, 2015

  • New "Auto Height" mode when container/wrapper adapts to the height of currently active slide. Can be enabled with autoHeight: true parameter
  • Fixed issue with breakpoints in Firefox
  • Fixed issue with wrong slides position when using effects
  • Fixed issue with none-updated scroll bar after using setWrapperTranslate
  • Minor fixes

3.2.0 - Released on November 7th, 2015

  • Added responsive breakpoints support using new breakpoints parameter. Now you can specify different slidesPerView and other similar parameters for different sizes:

    slidesPerView: 5,
    spaceBetween: 50,
    breakpoints: {
      1024: {
        slidesPerView: 4,
        spaceBetween: 40
      768: {
        slidesPerView: 3,
        spaceBetween: 30
      320: {
        slidesPerView: 1,
        spaceBetween: 10
  • New callbacks: onSlideNextStart, onSlideNextEnd, onSlidePrevStart, onSlidePrevEnd

  • Added Meteor package meteor add nolimits4web:swiper

  • Fixed issue with mouse touchMove/End callbacks firing all the time

  • Fixed issue with mousewheel in Chrome

  • Minor fixes

3.1.7 - Released on October 10th, 2015

  • Fixed issue with lazy loading trying to download undefined-src images
  • Fixed lazy loading on slides using jQuery version
  • Fixed issue with slideToClickedSlide with loop and centeredSlides
  • Fixed issue with wrong slides fill when number of slides less than slidesPerView * slidesPerColumn with slidesPerColumnFill: 'row'
  • Minor fixes

3.1.5 - Released on September 28th, 2015

  • Added support for images srcset with lazy loading using data-srcset attribute
  • Fixed new Chrome errors with WebkitCSSMatrix
  • Fixed issue with slideToClickedSlide with loop and centeredSlides
  • New freeModeMinimumVelocity parameter to set minimum required touch velocity to trigger free mode momentum
  • Ability to make the Scrollbar draggable using new paramaters:
    • scrollbarDraggable - (boolean) by default is false. Allows to enable draggable scrollbar
    • scrollbarSnapOnRelease - (boolean) by default is false. Control slider snap on scrollbar release
  • Minor fixes

3.1.2 - Released on August 22nd, 2015

  • Fixed issues with loop and mousewheel when swiper stopped on last slide
  • Improved mouse wheel behavior in latest Chrome
  • Fixed issue with slidesPerView: 'auto' and enabled loop:true mode to set loopedSlides to the amount of slides by default (if not specified)
  • New mousewheelSensitivity: 1 parameter allows to tweak mouse wheel sensitivity
  • Fixed issue with updating swiper when swiping is locked (with allowSwipeToNext/allowSwipeToPrev)
  • Fixed issue with wrong calculating of "visible" slides with enabled centeredSlides
  • CSS fixes for 3D effects
  • New options to release Swiper events for swipe-to-go-back work in iOS UIWebView with two options:
    • iOSEdgeSwipeDetection (by default is false) - enable ios edge detection and release Swiper events
    • iOSEdgeSwipeThreshold (default value is 20) - area in px from left edge of screen to release events
  • Improved source maps
  • Minor fixes

3.1.0 - Released on July 14th, 2015

  • Accessibility (a11y)
    • Fixed issue with wrong buttons labels
    • Added support for pagination bullets
    • New accessibility parameter for pagination label paginationBulletMessage: 'Go to slide {{index}}'
  • Controller
    • New parameter controlBy which can be 'slide' (by default) or 'container'. Defines a way how to control another slider: slide by slide or depending on all slides/container (like before)
    • Now controllers in controlBy: 'slide' (default) mode will respect grid of each other
  • Pagination
    • New paginationElement parameter defines which HTML tag will be used to represent single pagination bullet. By default it is span
  • New roundLengths parameter (by default is false) to round values of slides width and height to prevent blurry texts on usual resolution screens
  • New slidesOffsetBefore: 0 and slidesOffsetAfter: 0 (in px) parameters to add additional slide offset within a container
  • Correct calculation for slides size when use CSS padding on .swiper-container
  • Fixed issue with not working onResize handler when swipes are locked
  • Fixed issue with "jumping" effect when you disable onlyExternal during touchmove
  • Fixed issue when slider goes to previous slide from last slide after window resize
  • Added new swiper.jquery.umd.js version for the environment where both Swiper and jQuery included as modules
  • Minor fixes

3.0.8 - Released on June 14th, 2015

  • Fixed issue with wrong active index and callbacks in Fade effect
  • New mousewheel parameters:
    • mousewheelReleaseOnEdges - will release mousewheel event and allow page scrolling when swiper is on edge positions (in the beginning or in the end)
    • mousewheelInvert - option to invert mousewheel slides
  • Fixed issue with lazy loading in next slides when slidesPerView > 1
  • Fixed issue with resistance bounds when swiping is locked
  • Fixed issue with wrong slides order in multi-row mode (when slidesPerColumn > 1)
  • Fixed issue with not working keyboard control in RTL mode
  • Fixed issue with nested fade-effect swipers
  • Minor fixes

3.0.7 - Released on April 25th, 2015

  • New width and height parameters to force Swiper size, useful when it is hidden on intialization
  • Better support for "Scroll Container". So now Swiper can be used as a scroll container with one single "scrollable"/"swipeable" slide
  • Added lazy loading for background images with data-background attribute on required elements
  • New "Sticky Free Mode" (with freeModeSticky parameter) which will snap to slides positions in free mode
  • Fixed issues with lazy loading
  • Fixed slide removing when loop mode is enabled
  • Fixed issues with Autoplay and Fade effect
  • Minor fixes

3.0.6 - Released on March 27th, 2015

  • Fixed sometimes wrong slides position when using "Fade" effect
  • .destroy(deleteInstance, cleanupStyles) method now has second cleanupStyles argument, when passed - all custom styles will be removed from slides, wrapper and container. Useful if you need to destroy Swiper and to init again with new options or in different direction
  • Minor fixes

3.0.5 - Released on March 21st, 2015

  • New Keyboard accessibility module to provide focusable navigation buttons and basic ARIA for screen readers with new parameters:
    • a11y: false - enable accessibility
    • prevSlideMessage: 'Previous slide' - message for screen readers for previous button
    • nextSlideMessage: 'Next slide' - message for screen readers for next button
    • firstSlideMessage: 'This is the first slide' - message for screen readers for previous button when swiper is on first slide
    • lastSlideMessage: 'This is the last slide' - message for screen readers for next button when swiper is on last slide
  • New Emitter module. It allows to work with callbacks like with events, even adding them after initialization with new methods:
    • .on(event, handler) - add event/callback
    • .off(event, handler) - remove this event/callback
    • .once(event, handler) - add event/callback that will be executed only once
  • Plugins API is back. It allows to write custom Swiper plugins
  • Better support for browser that don't support flexbox layout
  • New parameter setWrapperSize (be default it is false) to provide better compatibility with browser without flexbox support. Enabled this option and plugin will set width/height on swiper wrapper equal to total size of all slides
  • New virtualTranslate parameter. When it is enabled swiper will be operated as usual except it will not move. Useful when you may need to create custom slide transition
  • Added support for multiple Pagination containers
  • Fixed onLazyImage... callbacks
  • Fixed issue with not accessible links inside of Slides on Android < 4.4
  • Fixed pagination bullets behavior in loop mode with specified slidesPerGroup
  • Fixed issues with clicks on IE 10+ touch devices
  • Fixed issues with Coverflow support on IE 10+
  • Hashnav now will update document hash after transition to prevent browsers UI lags, not in the beginning like before
  • Super basic support for IE 9 with swiper.jquery version. No animation and transitions, but basic stuff like switching slides/pagination/scrollbars works

3.0.4 - Released on March 6th, 2015

  • New Images Lazy Load component
    • With new parameters lazyLoading, lazyLoadingInPrevNext, lazyLoadingOnTransitionStart (all disabled by default)
    • With new callbacks onLazyImageLoad and onLazyImageReady
  • updateOnImages ready split into 2 parameters:
    • preloadImages (by default is true) - to preload all images on swiper init
    • updateOnImages (by default is true) - update swiper when all images loaded
  • Fixed issues with touchmove on focused form elements
  • New onObserverUpdate callback function to be called after updates by observer
  • Fixed issue with not working inputs with keyboard control for jQuery version
  • New paginationBulletRender parameter that accepts function which allow custom pagination elements layout
  • Hash Navigation will run callback depending on runCallbacksOnInit parameter
  • watchVisibility parameter renamed to watchSlidesVisibility

3.0.3 - Released on March 1st, 2015

  • Fixed issue with not firing onSlideChangeEnd callback after calling .slideTo with runCallbacks=false
  • Fixed values of isBeginning/isEnd when there is only one slide
  • New crossFade option for fade effect
  • Improved support for devices with both touch and mouse inputs, not yet on IE
  • Fixed not correctly working mousewheel and keyobard control in swiper.jquery version
  • New parallax module for transitions with parallax effects on internal elements
  • Improved .update and .onResize methods
  • Minor fixes

3.0.2 - Released on February 22nd, 2015

  • Fixed issue with keyboard events not cleaned up with Swiper.destroy
  • Encoded inline SVG images for IE support
  • New callbacks
    • onInit (swiper)
    • onTouchMoveOpposite (swiper, e)
  • Fixed free mode momentum in RTL layout
  • .update method improved to fully cover what onResize do for full and correct update
  • Exposed swiper.touches object with the following properties: startX, startY, currentX, currentY, diff
  • New methods to remove slides
    • .removeSlide(index) or .removeSlide([indexes]) - to remove selected slides
    • .removeAllSlides() - to remove all slides

3.0.1 - Released on February 13th, 2015

  • Fixed issue with navigation buttons in Firefox in loop mode
  • Fixed issue with image dragging in IE 10+

3.0.0 - Released on February 11th, 2015

  • Initial release of all new Swiper 3
  • Removed features
    • Dropped support for old browsers. Now it is compatible with:
      • iOS 7+
      • Android 4+ (multirow mode only for Android 4.4+)
      • Latest Chrome, Safari, Firefox and Opera desktop browsers
      • WP 8+, IE 10+ (3D effects may not work correctly on IE because of wrong nested 3D transform support)
    • Scroll Container. Removed in favor of pure CSS overflow: auto with -webkit-overflow-scrolling: touch
  • New features
    • Swiper now uses modern flexbox layout, which by itself give more features and advantages
    • Such Swiper 2.x plugins as Hash Navigation, Smooth Progress, 3D Flow and Scrollbar are now incorporated into Swiper 3.x core
    • Full RTL support
    • Built-in navigation buttons/arrows
    • Controller. Now one Swiper could be controlled (or control itself) by another Swiper
    • Multi row slides layout with slidesPerColumn option
    • Better support for nested Swipers, now it is possible to use same-direction nested Swipers, like horizontal in horizontal
    • Space between slides
    • New transition effects: 3D Coverflow, 3D Cube and Fade transitions
    • Slides are border-box now, so it is possible to use borders and paddings directly on slides
    • Auto layout mode (slidesPerView: 'auto') now gives more freedom, you can even specify slides sizes in % and use margins on them
    • Mutation Observers. If enabled, Swiper will watch for changes in Dom and update its layout automatically
    • Better clicks prevention during swiping
  • Many of API methods, parameters and callbacks are changed
  • Added a bit lightweight jQuery/Zepto version of Swiper that can be used if you use jQuery/Zepto in your project