From 151626b1818f94debc3bb5d124ee8b4cdfaba517 Mon Sep 17 00:00:00 2001 From: "jihoon87.lee" Date: Tue, 3 Feb 2026 15:44:55 +0900 Subject: [PATCH] =?UTF-8?q?Feat:=20=EC=86=8C=EC=85=9C=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=9D=B8=EC=A6=9D?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=80=20UI=20=ED=85=8C=EB=A7=88=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit app/login/page.tsx - Google/Kakao 소셜 로그인 버튼을 폼으로 연동하고 액션 호출 추가 - 로그인 페이지의 배경/버튼/텍스트 색상 등 UI 테마를 파스텔에서 그레이/다크톤으로 통일 - 소셜 버튼 마크업 및 스타일 정리 app/signup/page.tsx - 회원가입 페이지 배경 및 버튼 색상을 그레이/다크톤으로 변경 - 아이콘 배경 그라디언트 및 링크 색상 업데이트 app/forgot-password/page.tsx - 비밀번호 재설정 요청 페이지의 배경, 블러 효과 및 버튼 스타일을 그레이/다크톤으로 변경 - 아이콘 배경 및 링크 색상 업데이트 app/reset-password/page.tsx - 비밀번호 재설정 페이지의 배경, 블러 효과 및 버튼 스타일을 그레이/다크톤으로 변경 - 아이콘 배경 업데이트 features/auth/actions.ts - Google 및 Kakao OAuth 시작을 위한 공통 헬퍼(signInWithProvider) 추가 - signInWithGoogle 및 signInWithKakao 액션을 구현하여 OAuth 흐름을 시작하도록 추가 --- app/forgot-password/page.tsx | 16 ++--- app/login/page.tsx | 111 +++++++++++++++++++---------------- app/reset-password/page.tsx | 14 ++--- app/signup/page.tsx | 16 ++--- features/auth/actions.ts | 91 ++++++++++++++++++++++++++++ 5 files changed, 175 insertions(+), 73 deletions(-) diff --git a/app/forgot-password/page.tsx b/app/forgot-password/page.tsx index 0c49d7b..e111adc 100644 --- a/app/forgot-password/page.tsx +++ b/app/forgot-password/page.tsx @@ -29,14 +29,14 @@ export default async function ForgotPasswordPage({ const { message } = await searchParams; return ( -
+
{/* ========== 배경 그라디언트 ========== */} -
-
+
+
{/* ========== 애니메이션 블러 효과 ========== */} -
-
+
+
{/* ========== 메인 콘텐츠 ========== */}
@@ -47,7 +47,7 @@ export default async function ForgotPasswordPage({ {/* 아이콘 */} -
+
🔑
{/* 페이지 제목 */} @@ -85,7 +85,7 @@ export default async function ForgotPasswordPage({ {/* ========== 재설정 링크 발송 버튼 ========== */} @@ -95,7 +95,7 @@ export default async function ForgotPasswordPage({
← 로그인 페이지로 돌아가기 diff --git a/app/login/page.tsx b/app/login/page.tsx index e8ec257..7d8c2e1 100644 --- a/app/login/page.tsx +++ b/app/login/page.tsx @@ -1,5 +1,9 @@ import Link from "next/link"; -import { login } from "@/features/auth/actions"; +import { + login, + signInWithGoogle, + signInWithKakao, +} from "@/features/auth/actions"; import FormMessage from "@/components/form-message"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; @@ -33,24 +37,24 @@ export default async function LoginPage({ const { message } = await searchParams; return ( -
+
{/* ========== 배경 그라디언트 레이어 ========== */} {/* 웹 페이지 전체 배경을 그라디언트로 채웁니다 */} - {/* 라이트 모드: 부드러운 파스텔 톤 (indigo → purple → pink) */} - {/* 다크 모드: 진한 어두운 톤으로 눈부심 방지 */} + {/* 라이트 모드: 부드러운 그레이 톤 (gray → white → gray) */} + {/* 다크 모드: 깊은 블랙 톤으로 고급스러운 느낌 */} {/* 추가 그라디언트 효과 1: 우상단에서 시작하는 원형 그라디언트 */} -
+
{/* 추가 그라디언트 효과 2: 좌하단에서 시작하는 원형 그라디언트 */} -
+
{/* ========== 애니메이션 블러 효과 ========== */} {/* 부드럽게 깜빡이는 원형 블러로 생동감 표현 */} {/* animate-pulse: 1.5초 주기로 opacity 변화 */} -
+
{/* delay-700: 700ms 지연으로 교차 애니메이션 효과 */} -
+
{/* ========== 메인 콘텐츠 영역 ========== */} {/* z-10: 배경보다 위에 표시 */} @@ -67,7 +71,7 @@ export default async function LoginPage({ {/* ========== 카드 헤더 영역 ========== */} {/* 아이콘 배경: 그라디언트 원형 */} -
+
👋
{/* 페이지 제목 */} @@ -138,7 +142,7 @@ export default async function LoginPage({ {/* 비밀번호 찾기 링크 */} 비밀번호 찾기 @@ -148,7 +152,7 @@ export default async function LoginPage({ - + + + + + + + Google + + + + {/* ========== Kakao 로그인 버튼 ========== */} +
+ +
diff --git a/app/reset-password/page.tsx b/app/reset-password/page.tsx index 1e3c3cd..024716d 100644 --- a/app/reset-password/page.tsx +++ b/app/reset-password/page.tsx @@ -72,14 +72,14 @@ export default async function ResetPasswordPage({ const { message } = params; return ( -
+
{/* ========== 배경 그라디언트 ========== */} -
-
+
+
{/* ========== 애니메이션 블러 효과 ========== */} -
-
+
+
{/* ========== 메인 콘텐츠 ========== */}
@@ -90,7 +90,7 @@ export default async function ResetPasswordPage({ {/* 아이콘 */} -
+
🔐
{/* 페이지 제목 */} @@ -132,7 +132,7 @@ export default async function ResetPasswordPage({ {/* ========== 비밀번호 변경 버튼 ========== */} diff --git a/app/signup/page.tsx b/app/signup/page.tsx index 8b392b6..4717ea3 100644 --- a/app/signup/page.tsx +++ b/app/signup/page.tsx @@ -20,14 +20,14 @@ export default async function SignupPage({ const { message } = await searchParams; return ( -
+
{/* 배경 그라데이션 효과 */} -
-
+
+
{/* 애니메이션 블러 효과 */} -
-
+
+
{/* 메시지 알림 */} @@ -35,7 +35,7 @@ export default async function SignupPage({ -
+
🚀
@@ -91,7 +91,7 @@ export default async function SignupPage({