[chore] landing: 홈 문구 정비 (mobile.mov 제외·ignore)

This commit is contained in:
Mina Choi 2026-07-24 14:18:52 +09:00
parent 51d07bb779
commit 5318ff3263
7 changed files with 9 additions and 50 deletions

2
.gitignore vendored
View File

@ -28,3 +28,5 @@ CLAUDE.md
# 로컬 리서치 노트(크롤링 라이브러리·안티스크래핑 조사) — 추적 안 함, 로컬 참고용
/Temp.md
/new.md
/mobile.mov

View File

@ -57,8 +57,8 @@ export function HeroNeumorphic() {
className="w-full flex justify-center"
>
<video
src="/gifs/negotiation_annotated.mp4"
poster="/gifs/negotiation_annotated.jpg"
src="/gifs/negotiation_annotated_3d.mp4?v=w3"
poster="/gifs/negotiation_annotated_3d.jpg?v=w3"
autoPlay
muted
loop

View File

@ -241,8 +241,6 @@ const DEMO_TABS: DemoTab[] = [
checks: ["1:1 비대면 협상 포털 제공", "불필요한 실랑이를 예방하여 파트너십 보호"],
mockup: "phone",
gif: "/gifs/negotiation.gif",
video: "/gifs/negotiation.mp4",
poster: "/gifs/negotiation.jpg",
gifAlt: "AI 모바일 자동 협상 시연",
fallback: {
icon: Smartphone,

View File

@ -23,11 +23,11 @@ function BrowserFrame({ url, children }: { url: string; children: React.ReactNod
function PhoneFrame({ children }: { children: React.ReactNode }) {
return (
<div className="relative bg-black rounded-[48px] p-3 shadow-[0_20px_50px_rgba(0,0,0,0.15)] border-4 border-line-strong w-full max-w-[290px] aspect-[9/18] overflow-hidden flex flex-col">
<div className="absolute top-4 left-1/2 -translate-x-1/2 bg-black h-5 w-28 rounded-full z-20 flex items-center justify-around px-4">
<span className="w-1.5 h-1.5 rounded-full bg-[#1F2022]" />
<span className="w-10 h-1 bg-[#1F2022] rounded-full" />
{/* 노치는 화면 '안쪽'에 작은 아일랜드로 — 베젤과 붙으면 검은 덩어리처럼 보인다 */}
<div className="bg-white rounded-[36px] flex-1 overflow-hidden relative flex flex-col justify-center items-center">
<div className="absolute top-1 left-1/2 -translate-x-1/2 bg-black/70 h-0.5 w-3.5 rounded-full z-20" />
{children}
</div>
<div className="bg-white rounded-[36px] flex-1 overflow-hidden relative flex flex-col justify-center items-center">{children}</div>
</div>
)
}

View File

@ -1,5 +1,3 @@
import { useState } from "react";
import { Comparison } from "@/components/sections/comparison";
import { Contact } from "@/components/sections/contact";
import { CoreValues } from "@/components/sections/core-values";
@ -7,8 +5,6 @@ import { Faq } from "@/components/sections/faq";
import { FinalCTA } from "@/components/sections/final-cta";
import { Footer } from "@/components/sections/footer";
import { Header } from "@/components/sections/header";
import { HeroConsole } from "@/components/sections/hero-console";
import { HeroGlassmorphic } from "@/components/sections/hero-glassmorphic";
import { HeroNeumorphic } from "@/components/sections/hero-neumorphic";
import { HowItWorksDemo } from "@/components/sections/how-it-works-demo";
import { NegotiationConsole } from "@/components/sections/negotiation-console";
@ -30,23 +26,11 @@ export function meta() {
];
}
type HeroTheme = "neumorphic" | "glassmorphic" | "console";
export default function Home() {
// 히어로 디자인 비교용 — 스위처는 dev 에서만 노출, 배포본은 console(Live Console) 고정
const [heroTheme, setHeroTheme] = useState<HeroTheme>("console");
return (
<div className="min-h-screen bg-white text-ink font-sans antialiased selection:bg-primary/10 selection:text-primary">
<Header />
<div className="relative">
{import.meta.env.DEV && <HeroThemeSwitcher value={heroTheme} onChange={setHeroTheme} />}
{heroTheme === "neumorphic" && <HeroNeumorphic />}
{heroTheme === "glassmorphic" && <HeroGlassmorphic />}
{heroTheme === "console" && <HeroConsole />}
</div>
<HeroNeumorphic />
<NegotiationConsole />
<HowItWorksDemo />
<Reinforcement />
@ -59,28 +43,3 @@ export default function Home() {
</div>
);
}
const HERO_OPTIONS: { value: HeroTheme; label: string }[] = [
{ value: "neumorphic", label: "Phone Demo" },
{ value: "glassmorphic", label: "Soft Ambient" },
{ value: "console", label: "Live Console" },
];
function HeroThemeSwitcher({ value, onChange }: { value: HeroTheme; onChange: (theme: HeroTheme) => void }) {
return (
<div className="absolute top-24 left-1/2 -translate-x-1/2 z-30 flex items-center gap-1.5 p-1 rounded-full shadow-[0_4px_20px_rgba(0,0,0,0.06)] border border-line-strong bg-white/95 text-ink-soft backdrop-blur-md text-xs font-semibold">
<span className="pl-3.5 pr-1.5 text-[10px] uppercase tracking-wider text-ink-muted font-bold">Hero Design:</span>
{HERO_OPTIONS.map((option) => (
<button
key={option.value}
onClick={() => onChange(option.value)}
className={`px-3.5 py-1.5 rounded-full transition-all cursor-pointer ${
value === option.value ? "bg-primary text-white shadow-sm font-bold" : "hover:text-ink"
}`}
>
{option.label}
</button>
))}
</div>
);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 85 KiB