diff --git a/package-lock.json b/package-lock.json
index 819058b..a386666 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,6 +13,7 @@
"gsap": "^3.14.2",
"navaid": "^1.2.0",
"svelte": "^5.0.0",
+ "swiper": "^12.1.3",
"vite": "7.0.4"
},
"devDependencies": {
@@ -1278,6 +1279,25 @@
"node": ">=18"
}
},
+ "node_modules/swiper": {
+ "version": "12.1.3",
+ "resolved": "https://registry.npmjs.org/swiper/-/swiper-12.1.3.tgz",
+ "integrity": "sha512-XcWlVmkHFICI4fuoJKgbp8PscDcS4i7pBH8nwJRBi3dpQvhCySwsWRYm4bOf/BzKVWkHOYaFw7qz9uBSrY3oug==",
+ "funding": [
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/swiperjs"
+ },
+ {
+ "type": "open_collective",
+ "url": "http://opencollective.com/swiper"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.7.0"
+ }
+ },
"node_modules/tinyglobby": {
"version": "0.2.15",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
diff --git a/package.json b/package.json
index 892b36a..c341ade 100644
--- a/package.json
+++ b/package.json
@@ -21,6 +21,7 @@
"gsap": "^3.14.2",
"navaid": "^1.2.0",
"svelte": "^5.0.0",
+ "swiper": "^12.1.3",
"vite": "7.0.4"
},
"devDependencies": {
diff --git a/src/components/ui/TeamCarousel.svelte b/src/components/ui/TeamCarousel.svelte
new file mode 100644
index 0000000..7c97636
--- /dev/null
+++ b/src/components/ui/TeamCarousel.svelte
@@ -0,0 +1,214 @@
+
+
+
+
+
+ {#each members as member}
+
+ {/each}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/About.svelte b/src/views/About.svelte
index 11e2233..5cfabc0 100644
--- a/src/views/About.svelte
+++ b/src/views/About.svelte
@@ -1,9 +1,8 @@
navigation.setScrolled(sectionEl.scrollTop > 100)}>
@@ -103,68 +47,7 @@
{#if members.length > 0}
{t('our_team')}
-
-
-
{ touchStartX = e.touches[0].clientX }}
- ontouchend={(e) => {
- if (touchStartX === null) return
- const delta = touchStartX - e.changedTouches[0].clientX
- if (Math.abs(delta) > 50) delta > 0 ? nextSlide() : prevSlide()
- touchStartX = null
- }}
- >
- {#each members as member}
- {#if member.link}
-
- {#if member.photo}
-
- {/if}
- {member.name}
- {member.role}
-
- {:else}
-
- {#if member.photo}
-

- {/if}
-
{member.name}
-
{member.role}
-
- {/if}
- {/each}
-
-
-
-
-
-
-
-
-
-
+
{/if}
@@ -285,124 +168,6 @@
margin-bottom: 40px;
}
- .team-carousel-container {
- width: 100%;
- max-width: 1200px;
- overflow: hidden;
- padding: 10px 0;
- margin-bottom: 20px;
- user-select: none;
- }
-
- .team-grid {
- display: flex;
- flex-wrap: nowrap;
- transition: transform 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
- padding: 10px 0;
- will-change: transform;
- }
-
- .team-member {
- flex: 0 0 auto;
- display: flex;
- flex-direction: column;
- align-items: center;
- width: 250px;
- margin: 0 25px;
- transition: transform 0.3s ease;
- }
-
- a.team-member:hover {
- transform: translateY(-5px);
- }
-
- .team-member-image {
- width: 100%;
- height: auto;
- aspect-ratio: 1 / 1;
- object-fit: contain;
- margin-bottom: 10px;
- transition: transform 0.3s ease;
- }
-
- a.team-member .team-member-image:hover {
- transform: scale(1.03);
- }
-
- .team-member-name {
- font-family: "Danzza Bold", sans-serif;
- font-size: var(--font-size-paragraph-small);
- text-align: center;
- text-transform: uppercase;
- margin-bottom: 3px;
- }
-
- .team-member-title {
- font-family: "Danzza", sans-serif;
- font-size: var(--font-size-caption);
- text-align: center;
- opacity: 0.8;
- }
-
- .pagination-indicator li {
- list-style: none;
- }
-
- /* Nav */
- .nav-buttons {
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 100%;
- max-width: 400px;
- margin-top: 30px;
- }
-
- .nav-button {
- color: #04fea0;
- font-family: "Danzza", sans-serif;
- font-size: var(--font-size-paragraph-small);
- background: none;
- border: none;
- cursor: pointer;
- padding: 8px 12px;
- text-transform: uppercase;
- border-radius: 4px;
- transition: transform 0.3s ease, background-color 0.3s ease;
- }
-
- .nav-button:hover:not(:disabled) {
- transform: scale(1.05);
- background-color: rgba(4, 254, 160, 0.1);
- }
-
- .nav-button:disabled {
- opacity: 0.4;
- cursor: default;
- }
-
- .pagination-indicator {
- display: flex;
- align-items: center;
- gap: 16px;
- }
-
- .pagination-dot {
- width: 8px;
- height: 8px;
- border-radius: 50%;
- background: rgba(255, 255, 255, 0.3);
- border: none;
- cursor: pointer;
- padding: 0;
- transition: transform 0.3s ease, background-color 0.3s ease;
- }
-
- .pagination-dot.active {
- background: #04fea0;
- transform: scale(1.3);
- }
-
/* ── Mobile (≤700px) ── */
@media (max-width: 700px) {