diff --git a/baseballDiary/src/App.tsx b/baseballDiary/src/App.tsx
index c39d665..abab5a7 100644
--- a/baseballDiary/src/App.tsx
+++ b/baseballDiary/src/App.tsx
@@ -6,6 +6,7 @@ import { createBrowserRouter, RouterProvider } from 'react-router-dom';
import SplashPage from './pages/SplashPage';
import MainPage from './pages/MainPage';
import SignUpPage from './pages/SignUpPage';
+import LoginPage from './pages/LoginPage';
import PlayInfo from './pages/PlayInfo';
import TeamRanking from './pages/TeamRanking';
import "../styles.css"
@@ -81,7 +82,7 @@ const router = createBrowserRouter([
//Navbar 사용안하도록 외부에 위치
path: '/login',
children: [
- { index: true, element:
로그인 페이지입니다.
},
+ { index: true, element: },
{ path: 'sign-up', element: }, //회원가입 페이지 연결
{ path: 'search-account', element: 아이디/비밀번호 찾기 페이지입니다.
}
]
diff --git a/baseballDiary/src/pages/LoginPage.tsx b/baseballDiary/src/pages/LoginPage.tsx
new file mode 100644
index 0000000..932ab0d
--- /dev/null
+++ b/baseballDiary/src/pages/LoginPage.tsx
@@ -0,0 +1,93 @@
+import { useState } from "react";
+import { useNavigate } from "react-router-dom";
+import styled from "styled-components";
+import BevoliLogo from "../assets/logo.svg"; // 로고 이미지 경로
+import NextButton from "../components/Next-button"; // NextButton 컴포넌트 사용
+import InputField from "../components/InputField"; // InputField 컴포넌트 사용
+
+const LoginPage: React.FC = () => {
+ const [userId, setUserId] = useState("");
+ const [password, setPassword] = useState("");
+ const navigate = useNavigate();
+
+ // 입력 필드가 모두 채워졌는지 확인
+ const isFormValid = userId.trim() !== "" && password.trim() !== "";
+
+ return (
+
+ {/* 로고 */}
+
+
+ {/* 입력 필드 (InputField 컴포넌트 사용) */}
+
+ setUserId(e.target.value)}
+ />
+ setPassword(e.target.value)}
+ />
+
+
+ {/* NextButton 사용 */}
+ console.log("로그인 시도")}
+ disabled={!isFormValid} // 입력값 없을 때 비활성화
+ />
+
+ {/* 아이디/비밀번호 찾기 & 회원가입 */}
+
+ navigate("/login/search-account")}>비밀번호 찾기 |{" "}
+ navigate("/login/sign-up")}>회원가입
+
+
+ );
+};
+
+export default LoginPage;
+
+const Container = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ min-height: 100vh;
+ background-color: white;
+`;
+
+const Logo = styled.img`
+ width: 200px; /* 기존 120px → 200px */
+ height: auto;
+ margin-bottom: 30px;
+`;
+
+const InputContainer = styled.div`
+ display: flex;
+ flex-direction: column;
+ width: 341px;
+ gap: 10px;
+ margin-bottom: 20px;
+`;
+
+const BottomLinks = styled.div`
+ margin-top: 15px;
+ font-size: 14px;
+ color: gray;
+`;
+
+const LinkText = styled.span`
+ cursor: pointer;
+ &:hover {
+ color: red;
+ }
+`;
\ No newline at end of file