- Web core SCR-22/23/25-27/29/30/32-50 (26), admin A5/A6/A8/A9, public P1-P7, mobile M15 - +5 supplementary variants (P4 3-step, P7 manage, M15 ticket-select), 43 files, 0 failures - All delayed generations recovered server-side (project 27 -> 155 screens), no regeneration needed - WORK_STATUS: stitch 64/64 + real-data/2FA track close-out recorded Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
327 lines
16 KiB
HTML
327 lines
16 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<html class="light" lang="ko"><head>
|
|
<meta charset="utf-8"/>
|
|
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
|
|
<title>KINTEX Registration - Sign Up</title>
|
|
<!-- Material Symbols for Icons -->
|
|
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap" rel="stylesheet"/>
|
|
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap" rel="stylesheet"/>
|
|
<link href="https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Inter:wght@100..900&display=swap" rel="stylesheet"/>
|
|
<!-- Tailwind CSS -->
|
|
<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
|
|
<!-- Tailwind Configuration -->
|
|
<script id="tailwind-config">
|
|
tailwind.config = {
|
|
darkMode: "class",
|
|
theme: {
|
|
extend: {
|
|
"colors": {
|
|
"on-background": "#141b2c",
|
|
"on-error-container": "#93000a",
|
|
"primary-fixed-dim": "#a2c9ff",
|
|
"surface-container-low": "#f1f3ff",
|
|
"tertiary-fixed": "#8ef7c4",
|
|
"secondary": "#5427e6",
|
|
"outline": "#727781",
|
|
"tertiary": "#003e28",
|
|
"on-tertiary": "#ffffff",
|
|
"tertiary-fixed-dim": "#72daa9",
|
|
"secondary-fixed": "#e5deff",
|
|
"surface-bright": "#faf8ff",
|
|
"on-primary-fixed-variant": "#004881",
|
|
"on-secondary-fixed": "#1b0063",
|
|
"surface-variant": "#dbe2fa",
|
|
"inverse-primary": "#a2c9ff",
|
|
"surface": "#faf8ff",
|
|
"primary-fixed": "#d3e4ff",
|
|
"error-container": "#ffdad6",
|
|
"error-red": "#ba1a1a",
|
|
"surface-dim": "#d3d9f1",
|
|
"background": "#faf8ff",
|
|
"on-tertiary-fixed": "#002113",
|
|
"on-secondary-container": "#f3edff",
|
|
"surface-container-high": "#e1e7ff",
|
|
"outline-variant": "#c2c7d1",
|
|
"on-primary": "#ffffff",
|
|
"primary-container": "#004e8b",
|
|
"error": "#ba1a1a",
|
|
"on-secondary": "#ffffff",
|
|
"tertiary-container": "#00583b",
|
|
"surface-container-highest": "#dbe2fa",
|
|
"on-tertiary-container": "#68d1a0",
|
|
"surface-tint": "#24609e",
|
|
"primary": "#003765",
|
|
"surface-container-lowest": "#ffffff",
|
|
"on-surface-variant": "#424750",
|
|
"surface-container": "#eaedff",
|
|
"secondary-container": "#6d4aff",
|
|
"on-error": "#ffffff",
|
|
"secondary-fixed-dim": "#c9bfff",
|
|
"on-primary-container": "#91c0ff",
|
|
"inverse-on-surface": "#eef0ff",
|
|
"on-secondary-fixed-variant": "#4500d8",
|
|
"inverse-surface": "#293042",
|
|
"on-surface": "#141b2c",
|
|
"on-tertiary-fixed-variant": "#005236",
|
|
"on-primary-fixed": "#001c38"
|
|
},
|
|
"borderRadius": {
|
|
"DEFAULT": "0.125rem",
|
|
"lg": "0.25rem",
|
|
"xl": "0.5rem",
|
|
"full": "0.75rem"
|
|
},
|
|
"spacing": {
|
|
"stack-md": "16px",
|
|
"stack-lg": "24px",
|
|
"stack-sm": "8px",
|
|
"section-padding": "96px",
|
|
"gutter": "16px",
|
|
"container-padding": "24px",
|
|
"base": "4px"
|
|
},
|
|
"fontFamily": {
|
|
"display-lg": ["Inter"],
|
|
"title-sm": ["Inter"],
|
|
"headline-md": ["Inter"],
|
|
"body-base": ["Inter"],
|
|
"body-sm": ["Inter"],
|
|
"label-md": ["Geist"],
|
|
"label-xs": ["Geist"]
|
|
},
|
|
"fontSize": {
|
|
"display-lg": ["36px", {"lineHeight": "44px", "letterSpacing": "-0.02em", "fontWeight": "700"}],
|
|
"title-sm": ["18px", {"lineHeight": "28px", "fontWeight": "600"}],
|
|
"headline-md": ["24px", {"lineHeight": "32px", "fontWeight": "600"}],
|
|
"body-base": ["14px", {"lineHeight": "20px", "fontWeight": "400"}],
|
|
"body-sm": ["13px", {"lineHeight": "18px", "fontWeight": "400"}],
|
|
"label-md": ["12px", {"lineHeight": "16px", "letterSpacing": "0.02em", "fontWeight": "600"}],
|
|
"label-xs": ["11px", {"lineHeight": "14px", "fontWeight": "500"}]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style>
|
|
body {
|
|
background-color: #F9FAFB;
|
|
font-family: 'Inter', sans-serif;
|
|
}
|
|
.glass-effect {
|
|
backdrop-filter: blur(10px);
|
|
background: rgba(255, 255, 255, 0.85);
|
|
}
|
|
.material-symbols-outlined {
|
|
font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
|
|
}
|
|
input::placeholder {
|
|
color: #9ca3af;
|
|
}
|
|
.step-active {
|
|
color: #003765;
|
|
font-weight: 700;
|
|
position: relative;
|
|
}
|
|
.step-active::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: -4px;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 2px;
|
|
background-color: #003765;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="text-on-surface">
|
|
<!-- Top Navigation Bar -->
|
|
<header class="sticky top-0 z-50 bg-surface-container-lowest border-b border-outline-variant shadow-sm h-16">
|
|
<div class="flex justify-between items-center w-full px-container-padding max-w-[1280px] mx-auto h-full">
|
|
<div class="flex items-center gap-stack-md">
|
|
<img alt="KINTEX Logo" class="h-8" src="https://lh3.googleusercontent.com/aida-public/AB6AXuDOnH-1RFQG3bW-j1S6XSV-z5nijrlVp46lNMVbTvGAKK5lck9rlykCs2IyjH1LZeIDi93RK7c_sOVh6vrTcx0i8fQ4R9s1zM7LyleKBz1V7aDH5xwjqiAc0OnGGYEBQjxsHhtZcg7XKmJP4i813TyR9jQIRfzT7nQVs_XAH6o2jAHftIlBatl-mAcXjqsqq3wWoZNL72Jn4vmcTFBw4d5oepkARycVyOgT2saT668as_96iRES1OoEoOhK7ZXA1AhKbBLXva8vpJY"/>
|
|
<span class="font-headline-md text-headline-md font-bold text-primary">AI 전시관리</span>
|
|
</div>
|
|
<nav class="hidden md:flex gap-8 items-center">
|
|
<a class="font-body-base text-body-base text-on-surface-variant font-medium hover:text-primary transition-colors" href="#">Exhibitions</a>
|
|
<a class="font-body-base text-body-base text-on-surface-variant font-medium hover:text-primary transition-colors" href="#">Venue Info</a>
|
|
<a class="font-body-base text-body-base text-on-surface-variant font-medium hover:text-primary transition-colors" href="#">Support</a>
|
|
<button class="bg-primary text-on-primary px-6 py-2 rounded-lg font-label-md hover:bg-primary-container transition-all">Check Status</button>
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
<main class="min-h-screen py-section-padding flex flex-col items-center justify-center px-container-padding">
|
|
<!-- Registration Container -->
|
|
<div class="w-full max-w-[720px] bg-surface-container-lowest rounded-xl shadow-md border border-outline-variant overflow-hidden">
|
|
<!-- Progress Bar Section -->
|
|
<div class="bg-surface-container-low px-12 py-8 border-b border-outline-variant">
|
|
<div class="flex justify-between items-center max-w-md mx-auto relative">
|
|
<div class="flex flex-col items-center gap-2 step-active">
|
|
<span class="text-label-md">유형</span>
|
|
</div>
|
|
<div class="flex-grow h-[1px] bg-outline-variant mx-4 mt-[-4px]"></div>
|
|
<div class="flex flex-col items-center gap-2 text-on-surface-variant">
|
|
<span class="text-label-md">정보</span>
|
|
</div>
|
|
<div class="flex-grow h-[1px] bg-outline-variant mx-4 mt-[-4px]"></div>
|
|
<div class="flex flex-col items-center gap-2 text-on-surface-variant">
|
|
<span class="text-label-md">인증</span>
|
|
</div>
|
|
<div class="flex-grow h-[1px] bg-outline-variant mx-4 mt-[-4px]"></div>
|
|
<div class="flex flex-col items-center gap-2 text-on-surface-variant">
|
|
<span class="text-label-md">완료</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="p-12 space-y-12">
|
|
<!-- Step 1: Type Selection -->
|
|
<section>
|
|
<h2 class="font-headline-md text-headline-md text-center mb-8">회원 유형을 선택해 주세요</h2>
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-stack-md">
|
|
<!-- Exhibitor -->
|
|
<label class="relative cursor-pointer group">
|
|
<input checked="" class="peer sr-only" name="member_type" type="radio"/>
|
|
<div class="flex flex-col items-center justify-center p-6 border border-outline-variant rounded-xl group-hover:bg-primary-fixed transition-all peer-checked:border-primary peer-checked:ring-2 peer-checked:ring-primary h-full">
|
|
<span class="material-symbols-outlined text-4xl mb-4 text-primary" style="font-variation-settings: 'FILL' 0;">business_center</span>
|
|
<span class="font-title-sm text-title-sm">참가업체</span>
|
|
<span class="font-body-sm text-body-sm text-on-surface-variant text-center mt-2">전시 부스 참가 및 운영</span>
|
|
</div>
|
|
</label>
|
|
<!-- Contractor -->
|
|
<label class="relative cursor-pointer group">
|
|
<input class="peer sr-only" name="member_type" type="radio"/>
|
|
<div class="flex flex-col items-center justify-center p-6 border border-outline-variant rounded-xl group-hover:bg-primary-fixed transition-all peer-checked:border-primary peer-checked:ring-2 peer-checked:ring-primary h-full">
|
|
<span class="material-symbols-outlined text-4xl mb-4 text-primary" style="font-variation-settings: 'FILL' 0;">construction</span>
|
|
<span class="font-title-sm text-title-sm">등록(장치)업체</span>
|
|
<span class="font-body-sm text-body-sm text-on-surface-variant text-center mt-2">장치 공사 및 유지보수</span>
|
|
</div>
|
|
</label>
|
|
<!-- Visitor -->
|
|
<label class="relative cursor-pointer group">
|
|
<input class="peer sr-only" name="member_type" type="radio"/>
|
|
<div class="flex flex-col items-center justify-center p-6 border border-outline-variant rounded-xl group-hover:bg-primary-fixed transition-all peer-checked:border-primary peer-checked:ring-2 peer-checked:ring-primary h-full">
|
|
<span class="material-symbols-outlined text-4xl mb-4 text-primary" style="font-variation-settings: 'FILL' 0;">groups</span>
|
|
<span class="font-title-sm text-title-sm">관람객</span>
|
|
<span class="font-body-sm text-body-sm text-on-surface-variant text-center mt-2">전시회 참관 및 이벤트</span>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<p class="text-center mt-4 font-body-sm text-body-sm text-primary italic">* 킨텍스 등록업체만 가입 가능합니다.</p>
|
|
</section>
|
|
<hr class="border-outline-variant"/>
|
|
<!-- Sign-up Form -->
|
|
<section class="space-y-6">
|
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-stack-md">
|
|
<!-- Name -->
|
|
<div class="space-y-2">
|
|
<label class="font-label-md text-label-md block">이름</label>
|
|
<input class="w-full border-outline-variant rounded-lg p-3 bg-surface-bright focus:ring-primary focus:border-primary" placeholder="성함을 입력하세요" type="text"/>
|
|
</div>
|
|
<!-- Email + Verification -->
|
|
<div class="space-y-2">
|
|
<label class="font-label-md text-label-md block">이메일</label>
|
|
<div class="flex gap-2">
|
|
<input class="flex-grow border-outline-variant rounded-lg p-3 bg-surface-bright focus:ring-primary focus:border-primary" placeholder="example@email.com" type="email"/>
|
|
<button class="bg-surface-container-high border border-outline-variant text-primary font-label-md px-4 rounded-lg hover:bg-surface-container-highest transition-all whitespace-nowrap" type="button">인증코드 발송</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-stack-md">
|
|
<!-- Password -->
|
|
<div class="space-y-2">
|
|
<label class="font-label-md text-label-md block">비밀번호</label>
|
|
<input class="w-full border-outline-variant rounded-lg p-3 bg-surface-bright focus:ring-primary focus:border-primary" placeholder="8~16자 영문, 숫자, 특수문자" type="password"/>
|
|
</div>
|
|
<!-- Password Confirm -->
|
|
<div class="space-y-2">
|
|
<label class="font-label-md text-label-md block">비밀번호 확인</label>
|
|
<input class="w-full border-outline-variant rounded-lg p-3 bg-surface-bright focus:ring-primary focus:border-primary" placeholder="비밀번호 재입력" type="password"/>
|
|
</div>
|
|
</div>
|
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-stack-md">
|
|
<!-- Company Name -->
|
|
<div class="space-y-2">
|
|
<label class="font-label-md text-label-md block">업체명</label>
|
|
<input class="w-full border-outline-variant rounded-lg p-3 bg-surface-bright focus:ring-primary focus:border-primary" placeholder="사업자등록증 상의 업체명" type="text"/>
|
|
</div>
|
|
<!-- Business Number -->
|
|
<div class="space-y-2">
|
|
<label class="font-label-md text-label-md block">사업자등록번호</label>
|
|
<input class="w-full border-outline-variant rounded-lg p-3 bg-surface-bright focus:ring-primary focus:border-primary" placeholder="000-00-00000" type="text"/>
|
|
</div>
|
|
</div>
|
|
<!-- Consents -->
|
|
<div class="pt-4 space-y-3">
|
|
<label class="flex items-start gap-3 cursor-pointer group">
|
|
<input class="mt-1 rounded text-primary focus:ring-primary border-outline-variant" type="checkbox"/>
|
|
<div class="flex flex-col">
|
|
<span class="font-body-base text-body-base font-medium">전체 동의하기</span>
|
|
<span class="font-body-sm text-body-sm text-on-surface-variant">이용약관 및 개인정보 처리방침에 모두 동의합니다.</span>
|
|
</div>
|
|
</label>
|
|
<div class="pl-8 space-y-2">
|
|
<label class="flex items-center justify-between text-on-surface-variant cursor-pointer">
|
|
<div class="flex items-center gap-2">
|
|
<input class="rounded text-primary focus:ring-primary border-outline-variant" type="checkbox"/>
|
|
<span class="font-body-sm text-body-sm">이용약관 동의 (필수)</span>
|
|
</div>
|
|
<button class="text-label-xs underline hover:text-primary transition-colors" type="button">보기</button>
|
|
</label>
|
|
<label class="flex items-center justify-between text-on-surface-variant cursor-pointer">
|
|
<div class="flex items-center gap-2">
|
|
<input class="rounded text-primary focus:ring-primary border-outline-variant" type="checkbox"/>
|
|
<span class="font-body-sm text-body-sm">개인정보 처리방침 동의 (필수)</span>
|
|
</div>
|
|
<button class="text-label-xs underline hover:text-primary transition-colors" type="button">보기</button>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- Final Action -->
|
|
<div class="pt-6">
|
|
<button class="w-full bg-[#0066B3] text-on-primary py-4 rounded-lg font-headline-md hover:bg-[#004e8b] transition-all shadow-md active:scale-[0.98]">가입하기</button>
|
|
<div class="text-center mt-6">
|
|
<span class="font-body-sm text-body-sm text-on-surface-variant">이미 계정이 있으신가요?</span>
|
|
<a class="font-body-sm text-body-sm text-primary font-bold ml-2 hover:underline" href="#">로그인하기</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Decorative Background Asset -->
|
|
<div class="fixed inset-0 -z-10 opacity-5 pointer-events-none overflow-hidden">
|
|
<div class="absolute top-0 right-0 w-1/2 h-full bg-primary-container blur-[120px] rounded-full translate-x-1/2 -translate-y-1/2"></div>
|
|
<div class="absolute bottom-0 left-0 w-1/2 h-full bg-secondary-container blur-[120px] rounded-full -translate-x-1/2 translate-y-1/2"></div>
|
|
</div>
|
|
</main>
|
|
<!-- Footer -->
|
|
<footer class="w-full bg-surface-container-high border-t border-outline-variant">
|
|
<div class="w-full py-stack-lg px-container-padding max-w-[1280px] mx-auto flex flex-col md:flex-row justify-between items-center gap-stack-md">
|
|
<div class="flex flex-col items-center md:items-start gap-1">
|
|
<span class="font-title-sm text-title-sm font-bold text-on-surface">KINTEX</span>
|
|
<span class="font-body-sm text-body-sm text-on-surface-variant">© 2024 KINTEX. All rights reserved.</span>
|
|
</div>
|
|
<div class="flex flex-wrap justify-center gap-6">
|
|
<a class="font-body-sm text-body-sm text-on-surface-variant hover:text-primary underline transition-all" href="#">Privacy Policy</a>
|
|
<a class="font-body-sm text-body-sm text-on-surface-variant hover:text-primary underline transition-all" href="#">Terms of Service</a>
|
|
<a class="font-body-sm text-body-sm text-on-surface-variant hover:text-primary underline transition-all" href="#">Contact Us</a>
|
|
<a class="font-body-sm text-body-sm text-on-surface-variant hover:text-primary underline transition-all" href="#">Exhibition Schedule</a>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<script>
|
|
// Micro-interaction for radio cards
|
|
const typeCards = document.querySelectorAll('input[name="member_type"]');
|
|
typeCards.forEach(card => {
|
|
card.addEventListener('change', () => {
|
|
// Visual feedback logic if needed
|
|
});
|
|
});
|
|
|
|
// Form validation placeholder
|
|
const submitBtn = document.querySelector('button.bg-\\[\\#0066B3\\]');
|
|
submitBtn.addEventListener('click', (e) => {
|
|
e.preventDefault();
|
|
// Implementation of validation or step progression would go here
|
|
});
|
|
</script>
|
|
</body></html> |