Showing preview only (1,256K chars total). Download the full file or copy to clipboard to get everything.
Repository: nolimits4web/swiper
Branch: master
Commit: daa64671f4c8
Files: 309
Total size: 1.1 MB
Directory structure:
gitextract_z4g623hj/
├── .all-contributorsrc
├── .browserslistrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.cjs
├── .gitattributes
├── .github/
│ ├── CONTRIBUTING.md
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── config.yml
│ │ ├── feature-request.yml
│ │ ├── swiper_core_issue.yml
│ │ ├── swiper_element_issue.yml
│ │ ├── swiper_react_issue.yml
│ │ └── vue_issue.yml
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ ├── lock.yml
│ ├── stale.yml
│ └── workflows/
│ ├── build.yml
│ ├── formatting.yml
│ ├── issue-close-require.yml
│ ├── issue-labeled.yml
│ └── lint.yml
├── .gitignore
├── .lintstagedrc
├── .npmignore
├── .prettierignore
├── .prettierrc
├── .vscode/
│ └── settings.json
├── BACKERS.md
├── CHANGELOG.md
├── CODE_CONTRIBUTORS.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── TODO.md
├── babel.config.json
├── demos/
│ ├── 010-default.html
│ ├── 020-navigation.html
│ ├── 030-pagination.html
│ ├── 040-pagination-dynamic.html
│ ├── 050-pagination-progress.html
│ ├── 060-pagination-fraction.html
│ ├── 070-pagination-custom.html
│ ├── 080-scrollbar.html
│ ├── 090-vertical.html
│ ├── 100-space-between.html
│ ├── 110-slides-per-view.html
│ ├── 120-slides-per-view-auto.html
│ ├── 125-snap-to-slide-edge.html
│ ├── 130-centered.html
│ ├── 140-centered-auto.html
│ ├── 145-css-mode.html
│ ├── 150-freemode.html
│ ├── 160-scroll-container.html
│ ├── 170-slides-per-column.html
│ ├── 180-nested.html
│ ├── 190-grab-cursor.html
│ ├── 200-infinite-loop.html
│ ├── 210-infinite-loop-with-slides-per-group.html
│ ├── 211-slides-per-group-skip.html
│ ├── 220-effect-fade.html
│ ├── 230-effect-cube.html
│ ├── 240-effect-coverflow.html
│ ├── 250-effect-flip.html
│ ├── 255-effect-cards.html
│ ├── 257-effect-creative.html
│ ├── 260-keyboard-control.html
│ ├── 270-mousewheel-control.html
│ ├── 280-autoplay.html
│ ├── 290-dynamic-slides.html
│ ├── 300-thumbs-gallery.html
│ ├── 310-thumbs-gallery-loop.html
│ ├── 320-multiple-swipers.html
│ ├── 330-hash-navigation.html
│ ├── 340-history.html
│ ├── 350-rtl.html
│ ├── 360-parallax.html
│ ├── 370-lazy-load-images.html
│ ├── 380-responsive-breakpoints.html
│ ├── 381-ratio-breakpoints.html
│ ├── 390-autoheight.html
│ ├── 400-zoom.html
│ ├── 410-virtual-slides.html
│ ├── 420-custom-plugin.html
│ ├── 430-slideable-menu.html
│ ├── 440-change-direction.html
│ ├── 450-watchSlidesVisibility.html
│ ├── index.html
│ └── vite.config.js
├── package.json
├── playground/
│ ├── core/
│ │ ├── index.html
│ │ └── vite.config.js
│ ├── element/
│ │ ├── index.html
│ │ └── vite.config.js
│ ├── react/
│ │ ├── App.jsx
│ │ ├── index.html
│ │ ├── main.js
│ │ └── vite.config.js
│ └── vue/
│ ├── App.vue
│ ├── index.html
│ ├── innerComp.vue
│ ├── main.js
│ └── vite.config.js
├── scripts/
│ ├── build-config.js
│ ├── build-modules.js
│ ├── build-sponsors.js
│ ├── build-styles.js
│ ├── build-types.js
│ ├── build.js
│ ├── release.js
│ ├── utils/
│ │ ├── autoprefixer.js
│ │ ├── banner.js
│ │ ├── get-element-styles.js
│ │ ├── helper.js
│ │ ├── isProd.js
│ │ ├── less.js
│ │ ├── minify-css.js
│ │ ├── minify.js
│ │ ├── output-dir.js
│ │ └── unwrap-css.js
│ └── watch.js
└── src/
├── components-shared/
│ ├── get-changed-params.mjs
│ ├── get-element-params.mjs
│ ├── get-params.mjs
│ ├── mount-swiper.mjs
│ ├── params-list.mjs
│ ├── update-on-virtual-data.mjs
│ ├── update-swiper.mjs
│ └── utils.mjs
├── copy/
│ ├── LICENSE
│ ├── README.md
│ └── package.json
├── core/
│ ├── breakpoints/
│ │ ├── getBreakpoint.mjs
│ │ ├── index.mjs
│ │ └── setBreakpoint.mjs
│ ├── check-overflow/
│ │ └── index.mjs
│ ├── classes/
│ │ ├── addClasses.mjs
│ │ ├── index.mjs
│ │ └── removeClasses.mjs
│ ├── core.mjs
│ ├── defaults.mjs
│ ├── events/
│ │ ├── index.mjs
│ │ ├── onClick.mjs
│ │ ├── onDocumentTouchStart.mjs
│ │ ├── onLoad.mjs
│ │ ├── onResize.mjs
│ │ ├── onScroll.mjs
│ │ ├── onTouchEnd.mjs
│ │ ├── onTouchMove.mjs
│ │ └── onTouchStart.mjs
│ ├── events-emitter.mjs
│ ├── grab-cursor/
│ │ ├── index.mjs
│ │ ├── setGrabCursor.mjs
│ │ └── unsetGrabCursor.mjs
│ ├── loop/
│ │ ├── index.mjs
│ │ ├── loopCreate.mjs
│ │ ├── loopDestroy.mjs
│ │ └── loopFix.mjs
│ ├── moduleExtendParams.mjs
│ ├── modules/
│ │ ├── observer/
│ │ │ └── observer.mjs
│ │ └── resize/
│ │ └── resize.mjs
│ ├── slide/
│ │ ├── index.mjs
│ │ ├── slideNext.mjs
│ │ ├── slidePrev.mjs
│ │ ├── slideReset.mjs
│ │ ├── slideTo.mjs
│ │ ├── slideToClickedSlide.mjs
│ │ ├── slideToClosest.mjs
│ │ └── slideToLoop.mjs
│ ├── transition/
│ │ ├── index.mjs
│ │ ├── setTransition.mjs
│ │ ├── transitionEmit.mjs
│ │ ├── transitionEnd.mjs
│ │ └── transitionStart.mjs
│ ├── translate/
│ │ ├── getTranslate.mjs
│ │ ├── index.mjs
│ │ ├── maxTranslate.mjs
│ │ ├── minTranslate.mjs
│ │ ├── setTranslate.mjs
│ │ └── translateTo.mjs
│ └── update/
│ ├── index.mjs
│ ├── updateActiveIndex.mjs
│ ├── updateAutoHeight.mjs
│ ├── updateClickedSlide.mjs
│ ├── updateProgress.mjs
│ ├── updateSize.mjs
│ ├── updateSlides.mjs
│ ├── updateSlidesClasses.mjs
│ ├── updateSlidesOffset.mjs
│ └── updateSlidesProgress.mjs
├── modules/
│ ├── a11y/
│ │ ├── a11y.css
│ │ └── a11y.mjs
│ ├── autoplay/
│ │ ├── autoplay.css
│ │ └── autoplay.mjs
│ ├── controller/
│ │ ├── controller.css
│ │ └── controller.mjs
│ ├── effect-cards/
│ │ ├── effect-cards.css
│ │ └── effect-cards.mjs
│ ├── effect-coverflow/
│ │ ├── effect-coverflow.css
│ │ └── effect-coverflow.mjs
│ ├── effect-creative/
│ │ ├── effect-creative.css
│ │ └── effect-creative.mjs
│ ├── effect-cube/
│ │ ├── effect-cube.css
│ │ └── effect-cube.mjs
│ ├── effect-fade/
│ │ ├── effect-fade.css
│ │ └── effect-fade.mjs
│ ├── effect-flip/
│ │ ├── effect-flip.css
│ │ └── effect-flip.mjs
│ ├── free-mode/
│ │ ├── free-mode.css
│ │ └── free-mode.mjs
│ ├── grid/
│ │ ├── grid.css
│ │ └── grid.mjs
│ ├── hash-navigation/
│ │ ├── hash-navigation.css
│ │ └── hash-navigation.mjs
│ ├── history/
│ │ ├── history.css
│ │ └── history.mjs
│ ├── keyboard/
│ │ ├── keyboard.css
│ │ └── keyboard.mjs
│ ├── manipulation/
│ │ ├── manipulation.css
│ │ ├── manipulation.mjs
│ │ └── methods/
│ │ ├── addSlide.mjs
│ │ ├── appendSlide.mjs
│ │ ├── prependSlide.mjs
│ │ ├── removeAllSlides.mjs
│ │ └── removeSlide.mjs
│ ├── mousewheel/
│ │ ├── mousewheel.css
│ │ └── mousewheel.mjs
│ ├── navigation/
│ │ ├── navigation.css
│ │ └── navigation.mjs
│ ├── pagination/
│ │ ├── pagination.css
│ │ └── pagination.mjs
│ ├── parallax/
│ │ ├── parallax.css
│ │ └── parallax.mjs
│ ├── scrollbar/
│ │ ├── scrollbar.css
│ │ └── scrollbar.mjs
│ ├── thumbs/
│ │ ├── thumbs.css
│ │ └── thumbs.mjs
│ ├── virtual/
│ │ ├── virtual.css
│ │ └── virtual.mjs
│ └── zoom/
│ ├── zoom.css
│ └── zoom.mjs
├── react/
│ ├── context.mjs
│ ├── get-children.mjs
│ ├── swiper-slide.mjs
│ ├── swiper.mjs
│ ├── use-isomorphic-layout-effect.mjs
│ └── virtual.mjs
├── shared/
│ ├── classes-to-selector.mjs
│ ├── classes-to-tokens.mjs
│ ├── create-element-if-not-defined.mjs
│ ├── create-shadow.mjs
│ ├── effect-init.mjs
│ ├── effect-target.mjs
│ ├── effect-virtual-transition-end.mjs
│ ├── get-browser.mjs
│ ├── get-device.mjs
│ ├── get-support.mjs
│ ├── process-lazy-preloader.mjs
│ └── utils.mjs
├── swiper-bundle.mjs
├── swiper-effect-utils.d.ts
├── swiper-effect-utils.mjs
├── swiper-element.d.ts
├── swiper-element.mjs
├── swiper-react.d.ts
├── swiper-react.mjs
├── swiper-vars.less
├── swiper-vue.d.ts
├── swiper-vue.mjs
├── swiper.css
├── swiper.d.ts
├── swiper.mjs
├── types/
│ ├── index.d.ts
│ ├── modules/
│ │ ├── a11y.d.ts
│ │ ├── autoplay.d.ts
│ │ ├── controller.d.ts
│ │ ├── effect-cards.d.ts
│ │ ├── effect-coverflow.d.ts
│ │ ├── effect-creative.d.ts
│ │ ├── effect-cube.d.ts
│ │ ├── effect-fade.d.ts
│ │ ├── effect-flip.d.ts
│ │ ├── free-mode.d.ts
│ │ ├── grid.d.ts
│ │ ├── hash-navigation.d.ts
│ │ ├── history.d.ts
│ │ ├── index.d.ts
│ │ ├── keyboard.d.ts
│ │ ├── manipulation.d.ts
│ │ ├── mousewheel.d.ts
│ │ ├── navigation.d.ts
│ │ ├── pagination.d.ts
│ │ ├── parallax.d.ts
│ │ ├── public-api.d.ts
│ │ ├── scrollbar.d.ts
│ │ ├── thumbs.d.ts
│ │ ├── virtual.d.ts
│ │ └── zoom.d.ts
│ ├── shared.d.ts
│ ├── swiper-class.d.ts
│ ├── swiper-events.d.ts
│ └── swiper-options.d.ts
└── vue/
├── context.mjs
├── get-children.mjs
├── swiper-slide.mjs
├── swiper.mjs
└── virtual.mjs
================================================
FILE CONTENTS
================================================
================================================
FILE: .all-contributorsrc
================================================
{
"projectName": "swiper",
"projectOwner": "nolimits4web",
"repoType": "github",
"repoHost": "https://github.com",
"files": [
"CODE_CONTRIBUTORS.md"
],
"imageSize": 100,
"commit": false,
"contributors": [
{
"login": "nolimits4web",
"name": "Vladimir Kharlampidi",
"avatar_url": "https://avatars.githubusercontent.com/u/999588?v=4",
"profile": "https://github.com/nolimits4web",
"contributions": [
"code",
"maintenance",
"infra",
"question",
"doc",
"ideas"
]
},
{
"login": "vltansky",
"name": "Vlad Tansky",
"avatar_url": "https://avatars.githubusercontent.com/u/5851280?v=4",
"profile": "https://github.com/vltansky",
"contributions": [
"code"
]
},
{
"login": "DAnn2012",
"name": "DAnn2012",
"avatar_url": "https://avatars.githubusercontent.com/u/1197819?v=4",
"profile": "https://github.com/DAnn2012",
"contributions": [
"code"
]
},
{
"login": "stephanebachelier",
"name": "Stéphane Bachelier",
"avatar_url": "https://avatars.githubusercontent.com/u/172615?v=4",
"profile": "https://github.com/stephanebachelier",
"contributions": [
"code"
]
},
{
"login": "robpop",
"name": "Robert F. Popeleski",
"avatar_url": "https://avatars.githubusercontent.com/u/13895584?v=4",
"profile": "https://github.com/robpop",
"contributions": [
"code"
]
},
{
"login": "ygj6",
"name": "yuangongji",
"avatar_url": "https://avatars.githubusercontent.com/u/7699524?v=4",
"profile": "https://github.com/ygj6",
"contributions": [
"code"
]
},
{
"login": "imjohansunden",
"name": "Johan Sundén",
"avatar_url": "https://avatars.githubusercontent.com/u/19605741?v=4",
"profile": "https://github.com/imjohansunden",
"contributions": [
"code"
]
},
{
"login": "netcitylife",
"name": "Dmitry",
"avatar_url": "https://avatars.githubusercontent.com/u/2089893?v=4",
"profile": "https://github.com/netcitylife",
"contributions": [
"code"
]
},
{
"login": "andyburke",
"name": "Andy Burke",
"avatar_url": "https://avatars.githubusercontent.com/u/273857?v=4",
"profile": "https://github.com/andyburke",
"contributions": [
"code"
]
},
{
"login": "tzvikaf",
"name": "Tzvika Farber",
"avatar_url": "https://avatars.githubusercontent.com/u/13975372?v=4",
"profile": "https://github.com/tzvikaf",
"contributions": [
"code"
]
},
{
"login": "callumacrae",
"name": "Callum Macrae",
"avatar_url": "https://avatars.githubusercontent.com/u/472830?v=4",
"profile": "http://macr.ae/",
"contributions": [
"code"
]
},
{
"login": "jasonlav",
"name": "jasonlav",
"avatar_url": "https://avatars.githubusercontent.com/u/7593912?v=4",
"profile": "https://github.com/jasonlav",
"contributions": [
"code"
]
},
{
"login": "shashank1010",
"name": "Shashank Agarwal",
"avatar_url": "https://avatars.githubusercontent.com/u/3106368?v=4",
"profile": "https://plus.google.com/u/0/114487431636655655146",
"contributions": [
"code"
]
},
{
"login": "kochizufan",
"name": "Kohei Otsuka",
"avatar_url": "https://avatars.githubusercontent.com/u/2221431?v=4",
"profile": "https://github.com/kochizufan",
"contributions": [
"code"
]
},
{
"login": "Triloworld",
"name": "Patryk Padus",
"avatar_url": "https://avatars.githubusercontent.com/u/2671726?v=4",
"profile": "https://www.webo.agency/",
"contributions": [
"code"
]
},
{
"login": "icek",
"name": "Grzegorz Michlicki",
"avatar_url": "https://avatars.githubusercontent.com/u/150243?v=4",
"profile": "http://fatcode.pl/",
"contributions": [
"code"
]
},
{
"login": "justingrant",
"name": "Justin Grant",
"avatar_url": "https://avatars.githubusercontent.com/u/277214?v=4",
"profile": "http://cantaloupesys.com/",
"contributions": [
"code"
]
},
{
"login": "OrbintSoft",
"name": "Stefano Balzarotti",
"avatar_url": "https://avatars.githubusercontent.com/u/6378748?v=4",
"profile": "https://github.com/OrbintSoft",
"contributions": [
"code"
]
},
{
"login": "fenyagg",
"name": "Dmitry Chernyshev",
"avatar_url": "https://avatars.githubusercontent.com/u/2457209?v=4",
"profile": "https://github.com/fenyagg",
"contributions": [
"code"
]
},
{
"login": "ghaiat",
"name": "Gilles Haiat",
"avatar_url": "https://avatars.githubusercontent.com/u/5446909?v=4",
"profile": "http://www.yoobic.com/",
"contributions": [
"code"
]
},
{
"login": "weiz18",
"name": "weiz18",
"avatar_url": "https://avatars.githubusercontent.com/u/42139732?v=4",
"profile": "https://github.com/weiz18",
"contributions": [
"code"
]
},
{
"login": "kireerik",
"name": "Erik Engi",
"avatar_url": "https://avatars.githubusercontent.com/u/3628043?v=4",
"profile": "https://oengi.com/",
"contributions": [
"code"
]
},
{
"login": "GalCohen",
"name": "Gal Cohen",
"avatar_url": "https://avatars.githubusercontent.com/u/1293368?v=4",
"profile": "https://github.com/GalCohen",
"contributions": [
"code"
]
},
{
"login": "mrtnbroder",
"name": "Martin Broder",
"avatar_url": "https://avatars.githubusercontent.com/u/1118826?v=4",
"profile": "https://martinbroder.com/",
"contributions": [
"code"
]
},
{
"login": "Rikk",
"name": "Ricardo",
"avatar_url": "https://avatars.githubusercontent.com/u/2916485?v=4",
"profile": "https://github.com/Rikk",
"contributions": [
"code"
]
},
{
"login": "roman01la",
"name": "Roman Liutikov",
"avatar_url": "https://avatars.githubusercontent.com/u/1355501?v=4",
"profile": "https://romanliutikov.com/",
"contributions": [
"code"
]
},
{
"login": "baxang",
"name": "Sanghyun Park",
"avatar_url": "https://avatars.githubusercontent.com/u/196302?v=4",
"profile": "http://baxang.com/",
"contributions": [
"code"
]
},
{
"login": "girliemac",
"name": "Tomomi ❤ Imura",
"avatar_url": "https://avatars.githubusercontent.com/u/107763?v=4",
"profile": "https://girliemac.com/",
"contributions": [
"code"
]
},
{
"login": "jenemde",
"name": "jenemde",
"avatar_url": "https://avatars.githubusercontent.com/u/53625399?v=4",
"profile": "https://github.com/jenemde",
"contributions": [
"code",
"a11y"
]
},
{
"login": "navyxie",
"name": "navy",
"avatar_url": "https://avatars.githubusercontent.com/u/1982716?v=4",
"profile": "http://www.navyxie.com/",
"contributions": [
"code"
]
},
{
"login": "1sergiogarciap",
"name": "1sergiogarciap",
"avatar_url": "https://avatars.githubusercontent.com/u/64509552?v=4",
"profile": "https://github.com/1sergiogarciap",
"contributions": [
"code"
]
},
{
"login": "azaslavsky",
"name": "Alex Zaslavsky",
"avatar_url": "https://avatars.githubusercontent.com/u/3709945?v=4",
"profile": "https://github.com/azaslavsky",
"contributions": [
"code"
]
},
{
"login": "andreybs11",
"name": "Andrey Bolaños Sandoval",
"avatar_url": "https://avatars.githubusercontent.com/u/1462803?v=4",
"profile": "https://github.com/andreybs11",
"contributions": [
"code"
]
},
{
"login": "exodusanto",
"name": "Antonio Dal Sie",
"avatar_url": "https://avatars.githubusercontent.com/u/13484843?v=4",
"profile": "https://antoniodalsie.com/",
"contributions": [
"code"
]
},
{
"login": "tremby",
"name": "Bart Nagel",
"avatar_url": "https://avatars.githubusercontent.com/u/199635?v=4",
"profile": "https://bartnagel.ca/",
"contributions": [
"code"
]
},
{
"login": "Garbanas",
"name": "Christoph Dörfel",
"avatar_url": "https://avatars.githubusercontent.com/u/2815411?v=4",
"profile": "https://github.com/Garbanas",
"contributions": [
"code"
]
},
{
"login": "DKvistgaard",
"name": "Daniel Kvistgaard",
"avatar_url": "https://avatars.githubusercontent.com/u/1705203?v=4",
"profile": "https://github.com/DKvistgaard",
"contributions": [
"code"
]
},
{
"login": "danijelGombac",
"name": "Danijel Gombač",
"avatar_url": "https://avatars.githubusercontent.com/u/3872726?v=4",
"profile": "http://www.gombac.si/",
"contributions": [
"code"
]
},
{
"login": "dy",
"name": "Dmitry IV.",
"avatar_url": "https://avatars.githubusercontent.com/u/300067?v=4",
"profile": "https://twitter.com/dimayv",
"contributions": [
"code"
]
},
{
"login": "eklingen",
"name": "Elco Klingen",
"avatar_url": "https://avatars.githubusercontent.com/u/716683?v=4",
"profile": "https://elcoklingen.nl/",
"contributions": [
"code"
]
},
{
"login": "OxyDesign",
"name": "Nicolas Escoffier",
"avatar_url": "https://avatars.githubusercontent.com/u/2378180?v=4",
"profile": "http://www.oxydesign.fr/",
"contributions": [
"code"
]
},
{
"login": "Evidica",
"name": "Patrick Mallahan",
"avatar_url": "https://avatars.githubusercontent.com/u/6105827?v=4",
"profile": "https://github.com/Evidica",
"contributions": [
"code"
]
},
{
"login": "zhiru",
"name": "Felipe",
"avatar_url": "https://avatars.githubusercontent.com/u/4226997?v=4",
"profile": "https://aireset.com.br/",
"contributions": [
"code"
]
},
{
"login": "garrettmaring",
"name": "Garrett Maring",
"avatar_url": "https://avatars.githubusercontent.com/u/8270120?v=4",
"profile": "https://www.linkedin.com/in/garrettmaringdev",
"contributions": [
"code"
]
},
{
"login": "joejoseph00",
"name": "Joseph Olstad",
"avatar_url": "https://avatars.githubusercontent.com/u/1028526?v=4",
"profile": "https://github.com/joejoseph00",
"contributions": [
"code"
]
},
{
"login": "kostyabushuev",
"name": "Kostya Bushuev",
"avatar_url": "https://avatars.githubusercontent.com/u/31274471?v=4",
"profile": "https://github.com/kostyabushuev",
"contributions": [
"code"
]
},
{
"login": "marwej",
"name": "Marcus Wejderot",
"avatar_url": "https://avatars.githubusercontent.com/u/5296840?v=4",
"profile": "https://mevisio.com/",
"contributions": [
"code"
]
},
{
"login": "cfxd",
"name": "CFX",
"avatar_url": "https://avatars.githubusercontent.com/u/1671933?v=4",
"profile": "https://github.com/cfxd",
"contributions": [
"code"
]
},
{
"login": "Mrliuchanghao",
"name": "HoH-World",
"avatar_url": "https://avatars.githubusercontent.com/u/30208835?v=4",
"profile": "https://github.com/Mrliuchanghao",
"contributions": [
"code"
]
},
{
"login": "websirnik",
"name": "Nikita Korotaev",
"avatar_url": "https://avatars.githubusercontent.com/u/282871?v=4",
"profile": "https://relayto.com/",
"contributions": [
"code"
]
},
{
"login": "katerlouis",
"name": "René Eschke",
"avatar_url": "https://avatars.githubusercontent.com/u/1983382?v=4",
"profile": "https://github.com/katerlouis",
"contributions": [
"code"
]
},
{
"login": "ryanzec",
"name": "Ryan Zec",
"avatar_url": "https://avatars.githubusercontent.com/u/444206?v=4",
"profile": "http://www.ryanzec.com/",
"contributions": [
"code"
]
},
{
"login": "SablinSergey",
"name": "Sergey Sablin",
"avatar_url": "https://avatars.githubusercontent.com/u/12068136?v=4",
"profile": "https://github.com/SablinSergey",
"contributions": [
"code"
]
},
{
"login": "tobiasstrebitzer",
"name": "Tobias Strebitzer",
"avatar_url": "https://avatars.githubusercontent.com/u/222509?v=4",
"profile": "http://www.magloft.com/",
"contributions": [
"code"
]
},
{
"login": "X4arms",
"name": "X4arms",
"avatar_url": "https://avatars.githubusercontent.com/u/1517616?v=4",
"profile": "https://github.com/X4arms",
"contributions": [
"code"
]
},
{
"login": "a-barbieri",
"name": "Alessandro",
"avatar_url": "https://avatars.githubusercontent.com/u/1528468?v=4",
"profile": "http://lacolonia.studio/",
"contributions": [
"code"
]
},
{
"login": "amnausman",
"name": "amnausman",
"avatar_url": "https://avatars.githubusercontent.com/u/20682461?v=4",
"profile": "https://github.com/amnausman",
"contributions": [
"code"
]
},
{
"login": "crutch12",
"name": "Konstantin Barabanov",
"avatar_url": "https://avatars.githubusercontent.com/u/19373212?v=4",
"profile": "https://github.com/crutch12",
"contributions": [
"code"
]
},
{
"login": "michaelWoe",
"name": "michaelWoe",
"avatar_url": "https://avatars.githubusercontent.com/u/49037485?v=4",
"profile": "https://github.com/michaelWoe",
"contributions": [
"code"
]
},
{
"login": "timothyhague",
"name": "timothyhague",
"avatar_url": "https://avatars.githubusercontent.com/u/9559835?v=4",
"profile": "https://github.com/timothyhague",
"contributions": [
"code"
]
},
{
"login": "hsxfjames",
"name": "Yaojun Zheng",
"avatar_url": "https://avatars.githubusercontent.com/u/8982188?v=4",
"profile": "http://www.cnblogs.com/blackstorm",
"contributions": [
"code"
]
},
{
"login": "raahede",
"name": "Frej Raahede Nielsen",
"avatar_url": "https://avatars.githubusercontent.com/u/391833?v=4",
"profile": "https://github.com/raahede",
"contributions": [
"code"
]
},
{
"login": "mzkmzk",
"name": "404_K",
"avatar_url": "https://avatars.githubusercontent.com/u/4627170?v=4",
"profile": "https://github.com/mzkmzk",
"contributions": [
"code"
]
},
{
"login": "voxtex",
"name": "Adam",
"avatar_url": "https://avatars.githubusercontent.com/u/735455?v=4",
"profile": "https://github.com/voxtex",
"contributions": [
"code"
]
},
{
"login": "promoinvideo",
"name": "Alberto Cobre",
"avatar_url": "https://avatars.githubusercontent.com/u/10633232?v=4",
"profile": "https://github.com/promoinvideo",
"contributions": [
"code"
]
},
{
"login": "alejandroiglesias",
"name": "Alejandro García Iglesias",
"avatar_url": "https://avatars.githubusercontent.com/u/480640?v=4",
"profile": "https://alejandroiglesias.github.io/cv/",
"contributions": [
"code"
]
},
{
"login": "anneke",
"name": "Anneke Sinnema",
"avatar_url": "https://avatars.githubusercontent.com/u/7202272?v=4",
"profile": "https://annekesinnema.nl/",
"contributions": [
"code"
]
},
{
"login": "kosminen",
"name": "Anssi Hautamäki",
"avatar_url": "https://avatars.githubusercontent.com/u/1532140?v=4",
"profile": "https://github.com/kosminen",
"contributions": [
"code"
]
},
{
"login": "anteprimorac",
"name": "Ante Primorac",
"avatar_url": "https://avatars.githubusercontent.com/u/972083?v=4",
"profile": "http://anteprimorac.com.hr/",
"contributions": [
"code"
]
},
{
"login": "hanoii",
"name": "Ariel Barreiro",
"avatar_url": "https://avatars.githubusercontent.com/u/677879?v=4",
"profile": "https://github.com/hanoii",
"contributions": [
"code"
]
},
{
"login": "arthurpf",
"name": "Arthur Franco",
"avatar_url": "https://avatars.githubusercontent.com/u/2388720?v=4",
"profile": "https://arthurpf.github.io/",
"contributions": [
"code"
]
},
{
"login": "austinknight",
"name": "Austin Knight",
"avatar_url": "https://avatars.githubusercontent.com/u/1007248?v=4",
"profile": "http://www.austinknight.net/",
"contributions": [
"code"
]
},
{
"login": "justb81",
"name": "Bastian Rang",
"avatar_url": "https://avatars.githubusercontent.com/u/3680539?v=4",
"profile": "https://github.com/justb81",
"contributions": [
"code"
]
},
{
"login": "bitdeli-chef",
"name": "Bitdeli Chef",
"avatar_url": "https://avatars.githubusercontent.com/u/3092978?v=4",
"profile": "https://bitdeli.com/free",
"contributions": [
"code"
]
},
{
"login": "Brightcells",
"name": "Kimi.Huang",
"avatar_url": "https://avatars.githubusercontent.com/u/5810063?v=4",
"profile": "https://pypi.org/user/Hackathon/",
"contributions": [
"code"
]
},
{
"login": "brunolm",
"name": "BrunoLM",
"avatar_url": "https://avatars.githubusercontent.com/u/706078?v=4",
"profile": "https://brunolm.com/blog",
"contributions": [
"code"
]
},
{
"login": "Chepheus",
"name": "Cepheus",
"avatar_url": "https://avatars.githubusercontent.com/u/9037206?v=4",
"profile": "https://github.com/Chepheus",
"contributions": [
"code"
]
},
{
"login": "Chun-Yang",
"name": "yang2007chun",
"avatar_url": "https://avatars.githubusercontent.com/u/2827867?v=4",
"profile": "https://trentyang.com/",
"contributions": [
"code"
]
},
{
"login": "DanielRuf",
"name": "Daniel Ruf",
"avatar_url": "https://avatars.githubusercontent.com/u/827205?v=4",
"profile": "https://daniel-ruf.de/",
"contributions": [
"code"
]
},
{
"login": "dfvalero",
"name": "David Fernandez",
"avatar_url": "https://avatars.githubusercontent.com/u/337955?v=4",
"profile": "https://github.com/dfvalero",
"contributions": [
"code"
]
},
{
"login": "davgothic",
"name": "David Hancock",
"avatar_url": "https://avatars.githubusercontent.com/u/158586?v=4",
"profile": "http://davidhancock.co/",
"contributions": [
"code"
]
},
{
"login": "cartok",
"name": "cartok",
"avatar_url": "https://avatars.githubusercontent.com/u/22181589?v=4",
"profile": "https://github.com/cartok",
"contributions": [
"code"
]
},
{
"login": "izifortune",
"name": "Fabrizio Fortunato",
"avatar_url": "https://avatars.githubusercontent.com/u/3394606?v=4",
"profile": "https://izifortune.com/",
"contributions": [
"code"
]
},
{
"login": "FishErr",
"name": "FishErr",
"avatar_url": "https://avatars.githubusercontent.com/u/742467?v=4",
"profile": "https://github.com/FishErr",
"contributions": [
"code"
]
},
{
"login": "fritzmg",
"name": "Fritz Michael Gschwantner",
"avatar_url": "https://avatars.githubusercontent.com/u/4970961?v=4",
"profile": "https://github.com/fritzmg",
"contributions": [
"code"
]
},
{
"login": "glebmachine",
"name": "Gleb Mikheev",
"avatar_url": "https://avatars.githubusercontent.com/u/1610882?v=4",
"profile": "http://betaagency.ru/",
"contributions": [
"code"
]
},
{
"login": "TatumCreative",
"name": "TatumCreative",
"avatar_url": "https://avatars.githubusercontent.com/u/22155328?v=4",
"profile": "https://github.com/gregtatum",
"contributions": [
"code"
]
},
{
"login": "hanjukim",
"name": "Paul Kim",
"avatar_url": "https://avatars.githubusercontent.com/u/1264116?v=4",
"profile": "https://github.com/hanjukim",
"contributions": [
"code"
]
},
{
"login": "HeadFox",
"name": "Lucien PESLIER",
"avatar_url": "https://avatars.githubusercontent.com/u/6277284?v=4",
"profile": "https://github.com/HeadFox",
"contributions": [
"code"
]
},
{
"login": "HerringtonDarkholme",
"name": "Herrington Darkholme",
"avatar_url": "https://avatars.githubusercontent.com/u/2883231?v=4",
"profile": "https://github.com/HerringtonDarkholme",
"contributions": [
"code"
]
},
{
"login": "IronKinoko",
"name": "IronKinoko",
"avatar_url": "https://avatars.githubusercontent.com/u/32838658?v=4",
"profile": "https://github.com/IronKinoko",
"contributions": [
"code"
]
},
{
"login": "stonebranch",
"name": "Jakob Stenqvist",
"avatar_url": "https://avatars.githubusercontent.com/u/87466?v=4",
"profile": "https://jakobstenqvist.com/",
"contributions": [
"code"
]
},
{
"login": "sconix",
"name": "Janne Julkunen",
"avatar_url": "https://avatars.githubusercontent.com/u/921515?v=4",
"profile": "https://github.com/sconix",
"contributions": [
"code"
]
},
{
"login": "jasonkuhrt",
"name": "Jason Kuhrt",
"avatar_url": "https://avatars.githubusercontent.com/u/284476?v=4",
"profile": "https://github.com/jasonkuhrt",
"contributions": [
"code"
]
},
{
"login": "Manduro",
"name": "Job",
"avatar_url": "https://avatars.githubusercontent.com/u/2545042?v=4",
"profile": "https://github.com/Manduro",
"contributions": [
"code"
]
},
{
"login": "johnferrie",
"name": "John Ferrie",
"avatar_url": "https://avatars.githubusercontent.com/u/1991460?v=4",
"profile": "https://github.com/johnferrie",
"contributions": [
"code"
]
},
{
"login": "sakuraineed",
"name": "Kenji Sakurai",
"avatar_url": "https://avatars.githubusercontent.com/u/4065624?v=4",
"profile": "https://github.com/sakuraineed",
"contributions": [
"code"
]
},
{
"login": "careykevin",
"name": "Kevin Carey",
"avatar_url": "https://avatars.githubusercontent.com/u/9685146?v=4",
"profile": "http://www.linkedin.com/in/careykevin",
"contributions": [
"code"
]
},
{
"login": "klojniewski-pagepro",
"name": "Chris (Krzysztof) Lojniewski",
"avatar_url": "https://avatars.githubusercontent.com/u/245971?v=4",
"profile": "http://pagepro.pl/",
"contributions": [
"code"
]
},
{
"login": "ljanecek",
"name": "Ladislav Janeček",
"avatar_url": "https://avatars.githubusercontent.com/u/2696545?v=4",
"profile": "https://twitter.com/ladislavjanecek",
"contributions": [
"code"
]
},
{
"login": "luads",
"name": "Luã de Souza",
"avatar_url": "https://avatars.githubusercontent.com/u/194708?v=4",
"profile": "http://www.lsouza.pro.br/",
"contributions": [
"code"
]
},
{
"login": "luis-kaufmann-silva",
"name": "Luis",
"avatar_url": "https://avatars.githubusercontent.com/u/1151616?v=4",
"profile": "https://wiserdev.com/",
"contributions": [
"code"
]
},
{
"login": "blikblum",
"name": "Luiz Américo",
"avatar_url": "https://avatars.githubusercontent.com/u/3047126?v=4",
"profile": "https://github.com/blikblum",
"contributions": [
"code"
]
},
{
"login": "LukasDrgon",
"name": "Lukas Drgon",
"avatar_url": "https://avatars.githubusercontent.com/u/15611832?v=4",
"profile": "https://github.com/LukasDrgon",
"contributions": [
"code"
]
},
{
"login": "waffle-iron",
"name": "Making GitHub Delicious.",
"avatar_url": "https://avatars.githubusercontent.com/u/6912981?v=4",
"profile": "https://github.com/waffle-iron",
"contributions": [
"code"
]
},
{
"login": "silvenon",
"name": "Matija Marohnić",
"avatar_url": "https://avatars.githubusercontent.com/u/471278?v=4",
"profile": "https://silvenon.com/",
"contributions": [
"code"
]
},
{
"login": "damrbaby",
"name": "Matthew Windwer",
"avatar_url": "https://avatars.githubusercontent.com/u/237580?v=4",
"profile": "https://github.com/damrbaby",
"contributions": [
"code"
]
},
{
"login": "mehernosh",
"name": "Mehernosh Bhathena",
"avatar_url": "https://avatars.githubusercontent.com/u/1410232?v=4",
"profile": "https://github.com/mehernosh",
"contributions": [
"code"
]
},
{
"login": "mems",
"name": "Memmie Lenglet",
"avatar_url": "https://avatars.githubusercontent.com/u/729275?v=4",
"profile": "https://memmie.lenglet.name/",
"contributions": [
"code"
]
},
{
"login": "mibo-fdc",
"name": "Michael Bohn",
"avatar_url": "https://avatars.githubusercontent.com/u/70259891?v=4",
"profile": "https://github.com/mibo-fdc",
"contributions": [
"code"
]
},
{
"login": "wodka",
"name": "Michael Schramm",
"avatar_url": "https://avatars.githubusercontent.com/u/385731?v=4",
"profile": "https://github.com/wodka",
"contributions": [
"code"
]
},
{
"login": "mhartington",
"name": "Mike Hartington",
"avatar_url": "https://avatars.githubusercontent.com/u/2835826?v=4",
"profile": "https://twitter.com/mhartington",
"contributions": [
"code"
]
},
{
"login": "mitchheddles",
"name": "Mitchell Heddles",
"avatar_url": "https://avatars.githubusercontent.com/u/20656128?v=4",
"profile": "https://mitch.app/",
"contributions": [
"code"
]
},
{
"login": "NLNicoo",
"name": "Nico",
"avatar_url": "https://avatars.githubusercontent.com/u/6526666?v=4",
"profile": "https://github.com/NLNicoo",
"contributions": [
"code"
]
},
{
"login": "nil-ni-ck",
"name": "Nil",
"avatar_url": "https://avatars.githubusercontent.com/u/8202448?v=4",
"profile": "https://github.com/nil-ni-ck",
"contributions": [
"code"
]
},
{
"login": "pawl",
"name": "Paul Brown",
"avatar_url": "https://avatars.githubusercontent.com/u/992533?v=4",
"profile": "http://paulsprogrammingnotes.com/",
"contributions": [
"code"
]
},
{
"login": "pbalmasov",
"name": "Pavel Balmasov",
"avatar_url": "https://avatars.githubusercontent.com/u/3986749?v=4",
"profile": "https://github.com/pbalmasov",
"contributions": [
"code"
]
},
{
"login": "czajkowski",
"name": "Piotr Czajkowski",
"avatar_url": "https://avatars.githubusercontent.com/u/197684?v=4",
"profile": "https://github.com/czajkowski",
"contributions": [
"code"
]
},
{
"login": "PythonLinks",
"name": "PythonLinks",
"avatar_url": "https://avatars.githubusercontent.com/u/34622952?v=4",
"profile": "https://github.com/PythonLinks",
"contributions": [
"code"
]
},
{
"login": "rayvincent-bsd",
"name": "rayvincent-bsd",
"avatar_url": "https://avatars.githubusercontent.com/u/41829998?v=4",
"profile": "https://github.com/rayvincent-bsd",
"contributions": [
"code"
]
},
{
"login": "RomanYazvinsky",
"name": "RomanYazvinsky",
"avatar_url": "https://avatars.githubusercontent.com/u/32144682?v=4",
"profile": "https://github.com/RomanYazvinsky",
"contributions": [
"code"
]
},
{
"login": "rrelmy",
"name": "Rémy",
"avatar_url": "https://avatars.githubusercontent.com/u/442683?v=4",
"profile": "https://remyboehler.ch/",
"contributions": [
"code"
]
},
{
"login": "KSH-code",
"name": "Seonghoon Kim",
"avatar_url": "https://avatars.githubusercontent.com/u/29705162?v=4",
"profile": "http://ksh-code.github.io/",
"contributions": [
"code"
]
},
{
"login": "isairz",
"name": "Seongjun Kim",
"avatar_url": "https://avatars.githubusercontent.com/u/4544327?v=4",
"profile": "https://github.com/isairz",
"contributions": [
"code"
]
},
{
"login": "dippas",
"name": "Serpa",
"avatar_url": "https://avatars.githubusercontent.com/u/10220287?v=4",
"profile": "http://stackoverflow.com/users/3448527/dippas",
"contributions": [
"code"
]
},
{
"login": "staszek998",
"name": "Stanisław Gregor",
"avatar_url": "https://avatars.githubusercontent.com/u/34459296?v=4",
"profile": "http://staszek.codes/",
"contributions": [
"code"
]
},
{
"login": "steve3d",
"name": "Steve Yin",
"avatar_url": "https://avatars.githubusercontent.com/u/670687?v=4",
"profile": "https://github.com/steve3d",
"contributions": [
"code"
]
},
{
"login": "seastland",
"name": "Steven Eastland",
"avatar_url": "https://avatars.githubusercontent.com/u/3535053?v=4",
"profile": "http://www.grassmonk.net/",
"contributions": [
"code"
]
},
{
"login": "soenkekluth",
"name": "Sönke Kluth",
"avatar_url": "https://avatars.githubusercontent.com/u/201338?v=4",
"profile": "https://soenkekluth.com/",
"contributions": [
"code"
]
},
{
"login": "gitter-badger",
"name": "The Gitter Badger",
"avatar_url": "https://avatars.githubusercontent.com/u/8518239?v=4",
"profile": "https://gitter.im/",
"contributions": [
"code"
]
},
{
"login": "dogoku",
"name": "Theo",
"avatar_url": "https://avatars.githubusercontent.com/u/761999?v=4",
"profile": "https://github.com/dogoku",
"contributions": [
"code"
]
},
{
"login": "timgates42",
"name": "Tim Gates",
"avatar_url": "https://avatars.githubusercontent.com/u/47873678?v=4",
"profile": "https://github.com/timgates42",
"contributions": [
"code"
]
},
{
"login": "tom-sherman",
"name": "Tom Sherman",
"avatar_url": "https://avatars.githubusercontent.com/u/9257001?v=4",
"profile": "https://tom-sherman.com/",
"contributions": [
"code"
]
},
{
"login": "WarriorRocker",
"name": "WarriorRocker",
"avatar_url": "https://avatars.githubusercontent.com/u/2924540?v=4",
"profile": "https://github.com/WarriorRocker",
"contributions": [
"code"
]
},
{
"login": "omgovich",
"name": "Vlad Shilov",
"avatar_url": "https://avatars.githubusercontent.com/u/206567?v=4",
"profile": "https://github.com/omgovich",
"contributions": [
"code"
]
},
{
"login": "vladgurovich",
"name": "Vladimir Gurovich",
"avatar_url": "https://avatars.githubusercontent.com/u/444833?v=4",
"profile": "http://vlad.io/",
"contributions": [
"code"
]
},
{
"login": "VladimirIvanin",
"name": "Vladimir Ivanin",
"avatar_url": "https://avatars.githubusercontent.com/u/15268753?v=4",
"profile": "https://github.com/VladimirIvanin",
"contributions": [
"code"
]
},
{
"login": "TreVld",
"name": "TreVld",
"avatar_url": "https://avatars.githubusercontent.com/u/42523020?v=4",
"profile": "https://github.com/TreVld",
"contributions": [
"code"
]
},
{
"login": "waghcwb",
"name": "Wagner Souza",
"avatar_url": "https://avatars.githubusercontent.com/u/6169950?v=4",
"profile": "https://www.linkedin.com/in/waghcwb",
"contributions": [
"code"
]
},
{
"login": "codesignist",
"name": "Yunus EŞ",
"avatar_url": "https://avatars.githubusercontent.com/u/1472881?v=4",
"profile": "http://yunuses.com/",
"contributions": [
"code"
]
},
{
"login": "axten",
"name": "axten",
"avatar_url": "https://avatars.githubusercontent.com/u/1412778?v=4",
"profile": "https://github.com/axten",
"contributions": [
"code"
]
},
{
"login": "ccebrand",
"name": "Cyrille",
"avatar_url": "https://avatars.githubusercontent.com/u/818237?v=4",
"profile": "http://www.moustic.biz/",
"contributions": [
"code"
]
},
{
"login": "daleknauss",
"name": "Dale Knauss",
"avatar_url": "https://avatars.githubusercontent.com/u/2430232?v=4",
"profile": "http://daleknauss.com/",
"contributions": [
"code"
]
},
{
"login": "danielkalen",
"name": "Daniel Kalen",
"avatar_url": "https://avatars.githubusercontent.com/u/10832620?v=4",
"profile": "https://github.com/danielkalen",
"contributions": [
"code"
]
},
{
"login": "dependabot[bot]",
"name": "dependabot[bot]",
"avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4",
"profile": "https://github.com/apps/dependabot",
"contributions": [
"code"
]
},
{
"login": "devmi",
"name": "devmi",
"avatar_url": "https://avatars.githubusercontent.com/u/19313261?v=4",
"profile": "https://github.com/devmi",
"contributions": [
"code"
]
},
{
"login": "fabrizim",
"name": "fabrizim",
"avatar_url": "https://avatars.githubusercontent.com/u/79165?v=4",
"profile": "https://owlwatch.com/",
"contributions": [
"code"
]
},
{
"login": "hiroqn",
"name": "hiroqn",
"avatar_url": "https://avatars.githubusercontent.com/u/909385?v=4",
"profile": "https://github.com/hiroqn",
"contributions": [
"code"
]
},
{
"login": "jamesryanbell",
"name": "James Bell",
"avatar_url": "https://avatars.githubusercontent.com/u/1842481?v=4",
"profile": "https://james-bell.co.uk/",
"contributions": [
"code"
]
},
{
"login": "knusperpixel",
"name": "knusperpixel",
"avatar_url": "https://avatars.githubusercontent.com/u/1455404?v=4",
"profile": "https://github.com/knusperpixel",
"contributions": [
"code"
]
},
{
"login": "langjun",
"name": "langjun",
"avatar_url": "https://avatars.githubusercontent.com/u/7370806?v=4",
"profile": "https://langjun.github.io/",
"contributions": [
"code"
]
},
{
"login": "lenny0702",
"name": "Lenny",
"avatar_url": "https://avatars.githubusercontent.com/u/2850927?v=4",
"profile": "https://github.com/lenny0702",
"contributions": [
"code"
]
},
{
"login": "mattdemps",
"name": "Matt",
"avatar_url": "https://avatars.githubusercontent.com/u/2694295?v=4",
"profile": "https://github.com/mattdemps",
"contributions": [
"code"
]
},
{
"login": "n3gotium",
"name": "n3gotium",
"avatar_url": "https://avatars.githubusercontent.com/u/3309521?v=4",
"profile": "https://github.com/n3gotium",
"contributions": [
"code"
]
},
{
"login": "naedx",
"name": "naedx",
"avatar_url": "https://avatars.githubusercontent.com/u/1711099?v=4",
"profile": "https://github.com/naedx",
"contributions": [
"code"
]
},
{
"login": "nealnote",
"name": "nealnote",
"avatar_url": "https://avatars.githubusercontent.com/u/3173785?v=4",
"profile": "https://github.com/nealnote",
"contributions": [
"code"
]
},
{
"login": "osamaalsabbagh",
"name": "osamaalsabbagh",
"avatar_url": "https://avatars.githubusercontent.com/u/2883742?v=4",
"profile": "https://github.com/osamaalsabbagh",
"contributions": [
"code"
]
},
{
"login": "pantcaser",
"name": "pantcaser",
"avatar_url": "https://avatars.githubusercontent.com/u/33579079?v=4",
"profile": "https://github.com/pantcaser",
"contributions": [
"code"
]
},
{
"login": "ph1p",
"name": "Phil",
"avatar_url": "https://avatars.githubusercontent.com/u/15351728?v=4",
"profile": "https://ph1p.dev/",
"contributions": [
"code"
]
},
{
"login": "pimlie",
"name": "Pim",
"avatar_url": "https://avatars.githubusercontent.com/u/1067403?v=4",
"profile": "https://github.com/pimlie",
"contributions": [
"code"
]
},
{
"login": "andrey-glotov",
"name": "Andrey A. Glotov",
"avatar_url": "https://avatars.githubusercontent.com/u/1656509?v=4",
"profile": "https://github.com/andrey-glotov",
"contributions": [
"code"
]
},
{
"login": "rdsn",
"name": "rdsn",
"avatar_url": "https://avatars.githubusercontent.com/u/3916181?v=4",
"profile": "https://github.com/rdsn",
"contributions": [
"code"
]
},
{
"login": "shahjehanali1",
"name": "Shahjehan Ali",
"avatar_url": "https://avatars.githubusercontent.com/u/8455072?v=4",
"profile": "https://github.com/shahjehanali1",
"contributions": [
"code"
]
},
{
"login": "JoveX",
"name": "清泉古雾",
"avatar_url": "https://avatars.githubusercontent.com/u/1560179?v=4",
"profile": "http://jser.io/",
"contributions": [
"code"
]
},
{
"login": "kashtian",
"name": "kashtian",
"avatar_url": "https://avatars.githubusercontent.com/u/17918091?v=4",
"profile": "https://github.com/kashtian",
"contributions": [
"code"
]
},
{
"login": "tienbuide",
"name": "tienbuide",
"avatar_url": "https://avatars.githubusercontent.com/u/2574700?v=4",
"profile": "https://github.com/tienbuide",
"contributions": [
"code"
]
},
{
"login": "unicod3",
"name": "Sinan Ülker",
"avatar_url": "https://avatars.githubusercontent.com/u/2614110?v=4",
"profile": "https://github.com/unicod3",
"contributions": [
"code"
]
},
{
"login": "vaxul",
"name": "vaxul",
"avatar_url": "https://avatars.githubusercontent.com/u/3798226?v=4",
"profile": "https://github.com/vaxul",
"contributions": [
"code"
]
},
{
"login": "wolffan",
"name": "Raimon Lapuente",
"avatar_url": "https://avatars.githubusercontent.com/u/1092080?v=4",
"profile": "http://raimonlapuente.com/",
"contributions": [
"code"
]
},
{
"login": "yukulele",
"name": "Clément P",
"avatar_url": "https://avatars.githubusercontent.com/u/347244?v=4",
"profile": "https://github.com/yukulele",
"contributions": [
"code"
]
},
{
"login": "aPalenov",
"name": "Андрей",
"avatar_url": "https://avatars.githubusercontent.com/u/20544542?v=4",
"profile": "https://github.com/aPalenov",
"contributions": [
"code"
]
},
{
"login": "beomy",
"name": "이효범",
"avatar_url": "https://avatars.githubusercontent.com/u/6986479?v=4",
"profile": "https://github.com/beomy",
"contributions": [
"code"
]
},
{
"login": "philwolstenholme",
"name": "Phil Wolstenholme",
"avatar_url": "https://avatars.githubusercontent.com/u/6339853?v=4",
"profile": "https://wolstenhol.me/",
"contributions": [
"a11y"
]
},
{
"login": "shahjehan-wpbrigade",
"name": "Shahjehan Ali",
"avatar_url": "https://avatars.githubusercontent.com/u/65647117?v=4",
"profile": "https://github.com/shahjehan-wpbrigade",
"contributions": [
"doc"
]
}
],
"contributorsPerLine": 7,
"commitConvention": "none",
"skipCi": true
}
================================================
FILE: .browserslistrc
================================================
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# You can see what browsers were selected by your queries by running:
# npx browserslist
IOS >= 17
Safari >= 17
last 5 Chrome versions
last 5 Firefox versions
================================================
FILE: .editorconfig
================================================
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
================================================
FILE: .eslintignore
================================================
build
playground/index.html
node_modules
dist
src/swiper.js
src/swiper-bundle.js
================================================
FILE: .eslintrc.cjs
================================================
const rules = {
'no-nested-ternary': 'off',
'no-lonely-if': 'off',
'no-param-reassign': 'off',
'no-underscore-dangle': 'off',
'prefer-object-spread': 'off',
'prefer-destructuring': 'off',
'default-param-last': 'off',
'import/prefer-default-export': 'off',
'guard-for-in': 'off',
'no-restricted-syntax': 'off',
'import/no-extraneous-dependencies': 'off',
'no-console': 'off',
'no-restricted-globals': 'off',
'max-classes-per-file': 'off',
'react/jsx-filename-extension': 'off',
'jsx-a11y/label-has-associated-control': 'off',
'react/no-array-index-key': 'off',
'react/prop-types': 'off',
'react/jsx-props-no-spreading': 'off',
'import/no-unresolved': [2, { ignore: ['ssr-window', 'dom7', 'swiper'] }],
};
module.exports = {
root: true,
env: {
browser: true,
es6: true,
node: true,
},
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
},
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 2021,
sourceType: 'module',
},
overrides: [
{
files: ['*.js'],
extends: ['plugin:react/recommended', 'airbnb-base', 'plugin:prettier/recommended'],
rules,
},
{
files: ['**/*.jsx', 'src/react/*.js'],
plugins: ['react'],
rules,
},
{
files: ['src/**/*.*'],
rules: {
...rules,
'import/extensions': [2, 'ignorePackages', { js: 'always' }],
},
},
{
files: ['scripts/**/*.*'],
parserOptions: {
ecmaVersion: 2020,
sourceType: 'module',
},
rules: {
...rules,
'import/extensions': [2, 'ignorePackages', { js: 'always' }],
},
},
],
};
================================================
FILE: .gitattributes
================================================
* text=LF
================================================
FILE: .github/CONTRIBUTING.md
================================================
# How to contribute
Swiper loves to welcome your contributions. There are several ways to help out:
- Create an [issue](https://github.com/nolimits4web/swiper/issues) on GitHub, if you have found a bug
- Write test cases or provide examples for open bug issues
- Write patches for open bug/feature issues
There are a few guidelines that we need contributors to follow so that we have a
chance of keeping on top of things.
## Getting Started
- Make sure you have a [GitHub account](https://github.com/signup/free).
- Submit an [issue](https://github.com/nolimits4web/swiper/issues), assuming one does not already exist.
- Clearly describe the issue including steps to reproduce when it is a bug.
- Make sure you fill in the earliest version that you know has the issue.
- Fork the repository on GitHub.
## Making Changes
- Create a topic branch from where you want to base your work.
- This is usually the master branch.
- Only target release branches if you are certain your fix must be on that
branch.
- To quickly create a topic branch based on master; `git branch master/my_contribution master` then checkout the new branch with `git checkout master/my_contribution`. Better avoid working directly on the
`master` branch, to avoid conflicts if you pull in updates from origin.
- Make commits of logical units.
- Check for unnecessary whitespace with `git diff --check` before committing.
- Use descriptive commit messages and reference the #issue number.
## Submitting Changes
- Push your changes to a topic branch in your fork of the repository.
- Submit a pull request to the repository
## Editor Config
The project uses .editorconfig to define the coding style of each file. We recommend that you install the Editor Config extension for your preferred IDE.
================================================
FILE: .github/FUNDING.yml
================================================
patreon: swiperjs
open_collective: swiper
github: nolimits4web
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
contact_links:
- name: 🙏 Open Collective
url: https://opencollective.com/swiper/
about: Love Swiper? Please consider supporting us via Open Collective.
- name: 📃 Documentation Issue
url: https://github.com/nolimits4web/swiper-website/issues/new
about: Issues with Swiper website
================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.yml
================================================
name: "\U0001F680 New feature proposal"
description: Propose a new feature to be added to Swiper
labels: ['feature request']
body:
- type: markdown
attributes:
value: |
Thanks for your interest in the project and taking the time to fill out this feature report!
- type: textarea
id: feature-description
attributes:
label: Clear and concise description of the problem
description: As a developer using Swiper I want [goal / wish] so that [benefit]
validations:
required: true
- type: textarea
id: suggested-solution
attributes:
label: Suggested solution
description: 'In module [xy] we could provide following implementation...'
validations:
required: true
- type: textarea
id: alternative
attributes:
label: Alternative
description: Clear and concise description of any alternative solutions or features you've considered.
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Any other context or screenshots about the feature request here.
- type: checkboxes
id: checkboxes
attributes:
label: Validations
description: Before submitting the issue, please make sure you do the following
options:
- label: Follow our [Code of Conduct](https://github.com/nolimits4web/swiper/blob/master/CODE_OF_CONDUCT.md)
required: true
- label: Read the [docs](https://swiperjs.com/swiper-api).
required: true
- label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
required: true
- type: checkboxes
id: pr
attributes:
label: Would you like to open a PR for this feature?
description: Before starting to work on PR it is recommended to get maintainers approval.
options:
- label: I'm willing to open a PR
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/swiper_core_issue.yml
================================================
name: '🐞 Swiper Core Issue'
description: Report an issue with Swiper
labels: []
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: checkboxes
id: qa
attributes:
label: Check that this is really a bug
description: For Q&A open a [GitHub Discussion](https://github.com/nolimits4web/swiper/discussions)
options:
- label: I confirm
required: true
- type: input
id: reproduction
attributes:
label: Reproduction link
description: Please provide a link to a repo that can reproduce the problem you ran into. You can fork one of our [demos](https://swiperjs.com/demos) in codesandbox to get start. A reproduction is required unless you are absolutely sure that the issue is obvious and the provided information is enough to understand the problem. If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "missing demo" label. If no reproduction is provided after 3 days, it will be auto-closed.
placeholder: 'https://codesandbox.io/..'
validations:
required: true
- type: textarea
id: descr
attributes:
label: Bug description
description: A clear and concise description of what the bug is
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen
validations:
required: false
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: A concise description of what you're experiencing
validations:
required: false
- type: input
id: swiper
attributes:
label: Swiper version
description: Exact release version or commit hash
placeholder: e.g 7.0.0
validations:
required: true
- type: input
id: browser
attributes:
label: Platform/Target and Browser Versions
description: Platform client you are targeting such as macOS, Windows, Cordova, iOS, Android, Chrome, etc.
placeholder: e.g macOS Safari 14.1
validations:
required: true
- type: checkboxes
id: checkboxes
attributes:
label: Validations
description: Before submitting the issue, please make sure you do the following
options:
- label: Follow our [Code of Conduct](https://github.com/nolimits4web/swiper/blob/master/CODE_OF_CONDUCT.md)
required: true
- label: Read the [docs](https://swiperjs.com/swiper-api).
required: true
- label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
required: true
- label: Make sure this is a Swiper issue and not a framework-specific issue
required: true
- type: checkboxes
id: pr
attributes:
label: Would you like to open a PR for this bug?
description: Before starting to work on PR it is recommended to get maintainers approval
options:
- label: I'm willing to open a PR
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/swiper_element_issue.yml
================================================
name: '🐞 Swiper Element Issue'
description: Report an issue with Swiper Element
labels: ['Element']
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: checkboxes
id: qa
attributes:
label: Check that this is really a bug
description: For Q&A open a [GitHub Discussion](https://github.com/nolimits4web/swiper/discussions)
options:
- label: I confirm
required: true
- type: input
id: reproduction
attributes:
label: Reproduction link
description: Please provide a link to a repo that can reproduce the problem you ran into. You can fork one of our [demos](https://swiperjs.com/demos) in codesandbox to get start. A reproduction is required unless you are absolutely sure that the issue is obvious and the provided information is enough to understand the problem. If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "missing demo" label. If no reproduction is provided after 3 days, it will be auto-closed.
placeholder: 'https://codesandbox.io/..'
validations:
required: true
- type: textarea
id: descr
attributes:
label: Bug description
description: A clear and concise description of what the bug is
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen
validations:
required: false
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: A concise description of what you're experiencing
validations:
required: false
- type: input
id: swiper
attributes:
label: Swiper version
description: Exact release version or commit hash
placeholder: e.g 7.0.0
validations:
required: true
- type: input
id: browser
attributes:
label: Platform/Target and Browser Versions
description: Platform client you are targeting such as macOS, Windows, Cordova, iOS, Android, Chrome, etc.
placeholder: e.g macOS Safari 14.1
validations:
required: true
- type: checkboxes
id: checkboxes
attributes:
label: Validations
description: Before submitting the issue, please make sure you do the following
options:
- label: Follow our [Code of Conduct](https://github.com/nolimits4web/swiper/blob/master/CODE_OF_CONDUCT.md)
required: true
- label: Read the [docs](https://swiperjs.com/swiper-api).
required: true
- label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
required: true
- label: Make sure this is a Swiper issue and not a framework-specific issue
required: true
- type: checkboxes
id: pr
attributes:
label: Would you like to open a PR for this bug?
description: Before starting to work on PR it is recommended to get maintainers approval
options:
- label: I'm willing to open a PR
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/swiper_react_issue.yml
================================================
name: '🐞 Swiper React Issue'
description: Create a report for Swiper React components
labels: 'React'
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: checkboxes
id: qa
attributes:
label: Check that this is really a bug
description: For Q&A open a [GitHub Discussion](https://github.com/nolimits4web/swiper/discussions)
options:
- label: I confirm
required: true
- type: input
id: reproduction
attributes:
label: Reproduction link
description: Please provide a link to a repo that can reproduce the problem you ran into. You can fork one of our [demos](https://swiperjs.com/demos) in codesandbox to get start. A reproduction is required unless you are absolutely sure that the issue is obvious and the provided information is enough to understand the problem. If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "missing demo" label. If no reproduction is provided after 3 days, it will be auto-closed.
placeholder: 'https://codesandbox.io/..'
validations:
required: true
- type: textarea
id: descr
attributes:
label: Bug description
description: A clear and concise description of what the bug is
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen
validations:
required: false
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: A concise description of what you're experiencing
validations:
required: false
- type: input
id: swiper
attributes:
label: Swiper version
description: Exact release version or commit hash
placeholder: e.g 7.0.0
validations:
required: true
- type: input
id: browser
attributes:
label: Platform/Target and Browser Versions
description: Platform client you are targeting such as macOS, Windows, Cordova, iOS, Android, Chrome, etc.
placeholder: e.g macOS Safari 14.1
validations:
required: true
- type: checkboxes
id: checkboxes
attributes:
label: Validations
description: Before submitting the issue, please make sure you do the following
options:
- label: Follow our [Code of Conduct](https://github.com/nolimits4web/swiper/blob/master/CODE_OF_CONDUCT.md)
required: true
- label: Read the [docs](https://swiperjs.com/swiper-api).
required: true
- label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
required: true
- label: Make sure this is a Swiper issue and not a framework-specific issue
required: true
- type: checkboxes
id: pr
attributes:
label: Would you like to open a PR for this bug?
description: Before starting to work on PR it is recommended to get maintainers approval
options:
- label: I'm willing to open a PR
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/vue_issue.yml
================================================
name: 🐞 Swiper Vue Issue
description: Create a report for Swiper Vue components
labels: 'Vue'
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: checkboxes
id: qa
attributes:
label: Check that this is really a bug
description: For Q&A open a [GitHub Discussion](https://github.com/nolimits4web/swiper/discussions)
options:
- label: I confirm
required: true
- type: input
id: reproduction
attributes:
label: Reproduction link
description: Please provide a link to a repo that can reproduce the problem you ran into. You can fork one of our [demos](https://swiperjs.com/demos) in codesandbox to get start. A reproduction is required unless you are absolutely sure that the issue is obvious and the provided information is enough to understand the problem. If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "missing demo" label. If no reproduction is provided after 3 days, it will be auto-closed.
placeholder: 'https://codesandbox.io/..'
validations:
required: true
- type: textarea
id: descr
attributes:
label: Bug description
description: A clear and concise description of what the bug is
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen
validations:
required: false
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: A concise description of what you're experiencing
validations:
required: false
- type: input
id: swiper
attributes:
label: Swiper version
description: Exact release version or commit hash
placeholder: e.g 6.7.1
validations:
required: true
- type: input
id: browser
attributes:
label: Platform/Target and Browser Versions
description: Platform client you are targeting such as macOS, Windows, Cordova, iOS, Android, Chrome, etc.
placeholder: e.g macOS Safari 14.1
validations:
required: true
- type: checkboxes
id: checkboxes
attributes:
label: Validations
description: Before submitting the issue, please make sure you do the following
options:
- label: Follow our [Code of Conduct](https://github.com/nolimits4web/swiper/blob/master/CODE_OF_CONDUCT.md)
required: true
- label: Read the [docs](https://swiperjs.com/swiper-api).
required: true
- label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
required: true
- label: Make sure this is a Swiper issue and not a framework-specific issue
required: true
- type: checkboxes
id: pr
attributes:
label: Would you like to open a PR for this bug?
description: Before starting to work on PR it is recommended to get maintainers approval
options:
- label: I'm willing to open a PR
required: false
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.
The best way to propose a feature is to open an issue first and discuss your ideas there before implementing them.
Always follow the [contribution guidelines](https://github.com/nolimits4web/swiper/blob/master/CONTRIBUTING.md) when submitting a pull request.
================================================
FILE: .github/dependabot.yml
================================================
- package-ecosystem: npm
directory: "/"
schedule:
interval: monthly
versioning-strategy: increase
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: monthly
================================================
FILE: .github/lock.yml
================================================
daysUntilLock: 240
exemptLabels:
- feature request
- in progress
lockLabel: outdated
lockComment: false
================================================
FILE: .github/stale.yml
================================================
daysUntilStale: 180
daysUntilClose: 60
exemptLabels:
- feature request
- probably bug
- bug confirmed
- in progress
staleLabel: stale
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
closeComment: >
This issue has been automatically closed due to inactivity.
If this issue is still actual, please, create the new one.
================================================
FILE: .github/workflows/build.yml
================================================
name: Build
on:
push:
branches: [master, Swiper6, Swiper7, Swiper8]
pull_request:
branches: [master, Swiper6, Swiper7, Swiper8]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Run build
run: npm run build:prod
================================================
FILE: .github/workflows/formatting.yml
================================================
name: Formatting
on:
push:
branches: [master, Swiper6, Swiper7, Swiper8]
pull_request:
branches: [master, Swiper6, Swiper7, Swiper8]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Run prettier check
run: npm run check-format
================================================
FILE: .github/workflows/issue-close-require.yml
================================================
name: Issue Close Require
on:
schedule:
- cron: '0 0 * * *'
jobs:
close-issues:
runs-on: ubuntu-latest
steps:
- name: missing demo
uses: actions-cool/issues-helper@v2.2.1
with:
actions: 'close-issues'
token: ${{ secrets.GITHUB_TOKEN }}
labels: 'missing demo'
inactive-day: 3
================================================
FILE: .github/workflows/issue-labeled.yml
================================================
name: Issue Labeled
on:
issues:
types: [labeled]
jobs:
reply-labeled:
runs-on: ubuntu-latest
steps:
- name: missing demo
if: github.event.label.name == 'missing demo'
uses: actions-cool/issues-helper@v2.2.1
with:
actions: 'create-comment, remove-labels'
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
body: |
Hello @${{ github.event.issue.user.login }}. Please provide a online reproduction by [codesandbox](https://codesandbox.io/) or a minimal GitHub repository. You can fork one of our [demos](https://swiperjs.com/demos) in codesandbox to get start. Issues labeled by `missing demo` will be closed if no activities in 3 days.
================================================
FILE: .github/workflows/lint.yml
================================================
name: Lint
on:
push:
branches: [master, Swiper6, Swiper7, Swiper8]
pull_request:
branches: [master, Swiper6, Swiper7, Swiper8]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Run eslint
run: npm run lint
================================================
FILE: .gitignore
================================================
.DS_Store
node_modules
custom
*.log
.versions
.idea
dist
# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local
.eslintcache
src/swiper-element-bundle.mjs
# Agents
.claude
.agents
.cursor
.gemini
.codex
.opencode
================================================
FILE: .lintstagedrc
================================================
{
"*.+(js)": [
"eslint"
],
"*.+(js|json|scss|css|less|ts)": [
"prettier --write"
]
}
================================================
FILE: .npmignore
================================================
.git
.github
build
demos
node_modules
playground
scripts
================================================
FILE: .prettierignore
================================================
build
node_modules
dist
.nova
package.json
.claude
.agents
.cursor
.gemini
.codex
.opencode
================================================
FILE: .prettierrc
================================================
{
"arrowParens": "always",
"bracketSpacing": true,
"htmlWhitespaceSensitivity": "css",
"insertPragma": false,
"jsxSingleQuote": false,
"printWidth": 100,
"proseWrap": "preserve",
"quoteProps": "as-needed",
"requirePragma": false,
"endOfLine": "auto",
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "all",
"useTabs": false,
"vueIndentScriptAndStyle": false
}
================================================
FILE: .vscode/settings.json
================================================
{
"editor.formatOnSave": true,
"eslint.enable": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
================================================
FILE: BACKERS.md
================================================
# Backers
Support Swiper development by [pledging on Open Collective](http://opencollective.com/swiper)!
<!-- SPONSORS_TABLE_WRAP -->
<table>
<tr>
<td align="center" valign="middle">
<a href="https://fi.parhaatuudetkasinot.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/parhaatuudetkasinotcom.png" alt="Uudet Nettikasinot" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.vanguardngr.com/casino/fr/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/vanguardngr-france.png" alt="VanguardNGR France" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://marsbahis.com/tr/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/noah23.png" alt="Marsbahis: Marsbahis Giriş - Marsbahis Güncel Adres ve Üyelik" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://heinekenjazzaldia.eus/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinossinlicenciaespana.png" alt="Casinos Sin Licencia En España" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://royalwriter.co.uk/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/royal-writer.png" alt="Skilled Writers for In-Depth Academic Papers" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.masterpapers.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/masterpapers.png" alt="Masterpapers - Qualified writers delivering excellence in every word!" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinosfest.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinosfest.png" alt="Best Online Casinos Canada" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://grademiners.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/grademiners.png" alt="Grademiners - Professional writers, original content, quality you can trust!" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.nettikasinot.org/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/nettikasinot-org.png" alt="Nettikasinot" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://nejlepsiceskacasina.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/nejlepsiceskacasinacom.png" alt="České Online Casino: Hrajte Bezpečně a Výhodně v 2024" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://slovenskeonlinecasino.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/slovenskeonlinecasinocom.png" alt="Najlepšie Online Casino Slovensko 2024 | Október 2024" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://ssmarket.net/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/ss-market.png" alt="SS Market: Social Media Services Market" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://automatenspieler.net/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/automatenspieler.png" alt="Automatenspieler" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://uusimmatkasinot.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/uusimmatkasinotcom.png" alt="Uudet nettikasinot 2024 » Listaamme Suomen uudet kasinot" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.kasinohai.com/nettikasinot" target="_blank">
<img src="https://swiperjs.com/images/sponsors/kasinohai.png" alt="Nettikasinot 2022 | Löydä Luotettava & Turvallinen Nettikasino!" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.nongamstopodds.com/casinos-not-on-gamstop/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/nongamstopodds.png" alt="NonGamStopOdds casino sites" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.casinotest.de" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinotest.png" alt="Online Casino Test 2022 » 90+ Casinos von Experten geprüft!" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://parimatch.in/en/football/live" target="_blank">
<img src="https://swiperjs.com/images/sponsors/parimatch.png" alt="Online sports betting and casino at Parimatch India" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casino-wise.com/casinos-not-on-gamstop/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casino-wise-com.png" alt="Casinos not on GamStop | Casino-Wise.com" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.nongamstopwager.com/casinos-not-on-gamstop/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/nongamstopwager-com.png" alt="Casinos not on GamStop UK 🏆 NonGamStopWager.com" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinoauditor.com/online-casinos-cyprus/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinoauditor.png" alt="Online Casinos Cyprus - CasinoAuditor" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinoshunter.com/online-casinos/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinos-hunter.png" alt="Best Online Casinos in Canada" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.stltoday.com/exclusive/3-top-rated-platforms-to-buy-tiktok-followers-for-fast-growth/article_74fb98eb-6019-5b74-9cda-803a7d4ac4a2.html" target="_blank">
<img src="https://swiperjs.com/images/sponsors/buy-tiktok-followers-stl-today.png" alt="Buy TikTok Followers - STL Today" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://au.trustpilot.com/review/pokiesgambler.com" target="_blank">
<img src="https://swiperjs.com/images/sponsors/pokiesgamblercom.png" alt="Online Pokies in Australia" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://topl.co" target="_blank">
<img src="https://swiperjs.com/images/sponsors/no-deposit-casinos.png" alt="No Deposit Casinos" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://brecktic.uk/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/brecktic-ltd.png" alt="Brecktic UK" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.fortune365.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/fortune365.png" alt="fortune365" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://cryptocasino-guide.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/cryptocasino-guide.png" alt="CryptoCasino Guide" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.fbpostlikes.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/pankaj-jangir.png" alt="Buy Facebook Likes for Post & Page" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.reddit.com/r/BusinessVault/comments/1nr32xk/whats_the_best_smm_panel_looking_for_suggestions/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button" target="_blank">
<img src="https://swiperjs.com/images/sponsors/smm-panel19.png" alt="SMM Panel" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://finance.yahoo.com/news/best-website-super-clone-watches-073500706.html" target="_blank">
<img src="https://swiperjs.com/images/sponsors/super-clone-prestige.png" alt="Yahoo Finance - Super Clone Watches" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://superclonereps.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/superclonewatch.png" alt="superclonewatch" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://detecting-ai.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/detecting-aicom.png" alt="AI Detector & AI Checker for ChatGPT, Gemini, Claude, & More" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.idsnews.com/article/2025/09/buy-instagram-followers" target="_blank">
<img src="https://swiperjs.com/images/sponsors/buy-instagram-followers-ids-ne.png" alt="Buy Instagram Followers - IDS News" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://gmkoutsi.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/gmkoutsi.png" alt="gmkoutsi.com" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://interac-casino.com/en-ca/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/interac-casino-canada.png" alt="Interac-casino.com - Canada" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://releaf.com/de/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/releaf-medizinischer-cannabis-shop.png" alt="Releaf - Medizinischer Cannabis Shop" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://legitcasino.vip/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/legit-casino.png" alt="Legit Casino" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.eurocommpr.at/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/eurocommpr.png" alt="EuroCommpr" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://snapinsta.vin/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/snapinsta.png" alt="SnapInsta" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://gpc.fm/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/brand-new-online-casinos-usa-no-deposit-bonus.png" alt="Brand New Online Casinos USA No Deposit Bonus" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.hfm.com/int/jp/trading-education/what-is-forex" target="_blank">
<img src="https://swiperjs.com/images/sponsors/hfmcom.png" alt="fx取引とは" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://bonustly.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/bonustly-best-crypto-casino-bonuses.png" alt="Bonustly: Best Crypto Casino Bonuses" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinononaamsit.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinononaamsit-com.png" alt="Migliori Casino non AAMS in Italia 2025" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.hfm.com/int/jp/trading-education/what-is-forex" target="_blank">
<img src="https://swiperjs.com/images/sponsors/hfmcom.png" alt="fx取引とは" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://opencollective.com/jokacasino" target="_blank">
<img src="https://swiperjs.com/images/sponsors/jokacasino.png" alt="online casino australia JokaCasino" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://swipey.ai/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/swipey.png" alt="Swipey AI - NSFW Chat" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://nondetected.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/nondetected.png" alt="Remove negative information from the Internet | NonDetected.com" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://opencollective.com/king-johnnie1" target="_blank">
<img src="https://swiperjs.com/images/sponsors/king-johnnie1.png" alt="king Johnnie" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://collegian.com/sponsored/2025/03/buy-youtube-subscribers/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/buy-youtube-subscribers-collegian.png" alt="buy YouTube subscribers" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.reddit.com/r/InstagramEmpire/comments/1o8v7zx/whats_the_best_site_to_buy_instagram_followers/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button" target="_blank">
<img src="https://swiperjs.com/images/sponsors/buy-real-instagram-followers1.png" alt="buy instagram followers" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.kasinoranking.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/kasinoranking.png" alt="Luotettavat nettikasinot 2025" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://newcasinos.vip/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/newcasinosvip.png" alt="Best New Online Casinos in 2025" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.backlinksrocket.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/backlinksrocket.png" alt="Buy Backlinks - High Quality SEO Backlink Services" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://kingjohnnie-au.casino/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/kingjohnnie-casino-australia.svg" alt="King Johnnie Casino Australia" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://nomaspinn.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/nomaspin.svg" alt="Nomaspin Casino Nederland" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://buytiktokfollowers.co/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/buy-tiktok-followers-co.png" alt="Buy TikTok Followers" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://tiktokfame.co/buy-tiktok-followers/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/tiktokfameco.png" alt="Buy TikTok Followers & Get Fame" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.softorbits.net/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/softorbits.png" alt="SoftOrbits - Easiest Photo Editing Software for Beginners" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinossinlicencia.eu/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinos-sin-licencia-en-espana1.png" alt="casinos sin licencia en España" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://homeworkguy.org/someone-to-take-my-online-class" target="_blank">
<img src="https://swiperjs.com/images/sponsors/homeworkguy.png" alt="someone to take my online class service" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.bestetf.net/list/artificial-intelligence/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/bestetf.png" alt="AI ETFs" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://superluxuryreps.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/superluxuryreps.png" alt="Super Clone Watches - Trusted Dealer For 1:1 Replica Watches" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.hfm.com/int/jp/trading-education/how-to-trade-gold" target="_blank">
<img src="https://swiperjs.com/images/sponsors/hfm.png" alt="ゴールド取引" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.reddit.com/r/MarketingMentor/comments/1cut7x5/where_to_buy_instagram_followers_likes/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/givemeboost.png" alt="Buy Instagram Followers " width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://prestigewatches.co/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/prestige_watches.png" alt="Super Clone Watches For Sale: Best Website for 1:1 Replica Watches" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://unaimytext.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/humanize-ai-unaimytext.png" alt="humanize ai unaimytext" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.casinotopplistan.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinotopplistan-com.png" alt="Casino online - Vi jämför casinon på nätet i Sverige" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.kasinonetti.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/kasinonetti-com.png" alt="Parhaat kasinot - Valitse turvallinen nettikasino" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://nogamstopcasinos.uk/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/non-gamstop-casinos3.png" alt="New Casinos Not on Gamstop - Best Non GamStop sites in 2025" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinonotongamstop.uk/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casino-not-on-gamstop.webp" alt="Casino not on GamStop" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://socialfollowers.io/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/socialfollowers.png" alt="The Best Social Media Promotion Service Provider" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://casinotreasure.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinotreasure.jpeg" alt="Trusted Source for Online Casino Info , Games, Guides , Reviews" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.mixx.com/buy-instagram-followers" target="_blank">
<img src="https://swiperjs.com/images/sponsors/buy-instagram-followers-mixx.png" alt="Buy Instagram Followers with Instant Delivery" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://expressfollowers.com/buy-tiktok-followers" target="_blank">
<img src="https://swiperjs.com/images/sponsors/buy-tiktok-followers2.png" alt="buy tiktok followers" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://boostlikes.uk/buy-youtube-subscribers-views/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/buy-instagram-followers-uk.webp" alt="Buy YouTube Subscribers & Views UK" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://miramtech.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/miramtech.png" alt="Miramtech" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.uudetkasinot.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/simon-johansson.svg" alt="Uudet Nettikasinot Huhtikuu 2025 | Parhaat Uudet Kasinot" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://goldstarsocial.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/user-c1ad5e70.png" alt="Goldstar Social" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://pistolocasino.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/pistolocasino.png" alt="Pistolo Casino" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://follower-boerse.de/product/tiktok-likes-kaufen/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/tiktok-likes.png" alt="TikTok Likes" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.socialfollowers.uk/buy-tiktok-followers/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/social-followers.png" alt="Buy Tiktok Followers" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.palace-luzern.ch/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/auslandische-online-casinos-schweiz.png" alt="Online Casino Ausland: Beste ausländische Online Casinos" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://kasynoplonline.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/bonus-bez-depozytu.png" alt="Kasyno online w Polsce" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://buylikesservices.com/free-instagram-likes/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/free-instaram-likes.png" alt="Free Instagram Likes" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.favbet.ro/ro/casino/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/favbet-ro.jpeg" alt="Casino online Favbet" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://twesocial.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/buy-twitter-followers-visit-twesocial.png" alt="Buy X Followers from TweSocial (Instant & Cheap)" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://sidesmedia.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/sidesmedia.png" alt="SidesMedia: Buy Followers, Views, Likes & More" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinosinternacionalesonline.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinosinternacionalesonline.png" alt="Mejores Casinos Internacionales Online de España 2025" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.casinokennis.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinokennis.png" alt="CasinoKennis" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinoonlineellada.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinoonlineelladacom.png" alt="casino online ellada" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.favbet.ua/uk/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/favbet.png" alt="БК Favbet" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.vso.org.uk/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinos-not-on-gamstop10.png" alt="casinos not on Gamstop" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://bonusoid.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/bonusoidcom.png" alt="Online Casinos mit deutscher Lizenz" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.casinofy.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinofy.png" alt="Casinofy" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinoallianz.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinoallianz.png" alt="CasinoAllianz" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://casinos.it.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casino-online-italia.png" alt="casinò online Italia" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.stjamestheatre.co.uk/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/non-gamstop-casinos.png" alt="Top UK Casinos Not on GamStop in 2025" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://nogamstopcasinos.org.uk/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/nogamstopcasinos.png" alt="nogamstopcasinos.org.uk" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://mysocialfollowing.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/mysocialfollowing.png" alt="My Social Following" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://dashtickets.nz/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/dashtickets-new-zealand-gambling-magazine.png" alt="DashTickets New Zealand gambling magazine" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://tethercasinos.top/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/tethercasinos.png" alt="best tether casinos" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.socialboosting.com/buy-tiktok-followers" target="_blank">
<img src="https://swiperjs.com/images/sponsors/socialboosting.png" alt="Buy TikTok Followers" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://betking.com.ua/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/betking.png" alt="Онлайн казино та БК (ставки на спорт) в Україні" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://tychebets.gr/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/tychebets-gr.png" alt="O Καλύτερος Οδηγός Online Καζίνο" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.top-casino.nl/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/top-casino.png" alt="Top online casino's van Nederland" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://polskiesloty.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/onlinekasyno-polis.jpg" alt="Polskie Sloty" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://robocat.casino/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/robocat-casino.png" alt="RoboCat Casino" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://zamsino.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/zamamamma.png" alt="Zamsino.com 🎖️ Global Online Gambling Guide" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://betwinnerpartner.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/betwinnerpartner.png" alt="Betwinner Partner" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.casinosdeutschlandonline.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/online-casinos-deutschland.png" alt="Online Casinos Deutschland" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinosportugal.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinos-portugal.png" alt="Casinos online em Portugal" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://bettingsite.cc/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/betting-site.png" alt="Betting Site" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.onlinecasinolegends.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/online-casino-legends.png" alt="Online Casino Nederland" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://nongamstopcasinos.net/gb/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/nongamstopcasinosnet.png" alt="UK Casinos not on GamStop 2025 - nongamstopcasinos.net" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://guidebook.betwinner.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/guidebook_betwinner_com.png" alt="Guidebook.BetWinner" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://zondercruks.net/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/zondercruksnet.png" alt="ZonderCruks - Online Gokken Zonder CRUKS" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinosinlicenciaespana.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/mejores-casinos-sin-licencia-en-espana1.png" alt="Mejores Casinos Sin Licencia en España" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://sanctionslawyers.net/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/sanctionslawyers-net.png" alt="SANCTIONS LAW FIRM" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://interpollawfirm.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/interpollawfirmcom.png" alt="Interpol Law Firm" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://nongamstopbookiesuk.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/try-bookmakers-not-on-gamstop.png" alt="try bookmakers not on GamStop" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://leofame.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/leofame.png" alt="Buy Instagram Followers & Likes" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.teravisiontech.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/teravisiontech.webp" alt="Accelerating Your Software Products | Teravision Technologies" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://onlinecasinosgr.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casino-magyar.png" alt="Casino Magyar" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://onlinecasinosgr.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/onlinecasinosgr-com.png" alt="Ta καλύτερα διαδικτυακά καζίνο στην Ελλάδα το 2024" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://bulkoid.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/bulkoid_com.png" alt="Bulkoid" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.gokken-online.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/gokken-online.png" alt="Gokken Online" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://greece-casinos.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/greece-casinos.png" alt="Greece Casinos" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.hellobonuses.com/nl/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casino-bonussen-nederland.png" alt="Casino Bonussen Nederland" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.ownedcore.com/casino/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casino-usa.png" alt="Casino No deposit Bonus 2024" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://blastup.com/buy-instagram-likes" target="_blank">
<img src="https://swiperjs.com/images/sponsors/blastup_com.png" alt="Buy Instagram Likes - Real Likes & Instant Delivery!" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://vedonlyontiyhtiot.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/vedonlyontiyhtiot-com.svg" alt="Vedonlyontiyhtiot.com - Parhaat Vedolyöntiyhtiöt & Bonukset" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://celebian.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/celebian.png" alt="Purchase TikTok followers, likes and views" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://views4you.com/buy-youtube-views/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/buy-youtube-views-views4you.png" alt="Buy Youtube Views" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.upgrow.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/upgrow.png" alt="UpGrow: #1 AI-Powered Instagram Growth | Real IG Followers" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.doublethebitcoin.net/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/doublethebitcoin.png" alt="Best Bitcoin Casinos" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://topnoaccountcasinos.com/nl/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/topnoaccountcasinos.png" alt="Topnoaccountcasinos casino zonder registratie" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.prointernet.in.ua/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/prointernet-2.png" alt="Prointernet" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://nexussmoke.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/nexus-smoke.png" alt="Nexus Smoke Premium E-Liquid and Luxury Vape Products" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.overlyzer.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/overlyzer_com.png" alt="Overlyzer » football betting analyzer & soccer predictions" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://spelpressen.se/casino-reportage/casino-utan-svensk-licens" target="_blank">
<img src="https://swiperjs.com/images/sponsors/spelpressen-se.png" alt="Casino utan Svensk Licens | Bästa Casinon utan Spelpaus 🎖️" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://betfans.nl/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/betfans.png" alt="BetFans - Alles over online wedden; Bookmakers Vergelijken" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.onlineunitedstatescasinos.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/online-united-states-casinos.png" alt="Top USA Online Casinos September 2023 | Online United States Casinos" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://philippinescasinos.ph/gcash/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/philippinescasinosph.png" alt="Best Online Casino in Philippines using GCash | 2023 Rank" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://cyberogism.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/cyberogism.png" alt="Technology, Security, Innovation, The Cyber World Now | Cyberogism" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://buycheapestfollowers.com/buy-instagram-reels-views" target="_blank">
<img src="https://swiperjs.com/images/sponsors/thebestsolution.png" alt="Buy Instagram Reels Views" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://onlinecasinosspelen.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/onlinecasinosspelen.png" alt="Onlinecasinosspelen.com site is dé nummer één gids, waardoor je gemakkelijk alle informatie van de top 10 online casino sites." width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://rotativka.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/rotativka.png" alt="Rotativka.com - Най-добрите онлайн казина в България" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.casinoaustraliaonline.com/under-1-hour-withdrawal-casinos/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinoaustraliaonline.png" alt="Under 1 Hour Withdrawal Casinos in Australia - 2022" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://betbetter-pa.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/betbetter.png" alt="PA Online Casino - List of Best Casinos in Pennsylvania" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinozonderregistratie.net/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/czrnet.png" alt="Casino Zonder Registratie 2022 | CZR's Top No Account Casino's Ranglijst" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://nieuwe-casinos.net/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/nieuwecasinos.png" alt="Nieuwe Online Casino's December 2022 | Overzicht van de top nieuwe casinos!" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://4rabet.com/app" target="_blank">
<img src="https://swiperjs.com/images/sponsors/4rabet.svg" alt="cricket betting app" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.wisergamblers.com/de/casino-bonus-ohne-einzahlung/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/wisergamblers.png" alt="WiserGamblers | Best Online Gambling Guide" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://betting-sider.net/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/betting-sider.png" alt="betting sider" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://thecasinowizard.com/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/thecasinowizard.png" alt="The Casino Wizard » Best Casinos & (No) Deposit Bonuses 2022" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://www.fast.bet/ca/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/fastbet-bet-ca.png" alt="Fastest Payout Casinos in Canada [2022]" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://cliquestudios.com" target="_blank">
<img src="https://swiperjs.com/images/sponsors/cliquestudios.png" alt="Clique Studios - Creative Digital Transformation" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://correctcasinos.com" target="_blank">
<img src="https://swiperjs.com/images/sponsors/correctcasinos.png" alt="Correct Casinos | The Ultimate Guide to the Legit Online Casinos" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://writingmetier.com/extended-essay-writing-service/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/writingmetier.png" alt="IB extended essay writing service" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.wizardslots.com" target="_blank">
<img src="https://swiperjs.com/images/sponsors/wizardslots.png" alt="Online Slots - UK Slot Games - 500 FREE Spins at Wizard Slots" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.fortunegames.com" target="_blank">
<img src="https://swiperjs.com/images/sponsors/fortunegames.png" alt="Fortune Games® | Free Spins No Deposit Slot Games | Online Slots" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://tankpenge.dk" target="_blank">
<img src="https://swiperjs.com/images/sponsors/tankpenge-dk.png" alt="LÅN PENGE NU | Hurtige Online lån 2021 | Klik her og Ansøg i dag" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://veepn.com/vpn-apps/vpn-for-chrome/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/veepn.png" alt="VPN for Chrome to Make Web Surfing 100% Safe" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinoexpo.se/casino-utan-registrering/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinoexpo.jpg" alt="CasinoExpo casino utan registrering" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://najlepsibukmacherzy.pl/ranking-legalnych-bukmacherow/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/netpositive.png" alt="Ranking Bukmacherów Legalnych 2020. Bukmacher nr 1 to..." width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://casinosters.com" target="_blank">
<img src="https://swiperjs.com/images/sponsors/casinosters.svg" alt="The Best Online Casinos in the UK » Gambling Sites by Casinosters" width="160">
</a>
</td>
<td align="center" valign="middle">
<a href="https://gamblizard.com/deposit-bonuses/deposit-10-pound/" target="_blank">
<img src="https://swiperjs.com/images/sponsors/gamblizard.png" alt="Deposit £10 Play with 30, 40, 50, 60, 70, or 80 Pounds✔️ GambLizard" width="160">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://goread.io/buy-instagram-likes" target="_blank">
<img src="https://swiperjs.com/images/sponsors/goread.png" alt="Instagram likes" width="160">
</a>
</td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
</tr>
</table>
<!-- SPONSORS_TABLE_WRAP -->
### \$500 Platinum Sponsor
[Currently vacant. It could be you!](https://opencollective.com/swiper/contribute/platinum-sponsor-24468/checkout)
---
### \$250 Gold Sponsor
[Currently vacant. It could be you!](https://opencollective.com/swiper/contribute/gold-sponsor-24466/checkout)
---
### \$100 Silver Sponsor
<!-- SILVER_SPONSOR -->
- [Uudet Nettikasinot](https://fi.parhaatuudetkasinot.com/)
- [VanguardNGR France](https://www.vanguardngr.com/casino/fr/)
- [Marsbahis: Marsbahis Giriş - Marsbahis Güncel Adres ve Üyelik](https://marsbahis.com/tr/)
- [Casinos Sin Licencia En España](https://heinekenjazzaldia.eus/)
- [Skilled Writers for In-Depth Academic Papers](https://royalwriter.co.uk/)
- [Masterpapers - Qualified writers delivering excellence in every word!](https://www.masterpapers.com/)
- [Best Online Casinos Canada](https://casinosfest.com/)
- [Grademiners - Professional writers, original content, quality you can trust!](https://grademiners.com/)
- [Nettikasinot](https://www.nettikasinot.org/)
- [České Online Casino: Hrajte Bezpečně a Výhodně v 2024](https://nejlepsiceskacasina.com/)
- [Najlepšie Online Casino Slovensko 2024 | Október 2024](https://slovenskeonlinecasino.com/)
- [SS Market: Social Media Services Market](https://ssmarket.net/)
- [Automatenspieler](https://automatenspieler.net/)
- [Uudet nettikasinot 2024 » Listaamme Suomen uudet kasinot](https://uusimmatkasinot.com/)
- [Nettikasinot 2022 | Löydä Luotettava & Turvallinen Nettikasino!](https://www.kasinohai.com/nettikasinot)
- [NonGamStopOdds casino sites](https://www.nongamstopodds.com/casinos-not-on-gamstop/)
- [Online Casino Test 2022 » 90+ Casinos von Experten geprüft!](https://www.casinotest.de)
- [Online sports betting and casino at Parimatch India](https://parimatch.in/en/football/live)
- [Casinos not on GamStop | Casino-Wise.com](https://casino-wise.com/casinos-not-on-gamstop/)
- [Casinos not on GamStop UK 🏆 NonGamStopWager.com](https://www.nongamstopwager.com/casinos-not-on-gamstop/)
- [Online Casinos Cyprus - CasinoAuditor](https://casinoauditor.com/online-casinos-cyprus/)
- [Best Online Casinos in Canada](https://casinoshunter.com/online-casinos/)
<!-- SILVER_SPONSOR -->
[Join here!](https://opencollective.com/swiper/contribute/silver-sponsor-24464/checkout)
---
### \$50+ Sponsor
<!-- SPONSOR -->
- [Buy TikTok Followers - STL Today](https://www.stltoday.com/exclusive/3-top-rated-platforms-to-buy-tiktok-followers-for-fast-growth/article_74fb98eb-6019-5b74-9cda-803a7d4ac4a2.html)
- [Online Pokies in Australia](https://au.trustpilot.com/review/pokiesgambler.com)
- [No Deposit Casinos](https://topl.co)
- [Brecktic UK](https://brecktic.uk/)
- [fortune365](https://www.fortune365.com/)
- [CryptoCasino Guide](https://cryptocasino-guide.com/)
- [Buy Facebook Likes for Post & Page](https://www.fbpostlikes.com/)
- [SMM Panel](https://www.reddit.com/r/BusinessVault/comments/1nr32xk/whats_the_best_smm_panel_looking_for_suggestions/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button)
- [Yahoo Finance - Super Clone Watches](https://finance.yahoo.com/news/best-website-super-clone-watches-073500706.html)
- [superclonewatch](https://superclonereps.com/)
- [AI Detector & AI Checker for ChatGPT, Gemini, Claude, & More](https://detecting-ai.com/)
- [Buy Instagram Followers - IDS News](https://www.idsnews.com/article/2025/09/buy-instagram-followers)
- [gmkoutsi.com](https://gmkoutsi.com/)
- [Interac-casino.com - Canada](https://interac-casino.com/en-ca/)
- [Releaf - Medizinischer Cannabis Shop](https://releaf.com/de/)
- [Legit Casino](https://legitcasino.vip/)
- [EuroCommpr](https://www.eurocommpr.at/)
- [SnapInsta](https://snapinsta.vin/)
- [Brand New Online Casinos USA No Deposit Bonus](https://gpc.fm/)
- [fx取引とは](https://www.hfm.com/int/jp/trading-education/what-is-forex)
- [Bonustly: Best Crypto Casino Bonuses](https://bonustly.com/)
- [Migliori Casino non AAMS in Italia 2025](https://casinononaamsit.com/)
- [fx取引とは](https://www.hfm.com/int/jp/trading-education/what-is-forex)
- [online casino australia JokaCasino](https://opencollective.com/jokacasino)
- [Swipey AI - NSFW Chat](https://swipey.ai/)
- [Remove negative information from the Internet | NonDetected.com](https://nondetected.com/)
- [king Johnnie](https://opencollective.com/king-johnnie1)
- [buy YouTube subscribers](https://collegian.com/sponsored/2025/03/buy-youtube-subscribers/)
- [buy instagram followers](https://www.reddit.com/r/InstagramEmpire/comments/1o8v7zx/whats_the_best_site_to_buy_instagram_followers/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button)
- [Luotettavat nettikasinot 2025](https://www.kasinoranking.com/)
- [Best New Online Casinos in 2025](https://newcasinos.vip/)
- [Buy Backlinks - High Quality SEO Backlink Services](https://www.backlinksrocket.com/)
- [King Johnnie Casino Australia](https://kingjohnnie-au.casino/)
- [Nomaspin Casino Nederland](https://nomaspinn.com/)
- [Buy TikTok Followers](https://buytiktokfollowers.co/)
- [Buy TikTok Followers & Get Fame](https://tiktokfame.co/buy-tiktok-followers/)
- [SoftOrbits - Easiest Photo Editing Software for Beginners](https://www.softorbits.net/)
- [casinos sin licencia en España](https://casinossinlicencia.eu/)
- [someone to take my online class service](https://homeworkguy.org/someone-to-take-my-online-class)
- [AI ETFs](https://www.bestetf.net/list/artificial-intelligence/)
- [Super Clone Watches - Trusted Dealer For 1:1 Replica Watches](https://superluxuryreps.com/)
- [ゴールド取引](https://www.hfm.com/int/jp/trading-education/how-to-trade-gold)
- [Buy Instagram Followers ](https://www.reddit.com/r/MarketingMentor/comments/1cut7x5/where_to_buy_instagram_followers_likes/)
- [Super Clone Watches For Sale: Best Website for 1:1 Replica Watches](https://prestigewatches.co/)
- [humanize ai unaimytext](https://unaimytext.com/)
- [Casino online - Vi jämför casinon på nätet i Sverige](https://www.casinotopplistan.com/)
- [Parhaat kasinot - Valitse turvallinen nettikasino](https://www.kasinonetti.com/)
- [New Casinos Not on Gamstop - Best Non GamStop sites in 2025](https://nogamstopcasinos.uk/)
- [Casino not on GamStop](https://casinonotongamstop.uk/)
- [The Best Social Media Promotion Service Provider](https://socialfollowers.io/)
- [Trusted Source for Online Casino Info , Games, Guides , Reviews](https://casinotreasure.com/)
- [Buy Instagram Followers with Instant Delivery](https://www.mixx.com/buy-instagram-followers)
- [buy tiktok followers](https://expressfollowers.com/buy-tiktok-followers)
- [Buy YouTube Subscribers & Views UK](https://boostlikes.uk/buy-youtube-subscribers-views/)
- [Miramtech](https://miramtech.com/)
- [Uudet Nettikasinot Huhtikuu 2025 | Parhaat Uudet Kasinot](https://www.uudetkasinot.com/)
- [Goldstar Social](https://goldstarsocial.com/)
- [Pistolo Casino](https://pistolocasino.com/)
- [TikTok Likes](https://follower-boerse.de/product/tiktok-likes-kaufen/)
- [Buy Tiktok Followers](https://www.socialfollowers.uk/buy-tiktok-followers/)
- [Online Casino Ausland: Beste ausländische Online Casinos](https://www.palace-luzern.ch/)
- [Kasyno online w Polsce](https://kasynoplonline.com/)
- [Free Instagram Likes](https://buylikesservices.com/free-instagram-likes/)
- [Casino online Favbet](https://www.favbet.ro/ro/casino/)
- [Buy X Followers from TweSocial (Instant & Cheap)](https://twesocial.com/)
- [SidesMedia: Buy Followers, Views, Likes & More](https://sidesmedia.com/)
- [Mejores Casinos Internacionales Online de España 2025](https://casinosinternacionalesonline.com/)
- [CasinoKennis](https://www.casinokennis.com/)
- [casino online ellada](https://casinoonlineellada.com/)
- [БК Favbet](https://www.favbet.ua/uk/)
- [casinos not on Gamstop](https://www.vso.org.uk/)
- [Online Casinos mit deutscher Lizenz](https://bonusoid.com/)
- [Casinofy](https://www.casinofy.com/)
- [CasinoAllianz](https://casinoallianz.com/)
- [casinò online Italia](https://casinos.it.com/)
- [Top UK Casinos Not on GamStop in 2025](https://www.stjamestheatre.co.uk/)
- [nogamstopcasinos.org.uk](https://nogamstopcasinos.org.uk/)
- [My Social Following](https://mysocialfollowing.com/)
- [DashTickets New Zealand gambling magazine](https://dashtickets.nz/)
- [best tether casinos](https://tethercasinos.top/)
- [Buy TikTok Followers](https://www.socialboosting.com/buy-tiktok-followers)
- [Онлайн казино та БК (ставки на спорт) в Україні](https://betking.com.ua/)
- [O Καλύτερος Οδηγός Online Καζίνο](https://tychebets.gr/)
- [Top online casino's van Nederland](https://www.top-casino.nl/)
- [Polskie Sloty](https://polskiesloty.com/)
- [RoboCat Casino](https://robocat.casino/)
- [Zamsino.com 🎖️ Global Online Gambling Guide](https://zamsino.com/)
- [Betwinner Partner](https://betwinnerpartner.com/)
- [Online Casinos Deutschland](https://www.casinosdeutschlandonline.com/)
- [Casinos online em Portugal](https://casinosportugal.com/)
- [Betting Site](https://bettingsite.cc/)
- [Online Casino Nederland](https://www.onlinecasinolegends.com/)
- [UK Casinos not on GamStop 2025 - nongamstopcasinos.net](https://nongamstopcasinos.net/gb/)
- [Guidebook.BetWinner](https://guidebook.betwinner.com/)
- [ZonderCruks - Online Gokken Zonder CRUKS](https://zondercruks.net/)
- [Mejores Casinos Sin Licencia en España](https://casinosinlicenciaespana.com/)
- [SANCTIONS LAW FIRM](https://sanctionslawyers.net/)
- [Interpol Law Firm](https://interpollawfirm.com/)
- [try bookmakers not on GamStop](https://nongamstopbookiesuk.com/)
- [Buy Instagram Followers & Likes](https://leofame.com/)
- [Accelerating Your Software Products | Teravision Technologies](https://www.teravisiontech.com/)
- [Casino Magyar](https://onlinecasinosgr.com/)
- [Ta καλύτερα διαδικτυακά καζίνο στην Ελλάδα το 2024](https://onlinecasinosgr.com/)
- [Bulkoid](https://bulkoid.com/)
- [Gokken Online](https://www.gokken-online.com/)
- [Greece Casinos](https://greece-casinos.com/)
- [Casino Bonussen Nederland](https://www.hellobonuses.com/nl/)
- [Casino No deposit Bonus 2024](https://www.ownedcore.com/casino/)
- [Buy Instagram Likes - Real Likes & Instant Delivery!](https://blastup.com/buy-instagram-likes)
- [Vedonlyontiyhtiot.com - Parhaat Vedolyöntiyhtiöt & Bonukset](https://vedonlyontiyhtiot.com/)
- [Purchase TikTok followers, likes and views](https://celebian.com/)
- [Buy Youtube Views](https://views4you.com/buy-youtube-views/)
- [UpGrow: #1 AI-Powered Instagram Growth | Real IG Followers](https://www.upgrow.com/)
- [Best Bitcoin Casinos](https://www.doublethebitcoin.net/)
- [Topnoaccountcasinos casino zonder registratie](https://topnoaccountcasinos.com/nl/)
- [Prointernet](https://www.prointernet.in.ua/)
- [Nexus Smoke Premium E-Liquid and Luxury Vape Products](https://nexussmoke.com/)
- [Overlyzer » football betting analyzer & soccer predictions](https://www.overlyzer.com/)
- [Casino utan Svensk Licens | Bästa Casinon utan Spelpaus 🎖️](https://spelpressen.se/casino-reportage/casino-utan-svensk-licens)
- [BetFans - Alles over online wedden; Bookmakers Vergelijken](https://betfans.nl/)
- [Top USA Online Casinos September 2023 | Online United States Casinos](https://www.onlineunitedstatescasinos.com/)
- [Best Online Casino in Philippines using GCash | 2023 Rank](https://philippinescasinos.ph/gcash/)
- [Technology, Security, Innovation, The Cyber World Now | Cyberogism](https://cyberogism.com/)
- [Buy Instagram Reels Views](https://buycheapestfollowers.com/buy-instagram-reels-views)
- [Onlinecasinosspelen.com site is dé nummer één gids, waardoor je gemakkelijk alle informatie van de top 10 online casino sites.](https://onlinecasinosspelen.com/)
- [Rotativka.com - Най-добрите онлайн казина в България](https://rotativka.com/)
- [Under 1 Hour Withdrawal Casinos in Australia - 2022](https://www.casinoaustraliaonline.com/under-1-hour-withdrawal-casinos/)
- [PA Online Casino - List of Best Casinos in Pennsylvania](https://betbetter-pa.com/)
- [Casino Zonder Registratie 2022 | CZR's Top No Account Casino's Ranglijst](https://casinozonderregistratie.net/)
- [Nieuwe Online Casino's December 2022 | Overzicht van de top nieuwe casinos!](https://nieuwe-casinos.net/)
- [cricket betting app](https://4rabet.com/app)
- [WiserGamblers | Best Online Gambling Guide](https://www.wisergamblers.com/de/casino-bonus-ohne-einzahlung/)
- [betting sider](https://betting-sider.net/)
- [The Casino Wizard » Best Casinos & (No) Deposit Bonuses 2022](https://thecasinowizard.com/)
- [Fastest Payout Casinos in Canada [2022]](https://www.fast.bet/ca/)
- [Clique Studios - Creative Digital Transformation](https://cliquestudios.com)
- [Correct Casinos | The Ultimate Guide to the Legit Online Casinos](https://correctcasinos.com)
- [IB extended essay writing service](https://writingmetier.com/extended-essay-writing-service/)
- [Online Slots - UK Slot Games - 500 FREE Spins at Wizard Slots](https://www.wizardslots.com)
- [Fortune Games® | Free Spins No Deposit Slot Games | Online Slots](https://www.fortunegames.com)
- [LÅN PENGE NU | Hurtige Online lån 2021 | Klik her og Ansøg i dag](https://tankpenge.dk)
- [VPN for Chrome to Make Web Surfing 100% Safe](https://veepn.com/vpn-apps/vpn-for-chrome/)
- [CasinoExpo casino utan registrering](https://casinoexpo.se/casino-utan-registrering/)
- [Ranking Bukmacherów Legalnych 2020. Bukmacher nr 1 to...](https://najlepsibukmacherzy.pl/ranking-legalnych-bukmacherow/)
- [The Best Online Casinos in the UK » Gambling Sites by Casinosters](https://casinosters.com)
- [Deposit £10 Play with 30, 40, 50, 60, 70, or 80 Pounds✔️ GambLizard](https://gamblizard.com/deposit-bonuses/deposit-10-pound/)
- [Instagram likes](https://goread.io/buy-instagram-likes)
<!-- SPONSOR -->
[Join here!](https://opencollective.com/swiper/contribute/sponsor-24467/checkout)
---
### \$25+ Top Supporter
<!-- TOP_SUPPORTER -->
[easy-views.org](https://easy-views.org) - High Retention Youtube Views<br>
<!-- TOP_SUPPORTER -->
[Join here!](https://opencollective.com/swiper/contribute/top-supporter-24465/checkout)
---
### \$10+ Supporter
[Quicko](https://opencollective.com/quicko)<br>
[Instagram Stories Viewer](https://opencollective.com/instagram-stories-viewer)<br>
[Will Myers](https://opencollective.com/will-myers)<br>
[Join here!](https://opencollective.com/swiper/contribute/supporter-23766/checkout)
---
### \$5+ Thank You
[Fresh Engagements](https://opencollective.com/fresh-engagements)<br>
[Instagram Services](https://www.patreon.com/user?u=67523502)<br>
================================================
FILE: CHANGELOG.md
================================================
# Changelog
# [12.1.1](https://github.com/nolimits4web/Swiper/compare/v12.1.0...v12.1.1) (2026-02-13)
### Bug Fixes
- **a11y:** fix focus in virtual mode enabled ([3055008](https://github.com/nolimits4web/Swiper/commit/30550088fd089600aec2d7f8924b88cff13abbe9)), closes [#8147](https://github.com/nolimits4web/Swiper/issues/8147)
- **core:** avoid double-subtracting offsets in centerInsufficientSlides ([#8158](https://github.com/nolimits4web/Swiper/issues/8158)) ([60b0052](https://github.com/nolimits4web/Swiper/commit/60b005222a801029a4a00d319517028afba7af18))
- **core:** prevent duplicate module initialization in constructor ([#8155](https://github.com/nolimits4web/Swiper/issues/8155)) ([#8156](https://github.com/nolimits4web/Swiper/issues/8156)) ([07738a2](https://github.com/nolimits4web/Swiper/commit/07738a233b70535c36126c5b579f2bb40049da6c))
- **types:** support boolean as a11y value ([#8157](https://github.com/nolimits4web/Swiper/issues/8157)) ([6bf76d5](https://github.com/nolimits4web/Swiper/commit/6bf76d573196c61db1328350c11e2c44f5d3ec08))
# [12.1.0](https://github.com/nolimits4web/Swiper/compare/v12.0.3...v12.1.0) (2026-01-28)
### Bug Fixes
- **autoplay:** broken custom delay percentages with pause/resume ([#8133](https://github.com/nolimits4web/Swiper/issues/8133)) ([0afecde](https://github.com/nolimits4web/Swiper/commit/0afecde9781268a60a92f752ea3a3a92420e2dcf))
- **core:** Don't use `data-swiper-slide-index` for `realIndex` when virtual module is enabled ([#8142](https://github.com/nolimits4web/Swiper/issues/8142)) ([bd957f8](https://github.com/nolimits4web/Swiper/commit/bd957f8396f711b83dc1bc6b3d42a59e6d6539d2))
- **core:** Escape all CSS selector special characters ([d35f41a](https://github.com/nolimits4web/Swiper/commit/d35f41a85bd1793de58358d06300440e09187a6d)), closes [#8135](https://github.com/nolimits4web/Swiper/issues/8135)
- **core:** support slidesOffsetBefore and slidesOffsetAfert in cssMode ([45b98d0](https://github.com/nolimits4web/Swiper/commit/45b98d02b2235b0c425f8bd60ebdc04d7b1a4fbd)), closes [#7926](https://github.com/nolimits4web/Swiper/issues/7926)
- fix lazy preloader removal error in react in vue ([332f5c7](https://github.com/nolimits4web/Swiper/commit/332f5c77005921c8a260f199cdfe6d3aa5d209a1)), closes [#8149](https://github.com/nolimits4web/Swiper/issues/8149)
- **thumbs:** update slide classes on virtual swiper update ([#8141](https://github.com/nolimits4web/Swiper/issues/8141)) ([9752771](https://github.com/nolimits4web/Swiper/commit/975277111b73f389043cb0ed19feee0244a80f57))
- **types:** Add `autoScroll` to `thumbs.update` type signature ([#8146](https://github.com/nolimits4web/Swiper/issues/8146)) ([5d91e6e](https://github.com/nolimits4web/Swiper/commit/5d91e6edb4ce35d70019616b51f1e380feb9a082))
- **zoom:** initialize gesture state after programmatic zoom ([#8112](https://github.com/nolimits4web/Swiper/issues/8112)) ([71e9511](https://github.com/nolimits4web/Swiper/commit/71e9511802c34482bc8b66abda19a1a518d88d36))
### Features
- **keyboard:** add support for custom speed parameter in keyboard navigation ([#8148](https://github.com/nolimits4web/Swiper/issues/8148)) ([7a4a0e5](https://github.com/nolimits4web/Swiper/commit/7a4a0e5fc3c85710a37ab021328e083fc3b14e16))
- new snapToSlideEdge parameter ([de3131f](https://github.com/nolimits4web/Swiper/commit/de3131fbf72cccbf1d1473f787ddf15c74612584)), closes [#8021](https://github.com/nolimits4web/Swiper/issues/8021) [#4780](https://github.com/nolimits4web/Swiper/issues/4780)
# [12.0.3](https://github.com/nolimits4web/Swiper/compare/v12.0.2...v12.0.3) (2025-10-21)
### Bug Fixes
- **element:** fixed reference to nav arrows SVG ([0b17ecf](https://github.com/nolimits4web/Swiper/commit/0b17ecf56bf941e4a5da2a2c171d5e16a9e4552b)), closes [#8115](https://github.com/nolimits4web/Swiper/issues/8115)
### Features
- **core:** add 'getRotateFix' export to effect utils ([c97ae5d](https://github.com/nolimits4web/Swiper/commit/c97ae5d0069cf3d5c745efb63ced9924a64d2453)), closes [#8114](https://github.com/nolimits4web/Swiper/issues/8114)
# [12.0.2](https://github.com/nolimits4web/Swiper/compare/v12.0.1...v12.0.2) (2025-09-18)
### Features
- **navigation:** add styles for when buttons set before slider ([4588c57](https://github.com/nolimits4web/Swiper/commit/4588c5719d4d828548c34f456de099f621f4c709)), closes [#8085](https://github.com/nolimits4web/Swiper/issues/8085)
- **navigation:** new `addIcons` parameter to add SVG icons to nav buttons ([b955b0c](https://github.com/nolimits4web/Swiper/commit/b955b0c15c3b813bbda7a68cdd250f8a822015df)), closes [#8088](https://github.com/nolimits4web/Swiper/issues/8088) [#8087](https://github.com/nolimits4web/Swiper/issues/8087)
# [12.0.1](https://github.com/nolimits4web/Swiper/compare/v12.0.0...v12.0.1) (2025-09-11)
### Bug Fixes
- **navigation:** tweak nav styles when adjacent ([98440d9](https://github.com/nolimits4web/Swiper/commit/98440d9621c2b06c1c45edf8f4103ce5125e8231))
# [12.0.0](https://github.com/nolimits4web/Swiper/compare/v11.2.10...v12.0.0) (2025-09-11)
### Bug Fixes
- **core:** fixes issues when slidesOffsetBefore & slidesOffsetAfter are combinated with centeredSlides, slidesPerView & loop ([#8038](https://github.com/nolimits4web/Swiper/issues/8038)) ([74cc297](https://github.com/nolimits4web/Swiper/commit/74cc29713508bb48939ef9147a869979a8120cc4)), closes [#7298](https://github.com/nolimits4web/Swiper/issues/7298) [#7956](https://github.com/nolimits4web/Swiper/issues/7956) [#6916](https://github.com/nolimits4web/Swiper/issues/6916)
- **effect-cards:** fix offset in vertical direction when rotate is unset ([a248ca1](https://github.com/nolimits4web/Swiper/commit/a248ca1fc4fd070e02f65ca7afc55789c02f15c7)), closes [#8075](https://github.com/nolimits4web/Swiper/issues/8075)
- **get-device:** regexp tweak ([60bb79b](https://github.com/nolimits4web/Swiper/commit/60bb79b599895350da71212b05e3f89a0dabc447)), closes [#8057](https://github.com/nolimits4web/Swiper/issues/8057)
- **types:** correct types for getSlideTransformEl ([b34bdce](https://github.com/nolimits4web/Swiper/commit/b34bdce988a681a41778c95795e19787a19e754d)), closes [#8054](https://github.com/nolimits4web/Swiper/issues/8054)
### Features
- **a11y:** add wrapperLiveRegion param to disable wrapper live region in a11y module ([#8061](https://github.com/nolimits4web/Swiper/issues/8061)) ([d03044e](https://github.com/nolimits4web/Swiper/commit/d03044e8f8648946dfecf9b669df987a5a5e1925))
- move to SVG icons for navigation ([264603c](https://github.com/nolimits4web/Swiper/commit/264603cc36a54e7a4f39507b2fbdab7e38bb046e)), closes [#6652](https://github.com/nolimits4web/Swiper/issues/6652) [#4990](https://github.com/nolimits4web/Swiper/issues/4990)
- remove LESS and SCSS styles in favor of CSS ([118ec66](https://github.com/nolimits4web/Swiper/commit/118ec6616da1249b589f9c468076ec036234b36d))
- **virtual:** add slidesPerViewAutoSlideSize parameter for fixed slide dimensions with slidesPerView auto ([d472144](https://github.com/nolimits4web/Swiper/commit/d47214480e7b9155ce2203a9a21209e56c5c303b)), closes [#8041](https://github.com/nolimits4web/Swiper/issues/8041) [#7796](https://github.com/nolimits4web/Swiper/issues/7796)
# [11.2.10](https://github.com/nolimits4web/Swiper/compare/v11.2.9...v11.2.10) (2025-06-28)
### Bug Fixes
- **core:** fix clickedIndex with grid ([863d8bd](https://github.com/nolimits4web/Swiper/commit/863d8bdd750b5a5f5b6df8b1129656e8050bd615))
# [11.2.9](https://github.com/nolimits4web/Swiper/compare/v11.2.8...v11.2.9) (2025-06-27)
### Bug Fixes
- **core:** clear blank slides within loopCreate() ([#8033](https://github.com/nolimits4web/Swiper/issues/8033)) ([377d53c](https://github.com/nolimits4web/Swiper/commit/377d53cbcf7dfbaeab76e8bfa88e94795693b157))
- **core:** escape brackets when transforming classes to selector ([#8014](https://github.com/nolimits4web/Swiper/issues/8014)) ([0c53ee8](https://github.com/nolimits4web/Swiper/commit/0c53ee8bd9d606934e0e29d78b7088a58d9fba64))
- **core:** slideTo function does not work when grid.rows > 1 ([#8030](https://github.com/nolimits4web/Swiper/issues/8030)) ([1fde9d3](https://github.com/nolimits4web/Swiper/commit/1fde9d38090a858487ae9e000a8c164fecf81320))
- **core:** using loop and slideToClickedSlide / slideToLoop with centeredSlides ([b6692e2](https://github.com/nolimits4web/Swiper/commit/b6692e21de281685c6434368e5cac2180f9320fa)), closes [#8031](https://github.com/nolimits4web/Swiper/issues/8031)
- **element:** don't set subprops on boolean values ([090caa1](https://github.com/nolimits4web/Swiper/commit/090caa19764f16e44e89b8478e5737f1783eefa3)), closes [#8003](https://github.com/nolimits4web/Swiper/issues/8003)
- **keyboard:** detect contenteditable element in keyboard module ([#8006](https://github.com/nolimits4web/Swiper/issues/8006)) ([fcd434a](https://github.com/nolimits4web/Swiper/commit/fcd434aa53e957b516417865bddafdcb5533e863))
- **vue:** add missing event ([839cafb](https://github.com/nolimits4web/Swiper/commit/839cafb60fb68d8f4ef8b5a2ccf6648e895e8fe9)), closes [#8002](https://github.com/nolimits4web/Swiper/issues/8002)
# [11.2.8](https://github.com/nolimits4web/Swiper/compare/v11.2.7...v11.2.8) (2025-05-23)
### Bug Fixes
- **virtual:** fix error in Virtual slides ([7a53208](https://github.com/nolimits4web/Swiper/commit/7a53208899cbcc6efb3ec655a9de3a0b4871bbb8)), closes [#7997](https://github.com/nolimits4web/Swiper/issues/7997)
# [11.2.7](https://github.com/nolimits4web/Swiper/compare/v11.2.6...v11.2.7) (2025-05-19)
### Bug Fixes
- **core:** fix for slideResetTransition events ([#7989](https://github.com/nolimits4web/Swiper/issues/7989)) ([473ec25](https://github.com/nolimits4web/Swiper/commit/473ec25a74a9dfbf4366445034bd22aabc3f1889))
- **core:** set innerHTML using trusted type ([8a46954](https://github.com/nolimits4web/Swiper/commit/8a46954e43c976ea5dc0c6e3edf351f3a99a0d42)), closes [#7961](https://github.com/nolimits4web/Swiper/issues/7961)
- **react,vue:** fix not rendered slides in effects when Virtual is enabled ([e4e1680](https://github.com/nolimits4web/Swiper/commit/e4e1680cda676992ff2ff7b14d7c45db9aec304b)), closes [#7730](https://github.com/nolimits4web/Swiper/issues/7730)
- **types:** add enabled property on swiper-class.d.ts ([#7973](https://github.com/nolimits4web/Swiper/issues/7973)) ([ccd96dc](https://github.com/nolimits4web/Swiper/commit/ccd96dca508de2a72adb11cba3fce96d24596453))
- **types:** coverflow effect can be number or string with percentage ([#7931](https://github.com/nolimits4web/Swiper/issues/7931)) ([4d988d8](https://github.com/nolimits4web/Swiper/commit/4d988d8b0f5f646d881895c2934d82042fa1b120))
- **types:** fix `effect` param type ([#7945](https://github.com/nolimits4web/Swiper/issues/7945)) ([42eec07](https://github.com/nolimits4web/Swiper/commit/42eec0722c7a1d6dd943245282f4048ce7d4459d))
- **vue:** added missing props ([#7966](https://github.com/nolimits4web/Swiper/issues/7966)) ([6aa8d05](https://github.com/nolimits4web/Swiper/commit/6aa8d0585d29ff10abb9a4328ce6add240d4e55d))
# [11.2.6](https://github.com/nolimits4web/Swiper/compare/v11.2.5...v11.2.6) (2025-03-19)
### Bug Fixes
- **cards/loop:** improve loop behavior with cards effect ([9a258d4](https://github.com/nolimits4web/Swiper/commit/9a258d42324cce36026bd3e3367b069a64e9aa99)), closes [#7917](https://github.com/nolimits4web/Swiper/issues/7917)
- **core:** fix initialSlide in loop mode when it there are not enough slides to fill ([16818e2](https://github.com/nolimits4web/Swiper/commit/16818e2629d6afbbc1ef3778b3289d575e86d2ff)), closes [#7780](https://github.com/nolimits4web/Swiper/issues/7780)
- **core:** fix touchReleaseOnEdges in RTL ([d841428](https://github.com/nolimits4web/Swiper/commit/d841428af537f127f16584cf437ba4c6a912a82f)), closes [#7179](https://github.com/nolimits4web/Swiper/issues/7179)
# [11.2.5](https://github.com/nolimits4web/Swiper/compare/v11.2.4...v11.2.5) (2025-03-04)
### Bug Fixes
- **docs:** correct structure of pagination render functions ([b259723](https://github.com/nolimits4web/Swiper/commit/b25972397926ad0abb3bfa808e8621127a0f0e06)), closes [#7897](https://github.com/nolimits4web/Swiper/issues/7897) [#7896](https://github.com/nolimits4web/Swiper/issues/7896)
- **thumbs:** correct reinit thumbs ([1cf24d4](https://github.com/nolimits4web/Swiper/commit/1cf24d46472f1e0bbd73fa1ea6064fc5f793b7e6)), closes [#7880](https://github.com/nolimits4web/Swiper/issues/7880)
- **zoom:** fix transform origin of `zoom.in()` function ([#7904](https://github.com/nolimits4web/Swiper/issues/7904)) ([f7febe1](https://github.com/nolimits4web/Swiper/commit/f7febe10be5d38954a7b030234037a852b47b12d))
### Features
- check if slidesEl is defined in loopDestroy ([#7906](https://github.com/nolimits4web/Swiper/issues/7906)) ([ced30cb](https://github.com/nolimits4web/Swiper/commit/ced30cbd567700582aef5076c5e22dc3b4b571e1))
# [11.2.4](https://github.com/nolimits4web/Swiper/compare/v11.2.3...v11.2.4) (2025-02-14)
### Bug Fixes
- restore compatibility with ES2019 [#7891](https://github.com/nolimits4web/Swiper/issues/7891) ([#7892](https://github.com/nolimits4web/Swiper/issues/7892)) ([b4fbbb3](https://github.com/nolimits4web/Swiper/commit/b4fbbb3ceb1af1cecd5295a32f1e600876802e87))
# [11.2.3](https://github.com/nolimits4web/Swiper/compare/v11.2.2...v11.2.3) (2025-02-12)
### Bug Fixes
- **element:** remove infinite preloader in loop ([#7886](https://github.com/nolimits4web/Swiper/issues/7886)) ([c0d3ece](https://github.com/nolimits4web/Swiper/commit/c0d3ece2147e95f37154ee019402286f5b213712))
### Features
- **core:** export swiper-vars.scss for overwriteability ([#7883](https://github.com/nolimits4web/Swiper/issues/7883)) ([0b688a1](https://github.com/nolimits4web/Swiper/commit/0b688a1a40d9365ff0a696abf290bea6baf5a8f0)), closes [#7882](https://github.com/nolimits4web/Swiper/issues/7882)
- update ssr-window to latest ([c521888](https://github.com/nolimits4web/Swiper/commit/c521888d98863ededd3286543dac7e040bcf1ddc))
# [11.2.2](https://github.com/nolimits4web/Swiper/compare/v11.2.1...v11.2.2) (2025-01-31)
### Bug Fixes
- **cards:** fix slides swap issue in loop mode ([e012e34](https://github.com/nolimits4web/Swiper/commit/e012e34f6f926dcec6415f11912d23190ed85242)), closes [#7823](https://github.com/nolimits4web/Swiper/issues/7823)
- **core:** fix slidePrev issue in free-mode ([a3fee36](https://github.com/nolimits4web/Swiper/commit/a3fee3615eaf3daf3fad54445c3bdba29d9cd302)), closes [#7869](https://github.com/nolimits4web/Swiper/issues/7869)
- **virtual:** fix when Element not swiping in Safari ([5abdbfd](https://github.com/nolimits4web/Swiper/commit/5abdbfde1a4e796a6ed981105d02ca7b4b13d6ed)), closes [#7679](https://github.com/nolimits4web/Swiper/issues/7679)
# [11.2.1](https://github.com/nolimits4web/Swiper/compare/v11.2.0...v11.2.1) (2025-01-10)
### Bug Fixes
- **core:** add check for HTMLSlotElement support ([#7840](https://github.com/nolimits4web/Swiper/issues/7840)) ([56700e5](https://github.com/nolimits4web/Swiper/commit/56700e588e63da8a07ec25f096910cbef64e7dd1))
- **core:** typo in autoplay param ([#7848](https://github.com/nolimits4web/Swiper/issues/7848)) ([69113c9](https://github.com/nolimits4web/Swiper/commit/69113c99478921a52532daf2ba1ab994ed46b701))
# [11.2.0](https://github.com/nolimits4web/Swiper/compare/v11.1.15...v11.2.0) (2025-01-02)
### Bug Fixes
- **core:** Fixed elementIsChildOf returning false for nested web components ([#7762](https://github.com/nolimits4web/Swiper/issues/7762)) ([8136607](https://github.com/nolimits4web/Swiper/commit/8136607e0782646cd095b6e3ff8ece63033df390)), closes [#7761](https://github.com/nolimits4web/Swiper/issues/7761)
- **zoom:** Ensure the zoom module's array is cleared onTouchEnd to fix [#7304](https://github.com/nolimits4web/Swiper/issues/7304) ([#7830](https://github.com/nolimits4web/Swiper/issues/7830)) ([21610bd](https://github.com/nolimits4web/Swiper/commit/21610bde1d6537102fdcec62b86f2f2e0794540c))
### Features
- **core:** Allow using a CSS selector as breakpointsBase ([#7818](https://github.com/nolimits4web/Swiper/issues/7818)) ([44d3443](https://github.com/nolimits4web/Swiper/commit/44d3443f66d93c1dc6720bddb05780bea7406982))
- **zoom:** Add ability to pan around an image on mouse move ([#7831](https://github.com/nolimits4web/Swiper/issues/7831)) ([c4619bb](https://github.com/nolimits4web/Swiper/commit/c4619bb01dd929b29397afc7697958ca23c82c90)), closes [#7306](https://github.com/nolimits4web/Swiper/issues/7306)
# [11.1.15](https://github.com/nolimits4web/Swiper/compare/v11.1.14...v11.1.15) (2024-11-18)
### Bug Fixes
- **react:** react strict mode double initialization errors for thumbs ([#7789](https://github.com/nolimits4web/Swiper/issues/7789)) ([9dece7d](https://github.com/nolimits4web/Swiper/commit/9dece7dae34e6a7a0291cd0a05f8c804bfdd7b59))
- **scss:** Dart Sass 3.0.0 compatibility ([fbd2ba4](https://github.com/nolimits4web/Swiper/commit/fbd2ba4b9bc7c5ae6a3c8796e4ea790a2c5507b0)), closes [#7772](https://github.com/nolimits4web/Swiper/issues/7772) [#7771](https://github.com/nolimits4web/Swiper/issues/7771)
- **types:** remove 'Lazy' declaration ([#7739](https://github.com/nolimits4web/Swiper/issues/7739)) ([40a705e](https://github.com/nolimits4web/Swiper/commit/40a705e5bcadf2ee2ee90591ff9ed95c1aaf9026))
- **types:** type definitions for `slidesEl`, `slidesGrid`, and `slidesSizesGrid` ([#7768](https://github.com/nolimits4web/Swiper/issues/7768)) ([fb59a41](https://github.com/nolimits4web/Swiper/commit/fb59a41801629a25dc7f0738961e3aeeb60a9cc8))
# [11.1.14](https://github.com/nolimits4web/Swiper/compare/v11.1.12...v11.1.14) (2024-09-12)
### Bug Fixes
- **core:** fix mobile input blur on touchstart on different input ([66c5dd1](https://github.com/nolimits4web/Swiper/commit/66c5dd10dc3b75a645b17c5b06b193483c026a89)), closes [#7728](https://github.com/nolimits4web/Swiper/issues/7728)
- **element:** Query the swiper.hostEl for the navigation buttons ([#7714](https://github.com/nolimits4web/Swiper/issues/7714)) ([#7716](https://github.com/nolimits4web/Swiper/issues/7716)) ([d0b6abd](https://github.com/nolimits4web/Swiper/commit/d0b6abd74805398ac3cbf41aeebf141a805ec64b))
- **zoom:** add sanity check before allowTouchMove call in timeout ([#7723](https://github.com/nolimits4web/Swiper/issues/7723)) ([869bb84](https://github.com/nolimits4web/Swiper/commit/869bb843735718c3c77551644cfd717bbf9e264e))
# [11.1.12](https://github.com/nolimits4web/Swiper/compare/v11.1.11...v11.1.12) (2024-09-01)
### Bug Fixes
- **cards:** fix cards effect styles leak ([0be4c6a](https://github.com/nolimits4web/Swiper/commit/0be4c6aa785d5be34a8f33fde91b67ec25d5752a)), closes [#7712](https://github.com/nolimits4web/Swiper/issues/7712)
### Features
- **a11y:** add `containerRole` parameter ([#7708](https://github.com/nolimits4web/Swiper/issues/7708)) ([1542c01](https://github.com/nolimits4web/Swiper/commit/1542c01823fd233aa6159c13aec717360cb3c01c))
# [11.1.11](https://github.com/nolimits4web/Swiper/compare/v11.1.10...v11.1.11) (2024-08-28)
### Bug Fixes
- centeredSlides with centeredSlidesBounds don't work correct when slidesPerView: 'auto' and width of the swiper-container bigger then width of slides ([#7696](https://github.com/nolimits4web/Swiper/issues/7696)) ([c11172a](https://github.com/nolimits4web/Swiper/commit/c11172a50ae67d79a625ad35c9460feceff478c6))
- **element:** fix element styles to have correct order override ([f26036f](https://github.com/nolimits4web/Swiper/commit/f26036f3261bc9dad9f83a8c7145578b8ccf6ecc)), closes [#7704](https://github.com/nolimits4web/Swiper/issues/7704)
- **virtual:** fix bypassing initial translate check if Virtual is enabled ([df957bb](https://github.com/nolimits4web/Swiper/commit/df957bbdb81ffeb7ef752598f740d4e155f9840a)), closes [#7699](https://github.com/nolimits4web/Swiper/issues/7699)
# [11.1.10](https://github.com/nolimits4web/Swiper/compare/v11.1.9...v11.1.10) (2024-08-21)
### Bug Fixes
- **pagination:** fixed swiper Infinite loop scroll jumping ([#7690](https://github.com/nolimits4web/Swiper/issues/7690))
- **zoom:** fix zoomIn after currentScale is set to 1 ([#7663](https://github.com/nolimits4web/Swiper/issues/7663)) ([94173da](https://github.com/nolimits4web/Swiper/commit/94173dae058d18e3839d8f98584bce460eb49996))
# [11.1.9](https://github.com/nolimits4web/Swiper/compare/v11.1.8...v11.1.9) (2024-07-31)
### Bug Fixes
- **core:** fix loop missing slides with centeredSlides ([4847fcb](https://github.com/nolimits4web/Swiper/commit/4847fcba5dbe34caa91ea23b0bb72c8d40da0e63)), closes [#7584](https://github.com/nolimits4web/Swiper/issues/7584)
- **core:** fix types of swiper-effect-utils.d.ts ([#7655](https://github.com/nolimits4web/Swiper/issues/7655)) ([4875f26](https://github.com/nolimits4web/Swiper/commit/4875f26163c016469e599abd3d5e0a05b3838959))
- **mousewheel:** fix issue with event handling after Swiper was destroyed ([82ae434](https://github.com/nolimits4web/Swiper/commit/82ae4346800b96bdb435cb97bed34beebbb1f359)), closes [#7654](https://github.com/nolimits4web/Swiper/issues/7654)
### Features
- add types for minTranslate and maxTranslate functions ([#7647](https://github.com/nolimits4web/Swiper/issues/7647)) ([450c57a](https://github.com/nolimits4web/Swiper/commit/450c57a4c6d651207e4f79ffe7ac823ab2cfcb63))
# [11.1.8](https://github.com/nolimits4web/Swiper/compare/v11.1.7...v11.1.8) (2024-07-26)
### Bug Fixes
- **core:** fixed typo in utils/elementIsChildOf ([#7649](https://github.com/nolimits4web/Swiper/issues/7649)) ([575e715](https://github.com/nolimits4web/Swiper/commit/575e71593bac73f8db64730cce2323f660006489))
# [11.1.7](https://github.com/nolimits4web/Swiper/compare/v11.1.6...v11.1.7) (2024-07-24)
### Bug Fixes
- **core:** fix element child detection ([7ec975c](https://github.com/nolimits4web/Swiper/commit/7ec975c8550bfebacc7ecd032dc540e720f45175)), closes [#7636](https://github.com/nolimits4web/Swiper/issues/7636)
# [11.1.6](https://github.com/nolimits4web/Swiper/compare/v11.1.5...v11.1.6) (2024-07-23)
### Bug Fixes
- **controller:** fix 2 way control in element ([6eec16b](https://github.com/nolimits4web/Swiper/commit/6eec16bfe1f103bd19bad6dec0a7aa3fb3ee2bb1)), closes [#7628](https://github.com/nolimits4web/Swiper/issues/7628)
### Features
- **a11y:** added new prop for a11y module - `scrollOnFocus` ([#7632](https://github.com/nolimits4web/Swiper/issues/7632)) ([f4f7da0](https://github.com/nolimits4web/Swiper/commit/f4f7da0260f1b03ab5f168b84a3b74ef8e2a7a26))
- **element:** added support for using slots as swiper wrappers ([#7624](https://github.com/nolimits4web/Swiper/issues/7624)) ([e374e06](https://github.com/nolimits4web/Swiper/commit/e374e06a930bef74658614900bb1e11c5a54b189))
# [11.1.5](https://github.com/nolimits4web/Swiper/compare/v11.1.4...v11.1.5) (2024-07-15)
### Bug Fixes
- **element:** fix observer to watch for slides ([7cffede](https://github.com/nolimits4web/Swiper/commit/7cffedef190c6e75bf84adfa6dfddd64e1bfa0e6)), closes [#7598](https://github.com/nolimits4web/Swiper/issues/7598)
- improved 3d rotate fix in Safari ([cb83879](https://github.com/nolimits4web/Swiper/commit/cb83879894fca633844b5db76dfe1d9d82c816ea)), closes [#7532](https://github.com/nolimits4web/Swiper/issues/7532)
- update navigation.scss to remove SASS Deprecation Warning ([#7612](https://github.com/nolimits4web/Swiper/issues/7612)) ([a3e0bf8](https://github.com/nolimits4web/Swiper/commit/a3e0bf893da2af150a64b99c8d59b81249929a5a))
- **vue:** add breakpointsBase type ([4adb85b](https://github.com/nolimits4web/Swiper/commit/4adb85b081a0ed3e657da79d8f711e610335edba)), closes [#7607](https://github.com/nolimits4web/Swiper/issues/7607)
# [11.1.4](https://github.com/nolimits4web/Swiper/compare/v11.1.3...v11.1.4) (2024-05-30)
### Bug Fixes
- **a11y:** fix slide on focus when loop mode is enabled ([fc8ed1a](https://github.com/nolimits4web/Swiper/commit/fc8ed1a2de8f05b017e371763b1236e1eb2670c4)), closes [#7540](https://github.com/nolimits4web/Swiper/issues/7540)
- **core:** check for swiper.el in destroy queue ([39a3e53](https://github.com/nolimits4web/Swiper/commit/39a3e53ba7df00a0479e0748fff874703578c7df)), closes [#7530](https://github.com/nolimits4web/Swiper/issues/7530)
- **navigation:** prevent hide on click when clicking on navigation buttons ([c0f7bb6](https://github.com/nolimits4web/Swiper/commit/c0f7bb6f3612f42664eab60bbcfb7969bfeb16bf)), closes [#7559](https://github.com/nolimits4web/Swiper/issues/7559)
- **vue:** avoid rendering same slide vnode twice for small amount of slides in loop + virtual mode ([#7556](https://github.com/nolimits4web/Swiper/issues/7556)) ([5737f03](https://github.com/nolimits4web/Swiper/commit/5737f03d202ce0f22d390b2e9f94b8573f59472b))
- **zoom:** fix issue when slide change possible during zoom out ([f67308c](https://github.com/nolimits4web/Swiper/commit/f67308c8f4367817d9c60980276c922af9fcb654))
# [11.1.3](https://github.com/nolimits4web/Swiper/compare/v11.1.2...v11.1.3) (2024-05-13)
### Bug Fixes
- fix types import ([57923db](https://github.com/nolimits4web/Swiper/commit/57923db8f2cc7dae9f39011531147d68f26f834d)), closes [#7529](https://github.com/nolimits4web/Swiper/issues/7529)
# [11.1.2](https://github.com/nolimits4web/Swiper/compare/v11.1.1...v11.1.2) (2024-05-13)
### Bug Fixes
- **autoplay:** keep 0 transition on touchmove with 0 timeout delay ([8ccb08e](https://github.com/nolimits4web/Swiper/commit/8ccb08ef1c1adcb4ff53f91bf494a0bd221d5735)), closes [#7515](https://github.com/nolimits4web/Swiper/issues/7515)
- **core:** centerInsuffientSlides takes offsets into account ([#7437](https://github.com/nolimits4web/Swiper/issues/7437)) ([5a271ff](https://github.com/nolimits4web/Swiper/commit/5a271ff050376820cfe42e04730cd097f38496a1))
- **types:** fixed SwiperModule, slideTo, effectInit types ([#7428](https://github.com/nolimits4web/Swiper/issues/7428)) ([bc61bce](https://github.com/nolimits4web/Swiper/commit/bc61bce297bce8c38299671e9fe18f6a5b0fd77e))
### 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](https://github.com/nolimits4web/Swiper/issues/7505)) ([2c08227](https://github.com/nolimits4web/Swiper/commit/2c08227d3e81db744e2d6e1c9d87c9ff6236533d))
# [11.1.1](https://github.com/nolimits4web/Swiper/compare/v11.1.0...v11.1.1) (2024-04-09)
### Bug Fixes
- **zoom:** fix zoom pan not preventing slide changes using touch ([f73cc2a](https://github.com/nolimits4web/Swiper/commit/f73cc2a7a0bc4b9d094c33853e629785d1b5ddeb)), closes [#7308](https://github.com/nolimits4web/Swiper/issues/7308)
# [11.1.0](https://github.com/nolimits4web/Swiper/compare/v11.0.7...v11.1.0) (2024-03-28)
### Bug Fixes
- **a11y:** fixed issue with not working "enter" navigation on arrows ([aac2dcf](https://github.com/nolimits4web/Swiper/commit/aac2dcfc4cf6ddcef93933c75d3eab984f149a18)), closes [#7423](https://github.com/nolimits4web/Swiper/issues/7423)
- **a11y:** prevent falsy focus handlers ([a7c260a](https://github.com/nolimits4web/Swiper/commit/a7c260a9d93405a0adce304b4ccf4f5309dfedda)), closes [#7406](https://github.com/nolimits4web/Swiper/issues/7406)
- **core:** add/remove slide classes only when changed ([3312fba](https://github.com/nolimits4web/Swiper/commit/3312fba06de686e48cf0c138ea7bba20fc7842e5)), closes [#7356](https://github.com/nolimits4web/Swiper/issues/7356)
- **core:** don't fix the loop on simple resize ([641793f](https://github.com/nolimits4web/Swiper/commit/641793ff459527c4c1efc9f72b447b87c8939f5f)), closes [#7325](https://github.com/nolimits4web/Swiper/issues/7325)
- **core:** fixed thrown error on calling slideTo methods on destroyed swiper ([8c6a3c6](https://github.com/nolimits4web/Swiper/commit/8c6a3c6f63915db82415e2d7829ece6c624ace1e)), closes [#7416](https://github.com/nolimits4web/Swiper/issues/7416)
- **core:** handle grabCursor within breakpoints ([e853908](https://github.com/nolimits4web/Swiper/commit/e853908c2ff93dc944ba045c9c0fce83efe46288)), closes [#7364](https://github.com/nolimits4web/Swiper/issues/7364)
- **core:** reset animating flag on translateTo call ([7da50bf](https://github.com/nolimits4web/Swiper/commit/7da50bf1bcfe86f5af646e7d53c7d0414211da60)), closes [#7403](https://github.com/nolimits4web/Swiper/issues/7403)
- **scrollbar:** fix warning ([e5371f7](https://github.com/nolimits4web/Swiper/commit/e5371f7656c4e828d87e7497edc73f9b6311f91d)), closes [#7415](https://github.com/nolimits4web/Swiper/issues/7415)
- **thumbs:** fix thumbs .swiper type prop to accept string ([5b0fa84](https://github.com/nolimits4web/Swiper/commit/5b0fa84ac14022dd1ca39d387267a8d9125cb13a)), closes [#7421](https://github.com/nolimits4web/Swiper/issues/7421)
- **virtual:** don't render first slides when initialSlide set ([bab9230](https://github.com/nolimits4web/Swiper/commit/bab92305c5a69b9b9f33615fa5df61fbfda39700)), closes [#7353](https://github.com/nolimits4web/Swiper/issues/7353)
- **zoom:** fix panning on SVG elements ([eed8a5b](https://github.com/nolimits4web/Swiper/commit/eed8a5bf727163cf2da343490c09fc248b658e5e)), closes [#7352](https://github.com/nolimits4web/Swiper/issues/7352)
# [11.0.7](https://github.com/nolimits4web/Swiper/compare/v11.0.6...v11.0.7) (2024-02-27)
### Bug Fixes
- **core:** fix initial slide index shift with centeredSlides and slidesPerView auto ([#7319](https://github.com/nolimits4web/Swiper/issues/7319)) ([cae9c2d](https://github.com/nolimits4web/Swiper/commit/cae9c2dc192dafc0f35cb03e919dd1151dca88da))
- **history:** fix setting history in virtual slides ([d4de17b](https://github.com/nolimits4web/Swiper/commit/d4de17b278b57760cfc9953d1da7892b44f0fc22)), closes [#7327](https://github.com/nolimits4web/Swiper/issues/7327)
- **react:** make sure the key is unique in virtual mode ([829a253](https://github.com/nolimits4web/Swiper/commit/829a2536b5d4f4ed86cb31d9c73d4d9b3be656c3)), closes [#7329](https://github.com/nolimits4web/Swiper/issues/7329)
### Features
- add swiper-effect-utils ([df5f873](https://github.com/nolimits4web/Swiper/commit/df5f8731b795419534420bf4d567c75bfd475656)), closes [#7336](https://github.com/nolimits4web/Swiper/issues/7336)
- **zoom:** add ability to constrain max zoom to 100% of original image size ([#7311](https://github.com/nolimits4web/Swiper/issues/7311)) ([645f266](https://github.com/nolimits4web/Swiper/commit/645f266c6b8dea5d43e14cace925ad86236ecc75))
# [11.0.6](https://github.com/nolimits4web/Swiper/compare/v11.0.5...v11.0.6) (2024-02-05)
### Bug Fixes
- add optional swiperElementNodeName param to allow more flexible web component usage ([#7284](https://github.com/nolimits4web/Swiper/issues/7284)) ([178511f](https://github.com/nolimits4web/Swiper/commit/178511fe8ac37b590b92ff081379074e340436fa))
- fixed behavior where the combination of 'initialSlide:0' and 'slidesPerView:auto' would shift the first slide position ([e5c04c3](https://github.com/nolimits4web/Swiper/commit/e5c04c38e4261f4afb195bc15ea7417e7c1190dd)), closes [#7216](https://github.com/nolimits4web/Swiper/issues/7216)
- Safari 3D fix for webview ([d42ce05](https://github.com/nolimits4web/Swiper/commit/d42ce05380c4a8f1848ad409b2ac8ed848723399)), closes [#7167](https://github.com/nolimits4web/Swiper/issues/7167)
- **scrollbar:** correctly update scrollbar on changeDirection ([6bbb73d](https://github.com/nolimits4web/Swiper/commit/6bbb73d84f684e711250664d1eb7017b1b02ec3a)), closes [#7263](https://github.com/nolimits4web/Swiper/issues/7263)
- SwiperOptions documentation for loopAddBlankSlides ([#7289](https://github.com/nolimits4web/Swiper/issues/7289)) ([cbc3dba](https://github.com/nolimits4web/Swiper/commit/cbc3dba7b4869c82f87c920e519f334fe9dc9880))
### Features
- **core:** prevent running .slideTo methods when Swiper is destroyed ([05f9c64](https://github.com/nolimits4web/Swiper/commit/05f9c6493081666f0458a67715271fc728827731)), closes [#7265](https://github.com/nolimits4web/Swiper/issues/7265)
# [11.0.5](https://github.com/nolimits4web/Swiper/compare/v11.0.4...v11.0.5) (2023-11-22)
### Bug Fixes
- **core:** swipe to last with slidesPerView: auto ([#7183](https://github.com/nolimits4web/Swiper/issues/7183)) ([2e3f47d](https://github.com/nolimits4web/Swiper/commit/2e3f47d5fcd37707be18180f35c9955c0bcc915e))
- **modules/a11y:** filter out falsy pagination elems ([#7201](https://github.com/nolimits4web/Swiper/issues/7201)) ([a044626](https://github.com/nolimits4web/Swiper/commit/a0446261bdbd9d538e31c02d3248d3bec0328c55))
### Features
- **core:** new `slidesUpdated` event ([8a0c7c4](https://github.com/nolimits4web/Swiper/commit/8a0c7c43ad5931d22a20a9b33152f6befc5bcb59))
# [11.0.4](https://github.com/nolimits4web/Swiper/compare/v11.0.3...v11.0.4) (2023-11-09)
### Bug Fixes
- **effectx:** fix Safari issue with rotates even to 90deg ([e005b69](https://github.com/nolimits4web/Swiper/commit/e005b699e7dbd7c343a56f19fca384b28c37cb97)), closes [#7167](https://github.com/nolimits4web/Swiper/issues/7167)
# [11.0.3](https://github.com/nolimits4web/Swiper/compare/v11.0.2...v11.0.3) (2023-10-26)
### Bug Fixes
- **core:** fixed legacy condition preventing touch move when zoom enabled ([2f64043](https://github.com/nolimits4web/Swiper/commit/2f64043bc2abfe13a6b3a2a24b082c9627c20ee7)), closes [#7137](https://github.com/nolimits4web/Swiper/issues/7137)
- **core:** prevent observer updates on loop fix ([7a5eacc](https://github.com/nolimits4web/Swiper/commit/7a5eaccb5e6ee1a867a3c2f30e9a44400e6c341c)), closes [#7135](https://github.com/nolimits4web/Swiper/issues/7135)
# [11.0.2](https://github.com/nolimits4web/Swiper/compare/v11.0.1...v11.0.2) (2023-10-25)
### Bug Fixes
- **core:** correctly handle loopAdditionalSlides parameter ([3f5e05d](https://github.com/nolimits4web/Swiper/commit/3f5e05d59a776e2cfc3a709e4b230ff23191266c))
# [11.0.1](https://github.com/nolimits4web/Swiper/compare/v11.0.0...v11.0.1) (2023-10-24)
### Bug Fixes
- **types:** fix eventsPrefix type ([fd0f601](https://github.com/nolimits4web/Swiper/commit/fd0f601fb08af7a72d3c582cf88e06e6a8bed9f8))
# [11.0.0](https://github.com/nolimits4web/Swiper/compare/v10.3.1...v11.0.0) (2023-09-24)
### Bug Fixes
- **autoplay:** fix negative autoplay values after stop/start, fix autoplay with free mode ([8bef84d](https://github.com/nolimits4web/Swiper/commit/8bef84d68c44b93757585cb037f7448cc99f7c71)), closes [#7084](https://github.com/nolimits4web/Swiper/issues/7084)
- **autoplay:** fix pauseOnPointerEnter if hovered during transition ([5080d95](https://github.com/nolimits4web/Swiper/commit/5080d9569fc1ac77c0cb01812567f8035cc780bb)), closes [#7107](https://github.com/nolimits4web/Swiper/issues/7107)
- **core:** remove grid class on rows change ([2f65e89](https://github.com/nolimits4web/Swiper/commit/2f65e89cb5758b44ceced212d4be905e0ed0f4c3)), closes [#7053](https://github.com/nolimits4web/Swiper/issues/7053)
- **element:** correctly respond to object params assignment ([f23c742](https://github.com/nolimits4web/Swiper/commit/f23c74250c7d4fd56ea4d5abfe2e031504c86d91))
- **scrollbar:** allow multiple classes in scrollbar parameters ([89a6f71](https://github.com/nolimits4web/Swiper/commit/89a6f7192f7da120487c224dc1b1a7668422321a)), closes [#7096](https://github.com/nolimits4web/Swiper/issues/7096)
### Features
- **core:** add fully visible slides classes ([902a4c4](https://github.com/nolimits4web/Swiper/commit/902a4c4adbff3af1188427d6cfef50d537c1bcef)), closes [#6773](https://github.com/nolimits4web/Swiper/issues/6773)
- **core:** add handling for native touch events ([74bb1cc](https://github.com/nolimits4web/Swiper/commit/74bb1ccf4c6f31ffdb7419d5a58a4f592aa6006b)), closes [#6478](https://github.com/nolimits4web/Swiper/issues/6478) [#6381](https://github.com/nolimits4web/Swiper/issues/6381) [#6897](https://github.com/nolimits4web/Swiper/issues/6897)
- **core:** loop support for grid, new `loopAddBlankSlides` parameter ([b5db223](https://github.com/nolimits4web/Swiper/commit/b5db22392f6c6609de292c00d163f9230d0925ee))
- **core:** remove `loopedSlides` parameter, add `loopAdditionalSlides` parameter ([d647985](https://github.com/nolimits4web/Swiper/commit/d647985faa9c8e3d551270e96692b2bd135bc92a))
- **core:** reworked loop mode ([2a99dbd](https://github.com/nolimits4web/Swiper/commit/2a99dbd383ca6880dd60ce35c70d7337bb1f38c8))
- **core:** update loop mode logic and lowered requirements ([703ede6](https://github.com/nolimits4web/Swiper/commit/703ede6ea1e490ee0200edf18c6857f534101827))
- **element:** make`eventPrefix` parameter default to `swiper` ([88d463a](https://github.com/nolimits4web/Swiper/commit/88d463aef9b74e6de637470c4c7c024e5f3ca6b9))
- **core:** move default container overflow back to `hidden` ([88941a8](https://github.com/nolimits4web/Swiper/commit/88941a82491b289faed24508db8b90e3c5506ba1))
# [10.3.1](https://github.com/nolimits4web/Swiper/compare/v10.3.0...v10.3.1) (2023-09-28)
### Bug Fixes
- **autoplay:** fix autoplay stop when disableOnInteraction is active ([ecfb3fb](https://github.com/nolimits4web/Swiper/commit/ecfb3fb06b7214e87332e41a6b96dc7a721a8313)), closes [#7060](https://github.com/nolimits4web/Swiper/issues/7060) [#7059](https://github.com/nolimits4web/Swiper/issues/7059)
- **types:** detection of custom html tags ([#7055](https://github.com/nolimits4web/Swiper/issues/7055)) ([c55f76d](https://github.com/nolimits4web/Swiper/commit/c55f76d51cadb3b9835b6c45537da30d2c3b298e))
# [10.3.0](https://github.com/nolimits4web/Swiper/compare/v10.2.0...v10.3.0) (2023-09-21)
### Bug Fixes
- **core:** correctly destroyor create loop on breakpoints ([12a44fb](https://github.com/nolimits4web/Swiper/commit/12a44fb995313c58cde37395a654493e2d42c694)), closes [#6967](https://github.com/nolimits4web/Swiper/issues/6967)
- **core:** don't call `realIndexChange` on initialIndex if runCallbacksOnInit is disalbed ([48c4e0a](https://github.com/nolimits4web/Swiper/commit/48c4e0a76736ac124a0d6e878f840208f31b8b09)), closes [#6976](https://github.com/nolimits4web/Swiper/issues/6976)
- **core:** fix `slideToClickedSlide` when using Element slide slots ([af0519c](https://github.com/nolimits4web/Swiper/commit/af0519c22513ec4a7bad2c80896d421fe07012f8)), closes [#6958](https://github.com/nolimits4web/Swiper/issues/6958)
- **core:** fix lazy preloader in later initialized slides ([e4fddc0](https://github.com/nolimits4web/Swiper/commit/e4fddc076f69bdf267559c70a489474bc311c02c)), closes [#6946](https://github.com/nolimits4web/Swiper/issues/6946)
- **core:** fix loop on centeredSlides slide to beginning ([c496835](https://github.com/nolimits4web/Swiper/commit/c496835a2ce49065a9b282bbafe5629797bb3da4)), closes [#7011](https://github.com/nolimits4web/Swiper/issues/7011)
- **core:** fix loopFix in loop and cssMode ([8180a52](https://github.com/nolimits4web/Swiper/commit/8180a52f386301147dae286994119693f6231202)), closes [#6919](https://github.com/nolimits4web/Swiper/issues/6919)
- **core:** fixed ignored allowSlidePrev/Next in loop mode ([1b74619](https://github.com/nolimits4web/Swiper/commit/1b74619f5d74073cf387201c5715c29c8115f770)), closes [#6987](https://github.com/nolimits4web/Swiper/issues/6987)
- **core:** remove grid class on rows change ([908becc](https://github.com/nolimits4web/Swiper/commit/908becc6ffbf5b5a050e2fde522867289073cf4a)), closes [#7053](https://github.com/nolimits4web/Swiper/issues/7053)
- **element:** correctly respond to object params assignment ([2ef1ff5](https://github.com/nolimits4web/Swiper/commit/2ef1ff5d42cea985556c54f79b8a52305294d21e))
- **element:** do not bubble `hashchange` event ([106a3d7](https://github.com/nolimits4web/Swiper/commit/106a3d7da4967bbf1ba705c1bb8a0547307bb2f9)), closes [#6943](https://github.com/nolimits4web/Swiper/issues/6943)
- **element:** fix issue updating with boolean module params ([1cc359e](https://github.com/nolimits4web/Swiper/commit/1cc359e45d637c209ce97ebffb917ae8587fdcf2)), closes [#6947](https://github.com/nolimits4web/Swiper/issues/6947)
- **navigation:** fix lock class on enable ([ea39c33](https://github.com/nolimits4web/Swiper/commit/ea39c3353ccd74d37444692cf01f38724aaff6b7)), closes [#7009](https://github.com/nolimits4web/Swiper/issues/7009)
- **react:** add breakpointsBase param ([0eb4122](https://github.com/nolimits4web/Swiper/commit/0eb4122e45558efe9209f3b72ae9c30524424183)), closes [#7014](https://github.com/nolimits4web/Swiper/issues/7014)
- **react:** fix react components props type ([1cd412e](https://github.com/nolimits4web/Swiper/commit/1cd412ecf22a38ff6c3c63bb7dc49fc1f92ca16f)), closes [#7000](https://github.com/nolimits4web/Swiper/issues/7000)
- **scrollbar:** add 'touch-action: none' to swiper-scrollbar ([#7024](https://github.com/nolimits4web/Swiper/issues/7024)) ([9542d09](https://github.com/nolimits4web/Swiper/commit/9542d094faa61d9a4837a6ec40c331e8172324ab))
- **virtual:** fix issue with loop mode and initialSlide enabled ([f4afd9d](https://github.com/nolimits4web/Swiper/commit/f4afd9d0fec3be48c17ab75c462c23e69e98a571)), closes [#6945](https://github.com/nolimits4web/Swiper/issues/6945)
- **virtual:** fix removing nested slides ([c3321e1](https://github.com/nolimits4web/Swiper/commit/c3321e1645015e2ea053c72edbe60b6351030bcb)), closes [#7005](https://github.com/nolimits4web/Swiper/issues/7005)
- **virtual:** recalc cache on removeSlide ([96e5166](https://github.com/nolimits4web/Swiper/commit/96e5166c9e01a8ca3e18ee236adee0566ad0969e)), closes [#7020](https://github.com/nolimits4web/Swiper/issues/7020)
- **vue:** add breakpointsBase param ([6800dbb](https://github.com/nolimits4web/Swiper/commit/6800dbba2f006d1ff2206cd7ac2068cfc6429089))
- **zoom:** fix scale origin when document is scrolled ([2cf3fc2](https://github.com/nolimits4web/Swiper/commit/2cf3fc26c2a2d9e5dc29b02427c73e8559ab896d)), closes [#6950](https://github.com/nolimits4web/Swiper/issues/6950) [#6955](https://github.com/nolimits4web/Swiper/issues/6955)
### Features
- **core:** allow createElements to process object params with `{enabled: true}` ([abf8405](https://github.com/nolimits4web/Swiper/commit/abf840506aa4c4f2c60cadb9dcdd4223fa071352))
- **core:** make slidesPerViewDynamic public ([ae434b0](https://github.com/nolimits4web/Swiper/commit/ae434b0a5d76fd0d2659cd2dffc27d19c1f14a9e)), closes [#7036](https://github.com/nolimits4web/Swiper/issues/7036)
# [10.2.0](https://github.com/nolimits4web/Swiper/compare/v10.1.0...v10.2.0) (2023-08-17)
### Bug Fixes
- **autoplay:** fix autoplay pause during transition ([db9b17f](https://github.com/nolimits4web/Swiper/commit/db9b17ffc627bafaa912b31e6336b4c366be3021)), closes [#6896](https://github.com/nolimits4web/Swiper/issues/6896)
- **controller:** fix issues with loop mode ([fbb84fe](https://github.com/nolimits4web/Swiper/commit/fbb84fed425f8341c0bd927e5a658962b130abdf)), closes [#6659](https://github.com/nolimits4web/Swiper/issues/6659)
- **core:** fix touch move and loop behavior when transition-delay enabled on swiper-wrapper ([ac27d02](https://github.com/nolimits4web/Swiper/commit/ac27d0204dfa3e6cc2059e19d5f6ff836d77c4d0))
- **core:** handle `contextmenu` event ([721ccaf](https://github.com/nolimits4web/Swiper/commit/721ccaf292de538e479c33668abf30ae86278d2b)), closes [#6692](https://github.com/nolimits4web/Swiper/issues/6692)
- **element:** fix missing elements `part` when added dynamically ([db5b5d6](https://github.com/nolimits4web/Swiper/commit/db5b5d6c337b4e8615b7e6ec2acb1694213a2311)), closes [#6899](https://github.com/nolimits4web/Swiper/issues/6899)
- **element:** fix parallax on elements passed to component root ([265e466](https://github.com/nolimits4web/Swiper/commit/265e466a043efc750964c397d262736923e58040))
- **element:** fixed issue with incorrect lookup for lazy prelader and images ([64513ac](https://github.com/nolimits4web/Swiper/commit/64513ac899c843b745e33813126ab6c52af650a4)), closes [#6901](https://github.com/nolimits4web/Swiper/issues/6901)
- **element:** fixed issue with pointer-events:none in fade effect ([2dcb802](https://github.com/nolimits4web/Swiper/commit/2dcb802ea5192c1f4b47fed4b20242983e06c6cb)), closes [#6908](https://github.com/nolimits4web/Swiper/issues/6908)
- **pagination:** fixed issue in loop mode when sometimes it switches slides with transiton ([3d7dc58](https://github.com/nolimits4web/Swiper/commit/3d7dc5834f12a8ed518c9a79a58fe13777f9298f)), closes [#6856](https://github.com/nolimits4web/Swiper/issues/6856)
### Features
- **pagination:** allow multiple `clickableClass` ([703d13b](https://github.com/nolimits4web/Swiper/commit/703d13b1aeb234d0f72ab0a61572af6a8bb94ab7)), closes [#6741](https://github.com/nolimits4web/Swiper/issues/6741)
# [10.1.0](https://github.com/nolimits4web/Swiper/compare/v10.0.4...v10.1.0) (2023-08-01)
### Bug Fixes
- **core:** fix flickering in loop mode edge positions ([bf29843](https://github.com/nolimits4web/Swiper/commit/bf298437039168611853cc7b7f92624f5f2726c6)), closes [#6673](https://github.com/nolimits4web/Swiper/issues/6673)
- **core:** set `isElement` on swiper-containers only ([#6870](https://github.com/nolimits4web/Swiper/issues/6870)) ([2f61fda](https://github.com/nolimits4web/Swiper/commit/2f61fda721232f78b1b8ed16f57953442d70384b))
- **package:** fix source maps for ES modules ([#6866](https://github.com/nolimits4web/Swiper/issues/6866)) ([5e88c4b](https://github.com/nolimits4web/Swiper/commit/5e88c4b2a88fb2158bc89ebb3f30ad738078530a)), closes [#6863](https://github.com/nolimits4web/Swiper/issues/6863)
- **modules:** filter out falsy elements ([#6823](https://github.com/nolimits4web/Swiper/issues/6823)) ([e1b7254](https://github.com/nolimits4web/Swiper/commit/e1b725476eb90e2bbf719a344e57a92530f779ce))
- **mousewheel:** fix `releaseOnEdges` for freeMode ([8a83360](https://github.com/nolimits4web/Swiper/commit/8a83360ea780d63dd5a95d9f62a364c5f4ab0f3f)), closes [#6770](https://github.com/nolimits4web/Swiper/issues/6770) [#6799](https://github.com/nolimits4web/Swiper/issues/6799)
- **zoom:** fix image move in element ([89d9aa5](https://github.com/nolimits4web/Swiper/commit/89d9aa57531c4675611842378519025a926de34f)), closes [#6847](https://github.com/nolimits4web/Swiper/issues/6847)
### Features
- **element:** support slides as slots ([697b028](https://github.com/nolimits4web/Swiper/commit/697b02843f5feaf1968aefa07ec7e389dcd478cc))
- **types:** make VirtualOptions generic ([#6852](https://github.com/nolimits4web/Swiper/issues/6852)) ([068ee68](https://github.com/nolimits4web/Swiper/commit/068ee68c55d8f62167af015fc2d57db8af439003))
# [10.0.4](https://github.com/nolimits4web/Swiper/compare/v10.0.3...v10.0.4) (2023-07-08)
### Bug Fixes
- **element:** fix in Safari < 16.4 ([e53fc07](https://github.com/nolimits4web/Swiper/commit/e53fc07dffca2a2ef3e929e120d4af6b41540cd7)), closes [#6831](https://github.com/nolimits4web/Swiper/issues/6831)
# [v10.0.3](https://github.com/nolimits4web/Swiper/compare/v10.0.2...v10.0.3) (2023-07-03)
### Features
- added overflow:hidden for fallback if clip is not supported in target… ([#6807](https://github.com/nolimits4web/Swiper/issues/6807)) ([5d8d6f9](https://github.com/nolimits4web/Swiper/commit/5d8d6f933146c8c80792c4892c54cb769b21a005))
- **element:** use usual `<style>` tag if adopted stylesheet are not supported ([18613df](https://github.com/nolimits4web/Swiper/commit/18613dfaa7719983db059e694753262956905504))
# [v10.0.2](https://github.com/nolimits4web/Swiper/compare/v10.0.1...v10.0.2) (2023-07-03)
### Bug Fixes
- **types:** fix modules imports ([a1b4cf6](https://github.com/nolimits4web/Swiper/commit/a1b4cf61c0a1b14b25a293443c1f336e8a8fa321)), closes [#6803](https://github.com/nolimits4web/Swiper/issues/6803)
# [v10.0.1](https://github.com/nolimits4web/Swiper/compare/v10.0.0...v10.0.1) (2023-07-03)
### Bug Fixes
- **types:** fix types for swiper/modules ([fa6e597](https://github.com/nolimits4web/Swiper/commit/fa6e5976856304aff8e13620f09d99e8697b24a8))
# [10.0.0](https://github.com/nolimits4web/Swiper/compare/v9.4.1...v10.0.0) (2023-07-03)
### Features
- tweak browserslist to iOS >= 15 ([96a4e7e](https://github.com/nolimits4web/Swiper/commit/96a4e7e50a430d70817d90916c8412adfbc33f74))
- rework package to use .mjs files and all scripts and styles are minified ([a267785](https://github.com/nolimits4web/Swiper/commit/a267785a09fa228d99ede0173fdbe5506238b19a))
- fully rework scripts structure in package ([2c87f13](https://github.com/nolimits4web/Swiper/commit/2c87f13f56a480ddbbfd43f97516a0775ceb8d19))
- rename package files `.esm.js` to `.mjs` ([7a17821](https://github.com/nolimits4web/Swiper/commit/7a1782128125bda394b40ea9d1235d789964bfa3))
- browser ES modules ([ab20bd1](https://github.com/nolimits4web/Swiper/commit/ab20bd1f3a4204ef83831976746cc4a4e5b4b8d9))
- change swiper container overflow to clip ([#6738](https://github.com/nolimits4web/Swiper/issues/6738)) ([a8447b7](https://github.com/nolimits4web/Swiper/commit/a8447b7d5550bb144b842b4c5b1c61ef96e64ab1))
- **element:** attributes can accept JSON stringified strings ([5b93954](https://github.com/nolimits4web/Swiper/commit/5b9395424d591ab90c391ab5b9573d09c69536c7))
- **element:** highly reworked Swiper web component ([a6f8a0f](https://github.com/nolimits4web/Swiper/commit/a6f8a0fab4d4daae8b37b274a6c548393b2a11df))
- 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](https://github.com/nolimits4web/Swiper/commit/90c590d1879f39a3fed290a003fe7fd0205d9033))
- tweak types exports to be Node 16+ compatible ([30ce8e0](https://github.com/nolimits4web/Swiper/commit/30ce8e0c9c7ce32025275469e9480ca8c81f30a7))
### Bug Fixes
- package.json exports for typescript ([#6626](https://github.com/nolimits4web/Swiper/issues/6626)) ([e9e8039](https://github.com/nolimits4web/Swiper/commit/e9e8039db557c5fbeab33472ced9ab9dc823280b))
# [10.0.0-beta.5](https://github.com/nolimits4web/Swiper/compare/v10.0.0-beta.4...v10.0.0-beta.5) (2023-06-26)
### Features
- tweak browserslist to iOS >= 15 ([96a4e7e](https://github.com/nolimits4web/Swiper/commit/96a4e7e50a430d70817d90916c8412adfbc33f74))
# [10.0.0-beta.3](https://github.com/nolimits4web/Swiper/compare/v10.0.0-beta.2...v10.0.0-beta.3) (2023-06-23)
### Features
- rework package to use .mjs files and all scripts and styles are minified ([a267785](https://github.com/nolimits4web/Swiper/commit/a267785a09fa228d99ede0173fdbe5506238b19a))
# [10.0.0-beta.2](https://github.com/nolimits4web/Swiper/compare/v10.0.0-beta.1...v10.0.0-beta.2) (2023-06-23)
### Features
- fully rework scripts structure in package ([2c87f13](https://github.com/nolimits4web/Swiper/commit/2c87f13f56a480ddbbfd43f97516a0775ceb8d19))
- rename package files `.esm.js` to `.mjs` ([7a17821](https://github.com/nolimits4web/Swiper/commit/7a1782128125bda394b40ea9d1235d789964bfa3))
# [10.0.0-beta.1](https://github.com/nolimits4web/Swiper/compare/v9.4.1...v10.0.0-beta.1) (2023-06-23)
### Bug Fixes
- package.json exports for typescript ([#6626](https://github.com/nolimits4web/Swiper/issues/6626)) ([e9e8039](https://github.com/nolimits4web/Swiper/commit/e9e8039db557c5fbeab33472ced9ab9dc823280b))
### Features
- browser ES modules ([ab20bd1](https://github.com/nolimits4web/Swiper/commit/ab20bd1f3a4204ef83831976746cc4a4e5b4b8d9))
- change swiper container overflow to clip ([#6738](https://github.com/nolimits4web/Swiper/issues/6738)) ([a8447b7](https://github.com/nolimits4web/Swiper/commit/a8447b7d5550bb144b842b4c5b1c61ef96e64ab1))
- **element:** attributes can accept JSON stringified strings ([5b93954](https://github.com/nolimits4web/Swiper/commit/5b9395424d591ab90c391ab5b9573d09c69536c7))
- **element:** highly reworked Swiper web component ([a6f8a0f](https://github.com/nolimits4web/Swiper/commit/a6f8a0fab4d4daae8b37b274a6c548393b2a11df))
- 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](https://github.com/nolimits4web/Swiper/commit/90c590d1879f39a3fed290a003fe7fd0205d9033))
- tweak types exports to be Node 16+ compatible ([30ce8e0](https://github.com/nolimits4web/Swiper/commit/30ce8e0c9c7ce32025275469e9480ca8c81f30a7))
# [9.4.1](https://github.com/nolimits4web/Swiper/compare/v9.4.0...v9.4.1) (2023-06-13)
### Bug Fixes
- **core:** fix issue with calling freeMode introduced in 9.4.0 ([581eea8](https://github.com/nolimits4web/Swiper/commit/581eea828b11e79d17d8ad16430acb0823f2049a)), closes [#6751](https://github.com/nolimits4web/Swiper/issues/6751)
# [9.4.0](https://github.com/nolimits4web/Swiper/compare/v9.3.2...v9.3.3) (2023-06-12)
### Bug Fixes
- **core:** lazyPreloadPrevNext not working with grid ([883f006](https://github.com/nolimits4web/Swiper/commit/883f0066089ed3fccd24424e548c4ebb85d92756)), closes [#6725](https://github.com/nolimits4web/Swiper/issues/6725)
- **core:** fix case with not enough slides with `centeredSlidesBounds` ([93b4279](https://github.com/nolimits4web/Swiper/commit/93b4279abed90d5f668fd48c9124392fbb516fdb)), closes [#6689](https://github.com/nolimits4web/Swiper/issues/6689)
- **core:** fix error for `swiperSlideSize` in hidden slider ([36ef2e6](https://github.com/nolimits4web/Swiper/commit/36ef2e608843b4c83a5dc7ecde30aa71794f639e)), closes [#6718](https://github.com/nolimits4web/Swiper/issues/6718)
- **core:** fix issue with `allowSlideNext` in RTL mode ([d61da52](https://github.com/nolimits4web/Swiper/commit/d61da526a4568f39aa37bdf9ba60078b25d0ee20)), closes [#6737](https://github.com/nolimits4web/Swiper/issues/6737)
- **core:** fix navigation can be disabled in breakpoints ([1fd36ad](https://github.com/nolimits4web/Swiper/commit/1fd36ad9d33714df6cff9383e156279867137429)), closes [#6746](https://github.com/nolimits4web/Swiper/issues/6746)
- **core:** fix to preload lazyPreloadPrevNext prior to active slide ([d2f718c](https://github.com/nolimits4web/Swiper/commit/d2f718ce428d0d7c9bbd1c4102f1c4970d4f772b)), closes [#6684](https://github.com/nolimits4web/Swiper/issues/6684)
- **core:** lazyPreloadPrevNext not working with loop mode [#6724](https://github.com/nolimits4web/Swiper/issues/6724) ([#6726](https://github.com/nolimits4web/Swiper/issues/6726)) ([69acab4](https://github.com/nolimits4web/Swiper/commit/69acab4a9b024af1f164f2388070fec68f906c16))
- **effect-cards:** fixed in RTL mode ([e402f05](https://github.com/nolimits4web/Swiper/commit/e402f056a4ace5c7a73cebf414659fe40b46c06f)), closes [#5534](https://github.com/nolimits4web/Swiper/issues/5534)
- **hash-navigation:** get active slide element using the old method if Virtual is not being… ([#6704](https://github.com/nolimits4web/Swiper/issues/6704)) ([db7e72f](https://github.com/nolimits4web/Swiper/commit/db7e72f8f3b67049395302d25f2548062f094d54))
### Features
- **core:** cssMode now supports freeMode ([abe1ec7](https://github.com/nolimits4web/Swiper/commit/abe1ec74a4da0e471af8304616af705e3614106e))
- **element:** add `part="bullet[-active]"` to pagination bullets ([8b4cccd](https://github.com/nolimits4web/Swiper/commit/8b4cccdec6cf75c06cc27117f5f33268da19851c)), closes [#6717](https://github.com/nolimits4web/Swiper/issues/6717)
## [9.3.2](https://github.com/nolimits4web/Swiper/compare/v9.3.1...v9.3.2) (2023-05-15)
### Bug Fixes
- **core:** don't call update() on lazy loaded if spv !== auto and no autoHeight ([378a3c6](https://github.com/nolimits4web/Swiper/commit/378a3c627d8e3845c2949d2c4fff506905d8d9cd))
- **core:** don't call update() on lazy loaded in css mode ([efc294c](https://github.com/nolimits4web/Swiper/commit/efc294c45b0bcd022109e913cd2df165360cfabd))
- **core:** fix for `smoothScroll` check in Support module ([e0f4ae4](https://github.com/nolimits4web/Swiper/commit/e0f4ae4484d2b305dbee9a437d6ca07fbbe15297))
- **element:** fix not working correctly `injectStylesUrls` ([6a50d45](https://github.com/nolimits4web/Swiper/commit/6a50d455801e2d925e4591ac75f70a39b93eaabd)), closes [#6662](https://github.com/nolimits4web/Swiper/issues/6662)
- **element:** remove/re-add navigation, pagination, scrollbar elements based on prop value ([45f8d4a](https://github.com/nolimits4web/Swiper/commit/45f8d4a3dd5b76c8f8426e93696b20aadc74306e)), closes [#6672](https://github.com/nolimits4web/Swiper/issues/6672)
- **hash-navigation:** handle slide to none existing hash ([#6681](https://github.com/nolimits4web/Swiper/issues/6681)) ([7f3fa96](https://github.com/nolimits4web/Swiper/commit/7f3fa96c502964311a012cf6ecea96536c7b46af))
### Features
- add `string` type for `effect` param ([7340629](https://github.com/nolimits4web/Swiper/commit/734062914c3deaf4baa556d966634f50c870bb28)), closes [#6676](https://github.com/nolimits4web/Swiper/issues/6676)
- **mousewheel:** add `noMousewheelClass` param ([0fcd210](https://github.com/nolimits4web/Swiper/commit/0fcd21050fb793fdaa7f9b2950a48e8a3986753a))
- **mousewheel:** support for `swiper-no-mousewheel` ignore class ([#6671](https://github.com/nolimits4web/Swiper/issues/6671)) ([c9130c3](https://github.com/nolimits4web/Swiper/commit/c9130c341c2da0f3bd83a5c688fcd22fc51fb348))
- **react:** export `SwiperClass` type from 'swiper/react' ([6768efe](https://github.com/nolimits4web/Swiper/commit/6768efe557d9829d51a3265cf6b31cfd75f8ef89)), closes [#5500](https://github.com/nolimits4web/Swiper/issues/5500)
# [9.3.1](https://github.com/nolimits4web/Swiper/compare/v9.3.0...v9.3.1) (2023-05-10)
### Bug Fixes
- **element:** correct extending of HTMLElementEventMap in types ([d6a0aca](https://github.com/nolimits4web/Swiper/commit/d6a0aca0f24f19403a424655b4ceb2a1e81529ea)), closes [#6657](https://github.com/nolimits4web/Swiper/issues/6657)
### Features
- **element:** added all events arguments in TS declarations ([abb0688](https://github.com/nolimits4web/Swiper/commit/abb068845b26ace91ab5b10908a2f1f52cf0929e))
# [9.3.0](https://github.com/nolimits4web/Swiper/compare/v9.3.0...v9.2.4) (2023-05-08)
### Bug Fixes
- **a11y:** add notification span to shadow root in Swiper Element ([aa83a03](https://github.com/nolimits4web/Swiper/commit/aa83a03545bb5fbd2469e0e096fb9fb42e57bdd6)), closes [#6634](https://github.com/nolimits4web/Swiper/issues/6634)
- **core:** fix cases when spaceBetween set in `%` ([446af7e](https://github.com/nolimits4web/Swiper/commit/446af7ece1ec7042f5dad6bc550eb344132c0e88)), closes [#6647](https://github.com/nolimits4web/Swiper/issues/6647)
- **element:** don't reinit nested swipers rearranged by parent swiper loop ([926828a](https://github.com/nolimits4web/Swiper/commit/926828aa9d1b301b04f2715a17b94971cfc25b42)), closes [#6642](https://github.com/nolimits4web/Swiper/issues/6642)
- **element:** don't render swiper on every `connected` ([5a5ebb4](https://github.com/nolimits4web/Swiper/commit/5a5ebb4162666eb44c1a3e09893309d734289a98))
### Features
- **element:** element events types ([83774fa](https://github.com/nolimits4web/Swiper/commit/83774fae3585aa2c2883038f5978b576dcc5c0d5))
- **element:** add shadow parts ([e4f3def](https://github.com/nolimits4web/Swiper/commit/e4f3defe5bcd3ab7b9e7dad5513bcb68482a4b9e)), closes [#6594](https://github.com/nolimits4web/Swiper/issues/6594)
- **element:** more complex ts definitions ([4cab52d](https://github.com/nolimits4web/Swiper/commit/4cab52d29b8ca535622d73ddb52c192d282c65fa))
# [9.3.0-beta.1](https://github.com/nolimits4web/Swiper/compare/v9.2.4...v9.3.0-beta.1) (2023-05-08)
### Bug Fixes
- **a11y:** add notification span to shadow root in Swiper Element ([aa83a03](https://github.com/nolimits4web/Swiper/commit/aa83a03545bb5fbd2469e0e096fb9fb42e57bdd6)), closes [#6634](https://github.com/nolimits4web/Swiper/issues/6634)
- **core:** fix cases when spaceBetween set in `%` ([446af7e](https://github.com/nolimits4web/Swiper/commit/446af7ece1ec7042f5dad6bc550eb344132c0e88)), closes [#6647](https://github.com/nolimits4web/Swiper/issues/6647)
- **element:** don't reinit nested swipers rearranged by parent swiper loop ([926828a](https://github.com/nolimits4web/Swiper/commit/926828aa9d1b301b04f2715a17b94971cfc25b42)), closes [#6642](https://github.com/nolimits4web/Swiper/issues/6642)
- **element:** don't render swiper on every `connected` ([5a5ebb4](https://github.com/nolimits4web/Swiper/commit/5a5ebb4162666eb44c1a3e09893309d734289a98))
### Features
- **element:** add shadow parts ([e4f3def](https://github.com/nolimits4web/Swiper/commit/e4f3defe5bcd3ab7b9e7dad5513bcb68482a4b9e)), closes [#6594](https://github.com/nolimits4web/Swiper/issues/6594)
- **element:** more complex ts definitions ([4cab52d](https://github.com/nolimits4web/Swiper/commit/4cab52d29b8ca535622d73ddb52c192d282c65fa))
# [9.2.4](https://github.com/nolimits4web/Swiper/compare/v9.2.3...v9.2.4) (2023-04-21)
### Bug Fixes
- **core:** fix autoHeight in virtual slides ([dd30829](https://github.com/nolimits4web/Swiper/commit/dd308291a46db86bf7b88416587d2d8a1cdcabd5)), closes [#6570](https://github.com/nolimits4web/Swiper/issues/6570)
- **loop:** update slides grids before loop fix when spv is "auto" ([035e79d](https://github.com/nolimits4web/Swiper/commit/035e79d6eb3e07d78824322bc6412df3d09cafbe)), closes [#6599](https://github.com/nolimits4web/Swiper/issues/6599)
- **virtual:** fix last slide index check in virtual slides ([154f048](https://github.com/nolimits4web/Swiper/commit/154f048436726a5a3219ace6b00bebc3bb51ab07)), closes [#6595](https://github.com/nolimits4web/Swiper/issues/6595)
### Features
- **hash-navigation:** new `getSlideIndex` to specify slide index by hash ([3eb0ae2](https://github.com/nolimits4web/Swiper/commit/3eb0ae2dfa6911f7c13fe85fd48cac22a91af451)), closes [#6588](https://github.com/nolimits4web/Swiper/issues/6588)
# [9.2.3](https://github.com/nolimits4web/Swiper/compare/v9.2.2...v9.2.3) (2023-04-17)
### Bug Fixes
- **autoplay:** use local scope for autoplay resize timeot ([4f665bd](https://github.com/nolimits4web/Swiper/commit/4f665bde1871ca05780c1666b5b8072a48786e18)), closes [#6590](https://github.com/nolimits4web/Swiper/issues/6590)
- made defineProperty configurable as it broke when minified. ([#6586](https://github.com/nolimits4web/Swiper/issues/6586)) ([26cfbaa](https://github.com/nolimits4web/Swiper/commit/26cfbaa5a992dc5f4e0f6b12f85e9c7b6308db8c))
- **pagination:** fix clickable pagination in loop ([479a7f5](https://github.com/nolimits4web/Swiper/commit/479a7f5d042492171af15b1bd1001c7f89341eb0)), closes [#6518](https://github.com/nolimits4web/Swiper/issues/6518) [#6460](https://github.com/nolimits4web/Swiper/issues/6460) [#6587](https://github.com/nolimits4web/Swiper/issues/6587) [#6451](https://github.com/nolimits4web/Swiper/issues/6451)
# [9.2.2](https://github.com/nolimits4web/Swiper/compare/v9.2.1...v9.2.2) (2023-04-14)
### Bug Fixes
- **element:** fix redefining `injectStyles` ([36ddaf2](https://github.com/nolimits4web/Swiper/commit/36ddaf26e230878bd8da3bd20b86c2b972ae8228)), closes [#6584](https://github.com/nolimits4web/Swiper/issues/6584)
# [9.2.1](https://github.com/nolimits4web/Swiper/compare/v9.2.0...v9.2.1) (2023-04-14)
### Bug Fixes
- **controller:** add a conditional to early return if the swiper controller is destroyed ([#6555](https://github.com/nolimits4web/Swiper/issues/6555)) ([3fbec6e](https://github.com/nolimits4web/Swiper/commit/3fbec6e5a730f073575f57422262585471eaae5b))
- **controller:** correct interpolation per slider ([706fdf8](https://github.com/nolimits4web/Swiper/commit/706fdf8a962ccd4750bf018e85a6ab9f9e51cf86)), closes [#6506](https://github.com/nolimits4web/Swiper/issues/6506)
- **controller:** fix controllers multiplier on 0 translates ([4b8bd02](https://github.com/nolimits4web/Swiper/commit/4b8bd029fb3f63d897860e489c713d5f223df89c)), closes [#6498](https://github.com/nolimits4web/Swiper/issues/6498)
- **element:** add `injectStyles` to be acceptable as props ([7c1c5d3](https://github.com/nolimits4web/Swiper/commit/7c1c5d35997eba2ba9b6c4d14e11e587b722610b)), closes [#6578](https://github.com/nolimits4web/Swiper/issues/6578)
- **pagination:** update pagination direction class on direction change ([e6247d9](https://github.com/nolimits4web/Swiper/commit/e6247d98a11e7d9c5a23fbef7d60a70edac8100c)), closes [#6511](https://github.com/nolimits4web/Swiper/issues/6511)
- **vue:** fix deep slots ([642b455](https://github.com/nolimits4web/Swiper/commit/642b455fc7f02b82d8e534e51405a2bbe70d0b2c)), closes [#6574](https://github.com/nolimits4web/Swiper/issues/6574)
### Features
- **virtual:** patch for very large sliders using virtual slides ([#6533](https://github.com/nolimits4web/Swiper/issues/6533)) ([e48daa5](https://github.com/nolimits4web/Swiper/commit/e48daa51e1d728be1751a7bf5f726a0fc777d36a))
# [9.2.0](https://github.com/nolimits4web/Swiper/compare/v9.1.1...v9.2.0) (2023-03-31)
### Bug Fixes
- **controller:** add `null` type ([3177936](https://github.com/nolimits4web/Swiper/commit/3177936a725ece8d076a5f481ae927325f41c0ec)), closes [#6505](https://github.com/nolimits4web/Swiper/issues/6505)
- **controller:** prevent controlled swipers from being called when destroyed ([#6501](https://github.com/nolimits4web/Swiper/issues/6501)) ([a266b78](https://github.com/nolimits4web/Swiper/commit/a266b78f918babee0850e6e9cce49341052ee94c)), closes [#6491](https://github.com/nolimits4web/Swiper/issues/6491)
- **mousewheel:** Initialize lastClickTime to very old time ([#6497](https://github.com/nolimits4web/Swiper/issues/6497)) ([0983ded](https://github.com/nolimits4web/Swiper/commit/0983ded1dfc716efacc0c67e047fd0ac9c027439)), closes [#6496](https://github.com/nolimits4web/Swiper/issues/6496)
- **pagination:** fix pagination.d.ts render functions return types ([#6499](https://github.com/nolimits4web/Swiper/issues/6499)) ([34973a1](https://github.com/nolimits4web/Swiper/commit/34973a1555a38c4588a7f8554bdc983d601dc654))
- **zoom:** fix zoom out on double tap on sensitive touch screens ([7f5c626](https://github.com/nolimits4web/Swiper/commit/7f5c6264c3b143d87fa939bfb54644bc1858bc27))
- **zoom:** reset transform origin on zoom out ([7f7f57e](https://github.com/nolimits4web/Swiper/commit/7f7f57e17736219d1856f35a444a1b73b8e2087d))
### Features
- **core:** lazyPreloadPrevNext option to preload prev/next images ([#6544](https://github.com/nolimits4web/Swiper/issues/6544)) ([1cb3233](https://github.com/nolimits4web/Swiper/commit/1cb3233b112d756a111dc8cacb3f37d32b461ca5))
- lazyPreloadPrevNext option to preload prev/next images ([6d08635](https://github.com/nolimits4web/Swiper/commit/6d086359206ed936b991dde0ce7552ba0e65b6b2))
- **zoom:** highly improve pinch-zoom gestures handling ([6016a50](https://github.com/nolimits4web/Swiper/commit/6016a50ddc9fb29bb21e2656abea82ba1f6b90bd))
# [9.1.1](https://github.com/nolimits4web/Swiper/compare/v9.1.0...v9.1.1) (2023-03-16)
### Bug Fixes
- **core:** fixed loop when using custom `slideActiveClass` ([#6495](https://github.com/nolimits4web/Swiper/issues/6495)) ([756ecdb](https://github.com/nolimits4web/Swiper/commit/756ecdbd3e510a29d298f40a167cbdeb26d72508))
- **element:** reset initialized flag on disconnectedCallback ([#6474](https://github.com/nolimits4web/Swiper/issues/6474)) ([1e4a235](https://github.com/nolimits4web/Swiper/commit/1e4a235587c32fcd4be5910917cc60a9743193c6))
- **loop:** fix loopFix for controlled swipers ([d7c0ef7](https://github.com/nolimits4web/Swiper/commit/d7c0ef70625a6306879611ea6f5a756b38c1f78e)), closes [#6491](https://github.com/nolimits4web/Swiper/issues/6491)
- **loop:** fix slides closure when removing last slide ([1a02271](https://github.com/nolimits4web/Swiper/commit/1a02271005473c65c190f009fe9a5c5987129d18)), closes [#6477](https://github.com/nolimits4web/Swiper/issues/6477)
- **pagination:** correctly support multiple bullets paginations ([e24bd8c](https://github.com/nolimits4web/Swiper/commit/e24bd8c60eb2cc2af7b0bd25c109f6e150008819)), closes [#6462](https://github.com/nolimits4web/Swiper/issues/6462)
- **pagination:** escape `+` char in pagination classes ([d0beb9f](https://github.com/nolimits4web/Swiper/commit/d0beb9feb99cc121f0a38ba9f40e1a77d81e9911)), closes [#6486](https://github.com/nolimits4web/Swiper/issues/6486)
- **pagination:** support bulle multiple classes ([20b05fa](https://github.com/nolimits4web/Swiper/commit/20b05fa498eb86a1cc1fae849fce200233121cf3)), closes [#6447](https://github.com/nolimits4web/Swiper/issues/6447)
- **react:** fix virtual loop when not enough slides ([57d8eea](https://github.com/nolimits4web/Swiper/commit/57d8eea78df4908051962041c995fb96ec956cfe)), closes [#6487](https://github.com/nolimits4web/Swiper/issues/6487)
### Features
- **element:** add `eventsPrefix` prop to avoid collision with native events ([d5df91f](https://github.com/nolimits4web/Swiper/commit/d5df91f93421676764c916926c258eda5027dead)), closes [#6450](https://github.com/nolimits4web/Swiper/issues/6450)
- **pagination:** add border-radius variable ([#6476](https://github.com/nolimits4web/Swiper/issues/6476)) ([c912590](https://github.com/nolimits4web/Swiper/commit/c912590af23f1e5190a5c8d6ade5855907288e3f))
# [9.1.0](https://github.com/nolimits4web/Swiper/compare/v9.0.5...v9.1.0) (2023-02-28)
### Bug Fixes
- **autoplay:** fix a crash with resize when the autoplay has gone away during timeout ([#6431](https://github.com/nolimits4web/Swiper/issues/6431)) ([ad
gitextract_z4g623hj/
├── .all-contributorsrc
├── .browserslistrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.cjs
├── .gitattributes
├── .github/
│ ├── CONTRIBUTING.md
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── config.yml
│ │ ├── feature-request.yml
│ │ ├── swiper_core_issue.yml
│ │ ├── swiper_element_issue.yml
│ │ ├── swiper_react_issue.yml
│ │ └── vue_issue.yml
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ ├── lock.yml
│ ├── stale.yml
│ └── workflows/
│ ├── build.yml
│ ├── formatting.yml
│ ├── issue-close-require.yml
│ ├── issue-labeled.yml
│ └── lint.yml
├── .gitignore
├── .lintstagedrc
├── .npmignore
├── .prettierignore
├── .prettierrc
├── .vscode/
│ └── settings.json
├── BACKERS.md
├── CHANGELOG.md
├── CODE_CONTRIBUTORS.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── TODO.md
├── babel.config.json
├── demos/
│ ├── 010-default.html
│ ├── 020-navigation.html
│ ├── 030-pagination.html
│ ├── 040-pagination-dynamic.html
│ ├── 050-pagination-progress.html
│ ├── 060-pagination-fraction.html
│ ├── 070-pagination-custom.html
│ ├── 080-scrollbar.html
│ ├── 090-vertical.html
│ ├── 100-space-between.html
│ ├── 110-slides-per-view.html
│ ├── 120-slides-per-view-auto.html
│ ├── 125-snap-to-slide-edge.html
│ ├── 130-centered.html
│ ├── 140-centered-auto.html
│ ├── 145-css-mode.html
│ ├── 150-freemode.html
│ ├── 160-scroll-container.html
│ ├── 170-slides-per-column.html
│ ├── 180-nested.html
│ ├── 190-grab-cursor.html
│ ├── 200-infinite-loop.html
│ ├── 210-infinite-loop-with-slides-per-group.html
│ ├── 211-slides-per-group-skip.html
│ ├── 220-effect-fade.html
│ ├── 230-effect-cube.html
│ ├── 240-effect-coverflow.html
│ ├── 250-effect-flip.html
│ ├── 255-effect-cards.html
│ ├── 257-effect-creative.html
│ ├── 260-keyboard-control.html
│ ├── 270-mousewheel-control.html
│ ├── 280-autoplay.html
│ ├── 290-dynamic-slides.html
│ ├── 300-thumbs-gallery.html
│ ├── 310-thumbs-gallery-loop.html
│ ├── 320-multiple-swipers.html
│ ├── 330-hash-navigation.html
│ ├── 340-history.html
│ ├── 350-rtl.html
│ ├── 360-parallax.html
│ ├── 370-lazy-load-images.html
│ ├── 380-responsive-breakpoints.html
│ ├── 381-ratio-breakpoints.html
│ ├── 390-autoheight.html
│ ├── 400-zoom.html
│ ├── 410-virtual-slides.html
│ ├── 420-custom-plugin.html
│ ├── 430-slideable-menu.html
│ ├── 440-change-direction.html
│ ├── 450-watchSlidesVisibility.html
│ ├── index.html
│ └── vite.config.js
├── package.json
├── playground/
│ ├── core/
│ │ ├── index.html
│ │ └── vite.config.js
│ ├── element/
│ │ ├── index.html
│ │ └── vite.config.js
│ ├── react/
│ │ ├── App.jsx
│ │ ├── index.html
│ │ ├── main.js
│ │ └── vite.config.js
│ └── vue/
│ ├── App.vue
│ ├── index.html
│ ├── innerComp.vue
│ ├── main.js
│ └── vite.config.js
├── scripts/
│ ├── build-config.js
│ ├── build-modules.js
│ ├── build-sponsors.js
│ ├── build-styles.js
│ ├── build-types.js
│ ├── build.js
│ ├── release.js
│ ├── utils/
│ │ ├── autoprefixer.js
│ │ ├── banner.js
│ │ ├── get-element-styles.js
│ │ ├── helper.js
│ │ ├── isProd.js
│ │ ├── less.js
│ │ ├── minify-css.js
│ │ ├── minify.js
│ │ ├── output-dir.js
│ │ └── unwrap-css.js
│ └── watch.js
└── src/
├── components-shared/
│ ├── get-changed-params.mjs
│ ├── get-element-params.mjs
│ ├── get-params.mjs
│ ├── mount-swiper.mjs
│ ├── params-list.mjs
│ ├── update-on-virtual-data.mjs
│ ├── update-swiper.mjs
│ └── utils.mjs
├── copy/
│ ├── LICENSE
│ ├── README.md
│ └── package.json
├── core/
│ ├── breakpoints/
│ │ ├── getBreakpoint.mjs
│ │ ├── index.mjs
│ │ └── setBreakpoint.mjs
│ ├── check-overflow/
│ │ └── index.mjs
│ ├── classes/
│ │ ├── addClasses.mjs
│ │ ├── index.mjs
│ │ └── removeClasses.mjs
│ ├── core.mjs
│ ├── defaults.mjs
│ ├── events/
│ │ ├── index.mjs
│ │ ├── onClick.mjs
│ │ ├── onDocumentTouchStart.mjs
│ │ ├── onLoad.mjs
│ │ ├── onResize.mjs
│ │ ├── onScroll.mjs
│ │ ├── onTouchEnd.mjs
│ │ ├── onTouchMove.mjs
│ │ └── onTouchStart.mjs
│ ├── events-emitter.mjs
│ ├── grab-cursor/
│ │ ├── index.mjs
│ │ ├── setGrabCursor.mjs
│ │ └── unsetGrabCursor.mjs
│ ├── loop/
│ │ ├── index.mjs
│ │ ├── loopCreate.mjs
│ │ ├── loopDestroy.mjs
│ │ └── loopFix.mjs
│ ├── moduleExtendParams.mjs
│ ├── modules/
│ │ ├── observer/
│ │ │ └── observer.mjs
│ │ └── resize/
│ │ └── resize.mjs
│ ├── slide/
│ │ ├── index.mjs
│ │ ├── slideNext.mjs
│ │ ├── slidePrev.mjs
│ │ ├── slideReset.mjs
│ │ ├── slideTo.mjs
│ │ ├── slideToClickedSlide.mjs
│ │ ├── slideToClosest.mjs
│ │ └── slideToLoop.mjs
│ ├── transition/
│ │ ├── index.mjs
│ │ ├── setTransition.mjs
│ │ ├── transitionEmit.mjs
│ │ ├── transitionEnd.mjs
│ │ └── transitionStart.mjs
│ ├── translate/
│ │ ├── getTranslate.mjs
│ │ ├── index.mjs
│ │ ├── maxTranslate.mjs
│ │ ├── minTranslate.mjs
│ │ ├── setTranslate.mjs
│ │ └── translateTo.mjs
│ └── update/
│ ├── index.mjs
│ ├── updateActiveIndex.mjs
│ ├── updateAutoHeight.mjs
│ ├── updateClickedSlide.mjs
│ ├── updateProgress.mjs
│ ├── updateSize.mjs
│ ├── updateSlides.mjs
│ ├── updateSlidesClasses.mjs
│ ├── updateSlidesOffset.mjs
│ └── updateSlidesProgress.mjs
├── modules/
│ ├── a11y/
│ │ ├── a11y.css
│ │ └── a11y.mjs
│ ├── autoplay/
│ │ ├── autoplay.css
│ │ └── autoplay.mjs
│ ├── controller/
│ │ ├── controller.css
│ │ └── controller.mjs
│ ├── effect-cards/
│ │ ├── effect-cards.css
│ │ └── effect-cards.mjs
│ ├── effect-coverflow/
│ │ ├── effect-coverflow.css
│ │ └── effect-coverflow.mjs
│ ├── effect-creative/
│ │ ├── effect-creative.css
│ │ └── effect-creative.mjs
│ ├── effect-cube/
│ │ ├── effect-cube.css
│ │ └── effect-cube.mjs
│ ├── effect-fade/
│ │ ├── effect-fade.css
│ │ └── effect-fade.mjs
│ ├── effect-flip/
│ │ ├── effect-flip.css
│ │ └── effect-flip.mjs
│ ├── free-mode/
│ │ ├── free-mode.css
│ │ └── free-mode.mjs
│ ├── grid/
│ │ ├── grid.css
│ │ └── grid.mjs
│ ├── hash-navigation/
│ │ ├── hash-navigation.css
│ │ └── hash-navigation.mjs
│ ├── history/
│ │ ├── history.css
│ │ └── history.mjs
│ ├── keyboard/
│ │ ├── keyboard.css
│ │ └── keyboard.mjs
│ ├── manipulation/
│ │ ├── manipulation.css
│ │ ├── manipulation.mjs
│ │ └── methods/
│ │ ├── addSlide.mjs
│ │ ├── appendSlide.mjs
│ │ ├── prependSlide.mjs
│ │ ├── removeAllSlides.mjs
│ │ └── removeSlide.mjs
│ ├── mousewheel/
│ │ ├── mousewheel.css
│ │ └── mousewheel.mjs
│ ├── navigation/
│ │ ├── navigation.css
│ │ └── navigation.mjs
│ ├── pagination/
│ │ ├── pagination.css
│ │ └── pagination.mjs
│ ├── parallax/
│ │ ├── parallax.css
│ │ └── parallax.mjs
│ ├── scrollbar/
│ │ ├── scrollbar.css
│ │ └── scrollbar.mjs
│ ├── thumbs/
│ │ ├── thumbs.css
│ │ └── thumbs.mjs
│ ├── virtual/
│ │ ├── virtual.css
│ │ └── virtual.mjs
│ └── zoom/
│ ├── zoom.css
│ └── zoom.mjs
├── react/
│ ├── context.mjs
│ ├── get-children.mjs
│ ├── swiper-slide.mjs
│ ├── swiper.mjs
│ ├── use-isomorphic-layout-effect.mjs
│ └── virtual.mjs
├── shared/
│ ├── classes-to-selector.mjs
│ ├── classes-to-tokens.mjs
│ ├── create-element-if-not-defined.mjs
│ ├── create-shadow.mjs
│ ├── effect-init.mjs
│ ├── effect-target.mjs
│ ├── effect-virtual-transition-end.mjs
│ ├── get-browser.mjs
│ ├── get-device.mjs
│ ├── get-support.mjs
│ ├── process-lazy-preloader.mjs
│ └── utils.mjs
├── swiper-bundle.mjs
├── swiper-effect-utils.d.ts
├── swiper-effect-utils.mjs
├── swiper-element.d.ts
├── swiper-element.mjs
├── swiper-react.d.ts
├── swiper-react.mjs
├── swiper-vars.less
├── swiper-vue.d.ts
├── swiper-vue.mjs
├── swiper.css
├── swiper.d.ts
├── swiper.mjs
├── types/
│ ├── index.d.ts
│ ├── modules/
│ │ ├── a11y.d.ts
│ │ ├── autoplay.d.ts
│ │ ├── controller.d.ts
│ │ ├── effect-cards.d.ts
│ │ ├── effect-coverflow.d.ts
│ │ ├── effect-creative.d.ts
│ │ ├── effect-cube.d.ts
│ │ ├── effect-fade.d.ts
│ │ ├── effect-flip.d.ts
│ │ ├── free-mode.d.ts
│ │ ├── grid.d.ts
│ │ ├── hash-navigation.d.ts
│ │ ├── history.d.ts
│ │ ├── index.d.ts
│ │ ├── keyboard.d.ts
│ │ ├── manipulation.d.ts
│ │ ├── mousewheel.d.ts
│ │ ├── navigation.d.ts
│ │ ├── pagination.d.ts
│ │ ├── parallax.d.ts
│ │ ├── public-api.d.ts
│ │ ├── scrollbar.d.ts
│ │ ├── thumbs.d.ts
│ │ ├── virtual.d.ts
│ │ └── zoom.d.ts
│ ├── shared.d.ts
│ ├── swiper-class.d.ts
│ ├── swiper-events.d.ts
│ └── swiper-options.d.ts
└── vue/
├── context.mjs
├── get-children.mjs
├── swiper-slide.mjs
├── swiper.mjs
└── virtual.mjs
SYMBOL INDEX (320 symbols across 142 files)
FILE: scripts/build-modules.js
function buildModules (line 16) | async function buildModules() {
FILE: scripts/build-styles.js
function buildStyles (line 45) | async function buildStyles() {
FILE: scripts/build-types.js
function buildTypes (line 11) | async function buildTypes() {
FILE: scripts/build.js
class Build (line 10) | class Build {
method constructor (line 11) | constructor() {
method add (line 17) | add(flag, buildFn) {
method run (line 22) | async run() {
FILE: scripts/release.js
function release (line 12) | async function release() {
FILE: scripts/utils/banner.js
function banner (line 12) | function banner(name = null) {
function addBannerToFile (line 27) | async function addBannerToFile(file, name) {
FILE: scripts/utils/get-element-styles.js
function getElementStyles (line 111) | async function getElementStyles() {
FILE: scripts/utils/helper.js
function capitalizeString (line 1) | function capitalizeString(str) {
function parseSwiperBuildModulesEnv (line 10) | function parseSwiperBuildModulesEnv() {
FILE: scripts/utils/isProd.js
function isProd (line 1) | function isProd() {
FILE: src/components-shared/get-changed-params.mjs
function getChangedParams (line 4) | function getChangedParams(swiperParams, oldParams, children, oldChildren...
FILE: src/components-shared/get-element-params.mjs
function getParams (line 49) | function getParams(element, propName, propValue) {
FILE: src/components-shared/get-params.mjs
function getParams (line 5) | function getParams(obj = {}, splitEvents = true) {
FILE: src/components-shared/mount-swiper.mjs
function mountSwiper (line 3) | function mountSwiper({ el, nextEl, prevEl, paginationEl, scrollbarEl, sw...
FILE: src/components-shared/update-swiper.mjs
function updateSwiper (line 4) | function updateSwiper({
FILE: src/components-shared/utils.mjs
function isObject (line 1) | function isObject(o) {
function extend (line 11) | function extend(target, src) {
function needsNavigation (line 26) | function needsNavigation(params = {}) {
function needsPagination (line 33) | function needsPagination(params = {}) {
function needsScrollbar (line 36) | function needsScrollbar(params = {}) {
function uniqueClasses (line 39) | function uniqueClasses(classNames = '') {
function attrToProp (line 51) | function attrToProp(attrName = '') {
function wrapperClass (line 55) | function wrapperClass(className = '') {
FILE: src/core/breakpoints/getBreakpoint.mjs
function getBreakpoint (line 3) | function getBreakpoint(breakpoints, base = 'window', containerEl) {
FILE: src/core/breakpoints/setBreakpoint.mjs
function setBreakpoint (line 8) | function setBreakpoint() {
FILE: src/core/check-overflow/index.mjs
function checkOverflow (line 1) | function checkOverflow() {
FILE: src/core/classes/addClasses.mjs
function prepareClasses (line 1) | function prepareClasses(entries, prefix) {
function addClasses (line 17) | function addClasses() {
FILE: src/core/classes/removeClasses.mjs
function removeClasses (line 1) | function removeClasses() {
FILE: src/core/core.mjs
class Swiper (line 51) | class Swiper {
method constructor (line 52) | constructor(...args) {
method getDirectionLabel (line 235) | getDirectionLabel(property) {
method getSlideIndex (line 252) | getSlideIndex(slideEl) {
method getSlideIndexByData (line 259) | getSlideIndexByData(index) {
method getSlideIndexWhenGrid (line 265) | getSlideIndexWhenGrid(index) {
method recalcSlides (line 276) | recalcSlides() {
method enable (line 282) | enable() {
method disable (line 292) | disable() {
method setProgress (line 302) | setProgress(progress, speed) {
method emitContainerClasses (line 313) | emitContainerClasses() {
method getSlideClasses (line 325) | getSlideClasses(slideEl) {
method emitSlidesClasses (line 340) | emitSlidesClasses() {
method slidesPerViewDynamic (line 352) | slidesPerViewDynamic(view = 'current', exact = false) {
method update (line 399) | update() {
method changeDirection (line 457) | changeDirection(newDirection, needUpdate = true) {
method changeLanguageDirection (line 491) | changeLanguageDirection(direction) {
method mount (line 506) | mount(element) {
method init (line 568) | init(el) {
method destroy (line 647) | destroy(deleteInstance = true, cleanStyles = true) {
method extendDefaults (line 710) | static extendDefaults(newDefaults) {
method extendedDefaults (line 714) | static get extendedDefaults() {
method defaults (line 718) | static get defaults() {
method installModule (line 722) | static installModule(mod) {
method use (line 731) | static use(module) {
FILE: src/core/events-emitter.mjs
method on (line 4) | on(events, handler, priority) {
method once (line 16) | once(events, handler, priority) {
method onAny (line 31) | onAny(handler, priority) {
method offAny (line 42) | offAny(handler) {
method off (line 53) | off(events, handler) {
method emit (line 74) | emit(...args) {
FILE: src/core/events/index.mjs
function attachEvents (line 59) | function attachEvents() {
function detachEvents (line 78) | function detachEvents() {
FILE: src/core/events/onClick.mjs
function onClick (line 1) | function onClick(e) {
FILE: src/core/events/onDocumentTouchStart.mjs
function onDocumentTouchStart (line 1) | function onDocumentTouchStart() {
FILE: src/core/events/onLoad.mjs
function onLoad (line 3) | function onLoad(e) {
FILE: src/core/events/onResize.mjs
function onResize (line 1) | function onResize() {
FILE: src/core/events/onScroll.mjs
function onScroll (line 1) | function onScroll() {
FILE: src/core/events/onTouchEnd.mjs
function onTouchEnd (line 3) | function onTouchEnd(event) {
FILE: src/core/events/onTouchMove.mjs
function onTouchMove (line 4) | function onTouchMove(event) {
FILE: src/core/events/onTouchStart.mjs
function closestElement (line 5) | function closestElement(selector, base = this) {
function preventEdgeSwipe (line 18) | function preventEdgeSwipe(swiper, event, startX) {
function onTouchStart (line 36) | function onTouchStart(event) {
FILE: src/core/grab-cursor/setGrabCursor.mjs
function setGrabCursor (line 1) | function setGrabCursor(moving) {
FILE: src/core/grab-cursor/unsetGrabCursor.mjs
function unsetGrabCursor (line 1) | function unsetGrabCursor() {
FILE: src/core/loop/loopCreate.mjs
function loopCreate (line 3) | function loopCreate(slideRealIndex, initial) {
FILE: src/core/loop/loopDestroy.mjs
function loopDestroy (line 1) | function loopDestroy() {
FILE: src/core/loop/loopFix.mjs
function loopFix (line 3) | function loopFix({
FILE: src/core/moduleExtendParams.mjs
function moduleExtendParams (line 3) | function moduleExtendParams(params, allModulesParams) {
FILE: src/core/modules/observer/observer.mjs
function Observer (line 4) | function Observer({ swiper, extendParams, on, emit }) {
FILE: src/core/modules/resize/resize.mjs
function Resize (line 3) | function Resize({ swiper, on, emit }) {
FILE: src/core/slide/slideNext.mjs
function slideNext (line 2) | function slideNext(speed, runCallbacks = true, internal) {
FILE: src/core/slide/slidePrev.mjs
function slidePrev (line 2) | function slidePrev(speed, runCallbacks = true, internal) {
FILE: src/core/slide/slideReset.mjs
function slideReset (line 2) | function slideReset(speed, runCallbacks = true, internal) {
FILE: src/core/slide/slideTo.mjs
function slideTo (line 4) | function slideTo(index = 0, speed, runCallbacks = true, internal, initia...
FILE: src/core/slide/slideToClickedSlide.mjs
function slideToClickedSlide (line 3) | function slideToClickedSlide() {
FILE: src/core/slide/slideToClosest.mjs
function slideToClosest (line 2) | function slideToClosest(speed, runCallbacks = true, internal, threshold ...
FILE: src/core/slide/slideToLoop.mjs
function slideToLoop (line 1) | function slideToLoop(index = 0, speed, runCallbacks = true, internal) {
FILE: src/core/transition/setTransition.mjs
function setTransition (line 1) | function setTransition(duration, byController) {
FILE: src/core/transition/transitionEmit.mjs
function transitionEmit (line 1) | function transitionEmit({ swiper, runCallbacks, direction, step }) {
FILE: src/core/transition/transitionEnd.mjs
function transitionEnd (line 3) | function transitionEnd(runCallbacks = true, direction) {
FILE: src/core/transition/transitionStart.mjs
function transitionStart (line 3) | function transitionStart(runCallbacks = true, direction) {
FILE: src/core/translate/getTranslate.mjs
function getSwiperTranslate (line 3) | function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {
FILE: src/core/translate/maxTranslate.mjs
function maxTranslate (line 1) | function maxTranslate() {
FILE: src/core/translate/minTranslate.mjs
function minTranslate (line 1) | function minTranslate() {
FILE: src/core/translate/setTranslate.mjs
function setTranslate (line 1) | function setTranslate(translate, byController) {
FILE: src/core/translate/translateTo.mjs
function translateTo (line 3) | function translateTo(
FILE: src/core/update/updateActiveIndex.mjs
function getActiveIndexByTranslate (line 3) | function getActiveIndexByTranslate(swiper) {
function updateActiveIndex (line 27) | function updateActiveIndex(newActiveIndex) {
FILE: src/core/update/updateAutoHeight.mjs
function updateAutoHeight (line 1) | function updateAutoHeight(speed) {
FILE: src/core/update/updateClickedSlide.mjs
function updateClickedSlide (line 1) | function updateClickedSlide(el, path) {
FILE: src/core/update/updateProgress.mjs
function updateProgress (line 1) | function updateProgress(translate) {
FILE: src/core/update/updateSize.mjs
function updateSize (line 3) | function updateSize() {
FILE: src/core/update/updateSlides.mjs
function updateSlides (line 8) | function updateSlides() {
FILE: src/core/update/updateSlidesClasses.mjs
function updateSlidesClasses (line 11) | function updateSlidesClasses() {
FILE: src/core/update/updateSlidesOffset.mjs
function updateSlidesOffset (line 1) | function updateSlidesOffset() {
FILE: src/core/update/updateSlidesProgress.mjs
function updateSlidesProgress (line 9) | function updateSlidesProgress(translate = (this && this.translate) || 0) {
FILE: src/modules/a11y/a11y.mjs
function A11y (line 10) | function A11y({ swiper, extendParams, on }) {
FILE: src/modules/autoplay/autoplay.mjs
function Autoplay (line 5) | function Autoplay({ swiper, extendParams, on, emit, params }) {
FILE: src/modules/controller/controller.mjs
function Controller (line 4) | function Controller({ swiper, extendParams, on }) {
FILE: src/modules/effect-cards/effect-cards.mjs
function EffectCards (line 7) | function EffectCards({ swiper, extendParams, on }) {
FILE: src/modules/effect-coverflow/effect-coverflow.mjs
function EffectCoverflow (line 6) | function EffectCoverflow({ swiper, extendParams, on }) {
FILE: src/modules/effect-creative/effect-creative.mjs
function EffectCreative (line 7) | function EffectCreative({ swiper, extendParams, on }) {
FILE: src/modules/effect-cube/effect-cube.mjs
function EffectCube (line 4) | function EffectCube({ swiper, extendParams, on }) {
FILE: src/modules/effect-fade/effect-fade.mjs
function EffectFade (line 6) | function EffectFade({ swiper, extendParams, on }) {
FILE: src/modules/effect-flip/effect-flip.mjs
function EffectFlip (line 7) | function EffectFlip({ swiper, extendParams, on }) {
FILE: src/modules/free-mode/free-mode.mjs
function freeMode (line 3) | function freeMode({ swiper, extendParams, emit, once }) {
FILE: src/modules/grid/grid.mjs
function Grid (line 1) | function Grid({ swiper, extendParams, on }) {
FILE: src/modules/hash-navigation/hash-navigation.mjs
function HashNavigation (line 4) | function HashNavigation({ swiper, extendParams, emit, on }) {
FILE: src/modules/history/history.mjs
function History (line 3) | function History({ swiper, extendParams, on }) {
FILE: src/modules/keyboard/keyboard.mjs
function Keyboard (line 5) | function Keyboard({ swiper, extendParams, on, emit }) {
FILE: src/modules/manipulation/manipulation.mjs
function Manipulation (line 7) | function Manipulation({ swiper }) {
FILE: src/modules/manipulation/methods/addSlide.mjs
function addSlide (line 1) | function addSlide(index, slides) {
FILE: src/modules/manipulation/methods/appendSlide.mjs
function appendSlide (line 3) | function appendSlide(slides) {
FILE: src/modules/manipulation/methods/prependSlide.mjs
function prependSlide (line 3) | function prependSlide(slides) {
FILE: src/modules/manipulation/methods/removeAllSlides.mjs
function removeAllSlides (line 1) | function removeAllSlides() {
FILE: src/modules/manipulation/methods/removeSlide.mjs
function removeSlide (line 1) | function removeSlide(slidesIndexes) {
FILE: src/modules/mousewheel/mousewheel.mjs
function Mousewheel (line 5) | function Mousewheel({ swiper, extendParams, on, emit }) {
FILE: src/modules/navigation/navigation.mjs
function Navigation (line 6) | function Navigation({ swiper, extendParams, on, emit }) {
FILE: src/modules/pagination/pagination.mjs
function Pagination (line 11) | function Pagination({ swiper, extendParams, on, emit }) {
FILE: src/modules/parallax/parallax.mjs
function Parallax (line 3) | function Parallax({ swiper, extendParams, on }) {
FILE: src/modules/scrollbar/scrollbar.mjs
function Scrollbar (line 7) | function Scrollbar({ swiper, extendParams, on, emit }) {
FILE: src/modules/thumbs/thumbs.mjs
function Thumb (line 4) | function Thumb({ swiper, extendParams, on }) {
FILE: src/modules/virtual/virtual.mjs
function Virtual (line 9) | function Virtual({ swiper, extendParams, on, emit }) {
FILE: src/modules/zoom/zoom.mjs
function Zoom (line 9) | function Zoom({ swiper, extendParams, on, emit }) {
FILE: src/react/get-children.mjs
function isChildSwiperSlide (line 3) | function isChildSwiperSlide(child) {
function processChildren (line 7) | function processChildren(c) {
function getChildren (line 19) | function getChildren(c) {
FILE: src/react/swiper-slide.mjs
function updateClasses (line 24) | function updateClasses(_s, el, classNames) {
FILE: src/react/swiper.mjs
method _containerClasses (line 57) | _containerClasses(swiper, classes) {
function renderSlides (line 185) | function renderSlides() {
FILE: src/react/use-isomorphic-layout-effect.mjs
function useIsomorphicLayoutEffect (line 3) | function useIsomorphicLayoutEffect(callback, deps) {
FILE: src/react/virtual.mjs
function renderVirtual (line 3) | function renderVirtual(swiper, slides, virtualData) {
FILE: src/shared/classes-to-selector.mjs
function classesToSelector (line 1) | function classesToSelector(classes = '') {
FILE: src/shared/classes-to-tokens.mjs
function classesToTokens (line 1) | function classesToTokens(classes = '') {
FILE: src/shared/create-element-if-not-defined.mjs
function createElementIfNotDefined (line 3) | function createElementIfNotDefined(swiper, originalParams, params, check...
FILE: src/shared/create-shadow.mjs
function createShadow (line 3) | function createShadow(suffix, slideEl, side) {
FILE: src/shared/effect-init.mjs
function effectInit (line 1) | function effectInit(params) {
FILE: src/shared/effect-target.mjs
function effectTarget (line 3) | function effectTarget(effectParams, slideEl) {
FILE: src/shared/effect-virtual-transition-end.mjs
function effectVirtualTransitionEnd (line 3) | function effectVirtualTransitionEnd({
FILE: src/shared/get-browser.mjs
function calcBrowser (line 6) | function calcBrowser() {
function getBrowser (line 37) | function getBrowser() {
FILE: src/shared/get-device.mjs
function calcDevice (line 6) | function calcDevice({ userAgent } = {}) {
function getDevice (line 67) | function getDevice(overrides = {}) {
FILE: src/shared/get-support.mjs
function calcSupport (line 5) | function calcSupport() {
function getSupport (line 22) | function getSupport() {
FILE: src/shared/utils.mjs
function deleteProps (line 4) | function deleteProps(obj) {
function nextTick (line 19) | function nextTick(callback, delay = 0) {
function now (line 22) | function now() {
function getComputedStyle (line 25) | function getComputedStyle(el) {
function getTranslate (line 40) | function getTranslate(el, axis = 'x') {
function isObject (line 88) | function isObject(o) {
function isNode (line 96) | function isNode(node) {
function extend (line 103) | function extend(...args) {
function setCSSProperty (line 138) | function setCSSProperty(el, varName, varValue) {
function animateCSSModeScroll (line 142) | function animateCSSModeScroll({ swiper, targetPosition, side }) {
function getSlideTransformEl (line 191) | function getSlideTransformEl(slideEl) {
function findElementsInElements (line 199) | function findElementsInElements(elements = [], selector = '') {
function elementChildren (line 206) | function elementChildren(element, selector = '') {
function elementIsChildOfSlot (line 218) | function elementIsChildOfSlot(el, slot) {
function elementIsChildOf (line 233) | function elementIsChildOf(el, parent) {
function showWarning (line 246) | function showWarning(text) {
function createElement (line 254) | function createElement(tag, classes = []) {
function elementOffset (line 259) | function elementOffset(el) {
function elementPrevAll (line 273) | function elementPrevAll(el, selector) {
function elementNextAll (line 284) | function elementNextAll(el, selector) {
function elementStyle (line 295) | function elementStyle(el, prop) {
function elementIndex (line 299) | function elementIndex(el) {
function elementParents (line 313) | function elementParents(el, selector) {
function elementTransitionEnd (line 327) | function elementTransitionEnd(el, callback) {
function elementOuterSize (line 338) | function elementOuterSize(el, size, includeMargins) {
function makeElementsArray (line 357) | function makeElementsArray(el) {
function getRotateFix (line 360) | function getRotateFix(swiper) {
function setInnerHTML (line 369) | function setInnerHTML(el, html = '') {
FILE: src/swiper-element.d.ts
type SwiperContainerEventMap (line 7) | interface SwiperContainerEventMap extends Omit<HTMLElementEventMap, 'cli...
type SwiperContainer (line 13) | interface SwiperContainer extends HTMLElement {}
type SwiperContainer (line 14) | interface SwiperContainer extends SwiperOptions {
type SwiperSlide (line 42) | interface SwiperSlide extends HTMLElement {
type HTMLElementTagNameMap (line 47) | interface HTMLElementTagNameMap {
FILE: src/swiper-element.mjs
class DummyHTMLElement (line 17) | class DummyHTMLElement {}
class SwiperContainer (line 37) | class SwiperContainer extends ClassToExtend {
method constructor (line 38) | constructor() {
method cssStyles (line 44) | cssStyles() {
method cssLinks (line 51) | cssLinks() {
method calcSlideSlots (line 55) | calcSlideSlots() {
method render (line 82) | render() {
method initialize (line 136) | initialize() {
method connectedCallback (line 167) | connectedCallback() {
method disconnectedCallback (line 183) | disconnectedCallback() {
method updateSwiperOnPropChange (line 196) | updateSwiperOnPropChange(propName, propValue) {
method attributeChangedCallback (line 226) | attributeChangedCallback(attr, prevValue, newValue) {
method observedAttributes (line 234) | static get observedAttributes() {
method get (line 252) | get() {
method set (line 255) | set(value) {
class SwiperSlide (line 264) | class SwiperSlide extends ClassToExtend {
method constructor (line 265) | constructor() {
method render (line 270) | render() {
method initialize (line 283) | initialize() {
method connectedCallback (line 287) | connectedCallback() {
FILE: src/swiper-react.d.ts
type SwiperProps (line 5) | type SwiperProps = Omit<
type SlideData (line 42) | interface SlideData {
type SwiperSlideProps (line 49) | type SwiperSlideProps = Omit<React.HTMLAttributes<HTMLElement>, 'childre...
type SwiperRef (line 86) | interface SwiperRef extends React.HTMLAttributes<HTMLElement> {
FILE: src/types/modules/a11y.d.ts
type A11yMethods (line 1) | interface A11yMethods {}
type A11yEvents (line 3) | interface A11yEvents {}
type A11yOptions (line 5) | interface A11yOptions {
FILE: src/types/modules/autoplay.d.ts
type AutoplayMethods (line 3) | interface AutoplayMethods {
type AutoplayEvents (line 40) | interface AutoplayEvents {
type AutoplayOptions (line 79) | interface AutoplayOptions {
FILE: src/types/modules/controller.d.ts
type ControllerMethods (line 3) | interface ControllerMethods {
type ControllerEvents (line 11) | interface ControllerEvents {}
type ControllerOptions (line 13) | interface ControllerOptions {
FILE: src/types/modules/effect-cards.d.ts
type CardsEffectMethods (line 1) | interface CardsEffectMethods {}
type CardsEffectEvents (line 3) | interface CardsEffectEvents {}
type CardsEffectOptions (line 5) | interface CardsEffectOptions {
FILE: src/types/modules/effect-coverflow.d.ts
type CoverflowEffectMethods (line 1) | interface CoverflowEffectMethods {}
type CoverflowEffectEvents (line 3) | interface CoverflowEffectEvents {}
type CoverflowEffectOptions (line 5) | interface CoverflowEffectOptions {
FILE: src/types/modules/effect-creative.d.ts
type CreativeEffectTransform (line 1) | interface CreativeEffectTransform {
type CreativeEffectMethods (line 10) | interface CreativeEffectMethods {}
type CreativeEffectEvents (line 12) | interface CreativeEffectEvents {}
type CreativeEffectOptions (line 14) | interface CreativeEffectOptions {
FILE: src/types/modules/effect-cube.d.ts
type CubeEffectMethods (line 1) | interface CubeEffectMethods {}
type CubeEffectEvents (line 3) | interface CubeEffectEvents {}
type CubeEffectOptions (line 5) | interface CubeEffectOptions {
FILE: src/types/modules/effect-fade.d.ts
type FadeEffectMethods (line 1) | interface FadeEffectMethods {}
type FadeEffectEvents (line 3) | interface FadeEffectEvents {}
type FadeEffectOptions (line 5) | interface FadeEffectOptions {
FILE: src/types/modules/effect-flip.d.ts
type FlipEffectMethods (line 1) | interface FlipEffectMethods {}
type FlipEffectEvents (line 3) | interface FlipEffectEvents {}
type FlipEffectOptions (line 5) | interface FlipEffectOptions {
FILE: src/types/modules/free-mode.d.ts
type FreeModeMethods (line 1) | interface FreeModeMethods {
type FreeModeEvents (line 6) | interface FreeModeEvents {}
type FreeModeOptions (line 8) | interface FreeModeOptions {
FILE: src/types/modules/grid.d.ts
type GridMethods (line 1) | interface GridMethods {}
type GridEvents (line 3) | interface GridEvents {}
type GridOptions (line 5) | interface GridOptions {
FILE: src/types/modules/hash-navigation.d.ts
type HashNavigationMethods (line 3) | interface HashNavigationMethods {}
type HashNavigationEvents (line 5) | interface HashNavigationEvents {
type HashNavigationOptions (line 16) | interface HashNavigationOptions {
FILE: src/types/modules/history.d.ts
type HistoryMethods (line 1) | interface HistoryMethods {}
type HistoryEvents (line 3) | interface HistoryEvents {}
type HistoryOptions (line 5) | interface HistoryOptions {
FILE: src/types/modules/keyboard.d.ts
type KeyboardMethods (line 3) | interface KeyboardMethods {
type KeyboardEvents (line 20) | interface KeyboardEvents {
type KeyboardOptions (line 27) | interface KeyboardOptions {
FILE: src/types/modules/manipulation.d.ts
type ManipulationMethods (line 1) | interface ManipulationMethods {
type ManipulationEvents (line 68) | interface ManipulationEvents {}
type ManipulationOptions (line 70) | interface ManipulationOptions {}
FILE: src/types/modules/mousewheel.d.ts
type MousewheelMethods (line 4) | interface MousewheelMethods {
type MousewheelEvents (line 21) | interface MousewheelEvents {
type MousewheelOptions (line 28) | interface MousewheelOptions {
FILE: src/types/modules/navigation.d.ts
type NavigationMethods (line 4) | interface NavigationMethods {
type NavigationEvents (line 31) | interface NavigationEvents {
type NavigationOptions (line 50) | interface NavigationOptions {
FILE: src/types/modules/pagination.d.ts
type PaginationMethods (line 4) | interface PaginationMethods {
type PaginationEvents (line 38) | interface PaginationEvents {
type PaginationOptions (line 60) | interface PaginationOptions {
FILE: src/types/modules/parallax.d.ts
type ParallaxMethods (line 1) | interface ParallaxMethods {}
type ParallaxEvents (line 3) | interface ParallaxEvents {}
type ParallaxOptions (line 5) | interface ParallaxOptions {
FILE: src/types/modules/scrollbar.d.ts
type ScrollbarMethods (line 4) | interface ScrollbarMethods {
type ScrollbarEvents (line 36) | interface ScrollbarEvents {
type ScrollbarOptions (line 66) | interface ScrollbarOptions {
FILE: src/types/modules/thumbs.d.ts
type ThumbsMethods (line 3) | interface ThumbsMethods {
type ThumbsEvents (line 20) | interface ThumbsEvents {}
type ThumbsOptions (line 22) | interface ThumbsOptions {
FILE: src/types/modules/virtual.d.ts
type VirtualMethods (line 1) | interface VirtualMethods<T = any> {
type VirtualEvents (line 60) | interface VirtualEvents {}
type VirtualData (line 62) | interface VirtualData<T> {
type VirtualOptions (line 81) | interface VirtualOptions<T = any> {
FILE: src/types/modules/zoom.d.ts
type ZoomMethods (line 3) | interface ZoomMethods {
type ZoomEvents (line 40) | interface ZoomEvents {
type ZoomOptions (line 47) | interface ZoomOptions {
FILE: src/types/shared.d.ts
type CSSSelector (line 3) | interface CSSSelector extends String {}
type SwiperModule (line 5) | type SwiperModule = (options: {
FILE: src/types/swiper-class.d.ts
type SwiperClass (line 28) | interface SwiperClass<Events> {
type Swiper (line 41) | interface Swiper extends SwiperClass<SwiperEvents> {
type Swiper (line 491) | interface Swiper extends ManipulationMethods {}
class Swiper (line 493) | class Swiper implements Swiper {
FILE: src/types/swiper-events.d.ts
type SwiperEvents (line 26) | interface SwiperEvents {
type SwiperEvents (line 339) | interface SwiperEvents extends A11yEvents {}
type SwiperEvents (line 340) | interface SwiperEvents extends AutoplayEvents {}
type SwiperEvents (line 341) | interface SwiperEvents extends ControllerEvents {}
type SwiperEvents (line 342) | interface SwiperEvents extends CoverflowEffectEvents {}
type SwiperEvents (line 343) | interface SwiperEvents extends CubeEffectEvents {}
type SwiperEvents (line 344) | interface SwiperEvents extends FadeEffectEvents {}
type SwiperEvents (line 345) | interface SwiperEvents extends FlipEffectEvents {}
type SwiperEvents (line 346) | interface SwiperEvents extends CreativeEffectEvents {}
type SwiperEvents (line 347) | interface SwiperEvents extends CardsEffectEvents {}
type SwiperEvents (line 348) | interface SwiperEvents extends HashNavigationEvents {}
type SwiperEvents (line 349) | interface SwiperEvents extends HistoryEvents {}
type SwiperEvents (line 350) | interface SwiperEvents extends KeyboardEvents {}
type SwiperEvents (line 351) | interface SwiperEvents extends MousewheelEvents {}
type SwiperEvents (line 352) | interface SwiperEvents extends NavigationEvents {}
type SwiperEvents (line 353) | interface SwiperEvents extends PaginationEvents {}
type SwiperEvents (line 354) | interface SwiperEvents extends ParallaxEvents {}
type SwiperEvents (line 355) | interface SwiperEvents extends ScrollbarEvents {}
type SwiperEvents (line 356) | interface SwiperEvents extends ThumbsEvents {}
type SwiperEvents (line 357) | interface SwiperEvents extends VirtualEvents {}
type SwiperEvents (line 358) | interface SwiperEvents extends ZoomEvents {}
type SwiperEvents (line 359) | interface SwiperEvents extends FreeModeEvents {}
FILE: src/types/swiper-options.d.ts
type SwiperOptions (line 27) | interface SwiperOptions {
FILE: src/vue/get-children.mjs
function getChildren (line 1) | function getChildren(originalSlots = {}, slidesRef, oldSlidesRef) {
FILE: src/vue/swiper-slide.mjs
method setup (line 29) | setup(props, { slots }) {
FILE: src/vue/swiper.mjs
method setup (line 233) | setup(props, { slots: originalSlots, emit }) {
FILE: src/vue/virtual.mjs
function renderVirtual (line 3) | function renderVirtual(swiperRef, slides, virtualData) {
Condensed preview — 309 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,270K chars).
[
{
"path": ".all-contributorsrc",
"chars": 42420,
"preview": "{\n \"projectName\": \"swiper\",\n \"projectOwner\": \"nolimits4web\",\n \"repoType\": \"github\",\n \"repoHost\": \"https://github.com"
},
{
"path": ".browserslistrc",
"chars": 408,
"preview": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n\n# For addi"
},
{
"path": ".editorconfig",
"chars": 147,
"preview": "root = true\n\n[*]\nindent_style = space\nindent_size = 2\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ni"
},
{
"path": ".eslintignore",
"chars": 81,
"preview": "build\nplayground/index.html\nnode_modules\ndist\nsrc/swiper.js\nsrc/swiper-bundle.js\n"
},
{
"path": ".eslintrc.cjs",
"chars": 1700,
"preview": "const rules = {\n 'no-nested-ternary': 'off',\n 'no-lonely-if': 'off',\n 'no-param-reassign': 'off',\n 'no-underscore-da"
},
{
"path": ".gitattributes",
"chars": 10,
"preview": "* text=LF\n"
},
{
"path": ".github/CONTRIBUTING.md",
"chars": 1792,
"preview": "# How to contribute\n\nSwiper loves to welcome your contributions. There are several ways to help out:\n\n- Create an [issue"
},
{
"path": ".github/FUNDING.yml",
"chars": 63,
"preview": "patreon: swiperjs\nopen_collective: swiper\ngithub: nolimits4web\n"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 299,
"preview": "contact_links:\n - name: 🙏 Open Collective\n url: https://opencollective.com/swiper/\n about: Love Swiper? Please co"
},
{
"path": ".github/ISSUE_TEMPLATE/feature-request.yml",
"chars": 1952,
"preview": "name: \"\\U0001F680 New feature proposal\"\ndescription: Propose a new feature to be added to Swiper\nlabels: ['feature reque"
},
{
"path": ".github/ISSUE_TEMPLATE/swiper_core_issue.yml",
"chars": 3166,
"preview": "name: '🐞 Swiper Core Issue'\ndescription: Report an issue with Swiper\nlabels: []\nbody:\n - type: markdown\n attributes:"
},
{
"path": ".github/ISSUE_TEMPLATE/swiper_element_issue.yml",
"chars": 3186,
"preview": "name: '🐞 Swiper Element Issue'\ndescription: Report an issue with Swiper Element\nlabels: ['Element']\nbody:\n - type: mark"
},
{
"path": ".github/ISSUE_TEMPLATE/swiper_react_issue.yml",
"chars": 3188,
"preview": "name: '🐞 Swiper React Issue'\ndescription: Create a report for Swiper React components\nlabels: 'React'\nbody:\n - type: ma"
},
{
"path": ".github/ISSUE_TEMPLATE/vue_issue.yml",
"chars": 3180,
"preview": "name: 🐞 Swiper Vue Issue\ndescription: Create a report for Swiper Vue components\nlabels: 'Vue'\nbody:\n - type: markdown\n "
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 461,
"preview": "Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. "
},
{
"path": ".github/dependabot.yml",
"chars": 213,
"preview": " - package-ecosystem: npm\n directory: \"/\"\n schedule:\n interval: monthly\n versioning-strategy: increase\n\n "
},
{
"path": ".github/lock.yml",
"chars": 108,
"preview": "daysUntilLock: 240\nexemptLabels:\n - feature request\n - in progress\nlockLabel: outdated\nlockComment: false\n"
},
{
"path": ".github/stale.yml",
"chars": 475,
"preview": "daysUntilStale: 180\ndaysUntilClose: 60\nexemptLabels:\n - feature request\n - probably bug\n - bug confirmed\n - in progr"
},
{
"path": ".github/workflows/build.yml",
"chars": 487,
"preview": "name: Build\non:\n push:\n branches: [master, Swiper6, Swiper7, Swiper8]\n pull_request:\n branches: [master, Swiper6"
},
{
"path": ".github/workflows/formatting.yml",
"chars": 503,
"preview": "name: Formatting\non:\n push:\n branches: [master, Swiper6, Swiper7, Swiper8]\n pull_request:\n branches: [master, Sw"
},
{
"path": ".github/workflows/issue-close-require.yml",
"chars": 355,
"preview": "name: Issue Close Require\n\non:\n schedule:\n - cron: '0 0 * * *'\n\njobs:\n close-issues:\n runs-on: ubuntu-latest\n "
},
{
"path": ".github/workflows/issue-labeled.yml",
"chars": 765,
"preview": "name: Issue Labeled\n\non:\n issues:\n types: [labeled]\n\njobs:\n reply-labeled:\n runs-on: ubuntu-latest\n steps:\n "
},
{
"path": ".github/workflows/lint.yml",
"chars": 481,
"preview": "name: Lint\non:\n push:\n branches: [master, Swiper6, Swiper7, Swiper8]\n pull_request:\n branches: [master, Swiper6,"
},
{
"path": ".gitignore",
"chars": 252,
"preview": ".DS_Store\nnode_modules\ncustom\n*.log\n\n.versions\n.idea\ndist\n\n\n# local env files\n.env.local\n.env.development.local\n.env.tes"
},
{
"path": ".lintstagedrc",
"chars": 101,
"preview": "{\n \"*.+(js)\": [\n \"eslint\"\n ],\n \"*.+(js|json|scss|css|less|ts)\": [\n \"prettier --write\"\n ]\n}\n"
},
{
"path": ".npmignore",
"chars": 57,
"preview": ".git\n.github\nbuild\ndemos\nnode_modules\nplayground\nscripts\n"
},
{
"path": ".prettierignore",
"chars": 92,
"preview": "build\nnode_modules\ndist\n.nova\npackage.json\n.claude\n.agents\n.cursor\n.gemini\n.codex\n.opencode\n"
},
{
"path": ".prettierrc",
"chars": 410,
"preview": "{\n \"arrowParens\": \"always\",\n \"bracketSpacing\": true,\n \"htmlWhitespaceSensitivity\": \"css\",\n \"insertPragma\": false,\n "
},
{
"path": ".vscode/settings.json",
"chars": 114,
"preview": "{\n \"editor.formatOnSave\": true,\n \"eslint.enable\": true,\n \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n}\n"
},
{
"path": "BACKERS.md",
"chars": 59883,
"preview": "# Backers\n\nSupport Swiper development by [pledging on Open Collective](http://opencollective.com/swiper)!\n\n<!-- SPONSORS"
},
{
"path": "CHANGELOG.md",
"chars": 217321,
"preview": "# Changelog\n\n# [12.1.1](https://github.com/nolimits4web/Swiper/compare/v12.1.0...v12.1.1) (2026-02-13)\n\n### Bug Fixes\n\n-"
},
{
"path": "CODE_CONTRIBUTORS.md",
"chars": 55394,
"preview": "## Code Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 3375,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
},
{
"path": "CONTRIBUTING.md",
"chars": 1801,
"preview": "# How to contribute\n\nSwiper loves to welcome your contributions. There are several ways to help out:\n\n* Create an [issue"
},
{
"path": "LICENSE",
"chars": 1087,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2019 Vladimir Kharlampidi\n\nPermission is hereby granted, free of charge, to any per"
},
{
"path": "README.md",
"chars": 51688,
"preview": "<p align=\"center\">\n <img src=\"https://swiperjs.com/images/share-banner.jpg\"/>\n</p>\n\n<p align=\"center\">\n <a href=\"https"
},
{
"path": "TODO.md",
"chars": 0,
"preview": ""
},
{
"path": "babel.config.json",
"chars": 101,
"preview": "{\n \"presets\": [\"@babel/preset-react\", [\"@babel/preset-env\", { \"modules\": false, \"loose\": true }]]\n}\n"
},
{
"path": "demos/010-default.html",
"chars": 1747,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n</head>\n\n<body>\n <!-- Sw"
},
{
"path": "demos/020-navigation.html",
"chars": 2078,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/030-pagination.html",
"chars": 1994,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/040-pagination-dynamic.html",
"chars": 2024,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/050-pagination-progress.html",
"chars": 2135,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n</head>\n\n<body>\n <!-- Sw"
},
{
"path": "demos/060-pagination-fraction.html",
"chars": 2132,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n</head>\n\n<body>\n <!-- Sw"
},
{
"path": "demos/070-pagination-custom.html",
"chars": 2480,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/080-scrollbar.html",
"chars": 2010,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/090-vertical.html",
"chars": 2048,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/100-space-between.html",
"chars": 2043,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/110-slides-per-view.html",
"chars": 2067,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/120-slides-per-view-auto.html",
"chars": 2208,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/125-snap-to-slide-edge.html",
"chars": 3243,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo - Snap To Slide Edge</title>\n <m"
},
{
"path": "demos/130-centered.html",
"chars": 2093,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/140-centered-auto.html",
"chars": 2236,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/145-css-mode.html",
"chars": 2277,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/150-freemode.html",
"chars": 2089,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/160-scroll-container.html",
"chars": 8145,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/170-slides-per-column.html",
"chars": 2196,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/180-nested.html",
"chars": 2557,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/190-grab-cursor.html",
"chars": 2119,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/200-infinite-loop.html",
"chars": 2353,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/210-infinite-loop-with-slides-per-group.html",
"chars": 2363,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/211-slides-per-group-skip.html",
"chars": 3364,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/220-effect-fade.html",
"chars": 1928,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/230-effect-cube.html",
"chars": 1868,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/240-effect-coverflow.html",
"chars": 2284,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/250-effect-flip.html",
"chars": 1958,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/255-effect-cards.html",
"chars": 2532,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/257-effect-creative.html",
"chars": 6949,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/260-keyboard-control.html",
"chars": 2385,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/270-mousewheel-control.html",
"chars": 2268,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\" />\n <title>Swiper demo</title>\n <meta name=\"viewport\""
},
{
"path": "demos/280-autoplay.html",
"chars": 2374,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/290-dynamic-slides.html",
"chars": 3667,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/300-thumbs-gallery.html",
"chars": 3819,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/310-thumbs-gallery-loop.html",
"chars": 3955,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/320-multiple-swipers.html",
"chars": 3656,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/330-hash-navigation.html",
"chars": 2510,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/340-history.html",
"chars": 2380,
"preview": "<!doctype html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"UTF-8\">\n <title>Swiper Playground</title>\n <meta name=\"viewp"
},
{
"path": "demos/350-rtl.html",
"chars": 2250,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/360-parallax.html",
"chars": 4475,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/370-lazy-load-images.html",
"chars": 3008,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/380-responsive-breakpoints.html",
"chars": 2365,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/381-ratio-breakpoints.html",
"chars": 2462,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/390-autoheight.html",
"chars": 2010,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/400-zoom.html",
"chars": 1790,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/410-virtual-slides.html",
"chars": 3549,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/420-custom-plugin.html",
"chars": 4259,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/430-slideable-menu.html",
"chars": 4840,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/440-change-direction.html",
"chars": 2618,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n <meta name=\"viewport\" c"
},
{
"path": "demos/450-watchSlidesVisibility.html",
"chars": 1722,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demo</title>\n</head>\n\n<body>\n <!-- Sw"
},
{
"path": "demos/index.html",
"chars": 3833,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <title>Swiper demos</title>\n <meta name=\"viewport\" "
},
{
"path": "demos/vite.config.js",
"chars": 173,
"preview": "import path from 'path';\n\nexport default {\n server: {\n host: '0.0.0.0',\n },\n resolve: {\n alias: {\n swiper:"
},
{
"path": "package.json",
"chars": 3496,
"preview": "{\n \"name\": \"swiper-src\",\n \"version\": \"12.1.2\",\n \"description\": \"Most modern mobile touch slider and framework with ha"
},
{
"path": "playground/core/index.html",
"chars": 1850,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"UTF-8\" />\n <title>Swiper Playground</title>\n <meta name=\"vie"
},
{
"path": "playground/core/vite.config.js",
"chars": 176,
"preview": "import path from 'path';\n\nexport default {\n server: {\n host: '0.0.0.0',\n },\n resolve: {\n alias: {\n swiper:"
},
{
"path": "playground/element/index.html",
"chars": 970,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"UTF-8\" />\n <title>Swiper Playground</title>\n <meta name=\"vie"
},
{
"path": "playground/element/vite.config.js",
"chars": 434,
"preview": "import path from 'path';\n\nexport default {\n server: {\n host: '0.0.0.0',\n },\n resolve: {\n alias: {\n 'swiper"
},
{
"path": "playground/react/App.jsx",
"chars": 974,
"preview": "/* eslint-disable no-restricted-globals */\nimport React from 'react';\n// eslint-disable-next-line\nimport { A11y, Navigat"
},
{
"path": "playground/react/index.html",
"chars": 614,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, i"
},
{
"path": "playground/react/main.js",
"chars": 291,
"preview": "import React from 'react';\nimport { createRoot } from 'react-dom/client';\n// eslint-disable-next-line\nimport 'swiper/swi"
},
{
"path": "playground/react/vite.config.js",
"chars": 138,
"preview": "import path from 'path';\n\nexport default {\n resolve: {\n alias: {\n swiper: path.resolve(__dirname, '../../dist/'"
},
{
"path": "playground/vue/App.vue",
"chars": 1241,
"preview": "<template>\n <main>\n <swiper\n @swiper=\"onSwiper\"\n :slidesPerView=\"3\"\n :spaceBetween=\"50\"\n navigat"
},
{
"path": "playground/vue/index.html",
"chars": 612,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, i"
},
{
"path": "playground/vue/innerComp.vue",
"chars": 442,
"preview": "<template>\n test - {{ swiperSlide.isActive }} - {{ swiperSlide.isNext }}\n <button @click=\"swiper.slideNext()\">Next</bu"
},
{
"path": "playground/vue/main.js",
"chars": 174,
"preview": "// eslint-disable-next-line\nimport 'swiper/swiper-bundle.css';\nimport { createApp } from 'vue';\nimport App from './App.v"
},
{
"path": "playground/vue/vite.config.js",
"chars": 196,
"preview": "import path from 'path';\nimport vue from '@vitejs/plugin-vue';\n\nexport default {\n plugins: [vue()],\n resolve: {\n al"
},
{
"path": "scripts/build-config.js",
"chars": 554,
"preview": "import { parseSwiperBuildModulesEnv } from './utils/helper.js';\n\nconst envBuildModules = parseSwiperBuildModulesEnv();\n\n"
},
{
"path": "scripts/build-modules.js",
"chars": 8359,
"preview": "/* eslint-disable no-shadow */\nimport fs from 'fs';\nimport { rollup } from 'rollup';\nimport { nodeResolve } from '@rollu"
},
{
"path": "scripts/build-sponsors.js",
"chars": 4116,
"preview": "import fs from 'fs';\nimport path from 'path';\nimport https from 'https';\nimport * as url from 'url';\n\nconst __dirname = "
},
{
"path": "scripts/build-styles.js",
"chars": 4037,
"preview": "import fs from 'fs-extra';\nimport path from 'path';\nimport { globby } from 'globby';\nimport * as url from 'url';\nimport "
},
{
"path": "scripts/build-types.js",
"chars": 4621,
"preview": "import path from 'path';\nimport { globby } from 'globby';\nimport elapsed from 'elapsed-time-logger';\nimport chalk from '"
},
{
"path": "scripts/build.js",
"chars": 1179,
"preview": "import chalk from 'chalk';\nimport fs from 'fs-extra';\nimport elapsed from 'elapsed-time-logger';\nimport buildTypes from "
},
{
"path": "scripts/release.js",
"chars": 2821,
"preview": "import exec from 'exec-sh';\nimport inquirer from 'inquirer';\nimport fs from 'fs';\nimport path from 'path';\nimport { rimr"
},
{
"path": "scripts/utils/autoprefixer.js",
"chars": 496,
"preview": "import postcss from 'postcss';\nimport autoprefixer from 'autoprefixer';\n\nexport default async (content, { from = undefin"
},
{
"path": "scripts/utils/banner.js",
"chars": 916,
"preview": "import fs from 'fs-extra';\n\nconst pkg = JSON.parse(fs.readFileSync(new URL('../../package.json', import.meta.url)));\ncon"
},
{
"path": "scripts/utils/get-element-styles.js",
"chars": 5439,
"preview": "import fs from 'fs';\nimport path from 'path';\nimport * as url from 'url';\nimport autoprefixer from './autoprefixer.js';\n"
},
{
"path": "scripts/utils/helper.js",
"chars": 578,
"preview": "export function capitalizeString(str) {\n return str.replace(/(?:^|-)([a-z])/g, (m, char) => char.toUpperCase());\n}\n\n/**"
},
{
"path": "scripts/utils/isProd.js",
"chars": 147,
"preview": "function isProd() {\n const argv = process.argv.slice(2).map((v) => v.toLowerCase());\n return argv.includes('--prod');\n"
},
{
"path": "scripts/utils/less.js",
"chars": 472,
"preview": "import less from 'less';\nimport path from 'path';\nimport * as url from 'url';\n\nconst __dirname = url.fileURLToPath(new U"
},
{
"path": "scripts/utils/minify-css.js",
"chars": 621,
"preview": "import postcss from 'postcss';\nimport cssnano from 'cssnano';\n\nexport default (content) => {\n return new Promise((resol"
},
{
"path": "scripts/utils/minify.js",
"chars": 874,
"preview": "import { minify } from 'terser';\nimport fs from 'fs';\nimport { banner } from './banner.js';\n\nexport default async (fileN"
},
{
"path": "scripts/utils/output-dir.js",
"chars": 33,
"preview": "export const outputDir = 'dist';\n"
},
{
"path": "scripts/utils/unwrap-css.js",
"chars": 625,
"preview": "import postcss from 'postcss';\nimport nested from 'postcss-nested';\n\nexport default (content) => {\n return new Promise("
},
{
"path": "scripts/watch.js",
"chars": 1126,
"preview": "import fs from 'fs';\nimport path from 'path';\nimport chalk from 'chalk';\nimport * as url from 'url';\nimport buildTypes f"
},
{
"path": "src/components-shared/get-changed-params.mjs",
"chars": 1499,
"preview": "import { paramsList } from './params-list.mjs';\nimport { isObject } from './utils.mjs';\n\nfunction getChangedParams(swipe"
},
{
"path": "src/components-shared/get-element-params.mjs",
"chars": 3731,
"preview": "import { attrToProp, extend, isObject } from './utils.mjs';\nimport { paramsList } from './params-list.mjs';\nimport defau"
},
{
"path": "src/components-shared/get-params.mjs",
"chars": 1461,
"preview": "import { isObject, extend } from './utils.mjs';\nimport { paramsList } from './params-list.mjs';\nimport defaults from '.."
},
{
"path": "src/components-shared/mount-swiper.mjs",
"chars": 806,
"preview": "import { needsNavigation, needsPagination, needsScrollbar } from './utils.mjs';\n\nfunction mountSwiper({ el, nextEl, prev"
},
{
"path": "src/components-shared/params-list.mjs",
"chars": 2409,
"preview": "/* underscore in name -> watch for changes */\nconst paramsList = [\n 'eventsPrefix',\n 'injectStyles',\n 'injectStylesUr"
},
{
"path": "src/components-shared/update-on-virtual-data.mjs",
"chars": 449,
"preview": "export const updateOnVirtualData = (swiper) => {\n if (\n !swiper ||\n swiper.destroyed ||\n !swiper.params.virtua"
},
{
"path": "src/components-shared/update-swiper.mjs",
"chars": 6858,
"preview": "import { setInnerHTML } from '../shared/utils.mjs';\nimport { isObject } from './utils.mjs';\n\nfunction updateSwiper({\n s"
},
{
"path": "src/components-shared/utils.mjs",
"chars": 1849,
"preview": "function isObject(o) {\n return (\n typeof o === 'object' &&\n o !== null &&\n o.constructor &&\n Object.prototy"
},
{
"path": "src/copy/LICENSE",
"chars": 1087,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2019 Vladimir Kharlampidi\n\nPermission is hereby granted, free of charge, to any per"
},
{
"path": "src/copy/README.md",
"chars": 570,
"preview": "Swiper\n==========\n\nSwiper - is the free and most modern mobile touch slider with hardware accelerated transitions and am"
},
{
"path": "src/copy/package.json",
"chars": 5402,
"preview": "{\n \"name\": \"swiper\",\n \"version\": \"12.1.2\",\n \"description\": \"Most modern mobile touch slider and framework with hardwa"
},
{
"path": "src/core/breakpoints/getBreakpoint.mjs",
"chars": 1064,
"preview": "import { getWindow } from 'ssr-window';\n\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl"
},
{
"path": "src/core/breakpoints/index.mjs",
"chars": 148,
"preview": "import setBreakpoint from './setBreakpoint.mjs';\nimport getBreakpoint from './getBreakpoint.mjs';\n\nexport default { setB"
},
{
"path": "src/core/breakpoints/setBreakpoint.mjs",
"chars": 3959,
"preview": "import { getDocument } from 'ssr-window';\nimport { extend } from '../../shared/utils.mjs';\n\nconst isGridEnabled = (swipe"
},
{
"path": "src/core/check-overflow/index.mjs",
"chars": 893,
"preview": "function checkOverflow() {\n const swiper = this;\n const { isLocked: wasLocked, params } = swiper;\n const { slidesOffs"
},
{
"path": "src/core/classes/addClasses.mjs",
"chars": 1262,
"preview": "function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach((item) => {\n if (typeof item"
},
{
"path": "src/core/classes/index.mjs",
"chars": 139,
"preview": "import addClasses from './addClasses.mjs';\nimport removeClasses from './removeClasses.mjs';\n\nexport default { addClasses"
},
{
"path": "src/core/classes/removeClasses.mjs",
"chars": 221,
"preview": "export default function removeClasses() {\n const swiper = this;\n const { el, classNames } = swiper;\n if (!el || typeo"
},
{
"path": "src/core/core.mjs",
"chars": 20277,
"preview": "/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport {\n extend,\n deleteProps,\n crea"
},
{
"path": "src/core/defaults.mjs",
"chars": 3094,
"preview": "export default {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONT"
},
{
"path": "src/core/events/index.mjs",
"chars": 2899,
"preview": "import { getDocument } from 'ssr-window';\n\nimport onTouchStart from './onTouchStart.mjs';\nimport onTouchMove from './onT"
},
{
"path": "src/core/events/onClick.mjs",
"chars": 321,
"preview": "export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n "
},
{
"path": "src/core/events/onDocumentTouchStart.mjs",
"chars": 262,
"preview": "export default function onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) retu"
},
{
"path": "src/core/events/onLoad.mjs",
"chars": 335,
"preview": "import { processLazyPreloader } from '../../shared/process-lazy-preloader.mjs';\n\nexport default function onLoad(e) {\n c"
},
{
"path": "src/core/events/onResize.mjs",
"chars": 1640,
"preview": "export default function onResize() {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidt"
},
{
"path": "src/core/events/onScroll.mjs",
"chars": 889,
"preview": "export default function onScroll() {\n const swiper = this;\n const { wrapperEl, rtlTranslate, enabled } = swiper;\n if "
},
{
"path": "src/core/events/onTouchEnd.mjs",
"chars": 5803,
"preview": "import { now, nextTick } from '../../shared/utils.mjs';\n\nexport default function onTouchEnd(event) {\n const swiper = th"
},
{
"path": "src/core/events/onTouchMove.mjs",
"chars": 10591,
"preview": "import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.mjs';\n\nexport default function onTouch"
},
{
"path": "src/core/events/onTouchStart.mjs",
"chars": 4917,
"preview": "import { getWindow, getDocument } from 'ssr-window';\nimport { now, elementIsChildOf } from '../../shared/utils.mjs';\n\n//"
},
{
"path": "src/core/events-emitter.mjs",
"chars": 3333,
"preview": "/* eslint-disable no-underscore-dangle */\n\nexport default {\n on(events, handler, priority) {\n const self = this;\n "
},
{
"path": "src/core/grab-cursor/index.mjs",
"chars": 159,
"preview": "import setGrabCursor from './setGrabCursor.mjs';\nimport unsetGrabCursor from './unsetGrabCursor.mjs';\n\nexport default {\n"
},
{
"path": "src/core/grab-cursor/setGrabCursor.mjs",
"chars": 568,
"preview": "export default function setGrabCursor(moving) {\n const swiper = this;\n if (\n !swiper.params.simulateTouch ||\n (s"
},
{
"path": "src/core/grab-cursor/unsetGrabCursor.mjs",
"chars": 449,
"preview": "export default function unsetGrabCursor() {\n const swiper = this;\n if ((swiper.params.watchOverflow && swiper.isLocked"
},
{
"path": "src/core/loop/index.mjs",
"chars": 186,
"preview": "import loopCreate from './loopCreate.mjs';\nimport loopFix from './loopFix.mjs';\nimport loopDestroy from './loopDestroy.m"
},
{
"path": "src/core/loop/loopCreate.mjs",
"chars": 2790,
"preview": "import { createElement, elementChildren, showWarning } from '../../shared/utils.mjs';\n\nexport default function loopCreat"
},
{
"path": "src/core/loop/loopDestroy.mjs",
"chars": 746,
"preview": "export default function loopDestroy() {\n const swiper = this;\n const { params, slidesEl } = swiper;\n if (!params.loop"
},
{
"path": "src/core/loop/loopFix.mjs",
"chars": 9492,
"preview": "import { showWarning } from '../../shared/utils.mjs';\n\nexport default function loopFix({\n slideRealIndex,\n slideTo = t"
},
{
"path": "src/core/moduleExtendParams.mjs",
"chars": 1385,
"preview": "import { extend } from '../shared/utils.mjs';\n\nexport default function moduleExtendParams(params, allModulesParams) {\n "
},
{
"path": "src/core/modules/observer/observer.mjs",
"chars": 2172,
"preview": "import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.mjs';\n\nexport default func"
},
{
"path": "src/core/modules/resize/resize.mjs",
"chars": 2064,
"preview": "import { getWindow } from 'ssr-window';\n\nexport default function Resize({ swiper, on, emit }) {\n const window = getWind"
},
{
"path": "src/core/slide/index.mjs",
"chars": 447,
"preview": "import slideTo from './slideTo.mjs';\nimport slideToLoop from './slideToLoop.mjs';\nimport slideNext from './slideNext.mjs"
},
{
"path": "src/core/slide/slideNext.mjs",
"chars": 1331,
"preview": "/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks = true, internal) {\n const swi"
},
{
"path": "src/core/slide/slidePrev.mjs",
"chars": 2539,
"preview": "/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks = true, internal) {\n const swi"
},
{
"path": "src/core/slide/slideReset.mjs",
"chars": 318,
"preview": "/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks = true, internal) {\n const sw"
},
{
"path": "src/core/slide/slideTo.mjs",
"chars": 5682,
"preview": "import { getBrowser } from '../../shared/get-browser.mjs';\nimport { animateCSSModeScroll } from '../../shared/utils.mjs'"
},
{
"path": "src/core/slide/slideToClickedSlide.mjs",
"chars": 1346,
"preview": "import { elementChildren, nextTick } from '../../shared/utils.mjs';\n\nexport default function slideToClickedSlide() {\n c"
},
{
"path": "src/core/slide/slideToClosest.mjs",
"chars": 1482,
"preview": "/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks = true, internal, threshol"
},
{
"path": "src/core/slide/slideToLoop.mjs",
"chars": 3006,
"preview": "export default function slideToLoop(index = 0, speed, runCallbacks = true, internal) {\n if (typeof index === 'string') "
},
{
"path": "src/core/transition/index.mjs",
"chars": 225,
"preview": "import setTransition from './setTransition.mjs';\nimport transitionStart from './transitionStart.mjs';\nimport transitionE"
},
{
"path": "src/core/transition/setTransition.mjs",
"chars": 322,
"preview": "export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n"
},
{
"path": "src/core/transition/transitionEmit.mjs",
"chars": 692,
"preview": "export default function transitionEmit({ swiper, runCallbacks, direction, step }) {\n const { activeIndex, previousIndex"
},
{
"path": "src/core/transition/transitionEnd.mjs",
"chars": 332,
"preview": "import transitionEmit from './transitionEmit.mjs';\n\nexport default function transitionEnd(runCallbacks = true, direction"
},
{
"path": "src/core/transition/transitionStart.mjs",
"chars": 343,
"preview": "import transitionEmit from './transitionEmit.mjs';\n\nexport default function transitionStart(runCallbacks = true, directi"
},
{
"path": "src/core/translate/getTranslate.mjs",
"chars": 559,
"preview": "import { getTranslate } from '../../shared/utils.mjs';\n\nexport default function getSwiperTranslate(axis = this.isHorizon"
},
{
"path": "src/core/translate/index.mjs",
"chars": 333,
"preview": "import getTranslate from './getTranslate.mjs';\nimport setTranslate from './setTranslate.mjs';\nimport minTranslate from '"
},
{
"path": "src/core/translate/maxTranslate.mjs",
"chars": 94,
"preview": "export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n"
},
{
"path": "src/core/translate/minTranslate.mjs",
"chars": 71,
"preview": "export default function minTranslate() {\n return -this.snapGrid[0];\n}\n"
},
{
"path": "src/core/translate/setTranslate.mjs",
"chars": 1274,
"preview": "export default function setTranslate(translate, byController) {\n const swiper = this;\n const { rtlTranslate: rtl, para"
},
{
"path": "src/core/translate/translateTo.mjs",
"chars": 2460,
"preview": "import { animateCSSModeScroll } from '../../shared/utils.mjs';\n\nexport default function translateTo(\n translate = 0,\n "
},
{
"path": "src/core/update/index.mjs",
"chars": 696,
"preview": "import updateSize from './updateSize.mjs';\nimport updateSlides from './updateSlides.mjs';\nimport updateAutoHeight from '"
},
{
"path": "src/core/update/updateActiveIndex.mjs",
"chars": 4015,
"preview": "import { preload } from '../../shared/process-lazy-preloader.mjs';\n\nexport function getActiveIndexByTranslate(swiper) {\n"
},
{
"path": "src/core/update/updateAutoHeight.mjs",
"chars": 1485,
"preview": "export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = "
},
{
"path": "src/core/update/updateClickedSlide.mjs",
"chars": 1261,
"preview": "export default function updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slid"
},
{
"path": "src/core/update/updateProgress.mjs",
"chars": 2220,
"preview": "export default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n "
},
{
"path": "src/core/update/updateSize.mjs",
"chars": 1089,
"preview": "import { elementStyle } from '../../shared/utils.mjs';\n\nexport default function updateSize() {\n const swiper = this;\n "
},
{
"path": "src/core/update/updateSlides.mjs",
"chars": 13644,
"preview": "import {\n elementChildren,\n elementOuterSize,\n elementStyle,\n setCSSProperty,\n} from '../../shared/utils.mjs';\n\nexpo"
},
{
"path": "src/core/update/updateSlidesClasses.mjs",
"chars": 2439,
"preview": "import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.mjs';\n\nconst toggleSlideClasses = (s"
},
{
"path": "src/core/update/updateSlidesOffset.mjs",
"chars": 501,
"preview": "export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disabl"
},
{
"path": "src/core/update/updateSlidesProgress.mjs",
"chars": 2476,
"preview": "const toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className"
},
{
"path": "src/modules/a11y/a11y.css",
"chars": 143,
"preview": "/* a11y */\n.swiper .swiper-notification {\n position: absolute;\n left: 0;\n top: 0;\n pointer-events: none;\n opacity: "
},
{
"path": "src/modules/a11y/a11y.mjs",
"chars": 12855,
"preview": "import { getDocument } from 'ssr-window';\nimport classesToSelector from '../../shared/classes-to-selector.mjs';\nimport {"
},
{
"path": "src/modules/autoplay/autoplay.css",
"chars": 0,
"preview": ""
},
{
"path": "src/modules/autoplay/autoplay.mjs",
"chars": 9273,
"preview": "/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-windo"
},
{
"path": "src/modules/controller/controller.css",
"chars": 0,
"preview": ""
},
{
"path": "src/modules/controller/controller.mjs",
"chars": 6876,
"preview": "/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { elementTransitionEnd, nextTick } from '../../shared/uti"
},
{
"path": "src/modules/effect-cards/effect-cards.css",
"chars": 178,
"preview": ".swiper.swiper-cards {\n overflow: visible;\n}\n.swiper-cards {\n .swiper-slide {\n transform-origin: center bottom;\n "
},
{
"path": "src/modules/effect-cards/effect-cards.mjs",
"chars": 4730,
"preview": "import createShadow from '../../shared/create-shadow.mjs';\nimport effectInit from '../../shared/effect-init.mjs';\nimport"
}
]
// ... and 109 more files (download for full content)
About this extraction
This page contains the full source code of the nolimits4web/swiper GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 309 files (1.1 MB), approximately 340.3k tokens, and a symbol index with 320 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.