Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
dbec029
[feat] ๊ธ€์“ฐ๊ธฐ ๊ธฐ๋Šฅ
EunbinJung Oct 10, 2025
64d9a8e
[feat] ํฌ์ŠคํŠธ ์ž‘์„ฑ ๊ธฐ๋Šฅ
EunbinJung Oct 10, 2025
0692f9d
Merge branch 'dev' into feat/write#19
EunbinJung Oct 10, 2025
c63aa72
Feat/communityscroll#23 (#114)
EunbinJung Oct 10, 2025
b381dc0
[feat] ๊ธ€์“ฐ๊ธฐ ๊ธฐ๋Šฅ
EunbinJung Oct 10, 2025
b1edcc9
์นดํ…Œ๊ณ ๋ฆฌํ•„์ˆ˜
EunbinJung Oct 10, 2025
5cf0cc4
[feat] ํฌ์ŠคํŠธ ๋ฌดํ•œ์Šคํฌ๋กค + ๊ธ€์“ฐ๊ธฐ๊ธฐ๋Šฅ ์ด๋ฏธ์ง€์ถ”๊ฐ€
EunbinJung Oct 10, 2025
37e6b64
[feat] ์ด๋ฏธ์ง€ ์Šค์™€์ดํผ
EunbinJung Oct 11, 2025
0df3876
[feat] ํ”„๋กœํ•„ ์‘ค๋ฆฌ ์ด๋ฏธ์ง€
EunbinJung Oct 11, 2025
c03685b
[feat] ๋Œ“๊ธ€ ๋ˆ„๋ฅด๋ฉด ๋Œ“๊ธ€ ์„น์…˜์œผ๋กœ ๊ฐ€๊ธฐ
EunbinJung Oct 11, 2025
0b9ff6a
[feat] ์ข‹์•„์š”๊ธฐ๋Šฅ(์•„์ง ์ข‹์•„์š”๋ฐ›์•„์˜ค๋Š”๊ฑด ๋ชปํ•จ apiํ•„์š”)
EunbinJung Oct 11, 2025
06f4218
[feat] ๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ •
EunbinJung Oct 11, 2025
41bfd9f
[feat] ๊ธ€ ์ˆ˜์ •
EunbinJung Oct 12, 2025
a9013e6
[refactor] ์ฝ”๋“œ ์กฐ๊ธˆ์ •๋ฆฌ
EunbinJung Oct 12, 2025
7ca7f8b
[feat] ์ž‘์„ฑ์ž๋ณธ์ธ๋งŒ ๊ธ€์ˆ˜์ •์‚ญ์ œ
EunbinJung Oct 12, 2025
d555f39
[feat]๊ธ€ ์‚ญ์ œ๊ธฐ๋Šฅ
EunbinJung Oct 12, 2025
9439bfc
[feat] ์นตํ…Œ์ผํƒœ๊ทธ
EunbinJung Oct 12, 2025
5b72ae4
[fix]์นตํ…Œ์ผ, ์‰์–ด ๊ธฐ๋Šฅ
EunbinJung Oct 12, 2025
5801561
์ˆ˜ ๋ผ์šฐํ„ฐ, ๋น„๋กœ๊ทธ์ธ์ฒ˜๋ฆฌ
EunbinJung Oct 12, 2025
fc5d719
ํƒ€์ž… ์ˆ˜์ •
EunbinJung Oct 12, 2025
18a7eeb
ํƒ€์ž… ์ˆ˜์ •
EunbinJung Oct 12, 2025
9b385db
ํƒ€์ž…์ˆ˜์ •
EunbinJung Oct 12, 2025
379e6e2
ํƒ€์ž…์ˆ˜์ •
EunbinJung Oct 12, 2025
f5a3870
ํƒ€์ž…์ˆ˜์ •
EunbinJung Oct 12, 2025
f1dd851
์˜ค๋ฅ˜์ˆ˜์ •
EunbinJung Oct 12, 2025
1975647
์˜ค๋ฅ˜์ˆ˜์ •
EunbinJung Oct 12, 2025
8beb817
์˜ค๋ฅ˜์ˆ˜์ •
EunbinJung Oct 12, 2025
f811379
์˜ค๋ฅ˜์ˆ˜์ •
EunbinJung Oct 12, 2025
fabb821
์˜ค๋ฅ˜์ˆ˜์ •
EunbinJung Oct 12, 2025
e3f356b
Merge branch 'dev' into feat/write#19
EunbinJung Oct 12, 2025
1cba59c
์ถฉ๋Œํ•ด๊ฒฐ
EunbinJung Oct 12, 2025
2a783d6
์˜ค๋ฅ˜ ์ˆ˜์ •
EunbinJung Oct 12, 2025
641b8e8
์˜ค๋ฅ˜ ์ˆ˜์ •
EunbinJung Oct 12, 2025
d9ffb6f
์˜ค๋ฅ˜ ์ˆ˜์ •
EunbinJung Oct 12, 2025
c32ae58
[fix] ์ด๋ฏธ์ง€ ์นด์šดํŠธ, 10๊ฐœ ์ œํ•œ
EunbinJung Oct 12, 2025
74462d0
[fix] ๊ธ€์“ฐ๊ธฐ placeholder
EunbinJung Oct 12, 2025
03b3ab9
[fix] ๊ณต์œ  url ์ˆ˜์ •
EunbinJung Oct 12, 2025
01575c1
[fix] ํ”„๋กœํ•„๋ฐฐ๊ฒฝ ์ง€์šฐ๊ธฐ
EunbinJung Oct 12, 2025
aa5d0ef
[fix] ํ”Œ๋กœํŒ…ํƒญ ๋ฏธ๋””์–ด์ฟผ๋ฆฌ ์ˆ˜์ •
EunbinJung Oct 12, 2025
e59ce26
[fix] ์ˆ˜์ • ๋ชจ๋‹ฌ
EunbinJung Oct 12, 2025
d8bae3c
๋Œ“๊ธ€์‹ค์‹œ๊ฐ„๋ฐ˜์˜ ์‹œ๋„
EunbinJung Oct 12, 2025
18647b5
์ˆ˜์ •
EunbinJung Oct 12, 2025
b51e65b
Merge branch 'dev' into feat/write#19
EunbinJung Oct 12, 2025
0ce9b6d
[fix] ์ˆ˜์ •๋ชจ๋‹ฌ ๋กœ์ง ์ˆ˜์ •
EunbinJung Oct 12, 2025
3c5bb99
์ˆ˜์ •๋กœ์ง ์ˆ˜์ •
EunbinJung Oct 12, 2025
491ba44
[feat] edit์ˆ˜์ •
EunbinJung Oct 14, 2025
0fc9e12
ํƒ€์ž…์˜ค๋ฅ˜
EunbinJung Oct 14, 2025
c464136
[feat] ์ข‹์•„์š”๋กœ์ง ์ˆ˜์ •
EunbinJung Oct 14, 2025
3216b01
[fix] ์นตํ…Œ์ผํƒœ๊ทธ ๋„ˆ๋น„ ์ˆ˜์ •
EunbinJung Oct 14, 2025
e0806a7
๊ธ€์“ฐ๊ธฐ ๋กœ๊ทธ์ธ๊ฒ€์‚ฌ
EunbinJung Oct 14, 2025
4a5291a
Merge branch 'dev' into feat/write#19
EunbinJung Oct 15, 2025
a2e5539
Merge branch 'dev' into feat/write#19
EunbinJung Oct 15, 2025
c378ff4
๋ฒ„๊ทธ๋“ค ์ˆ˜์ •
EunbinJung Oct 15, 2025
d08e422
Merge branch 'dev' into feat/write#19
EunbinJung Oct 15, 2025
f5f7093
๋ฐ˜์‘ํ˜•
EunbinJung Oct 15, 2025
f7cd698
ํŒŒ์ผ๋ช… ๋Œ€๋ฌธ์ž์ˆ˜์ •
EunbinJung Oct 15, 2025
02d4a00
๋ชจ๋ฐ”์ผ ์ด๋ฏธ์ง€
EunbinJung Oct 15, 2025
a115156
Merge branch 'dev' into feat/write#19
EunbinJung Oct 15, 2025
b54fe15
๋ฉ”์ธ ์ˆ˜์ •
EunbinJung Oct 15, 2025
06c4c9f
3d๋ชจ๋ธ
EunbinJung Oct 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,705 changes: 108 additions & 2,597 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
"dependencies": {
"@react-three/drei": "^10.7.6",
"@react-three/fiber": "^9.3.0",
"@react-three/gltfjsx": "^4.3.4",
"@react-three/postprocessing": "^3.0.4",
"@tanstack/react-query": "^5.90.2",
"@tanstack/react-virtual": "^3.13.12",
Expand Down
Binary file added public/mobileCocktail.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 13 additions & 0 deletions src/app/(main)/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import FooterWrapper from '@/shared/components/footer/FooterWrapper';
import Header from '@/shared/components/header/Header';

function NoLayout({ children }: { children: React.ReactNode }) {
return (
<>
<Header className="bg-transparent w-full h-[44px] md:h-[60px] flex items-center justify-between px-[12px] fixed top-0 left-0 z-50 transition-transform duration-200 ease-in-ou" />
<main className="flex flex-1">{children}</main>
<FooterWrapper />
</>
);
}
export default NoLayout;
File renamed without changes.
26 changes: 16 additions & 10 deletions src/domains/main/cocktailDrop/CocktailDrop.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,15 @@ import Cocktailcup from '../../../../public/CocktailDrop.webp';
import { useLayoutEffect, useRef } from 'react';
import gsap from 'gsap';
import { ScrollTrigger } from 'gsap/all';
import PassBtn from './PassBtn';

gsap.registerPlugin(ScrollTrigger);

function CocktailDrop() {
interface CocktailDropProps {
isDesktop?: boolean;
}

function CocktailDrop({ isDesktop = false }: CocktailDropProps) {
const containerRef = useRef<HTMLDivElement>(null);
const logoRef = useRef<HTMLDivElement>(null);
const line1Ref = useRef<HTMLDivElement>(null);
Expand Down Expand Up @@ -39,12 +44,11 @@ function CocktailDrop() {
);

// ๋กœ๊ณ  ์œ„์—์„œ ์•„๋ž˜๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋“ฑ์žฅ
const isMobile = window.innerWidth < 768;
gsap.fromTo(
logoRef.current,
{ y: -300, opacity: 0 },
{
y: isMobile ? -140 : -40, // ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ๋” ์œ„๋กœ
y: !isDesktop ? -230 : -18, // ๋ฐ์Šคํฌํ†ฑ์ด ์•„๋‹ ๋•Œ ๋” ์œ„๋กœ
opacity: 1,
duration: 3,
ease: 'power3.out',
Expand All @@ -60,12 +64,12 @@ function CocktailDrop() {
}, containerRef);

return () => ctx.revert();
}, [containerRef]);
}, [containerRef, isDesktop]);

return (
<div
ref={containerRef}
className="relative w-full md:min-h-[110vh] min-h-[74vh] flex flex-col md:justify-center justify-end items-center mt-10 overflow-hidden"
className="relative w-full lg:min-h-[110vh] min-h-[89vh] flex flex-col md:justify-center justify-end items-center mt-10 overflow-hidden"
id="scroll-fixed"
>
{/* ๋Œ€๊ฐ์„  ์ค„ 1 */}
Expand All @@ -80,7 +84,7 @@ function CocktailDrop() {
/>

{/* ๋กœ๊ณ  */}
<div ref={logoRef} className="absolute z-20 md:w-115 w-65 md:h-90 h-40">
<div ref={logoRef} className="absolute md:w-115 w-85 md:h-90 h-40">
<Image
src="/logo.svg"
alt="๋กœ๊ณ  ์ด๋ฏธ์ง€"
Expand All @@ -94,17 +98,19 @@ function CocktailDrop() {
<div className="w-full md:h-90 h-30"></div>

{/* ์ปต ์ด๋ฏธ์ง€ - ๋ชจ๋ฐ”์ผ์—์„œ ๋ฐ”๋‹ฅ์— ๋ถ™๋„๋ก */}
<div className="z-10 md:relative absolute bottom-0">
<div className="md:relative absolute bottom-0">
<Image
src={Cocktailcup}
alt="์นตํ…Œ์ผ ์ปต"
width={900}
height={800}
height={700}
priority
style={{ width: 'auto', height: 'auto' }}
className="md:w-auto md:h-auto w-[300px] h-[300px] object-contain"
className="md:w-auto md:h-auto w-[500px] h-[400px] object-cover"
/>
</div>
<div className="absolute md:bottom-35 bottom-20 flex items-center justify-center z-3 w-full">
<PassBtn />
</div>
</div>
);
}
Expand Down
20 changes: 20 additions & 0 deletions src/domains/main/cocktailDrop/PassBtn.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { useRouter } from 'next/navigation';

function PassBtn() {
const router = useRouter();
const handleClick = () => {
router.push('/recommend');
};
return (
<button
onClick={handleClick}
className="w-[90%] md:w-120 py-5 md:px-20 px-5 md:text-2xl text-lg rounded-xl flex items-center justify-center bg-tertiary/70"
>
<span className="text-primary font-serif whitespace-nowrap">
์นตํ…Œ์ผ ์ทจํ–ฅ์ถ”์ฒœ <span className="text-secondary font-serif">๋ฐ”๋กœ๊ฐ€๊ธฐ</span>
</span>
</button>
);
}

export default PassBtn;
6 changes: 3 additions & 3 deletions src/domains/main/components/3d/HomeModel.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
'use client';

import { Environment, OrbitControls, useGLTF } from '@react-three/drei';
import { Canvas, useFrame, useThree } from '@react-three/fiber';
import { Canvas } from '@react-three/fiber';
import { Bloom, EffectComposer } from '@react-three/postprocessing';
import { useEffect, useRef } from 'react';
import { useEffect } from 'react';
import * as THREE from 'three';

interface Props {
Expand Down Expand Up @@ -42,7 +42,7 @@ function Model({ onLoaded }: Props) {
return (
<primitive
object={scene}
scale={6.4}
scale={5.8}
position={[0, -1.2, 0]}
rotation={[-0.15, Math.PI + 3, 0]}
/>
Expand Down
17 changes: 16 additions & 1 deletion src/domains/main/components/3d/ModelImage.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { useEffect } from 'react';
import MobileCocktailDrop from '../../../../../public/mobileCocktail.webp';
import Image from 'next/image';

interface Props {
onLoaded: () => void;
Expand All @@ -8,7 +10,20 @@ function ModelImage({ onLoaded }: Props) {
useEffect(() => {
onLoaded();
});
return <div className="w-full"></div>;
return (
<div className="w-full flex justify-center items-center absolute bottom-13 left-1/2 -translate-x-1/2">
<div className="rounded-tr-4xl rounded-tl-4xl overflow-hidden">
<Image
src={MobileCocktailDrop}
alt="๋ชจ๋ฐ”์ผ ์นตํ…Œ์ผ ๋“œ๋ž"
width={260}
height={290}
priority
className="object-cover w-[300px] h-[390px]"
/>
</div>
</div>
);
}

export default ModelImage;
2 changes: 1 addition & 1 deletion src/domains/main/components/3d/Scroll.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ function Scroll({ isDesktop }: { isDesktop: boolean }) {
height: 60,
};
return (
<div className="absolute bottom-18 left-1/2 -translate-x-1/2 rounded-full bg-secondary/10 z-11 md:w-[60px] md:h-[60px] w-[45px] h-[45px]">
<div className="absolute bottom-18 left-1/2 -translate-x-1/2 rounded-full md:bg-secondary/10 bg-primary/30 z-11 md:w-[60px] md:h-[60px] w-[45px] h-[45px]">
<div className="z-11">
<Lottie animationData={scroll} style={style} aria-hidden loop={true} />
</div>
Expand Down
8 changes: 6 additions & 2 deletions src/domains/main/components/FinalLanding.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@ function FinalLanding() {
const smootherRef = useRef<ScrollSmoother | null>(null);

const [isDesktop, setIsDesktop] = useState(false);
const [hasMounted, setHasMounted] = useState(false);

useEffect(() => {
const checkViewport = () => {
setIsDesktop(window.innerWidth >= 1024);
};

checkViewport();
setHasMounted(true);

window.addEventListener('resize', checkViewport);

Expand Down Expand Up @@ -58,6 +60,8 @@ function FinalLanding() {
};
}, [isDesktop]);

if (!hasMounted) return null;

return (
<div className="overflow-x-hidden">
<StarMain />
Expand All @@ -69,7 +73,7 @@ function FinalLanding() {
{!isLoading && (
<>
<MainSlide isDesktop={isDesktop} />
<CocktailDrop />
<CocktailDrop isDesktop={isDesktop} />
</>
)}
</div>
Expand All @@ -81,7 +85,7 @@ function FinalLanding() {
{!isLoading && (
<>
<MainSlide isDesktop={isDesktop} />
<CocktailDrop />
<CocktailDrop isDesktop={isDesktop} />
</>
)}
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ function MainSlide({ isDesktop }: { isDesktop: boolean }) {
<MobileSlide key="mobile" />
) : (
<div ref={initialRoot} className="w-full overflow-hidden">
<section key="desktop" ref={root} className="w-full stage h-screen" id="scroll-fixed">
<section key="desktop" ref={root} className="w-full stage h-screen " id="scroll-fixed">
<div className="stage relative w-full h-full overflow-hidden bg-secondary">
<div className="panel absolute inset-0 overflow-hidden">
<MainSlideIntro />
Expand Down