2026-05-12 16:30:36 +08:00
|
|
|
---
|
2026-05-13 13:46:21 +08:00
|
|
|
import type { Translations } from '../i18n/translations'
|
|
|
|
|
|
|
|
|
|
export interface Props {
|
|
|
|
|
t: Translations['hero']
|
2026-05-15 12:11:50 +08:00
|
|
|
download: Translations['download']
|
2026-05-13 13:46:21 +08:00
|
|
|
}
|
|
|
|
|
|
2026-05-15 12:11:50 +08:00
|
|
|
const { t, download } = Astro.props
|
2026-05-12 17:14:50 +08:00
|
|
|
const heroBg = "/assets/hero-bg.png";
|
|
|
|
|
const phoneMockup = "/assets/hero-phone.png";
|
2026-05-15 12:11:50 +08:00
|
|
|
const androidIcon = "/assets/cta-android-icon.svg";
|
|
|
|
|
const appleIcon = "/assets/cta-apple-icon.svg";
|
2026-05-18 14:58:09 +08:00
|
|
|
const defaultApkHref = "https://talkspro.xyz/download";
|
2026-05-12 16:30:36 +08:00
|
|
|
---
|
|
|
|
|
|
2026-05-13 13:46:21 +08:00
|
|
|
<section id="hero" class="hero">
|
|
|
|
|
<img alt="" class="hero__bg" src={heroBg} />
|
2026-05-12 16:30:36 +08:00
|
|
|
|
2026-05-13 13:46:21 +08:00
|
|
|
<div class="hero__inner">
|
|
|
|
|
<div class="hero__phone-column">
|
|
|
|
|
<div class="hero__phone-frame">
|
|
|
|
|
<div class="hero__phone-crop">
|
|
|
|
|
<img alt={t.phoneAlt} class="hero__phone" src={phoneMockup} />
|
2026-05-12 16:30:36 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2026-05-12 17:14:50 +08:00
|
|
|
</div>
|
2026-05-12 16:30:36 +08:00
|
|
|
|
2026-05-13 13:46:21 +08:00
|
|
|
<div class="hero__content">
|
|
|
|
|
<div class="hero__badge">
|
|
|
|
|
<p class="hero__badge-text">{t.badge}</p>
|
2026-05-12 16:30:36 +08:00
|
|
|
</div>
|
|
|
|
|
|
2026-05-13 13:46:21 +08:00
|
|
|
<div class="hero__copy">
|
|
|
|
|
<div class="hero__title">
|
|
|
|
|
<p class="hero__title-line">{t.titleLine1}</p>
|
|
|
|
|
<p class="hero__title-line">{t.titleLine2}</p>
|
2026-05-12 17:14:50 +08:00
|
|
|
</div>
|
2026-05-13 13:46:21 +08:00
|
|
|
<p class="hero__description">
|
|
|
|
|
{t.description}
|
2026-05-12 17:14:50 +08:00
|
|
|
</p>
|
2026-05-13 13:46:21 +08:00
|
|
|
<div class="hero__actions">
|
2026-05-18 14:58:09 +08:00
|
|
|
<a
|
|
|
|
|
href={defaultApkHref}
|
|
|
|
|
class="store-badge store-badge--android store-badge--browser hero__store-badge"
|
|
|
|
|
rel="noopener noreferrer"
|
|
|
|
|
target="_blank"
|
|
|
|
|
>
|
2026-05-15 12:11:50 +08:00
|
|
|
<div class="store-badge__icon-frame">
|
|
|
|
|
<img alt={download.androidAlt} class="store-badge__android-icon" src={androidIcon} />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="store-badge__copy">
|
|
|
|
|
<p class="store-badge__platform">{download.android}</p>
|
|
|
|
|
<p class="store-badge__label">{download.androidCta}</p>
|
|
|
|
|
</div>
|
2026-05-12 17:14:50 +08:00
|
|
|
</a>
|
2026-05-18 14:58:09 +08:00
|
|
|
<a
|
|
|
|
|
href="#"
|
|
|
|
|
class="store-badge store-badge--ios store-badge--apple hero__store-badge"
|
|
|
|
|
data-app-soon="1"
|
|
|
|
|
>
|
2026-05-15 12:11:50 +08:00
|
|
|
<div class="store-badge__icon-frame">
|
|
|
|
|
<img alt={download.appleAlt} class="store-badge__apple-icon" src={appleIcon} />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="store-badge__copy">
|
|
|
|
|
<p class="store-badge__platform">{download.ios}</p>
|
|
|
|
|
<p class="store-badge__label">{download.iosCta}</p>
|
|
|
|
|
</div>
|
2026-05-12 17:14:50 +08:00
|
|
|
</a>
|
|
|
|
|
</div>
|
2026-05-12 16:30:36 +08:00
|
|
|
</div>
|
|
|
|
|
|
2026-05-13 13:46:21 +08:00
|
|
|
<div class="hero__tags">
|
|
|
|
|
{t.tags.map(tag => (
|
|
|
|
|
<div class="hero__tag">
|
|
|
|
|
<span class="hero__tag-text">{tag}</span>
|
|
|
|
|
</div>
|
|
|
|
|
))}
|
2026-05-12 17:14:50 +08:00
|
|
|
</div>
|
2026-05-12 16:30:36 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|