--- import { site, LITERALS, HEAD_FONTS } from "../data/site"; import { ui, LANGS, LANG_LABEL, LANG_PATH, type Lang } from "../i18n/ui"; import Creeper from "../components/Creeper.astro"; import PixelIcon from "../components/PixelIcon.astro"; import CopyChip from "../components/CopyChip.astro"; import ServerListPanel from "../components/ServerListPanel.astro"; import "../styles/main.css"; // One static page per locale: en at "/", es at "/es/", eu at "/eu/". export function getStaticPaths() { return [ { params: { lang: undefined }, props: { locale: "en" as Lang } }, { params: { lang: "es" }, props: { locale: "es" as Lang } }, { params: { lang: "eu" }, props: { locale: "eu" as Lang } }, ]; } const { locale } = Astro.props; const t = ui[locale]; const { theme, launcher } = site; const headFont = HEAD_FONTS[theme.headFont] ?? HEAD_FONTS.pixelify; const launcherName = launcher.name; // Build-time floating dust bits (index-derived, no runtime RNG). const dustBits = Array.from({ length: 16 }, (_, i) => { const size = 3 + (i % 3) * 2; return { left: `${(i * 61) % 100}%`, size: `${size}px`, bg: i % 4 === 0 ? "var(--gold)" : "var(--accent)", opacity: 0.18 + (i % 3) * 0.06, anim: `rise ${13 + (i % 7) * 3}s linear ${i * 0.7}s infinite`, }; }); --- {site.name} — {t.hero.howToJoin} {LANGS.map((l) => )}
{theme.dust && ( )}
{t.hero.eyebrow} {site.mcVersion}

{t.hero.tagline}

{t.hero.sub}

Java {site.mcVersion} {t.hero.metaModpack} {t.hero.metaLan}
{t.status.eyebrow}

{t.status.title}

{t.status.lead}

{site.stats.map((s, i) => (
{s.key}
{t.statLabels[i]}
))}
{t.features.eyebrow}

{t.features.title}

{t.features.lead}

{site.features.map((f, i) => (

{t.features.items[i].h}

{t.features.items[i].p}

))}
{t.join.eyebrow}

{t.join.title}

{t.join.lead}

1
{t.join.s1.kicker}

{t.join.s1.h.replace("{name}", launcherName)}

{t.join.s1.p.replace(/\{name\}/g, launcherName)}

{launcher.downloads.map((d) => ( {d.os} · {d.hint} ))}
2
{t.join.s2.kicker}

{t.join.s2.h}

{t.join.s2.pa} {LITERALS.authlib} {t.join.s2.pb}

{t.join.s2.registerPre} {site.authUrl}.

{t.join.s2.caPre} {t.join.s2.caLink} {t.join.s2.caPost}
3
{t.join.s3.kicker}

{t.join.s3.h}

{t.join.s3.p}

4
{t.join.s4.kicker}

{t.join.s4.h}

{t.join.s4.pa} {LITERALS.multiplayer}{LITERALS.addServer}{t.join.s4.pb}