임동욱 임동욱 07-27
feat: AuthCard·SplashScreen 비주얼 컴포넌트 추가
Co-Authored-By: Claude Opus 5 
@3ee4d3e5675aebca1490347206e11ee75415ca83
 
components/ui/auth-card.tsx (added)
+++ components/ui/auth-card.tsx
@@ -0,0 +1,29 @@
+import Image from "next/image";
+import type { ReactNode } from "react";
+
+interface AuthCardProps {
+  title?: string;
+  children: ReactNode;
+}
+
+/** primary 배경 전면 위 중앙 카드(로그인 등 인증 화면용). */
+export function AuthCard({ title, children }: AuthCardProps) {
+  return (
+    <div className="flex min-h-screen items-center justify-center bg-primary p-6">
+      <div className="w-full max-w-sm rounded-2xl bg-surface p-8 shadow-list-card">
+        <Image
+          src="/images/logo-foxpay.svg"
+          alt="FoxPay"
+          width={170}
+          height={62}
+          className="mx-auto h-10 w-auto"
+          priority
+        />
+        {title && (
+          <h1 className="mt-6 text-center text-title-lg text-foreground">{title}</h1>
+        )}
+        <div className="mt-6">{children}</div>
+      </div>
+    </div>
+  );
+}
 
components/ui/splash-screen.tsx (added)
+++ components/ui/splash-screen.tsx
@@ -0,0 +1,22 @@
+import Image from "next/image";
+
+/**
+ * 풀스크린 스플래시. 네이티브 스플래시(edupay-app SplashConfig)와 동일하게
+ * primary 단색 배경 + 백색 로고 240px(logoWidth) 구성을 따른다.
+ * 표시 여부·퇴장 타이밍(fade-out 적용)은 호출부(feature) 책임 — 이 컴포넌트는
+ * props를 받지 않는다.
+ */
+export function SplashScreen() {
+  return (
+    <div className="fixed inset-0 z-50 flex animate-fade-in items-center justify-center bg-primary">
+      <Image
+        src="/images/logo-foxpay-white.svg"
+        alt="FoxPay"
+        width={170}
+        height={62}
+        className="h-auto w-60"
+        priority
+      />
+    </div>
+  );
+}
Add a comment
List