diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx new file mode 100644 index 0000000..34facd4 --- /dev/null +++ b/src/app/login/page.tsx @@ -0,0 +1,176 @@ +"use client"; + +import { useState } from "react"; +import Link from "next/link"; + +export default function LoginPage() { + const [userId, setUserId] = useState(""); + const [password, setPassword] = useState(""); + const [rememberId, setRememberId] = useState(false); + const [autoLogin, setAutoLogin] = useState(false); + + function handleSubmit(e: React.FormEvent) { + e.preventDefault(); + // TODO: 실제 인증 연동 시 이곳에서 처리 + // 현재는 UI만 구현 + console.log({ userId, password, rememberId, autoLogin }); + } + + return ( +
+ {/* 카드 컨테이너 */} +
+ {/* 로고 영역 */} +
+
+
+ XR LMS +
+
+ + {/* 폼 */} +
+
+ {/* 아이디 */} +
+ + setUserId(e.target.value)} + placeholder="아이디" + className="h-14 w-full rounded-lg border px-4 text-[15px] outline-none transition-shadow" + style={{ + borderColor: "var(--color-input-border)", + color: "var(--color-basic-text)", + // placeholder 색상 + // Tailwind v4 arbitrary 적용이 번거로워 인라인 사용 + }} + onFocus={(e) => { + e.currentTarget.style.boxShadow = + "0 0 0 2px rgba(51,60,71,0.15)"; + e.currentTarget.style.borderColor = + "var(--color-input-border-select)"; + }} + onBlur={(e) => { + e.currentTarget.style.boxShadow = "none"; + e.currentTarget.style.borderColor = + "var(--color-input-border)"; + }} + /> +
+ {/* 비밀번호 */} +
+ + setPassword(e.target.value)} + placeholder="비밀번호" + className="h-14 w-full rounded-lg border px-4 text-[15px] outline-none transition-shadow" + style={{ + borderColor: "var(--color-input-border)", + color: "var(--color-basic-text)", + }} + onFocus={(e) => { + e.currentTarget.style.boxShadow = + "0 0 0 2px rgba(51,60,71,0.15)"; + e.currentTarget.style.borderColor = + "var(--color-input-border-select)"; + }} + onBlur={(e) => { + e.currentTarget.style.boxShadow = "none"; + e.currentTarget.style.borderColor = + "var(--color-input-border)"; + }} + /> +
+
+ + {/* 체크박스들 */} +
+ + +
+ + {/* 로그인 버튼 */} + + + {/* 하단 링크들 */} +
+ + 회원가입 + +
+ + 아이디 찾기 + + + + 비밀번호 재설정 + +
+
+
+
+ + {/* 카피라이트 */} +

+ Copyright ⓒ 2025 XL LMS. All rights reserved +

+
+ ); +} + \ No newline at end of file