{"version":3,"file":"CardStack.7035req6.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/ss7DX8ap6Lu9RLGjZpev/23x9LMiFa7ZR1puqfciK/CardStack.js"],"sourcesContent":["// Case study stack component with CSS sticky positioning\n// Cards use native sticky to pin at top with offsets\n// Background cards scale down for depth effect\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{motion,useScroll,useTransform,useSpring}from\"framer-motion\";import{useEffect,useState,useRef}from\"react\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function CaseStudyStack(props){const{// Card 1\ntitle1=\"S&P 200 Leadership Summit\",excerpt1=\"With Martina Cheung stepping in as CEO, S&P Global needed to reposition itself as a leader in technology, data and client centricity.\",image1,link1=\"/work/sp-200\",// Card 2\ntitle2=\"Making transformation a world currency\",excerpt2=\"How we inspired personal investment in a new global strategy, purpose and values across multiple regions.\",image2,link2=\"/work/transformation\",// Card 3\ntitle3=\"Reimagining the customer experience\",excerpt3=\"A complete overhaul of the digital touchpoints that define how customers interact with the brand.\",image3,link3=\"/work/customer-experience\",// Styling\nbackgroundColor=\"#F5F5F0\",textColor=\"#000000\",buttonBackgroundColor=\"#000000\",buttonTextColor=\"#FFFFFF\",titleFont,descriptionFont,buttonFont,borderRadius=24,imageBorderRadius=16,cardOffset=40,scaleReduction=.05,topMargin=160,mobileTopMargin=180,bottomMargin=40,maxExcerptLines=4,buttonText=\"Dive deeper\"}=props;const[isMobile,setIsMobile]=useState(false);const[isTablet,setIsTablet]=useState(false);const[isLandscape,setIsLandscape]=useState(false);const[isSmallDesktop,setIsSmallDesktop]=useState(false);const containerRef=useRef(null);// Scroll tracking for scale effect\nconst{scrollYProgress}=useScroll({target:containerRef,offset:[\"start start\",\"end end\"]});// Build posts array from props\nconst posts=[{id:\"1\",title:title1,excerpt:excerpt1,image:image1?.src||\"\",link:link1},{id:\"2\",title:title2,excerpt:excerpt2,image:image2?.src||\"\",link:link2},{id:\"3\",title:title3,excerpt:excerpt3,image:image3?.src||\"\",link:link3}];const totalCards=posts.length;const activeTopMargin=isMobile?mobileTopMargin:topMargin;// Detect mobile, tablet, landscape and small desktop\nuseEffect(()=>{const checkScreenSize=()=>{const width=window.innerWidth;const height=window.innerHeight;setIsMobile(width<768);setIsTablet(width>=768&&width<1200);setIsLandscape(width>height);// Small desktop = larger than tablet but with limited viewport height\nsetIsSmallDesktop(width>=1200&&height<800);};checkScreenSize();window.addEventListener(\"resize\",checkScreenSize);return()=>window.removeEventListener(\"resize\",checkScreenSize);},[]);// Truncate text helper\nconst truncateText=(text,maxLines)=>{const charsPerLine=isMobile?40:80;const maxChars=charsPerLine*maxLines;if(text.length<=maxChars)return text;return text.slice(0,maxChars).trim()+\"...\";};// Card height - smaller than viewport to give clearance for stacking\nconst totalStackSpace=(totalCards-1)*cardOffset;// Adjust clearance based on device and orientation\nlet extraClearance=250// desktop default\n;if(isMobile&&isLandscape){extraClearance=0// landscape mobile - no stacking, fixed height cards\n;}else if(isMobile){extraClearance=80// portrait mobile\n;}else if(isTablet&&isLandscape){extraClearance=150// landscape tablet\n;}else if(isTablet){extraClearance=350// portrait tablet (iPad Pro etc)\n;}else if(isSmallDesktop){extraClearance=0// small desktop - no stacking, fixed height cards\n;}// For landscape mobile and small desktop, use fixed card height instead of viewport-based\nconst useSimpleLayout=isMobile&&isLandscape||isSmallDesktop;const simpleLayoutCardHeight=isSmallDesktop?\"400px\":\"280px\";const cardHeight=useSimpleLayout?simpleLayoutCardHeight:`calc(100vh - ${activeTopMargin+totalStackSpace+bottomMargin+extraClearance}px)`;// Container height - enough scroll for all cards to stack\nconst gapBetweenCards=60;let scrollPerCard=gapBetweenCards+500// desktop default\n;if(useSimpleLayout){scrollPerCard=0// no extra scroll needed, cards just stack vertically\n;}else if(isMobile){scrollPerCard=gapBetweenCards+400;}else if(isTablet){scrollPerCard=gapBetweenCards+600// more scroll for tablet to show full cards\n;}// For simple layout, container height is auto (fit content)\nconst containerHeight=useSimpleLayout?\"auto\":`calc(100vh + ${(totalCards-1)*scrollPerCard}px)`;return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:containerHeight,position:\"relative\"},children:/*#__PURE__*/_jsx(\"div\",{style:{maxWidth:\"1200px\",margin:\"0 auto\",padding:isMobile?\"0 16px\":\"0 24px\"},children:posts.map((post,index)=>{// Each card sticks at a slightly lower position\nconst stickyTop=activeTopMargin+index*cardOffset;// Skip stacking effect for landscape mobile and small desktop\nconst useStacking=!(isMobile&&isLandscape||isSmallDesktop);return /*#__PURE__*/_jsx(CardWithScale,{post:post,index:index,totalCards:totalCards,scrollYProgress:scrollYProgress,stickyTop:stickyTop,cardHeight:cardHeight,scaleReduction:scaleReduction,isMobile:isMobile,isTablet:isTablet,isLandscape:isLandscape,isSmallDesktop:isSmallDesktop,useStacking:useStacking,backgroundColor:backgroundColor,textColor:textColor,buttonBackgroundColor:buttonBackgroundColor,buttonTextColor:buttonTextColor,titleFont:titleFont,descriptionFont:descriptionFont,buttonFont:buttonFont,borderRadius:borderRadius,imageBorderRadius:imageBorderRadius,maxExcerptLines:maxExcerptLines,buttonText:buttonText,truncateText:truncateText},post.id);})})});}// Card component with scroll-driven scale\nfunction CardWithScale({post,index,totalCards,scrollYProgress,stickyTop,cardHeight,scaleReduction,isMobile,isTablet,isLandscape,isSmallDesktop,useStacking,backgroundColor,textColor,buttonBackgroundColor,buttonTextColor,titleFont,descriptionFont,buttonFont,borderRadius,imageBorderRadius,maxExcerptLines,buttonText,truncateText}){// Calculate scale based on how many cards are stacked on top\nconst cardProgress=1/totalCards;// Build scale keyframes - card scales down as more cards stack on top\nconst scaleInputs=[];const scaleOutputs=[];for(let i=0;i<=totalCards;i++){scaleInputs.push(i*cardProgress);const cardsOnTop=Math.max(0,i-index-1);scaleOutputs.push(1-cardsOnTop*scaleReduction);}const scale=useTransform(scrollYProgress,scaleInputs,scaleOutputs);// Optional: slight upward movement as card goes back\nconst yOffset=useTransform(scrollYProgress,scaleInputs,scaleOutputs.map((s,i)=>{const cardsOnTop=Math.max(0,i-index-1);return cardsOnTop*-8// Move up 8px per card on top\n;}));// Add spring physics to the transforms - snappy to avoid lag\nconst springConfig={stiffness:800,damping:50,mass:.2};const scaleSpring=useSpring(scale,springConfig);const ySpring=useSpring(yOffset,springConfig);// For non-stacking mode (landscape mobile or small desktop), use simple layout\nif(!useStacking){return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",height:cardHeight,marginBottom:\"24px\"},children:/*#__PURE__*/_jsx(\"a\",{href:post.link,style:{display:\"block\",textDecoration:\"none\",height:\"100%\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",backgroundColor:backgroundColor,borderRadius:`${borderRadius}px`,padding:isSmallDesktop?\"32px\":\"20px\",boxSizing:\"border-box\",display:\"flex\",flexDirection:\"row\",gap:isSmallDesktop?\"32px\":\"20px\",boxShadow:\"0 4px 24px rgba(0, 0, 0, 0.12), 0 1px 4px rgba(0, 0, 0, 0.06)\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,display:\"flex\",flexDirection:\"column\",gap:isSmallDesktop?\"16px\":\"12px\",justifyContent:\"center\",minWidth:0,overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"h2\",{style:{margin:0,color:textColor,...titleFont,fontSize:isSmallDesktop?\"36px\":\"22px\",fontWeight:400,letterSpacing:\"-0.02em\",lineHeight:\"1.1em\"},children:post.title}),/*#__PURE__*/_jsx(\"p\",{style:{margin:0,color:textColor,...descriptionFont,fontSize:isSmallDesktop?\"16px\":\"14px\",fontWeight:400,letterSpacing:\"-0.01em\",lineHeight:\"1.4em\",overflow:\"hidden\",display:\"-webkit-box\",WebkitLineClamp:isSmallDesktop?3:2,WebkitBoxOrient:\"vertical\"},children:truncateText(post.excerpt,isSmallDesktop?3:2)}),/*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:buttonBackgroundColor,color:buttonTextColor,border:\"none\",borderRadius:\"100px\",padding:isSmallDesktop?\"14px 28px\":\"8px 16px\",width:\"fit-content\",fontSize:isSmallDesktop?\"15px\":\"12px\",fontWeight:500,letterSpacing:\"-0.01em\",lineHeight:\"1em\",...buttonFont},children:buttonText})]}),/*#__PURE__*/_jsx(\"div\",{style:{flex:isSmallDesktop?1:\"0 0 40%\",borderRadius:`${imageBorderRadius}px`,overflow:\"hidden\",backgroundColor:\"#E0E0E0\"},children:post.image&&/*#__PURE__*/_jsx(\"img\",{src:post.image,alt:post.title,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}})})]})})});}return /*#__PURE__*/_jsx(motion.div,{style:{position:\"sticky\",top:stickyTop,zIndex:index+1,height:cardHeight,marginBottom:\"60px\",scale:scaleSpring,y:ySpring,transformOrigin:\"top center\"},children:/*#__PURE__*/_jsx(\"a\",{href:post.link,style:{display:\"block\",textDecoration:\"none\",height:\"100%\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",backgroundColor:backgroundColor,borderRadius:`${borderRadius}px`,padding:isMobile&&!isLandscape?\"20px\":isTablet?\"32px\":\"48px\",boxSizing:\"border-box\",display:\"flex\",// Use row layout for landscape mobile, tablet landscape, and desktop\nflexDirection:isMobile&&!isLandscape?\"column\":\"row\",gap:isMobile?\"16px\":isTablet?\"32px\":\"48px\",boxShadow:\"0 4px 24px rgba(0, 0, 0, 0.12), 0 1px 4px rgba(0, 0, 0, 0.06)\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:isMobile&&!isLandscape?\"0 0 auto\":1,display:\"flex\",flexDirection:\"column\",gap:isMobile?\"12px\":isTablet?\"16px\":\"24px\",justifyContent:\"center\",minWidth:0,overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"h2\",{style:{margin:0,color:textColor,...titleFont,fontSize:isMobile&&isLandscape?\"24px\":isMobile?\"30px\":isTablet?\"36px\":\"48px\",fontWeight:400,letterSpacing:\"-0.02em\",lineHeight:\"1.1em\"},children:post.title}),/*#__PURE__*/_jsx(\"p\",{style:{margin:0,color:textColor,...descriptionFont,fontSize:isMobile&&isLandscape?\"14px\":isMobile?\"16px\":\"18px\",fontWeight:400,letterSpacing:\"-0.01em\",lineHeight:\"1.4em\",overflow:\"hidden\",display:\"-webkit-box\",WebkitLineClamp:isMobile&&isLandscape?2:isMobile?3:maxExcerptLines,WebkitBoxOrient:\"vertical\"},children:truncateText(post.excerpt,isMobile&&isLandscape?2:isMobile?3:maxExcerptLines)}),/*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:buttonBackgroundColor,color:buttonTextColor,border:\"none\",borderRadius:\"100px\",padding:isMobile?\"10px 18px\":\"16px 32px\",width:\"fit-content\",fontSize:isMobile?\"13px\":\"16px\",fontWeight:500,letterSpacing:\"-0.01em\",lineHeight:\"1em\",...buttonFont},children:buttonText})]}),/*#__PURE__*/_jsx(\"div\",{style:{flex:1,borderRadius:`${imageBorderRadius}px`,overflow:\"hidden\",minHeight:isMobile&&!isLandscape?\"150px\":\"auto\",backgroundColor:\"#E0E0E0\"},children:post.image&&/*#__PURE__*/_jsx(\"img\",{src:post.image,alt:post.title,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}})})]})})});}addPropertyControls(CaseStudyStack,{// Card 1\ntitle1:{type:ControlType.String,title:\"Title 1\",defaultValue:\"S&P 200 Leadership Summit\"},excerpt1:{type:ControlType.String,title:\"Excerpt 1\",displayTextArea:true,defaultValue:\"With Martina Cheung stepping in as CEO, S&P Global needed to reposition itself as a leader in technology, data and client centricity.\"},image1:{type:ControlType.ResponsiveImage,title:\"Image 1\"},link1:{type:ControlType.Link,title:\"Link 1\",defaultValue:\"/work/sp-200\"},// Card 2\ntitle2:{type:ControlType.String,title:\"Title 2\",defaultValue:\"Making transformation a world currency\"},excerpt2:{type:ControlType.String,title:\"Excerpt 2\",displayTextArea:true,defaultValue:\"How we inspired personal investment in a new global strategy, purpose and values across multiple regions.\"},image2:{type:ControlType.ResponsiveImage,title:\"Image 2\"},link2:{type:ControlType.Link,title:\"Link 2\",defaultValue:\"/work/transformation\"},// Card 3\ntitle3:{type:ControlType.String,title:\"Title 3\",defaultValue:\"Reimagining the customer experience\"},excerpt3:{type:ControlType.String,title:\"Excerpt 3\",displayTextArea:true,defaultValue:\"A complete overhaul of the digital touchpoints that define how customers interact with the brand.\"},image3:{type:ControlType.ResponsiveImage,title:\"Image 3\"},link3:{type:ControlType.Link,title:\"Link 3\",defaultValue:\"/work/customer-experience\"},// Layout\ncardOffset:{type:ControlType.Number,title:\"Stack Offset\",defaultValue:40,min:10,max:60,step:5,unit:\"px\",description:\"Visible gap between stacked cards\"},scaleReduction:{type:ControlType.Number,title:\"Scale Reduction\",defaultValue:.05,min:0,max:.15,step:.01,description:\"How much cards shrink when behind\"},topMargin:{type:ControlType.Number,title:\"Top Margin\",defaultValue:60,min:20,max:150,step:10,unit:\"px\"},mobileTopMargin:{type:ControlType.Number,title:\"Mobile Top Margin\",defaultValue:100,min:60,max:200,step:10,unit:\"px\"},bottomMargin:{type:ControlType.Number,title:\"Bottom Margin\",defaultValue:40,min:20,max:100,step:10,unit:\"px\"},maxExcerptLines:{type:ControlType.Number,title:\"Max Excerpt Lines\",defaultValue:4,min:2,max:8,step:1},// Appearance\nborderRadius:{type:ControlType.Number,title:\"Card Radius\",defaultValue:24,min:0,max:48,step:1,unit:\"px\"},imageBorderRadius:{type:ControlType.Number,title:\"Image Radius\",defaultValue:16,min:0,max:48,step:1,unit:\"px\"},buttonText:{type:ControlType.String,title:\"Button Text\",defaultValue:\"Dive deeper\"},backgroundColor:{type:ControlType.Color,title:\"Card Background\",defaultValue:\"#F5F5F0\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},buttonBackgroundColor:{type:ControlType.Color,title:\"Button Background\",defaultValue:\"#000000\"},buttonTextColor:{type:ControlType.Color,title:\"Button Text\",defaultValue:\"#FFFFFF\"},// Typography\ntitleFont:{type:ControlType.Font,title:\"Title Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"48px\",fontWeight:400,letterSpacing:\"-0.02em\",lineHeight:\"1.1em\"}},descriptionFont:{type:ControlType.Font,title:\"Description Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"18px\",fontWeight:400,letterSpacing:\"-0.01em\",lineHeight:\"1.5em\"}},buttonFont:{type:ControlType.Font,title:\"Button Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"16px\",fontWeight:500,letterSpacing:\"-0.01em\",lineHeight:\"1em\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CaseStudyStack\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CardStack.map"],"mappings":"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"}