|
@@ -51,7 +51,7 @@ export default async function HomePage({ params }: Props) {
|
|
|
return (
|
|
return (
|
|
|
<div>
|
|
<div>
|
|
|
{/* Hero — Edulan 式:分栏 + 装饰卡片 */}
|
|
{/* Hero — Edulan 式:分栏 + 装饰卡片 */}
|
|
|
- <section className="relative overflow-hidden border-b border-slate-200/80 bg-gradient-to-br from-slate-900 via-[#0c1929] to-slate-900 text-white">
|
|
|
|
|
|
|
+ <section className="ui-enter relative overflow-hidden border-b border-slate-200/80 bg-gradient-to-br from-slate-900 via-[#0c1929] to-slate-900 text-white">
|
|
|
<div className="hero-grid pointer-events-none absolute inset-0 opacity-60" />
|
|
<div className="hero-grid pointer-events-none absolute inset-0 opacity-60" />
|
|
|
<div className="pointer-events-none absolute -right-20 top-1/2 h-[420px] w-[420px] -translate-y-1/2 rounded-full bg-blue-500/20 blur-3xl" />
|
|
<div className="pointer-events-none absolute -right-20 top-1/2 h-[420px] w-[420px] -translate-y-1/2 rounded-full bg-blue-500/20 blur-3xl" />
|
|
|
<div className="pointer-events-none absolute -left-32 bottom-0 h-72 w-72 rounded-full bg-amber-500/15 blur-3xl" />
|
|
<div className="pointer-events-none absolute -left-32 bottom-0 h-72 w-72 rounded-full bg-amber-500/15 blur-3xl" />
|
|
@@ -70,13 +70,13 @@ export default async function HomePage({ params }: Props) {
|
|
|
<div className="mt-10 flex flex-wrap gap-4">
|
|
<div className="mt-10 flex flex-wrap gap-4">
|
|
|
<Link
|
|
<Link
|
|
|
href="/courses"
|
|
href="/courses"
|
|
|
- className="inline-flex items-center justify-center rounded-full bg-gradient-to-r from-amber-400 to-amber-500 px-8 py-3.5 text-sm font-bold text-[var(--navy)] shadow-xl shadow-amber-500/20 transition hover:from-amber-300 hover:to-amber-400"
|
|
|
|
|
|
|
+ className="ui-interactive-btn inline-flex items-center justify-center rounded-full bg-gradient-to-r from-amber-400 to-amber-500 px-8 py-3.5 text-sm font-bold text-[var(--navy)] shadow-xl shadow-amber-500/20 transition hover:from-amber-300 hover:to-amber-400"
|
|
|
>
|
|
>
|
|
|
{t("ctaCourses")}
|
|
{t("ctaCourses")}
|
|
|
</Link>
|
|
</Link>
|
|
|
<Link
|
|
<Link
|
|
|
href="/about"
|
|
href="/about"
|
|
|
- className="inline-flex items-center justify-center rounded-full border-2 border-white/25 bg-white/5 px-8 py-3.5 text-sm font-semibold text-white backdrop-blur-sm transition hover:border-white/40 hover:bg-white/10"
|
|
|
|
|
|
|
+ className="ui-interactive-btn inline-flex items-center justify-center rounded-full border-2 border-white/25 bg-white/5 px-8 py-3.5 text-sm font-semibold text-white backdrop-blur-sm transition hover:border-white/40 hover:bg-white/10"
|
|
|
>
|
|
>
|
|
|
{t("ctaAbout")}
|
|
{t("ctaAbout")}
|
|
|
</Link>
|
|
</Link>
|
|
@@ -127,7 +127,7 @@ export default async function HomePage({ params }: Props) {
|
|
|
</section>
|
|
</section>
|
|
|
|
|
|
|
|
{/* 三大支柱 */}
|
|
{/* 三大支柱 */}
|
|
|
- <section className="site-container section-block">
|
|
|
|
|
|
|
+ <section className="ui-enter ui-enter-delay-1 site-container section-block">
|
|
|
<SectionHeading
|
|
<SectionHeading
|
|
|
eyebrow={t("pillarsEyebrow")}
|
|
eyebrow={t("pillarsEyebrow")}
|
|
|
title={t("pillarsTitle")}
|
|
title={t("pillarsTitle")}
|
|
@@ -139,7 +139,7 @@ export default async function HomePage({ params }: Props) {
|
|
|
return (
|
|
return (
|
|
|
<div
|
|
<div
|
|
|
key={p.title}
|
|
key={p.title}
|
|
|
- className="group shadow-card hover:shadow-card-hover rounded-3xl border border-slate-200/90 bg-white p-8 transition duration-300 hover:-translate-y-1"
|
|
|
|
|
|
|
+ className="ui-interactive-card group shadow-card rounded-3xl border border-slate-200/90 bg-white p-8"
|
|
|
>
|
|
>
|
|
|
<div
|
|
<div
|
|
|
className={`flex h-14 w-14 items-center justify-center rounded-2xl bg-gradient-to-br ${p.accent} text-white shadow-lg`}
|
|
className={`flex h-14 w-14 items-center justify-center rounded-2xl bg-gradient-to-br ${p.accent} text-white shadow-lg`}
|
|
@@ -155,7 +155,7 @@ export default async function HomePage({ params }: Props) {
|
|
|
</section>
|
|
</section>
|
|
|
|
|
|
|
|
{/* 精选课程 */}
|
|
{/* 精选课程 */}
|
|
|
- <section className="border-y border-slate-200/90 bg-gradient-to-b from-slate-50/80 to-white py-20">
|
|
|
|
|
|
|
+ <section className="ui-enter ui-enter-delay-2 border-y border-slate-200/90 bg-gradient-to-b from-slate-50/80 to-white py-20">
|
|
|
<div className="site-container">
|
|
<div className="site-container">
|
|
|
<div className="flex flex-col items-start justify-between gap-6 md:flex-row md:items-end">
|
|
<div className="flex flex-col items-start justify-between gap-6 md:flex-row md:items-end">
|
|
|
<div className="min-w-0 flex-1">
|
|
<div className="min-w-0 flex-1">
|
|
@@ -167,7 +167,7 @@ export default async function HomePage({ params }: Props) {
|
|
|
</div>
|
|
</div>
|
|
|
<Link
|
|
<Link
|
|
|
href="/courses"
|
|
href="/courses"
|
|
|
- className="shrink-0 rounded-full border-2 border-blue-600 px-6 py-2.5 text-sm font-bold text-blue-700 transition hover:bg-blue-600 hover:text-white"
|
|
|
|
|
|
|
+ className="ui-interactive-btn shrink-0 rounded-full border-2 border-blue-600 px-6 py-2.5 text-sm font-bold text-blue-700 transition hover:bg-blue-600 hover:text-white"
|
|
|
>
|
|
>
|
|
|
{t("viewAll")}
|
|
{t("viewAll")}
|
|
|
</Link>
|
|
</Link>
|
|
@@ -178,7 +178,7 @@ export default async function HomePage({ params }: Props) {
|
|
|
<Link
|
|
<Link
|
|
|
key={c.slug}
|
|
key={c.slug}
|
|
|
href={`/courses?cat=${c.category}`}
|
|
href={`/courses?cat=${c.category}`}
|
|
|
- className="group shadow-card hover:shadow-card-hover overflow-hidden rounded-3xl border border-slate-200/90 bg-white transition duration-300 hover:-translate-y-1"
|
|
|
|
|
|
|
+ className="ui-interactive-card group shadow-card overflow-hidden rounded-3xl border border-slate-200/90 bg-white"
|
|
|
>
|
|
>
|
|
|
<div className="relative h-36 overflow-hidden">
|
|
<div className="relative h-36 overflow-hidden">
|
|
|
{/* eslint-disable-next-line @next/next/no-img-element */}
|
|
{/* eslint-disable-next-line @next/next/no-img-element */}
|
|
@@ -210,7 +210,7 @@ export default async function HomePage({ params }: Props) {
|
|
|
</section>
|
|
</section>
|
|
|
|
|
|
|
|
{/* CTA 带 */}
|
|
{/* CTA 带 */}
|
|
|
- <section className="site-container section-block">
|
|
|
|
|
|
|
+ <section className="ui-enter ui-enter-delay-3 site-container section-block">
|
|
|
<div className="relative overflow-hidden rounded-[2rem] bg-gradient-to-r from-blue-700 via-blue-800 to-indigo-900 px-8 py-14 text-center text-white shadow-xl shadow-blue-900/20 md:px-16">
|
|
<div className="relative overflow-hidden rounded-[2rem] bg-gradient-to-r from-blue-700 via-blue-800 to-indigo-900 px-8 py-14 text-center text-white shadow-xl shadow-blue-900/20 md:px-16">
|
|
|
<div className="pointer-events-none absolute -right-24 -top-24 h-64 w-64 rounded-full bg-white/10 blur-3xl" />
|
|
<div className="pointer-events-none absolute -right-24 -top-24 h-64 w-64 rounded-full bg-white/10 blur-3xl" />
|
|
|
<div className="pointer-events-none absolute -bottom-16 -left-16 h-48 w-48 rounded-full bg-amber-400/20 blur-3xl" />
|
|
<div className="pointer-events-none absolute -bottom-16 -left-16 h-48 w-48 rounded-full bg-amber-400/20 blur-3xl" />
|
|
@@ -221,13 +221,13 @@ export default async function HomePage({ params }: Props) {
|
|
|
<div className="relative mt-10 flex flex-wrap justify-center gap-4">
|
|
<div className="relative mt-10 flex flex-wrap justify-center gap-4">
|
|
|
<Link
|
|
<Link
|
|
|
href="/courses"
|
|
href="/courses"
|
|
|
- className="inline-flex rounded-full bg-white px-8 py-3.5 text-sm font-bold text-blue-900 shadow-lg transition hover:bg-amber-50"
|
|
|
|
|
|
|
+ className="ui-interactive-btn inline-flex rounded-full bg-white px-8 py-3.5 text-sm font-bold text-blue-900 shadow-lg transition hover:bg-amber-50"
|
|
|
>
|
|
>
|
|
|
{t("ctaBandPrimary")}
|
|
{t("ctaBandPrimary")}
|
|
|
</Link>
|
|
</Link>
|
|
|
<Link
|
|
<Link
|
|
|
href="/contact"
|
|
href="/contact"
|
|
|
- className="inline-flex rounded-full border-2 border-white/40 px-8 py-3.5 text-sm font-semibold text-white transition hover:bg-white/10"
|
|
|
|
|
|
|
+ className="ui-interactive-btn inline-flex rounded-full border-2 border-white/40 px-8 py-3.5 text-sm font-semibold text-white transition hover:bg-white/10"
|
|
|
>
|
|
>
|
|
|
{t("ctaBandSecondary")}
|
|
{t("ctaBandSecondary")}
|
|
|
</Link>
|
|
</Link>
|