전체적인 리팩토링

This commit is contained in:
2026-03-12 09:26:27 +09:00
parent 406af7408a
commit e51d767878
97 changed files with 13651 additions and 363 deletions

View File

@@ -21,21 +21,21 @@ interface StartStep {
const START_STEPS: StartStep[] = [
{
step: "01",
title: "1분이면 충분해요",
title: "앱키 연결, 1분이면 ",
description:
"복잡한 서류나 방문 없이, 쓰던 계좌 그대로 안전하게 연결할 수 있어요.",
"복잡한 절차 없이, 지금 쓰는 계좌로 바로 시작할 수 있어요.",
},
{
step: "02",
title: "내 스타일대로 골라보세요",
title: "투자금/손실선만 입력하세요",
description:
"공격적인 투자부터 안정적인 관리까지, 나에게 딱 맞는 전략이 준비되어 있어요.",
"어렵게 계산할 필요 없이, 내가 감당 가능한 금액만 정하면 돼요.",
},
{
step: "03",
title: "이제 일상을 즐기세요",
title: "신호 확인 후 자동 실행",
description:
"차트는 JOORIN-E가 하루 종일 보고 있을게요. 마음 편히 본업에 집중하세요.",
"차트 감시는 JOORIN-E가 맡고, 당신은 중요한 순간만 확인하면 됩니다.",
},
];
@@ -50,7 +50,7 @@ export default async function HomePage() {
} = await supabase.auth.getUser();
const primaryCtaHref = user ? AUTH_ROUTES.DASHBOARD : AUTH_ROUTES.SIGNUP;
const primaryCtaLabel = user ? "시작하기" : "지금 무료로 시작하기";
const primaryCtaLabel = user ? "내 전략 시작하기" : "무료로 시작하기";
return (
<div className="flex min-h-screen flex-col overflow-x-hidden bg-black text-white selection:bg-brand-500/30">
@@ -69,21 +69,21 @@ export default async function HomePage() {
<div className="flex flex-col items-center text-center">
<span className="inline-flex animate-in fade-in-0 slide-in-from-top-2 items-center gap-2 rounded-full border border-brand-400/30 bg-white/5 px-4 py-1.5 text-xs font-medium tracking-wide text-brand-200 backdrop-blur-md duration-1000">
<Sparkles className="h-3.5 w-3.5" />
, JOORIN-E
, JOORIN-E
</span>
<h1 className="mt-8 animate-in slide-in-from-bottom-4 text-5xl font-black tracking-tight text-white duration-1000 md:text-8xl">
,
<br />
<span className="bg-linear-to-b from-brand-300 via-brand-200 to-brand-500 bg-clip-text text-transparent">
.
.
</span>
</h1>
<p className="mt-8 max-w-2xl animate-in slide-in-from-bottom-4 text-sm leading-relaxed text-white/60 duration-1000 md:text-xl">
, .
, .
<br className="hidden md:block" />
24 .
, .
</p>
<div className="mt-12 flex animate-in slide-in-from-bottom-6 flex-col gap-4 duration-1000 sm:flex-row">
@@ -111,14 +111,14 @@ export default async function HomePage() {
<div className="flex flex-col items-center gap-16 md:flex-row md:items-start">
<div className="flex-1 text-center md:text-left">
<h2 className="text-3xl font-black md:text-5xl">
<br />
<span className="text-brand-300"> 3 .</span>
<span className="text-brand-300">3 .</span>
</h2>
<p className="mt-6 text-sm leading-relaxed text-white/50 md:text-lg">
JOORIN-E가 .
-&gt; / -&gt; .
<br />
&apos;&apos; .
, .
</p>
</div>
@@ -166,20 +166,18 @@ export default async function HomePage() {
</div>
<div>
<h3 className="text-lg font-bold text-brand-100">
, ?
/, ?
</h3>
<p className="mt-2 text-sm leading-relaxed text-brand-200/70">
<strong className="text-brand-200">
, .
.
</strong>
<br />
JOORIN-E는 API
.
JOORIN-E는 ,
<br className="hidden md:block" />
()
,
API .
<br className="hidden md:block" />
.
.
</p>
</div>
</div>
@@ -190,9 +188,9 @@ export default async function HomePage() {
<section className="container mx-auto max-w-5xl px-4 py-32">
<div className="relative overflow-hidden rounded-[2.5rem] border border-brand-500/20 bg-linear-to-b from-brand-500/10 to-transparent p-12 text-center md:p-24">
<h2 className="text-3xl font-black md:text-6xl">
.
<br />
.
.
</h2>
<div className="mt-12 flex justify-center">
<Button