From da2bb114d56dd4bdda6c55d3d1a3f2cb7b198c47 Mon Sep 17 00:00:00 2001 From: shruman07 Date: Sat, 4 Jul 2026 12:35:38 +0530 Subject: [PATCH 1/2] teampage given polaroid card style --- src/pages/team/TeamPage.jsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/pages/team/TeamPage.jsx b/src/pages/team/TeamPage.jsx index 7f64f35..e8749ad 100644 --- a/src/pages/team/TeamPage.jsx +++ b/src/pages/team/TeamPage.jsx @@ -28,10 +28,10 @@ const TeamMemberImage = ({ src, alt }) => { }; return ( -
+
{/* Loading skeleton */} {isLoading && ( -
+
)} {/* Actual image */} @@ -43,7 +43,7 @@ const TeamMemberImage = ({ src, alt }) => { "https://via.placeholder.com/300x300?text=Photo+Coming+Soon" } alt={alt} - className={`w-full h-64 object-cover transition-transform duration-300 group-hover:scale-105 ${ + className={`w-full h-64 object-cover object-center rounded-none border-[8px] border-white shadow-[inset_0_0_0_1px_rgba(0,0,0,0.04)] transition-transform duration-300 group-hover:scale-105 ${ isLoading ? "opacity-0" : "opacity-100" }`} onLoad={handleImageLoad} @@ -214,7 +214,7 @@ const TeamPage = () => { > {filteredMembers.map((member, index) => ( -
+
{/* Image */}
@@ -229,7 +229,7 @@ const TeamPage = () => {
{/* Content */} -
+

{member.name || "Full Name"} @@ -274,7 +274,7 @@ const TeamPage = () => { {filteredMembers.map((member, index) => (
{
{/* Content */} -
+

{member.name || "Full Name"} From 3ae0088d4c6e728e5f175e2f7cff3b1be010daf3 Mon Sep 17 00:00:00 2001 From: shruman07 Date: Tue, 7 Jul 2026 19:32:27 +0530 Subject: [PATCH 2/2] teamsection animation updated --- src/components/Team.jsx | 89 ++++++++++++++++++++++++++++++----------- 1 file changed, 66 insertions(+), 23 deletions(-) diff --git a/src/components/Team.jsx b/src/components/Team.jsx index 175c132..d344271 100644 --- a/src/components/Team.jsx +++ b/src/components/Team.jsx @@ -1,3 +1,4 @@ +import { useRef } from "react"; import teamMembers from "../config/teammate"; import { FaLinkedin } from "react-icons/fa6"; import { useNavigate } from "react-router"; @@ -8,6 +9,7 @@ import "swiper/css/pagination"; const TeamSlider = () => { const navigate = useNavigate(); + const swiperRef = useRef(null); const uniqueTeamMembers = Array.from( new Map(teamMembers.map((member) => [member.name, member])).values(), @@ -21,8 +23,63 @@ const TeamSlider = () => { window.scrollTo(0, 0); }; + // Called every frame while Swiper scrolls — updates each slide's scale + const handleProgress = (swiper) => { + swiper.slides.forEach((slide) => { + const inner = slide.querySelector(".team-card-inner"); + if (!inner) return; + + // progress: how far this slide is from the center of the viewport (0 = centered) + const progress = slide.progress; // provided by Swiper per-slide + // clamp to -1 … 1 so far-away slides don't go tiny + const clamped = Math.max(-1, Math.min(1, progress)); + // scale: 1 when centered, 0.82 at the edges + const scale = 1 - Math.abs(clamped) * 0.18; + const opacity = 1 - Math.abs(clamped) * 0.35; + + inner.style.transform = `scale(${scale})`; + inner.style.opacity = opacity; + }); + }; + + // Run once after init so initial positions are applied before first interaction + const handleSetTranslate = (swiper) => { + handleProgress(swiper); + }; + return ( -
+
+ +
{/* Header Section */}
@@ -48,9 +105,15 @@ const TeamSlider = () => { {/* Team Carousel */} { > {displayMembers.map((member, index) => ( -
+ {/* team-card-inner is what gets scaled */} +
{/* Image */}
{ ))} - - {/* Custom Pagination Styles */} -
);