From 56a39a4c07add0f8d0511b46c3474c8fde1107e3 Mon Sep 17 00:00:00 2001 From: "Sean Yen (UCSD work laptop)" Date: Sun, 3 Nov 2024 20:03:41 -0800 Subject: [PATCH] mobile collage layout --- src/components/onboarding/Intro/index.tsx | 108 +++++++++++++++--- .../onboarding/Intro/style.module.scss | 23 +++- .../onboarding/Intro/style.module.scss.d.ts | 2 + 3 files changed, 112 insertions(+), 21 deletions(-) diff --git a/src/components/onboarding/Intro/index.tsx b/src/components/onboarding/Intro/index.tsx index 00d3ee22..c7123b9f 100644 --- a/src/components/onboarding/Intro/index.tsx +++ b/src/components/onboarding/Intro/index.tsx @@ -12,23 +12,73 @@ import styles from './style.module.scss'; type IntroImage = { src: StaticImageData; - size: [x: number, y: number, width: number, height: number]; + alt: string; + desktopSize: [x: number, y: number, width: number, height: number]; + mobileSize: [x: number, y: number, width: number, height: number]; round?: boolean; }; +// https://www.figma.com/design/GiWZdbzJ2uxyknpCrB9UK6/acm-onboarding const images: IntroImage[] = [ - { src: FocusPerson, size: [89, 46, 168, 168], round: true }, - { src: Bonfire, size: [740, 285, 208, 208], round: true }, - { src: Murou, size: [49, 175, 138, 138], round: true }, - { src: HoldBoba, size: [685, 72, 233, 135] }, - { src: RaymondBack, size: [289, 29, 326, 146] }, - { src: TiltKickoff, size: [327, 390, 393, 134], round: true }, - { src: Allocation, size: [57, 357, 299, 135] }, - { src: KickoffBig, size: [173, 116, 631, 308], round: true }, + { + src: FocusPerson, + alt: 'A student smiling in a crowd', + desktopSize: [89, 46, 168, 168], + mobileSize: [24, 326, 109, 109], + round: true, + }, + { + src: Bonfire, + alt: 'Students around a bonfire holding marshmellows on skewers', + desktopSize: [740, 285, 208, 208], + mobileSize: [158, 86, 153, 153], + round: true, + }, + { + src: Murou, + alt: 'Students chatting', + desktopSize: [49, 175, 138, 138], + mobileSize: [213, 293, 86, 86], + round: true, + }, + { + src: HoldBoba, + alt: 'An audience of students watching a presentation', + desktopSize: [685, 72, 233, 135], + mobileSize: [124, 369, 187, 84], + }, + { + src: TiltKickoff, + alt: 'A large audience of students at ACM Kickoff', + desktopSize: [327, 390, 393, 134], + mobileSize: [0, 0, 252, 108], + round: true, + }, + { + src: Allocation, + alt: 'A group photo of students standing before Geisel and Snake Path', + desktopSize: [57, 357, 299, 135], + mobileSize: [0, 422, 270, 131], + }, + { + src: RaymondBack, + alt: 'Students standing on a beach on a cloudy day', + desktopSize: [289, 29, 326, 146], + mobileSize: [0, 116, 146, 110], + }, + { + src: KickoffBig, + alt: 'A large audience of students forming diamonds with their hands', + desktopSize: [173, 116, 631, 308], + mobileSize: [12, 173, 287, 206], + round: true, + }, ]; images.reverse(); -const OFFSET_X = 173 + 631 / 2; -const OFFSET_Y = 116 + 308 / 2; +const DESKTOP_OFFSET_X = 173 + 631 / 2; +const DESKTOP_OFFSET_Y = 116 + 308 / 2; +const MOBILE_OFFSET_X = 25 + 261 / 2; +const MOBILE_OFFSET_Y = 203 + 146 / 2; const Intro = () => { const [mouseX, setMouseX] = useState(0); @@ -53,26 +103,46 @@ const Intro = () => { return (
- {images.map(({ src, size: [x, y, width, height], round }, i) => ( + {images.map(({ src, alt, desktopSize, mobileSize, round }, i) => (
todo +