diff --git a/index.d.ts b/index.d.ts
index 58a2fd2ce36121ec11d5d5626729c546b9b00a1a..06457ba9587599a614eb4a4ccde44f4012749fc4 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -126,6 +126,9 @@ interface ICarousel {
 }
 export function Carousel(props: ICarousel): JSX.Element
 
+interface Imarquee {}
+export function Marquee(props: Imarquee): JSX.Element
+
 interface SearchProps {}
 export function Search(props: SearchProps): JSX.Element
 
diff --git a/index.js b/index.js
index 60723024264ca7eff4ecf742a27c017e0c05ee0a..6d156c481e49219f610f972d5928b87764b2e5ff 100644
--- a/index.js
+++ b/index.js
@@ -58,3 +58,6 @@ export { default as Sections } from "./src/components/Sections"
 export { default as Maps } from "./src/components/Maps"
 // Iframe components
 export { default as Iframe } from "./src/components/core/Iframe"
+
+// Marquee components
+export { default as Marquee } from "./src/components/core/Marquee"
diff --git a/package.json b/package.json
index 170b60479429f263a9b9aced540f97290875a4ca..1dab39dba3f0bf1a8d65b0f1a675e7b3e77f341b 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,7 @@
         "react-cookie-consent": "^8.0.1",
         "react-instantsearch-dom": "^6.12.1",
         "react-leaflet": "^3.2.5",
+        "swiper": "^8.4.5",
         "typesense-instantsearch-adapter": "^1.2.2"
     },
     "devDependencies": {
diff --git a/src/components/core/Marquee.tsx b/src/components/core/Marquee.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..4547c6748f2a85b16c70545af16d230e4091d974
--- /dev/null
+++ b/src/components/core/Marquee.tsx
@@ -0,0 +1,82 @@
+import React from "react"
+import { Swiper, SwiperSlide } from "swiper/react"
+import { Navigation,  A11y } from 'swiper';
+
+
+// Import Swiper styles
+import 'swiper/css';
+import 'swiper/css/navigation';
+import 'swiper/css/pagination';
+import 'swiper/css/scrollbar';
+import { graphql, useStaticQuery } from "gatsby";
+import { Logo } from "@onegeo/gatsby-theme-onegeo";
+import '../../css/marquee.css'
+
+const Marquee = () => {
+    const dataDirectus = useStaticQuery(graphql`
+        query getLogo {
+            directus {
+                partners {
+                    logo {
+                        id
+                    }
+                }
+            }
+        }
+    `)
+    const partners = dataDirectus.directus.partners
+
+    const url = "#"
+    return (
+        <>
+            <Swiper
+                slidesPerView={1}
+                spaceBetween={1}
+                navigation
+                loop={true}
+                slidesPerGroup={1}
+                loopFillGroupWithBlank={true}
+                breakpoints={{
+                    "@0.00": {
+                        slidesPerView: 1,
+                        spaceBetween: 4,
+                    },
+                    "@0.75": {
+                        slidesPerView: 2, 
+                        spaceBetween: 6,
+                    },
+                    "@1.00": {
+                        slidesPerView: 3,
+                        spaceBetween: 8,
+                    },
+                    "@1.50": {
+                        slidesPerView: 4,
+                        spaceBetween: 10,
+                    },
+                }}
+                modules={[Navigation, A11y]}
+                className="mySwiper"
+            >
+                {
+                    partners.map((item:any, key:number) => (
+                        <SwiperSlide className="slide flex items-center justify-center" key={key}>
+                            <div className="slide-content w-20 flex justify-center">
+                                <div className="user-image">
+                                    <Logo 
+                                        image={`${process.env.DIRECTUS_URL}assets/${item.logo.id}`} 
+                                        url={url} 
+                                        className="user-photo w-16" 
+                                        title=""
+                                    />
+                                </div>
+                            </div>
+                        </SwiperSlide>
+                    ))
+                }
+
+            </Swiper>
+        </>
+    )
+}
+
+export default Marquee
diff --git a/src/css/marquee.css b/src/css/marquee.css
new file mode 100644
index 0000000000000000000000000000000000000000..7bae0d9e8c97e068962e11ddb30e51e9e56fa636
--- /dev/null
+++ b/src/css/marquee.css
@@ -0,0 +1,28 @@
+.swiper-wrapper {
+    align-items: center;
+}
+
+.swiper-button-prev {
+    background-image: url("../icons/back-arrow-3095.png") !important;
+    background-repeat: no-repeat;
+    background-position: center;
+}
+
+.swiper-button-prev::after {
+    display: none;
+}
+
+
+.swiper-button-next {
+    background-image: url("../icons/right-arrow-3094.png") !important;
+    background-repeat: no-repeat;
+    background-position: center;
+}
+
+.swiper-button-next::after {
+    display: none;
+}
+
+.mySwiper {
+    width: 80%;
+}
\ No newline at end of file
diff --git a/src/icons/back-arrow-3095.png b/src/icons/back-arrow-3095.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f0397a25a4246617648c2cbb9de2cee60b95047
Binary files /dev/null and b/src/icons/back-arrow-3095.png differ
diff --git a/src/icons/right-arrow-3094.png b/src/icons/right-arrow-3094.png
new file mode 100644
index 0000000000000000000000000000000000000000..c626f1b9ea97a4df0361d0dabcbaac81ecb98167
Binary files /dev/null and b/src/icons/right-arrow-3094.png differ
diff --git a/src/pages-doc/doc/core/index.tsx b/src/pages-doc/doc/core/index.tsx
index d400e97fb09c988df089da33261da3f6d8e8628f..3b6c23ab4984db120fe03615b8c81b630478b093 100644
--- a/src/pages-doc/doc/core/index.tsx
+++ b/src/pages-doc/doc/core/index.tsx
@@ -29,6 +29,8 @@ function index(): ReactElement {
                 <Link to="/doc/core/image">Image</Link>
                 <br></br>
                 <Link to="/doc/core/iframe">Iframe</Link>
+                <br></br>
+                <Link to="/doc/core/marquee">Marquee</Link>
             </div>
         </Content>
     )
diff --git a/src/pages-doc/doc/core/marquee.tsx b/src/pages-doc/doc/core/marquee.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..901bfcbdb62c9e460de60fcceecbc78f4f3b9f19
--- /dev/null
+++ b/src/pages-doc/doc/core/marquee.tsx
@@ -0,0 +1,39 @@
+import React from "react"
+import {  } from "gatsby"
+import { Content,Link, Marquee } from "@onegeo/gatsby-theme-onegeo"
+
+
+const marquee = () => {
+    return (
+        <Content>
+            <div className="prose">
+                <Link to="/doc/core">Retour</Link>
+
+                <h1>Marquee</h1>
+                <h2>Props</h2>
+                <div className="mockup-code">
+                    <pre>
+                        <code>
+                            {`
+ query getLogo {
+    directus {
+        partners {
+            logo {
+                id
+            }
+        }
+    }
+}
+`}
+                        </code>
+                    </pre>
+                </div>
+
+                <h2>Example</h2>
+            </div>
+            <Marquee />
+        </Content>
+    )
+}
+
+export default marquee