diff --git a/src/app/(site)/page.tsx b/src/app/(site)/page.tsx index 41e9d75e..9abe462e 100644 --- a/src/app/(site)/page.tsx +++ b/src/app/(site)/page.tsx @@ -139,7 +139,7 @@ export default async function Home() { ]; return ( -
+
{/* ── Top Bar ── */}
-
- {features.map((f) => ( - -
+
+ {tp("sectionFeaturesLabel")} +

+ {tp("sectionFeaturesTitle")} +

+
+
+ {features.map((f) => ( + - -
-

- {f.title} -

-

- {f.desc} -

- - ))} +
+ +
+

+ {f.title} +

+

+ {f.desc} +

+ + ))} +
{/* ── Stats + Login ── */} -
- {[ - { - value: users, - label: tp("statsCitizens"), - icon: "/assets/images/icons/friends.png", - live: false, - }, - { - value: rooms, - label: tp("statsRooms"), - icon: "/assets/images/icons/catalog.png", - live: false, - }, - { - value: online, - label: tp("statsOnline"), - icon: "/assets/images/icons/navigation/me.png", - live: true, - }, - { - value: articles?.length ?? null, - label: tp("statsArticles"), - icon: "/assets/images/icons/article.gif", - live: false, - }, - ].map((s) => ( - -
- {s.value === null ? ( - {te("unavailable")} - ) : s.live ? ( - - ) : ( - - )} -
-
+
+ {tp("sectionStatsLabel")} +

+ {tp("sectionStatsTitle")} +

+
+
+ {[ + { + value: users, + label: tp("statsCitizens"), + icon: "/assets/images/icons/friends.png", + live: false, + }, + { + value: rooms, + label: tp("statsRooms"), + icon: "/assets/images/icons/catalog.png", + live: false, + }, + { + value: online, + label: tp("statsOnline"), + icon: "/assets/images/icons/navigation/me.png", + live: true, + }, + { + value: articles?.length ?? null, + label: tp("statsArticles"), + icon: "/assets/images/icons/article.gif", + live: false, + }, + ].map((s) => ( + - - {s.label} -
- - ))} +
+ {s.value === null ? ( + {te("unavailable")} + ) : s.live ? ( + + ) : ( + + )} +
+
+ + {s.label} +
+ + ))} +
{/* ── Login + Online users ── */} +
+ {tp("sectionCommunityLabel")} +

+ {tp("sectionCommunityTitle")} +

+
summary .details-open\:rotate-180 { background-clip: text; color: transparent; } + +/* Section eyebrow label with a small accent tick. */ +.eyebrow { + display: inline-flex; + align-items: center; + gap: 0.5rem; + font-size: 11px; + font-weight: 800; + letter-spacing: 0.18em; + text-transform: uppercase; + color: var(--color-primary-readable, var(--color-primary)); +} +.eyebrow::before { + content: ""; + width: 1.25rem; + height: 2px; + border-radius: 999px; + background: currentColor; + opacity: 0.75; +} + +/* Section heading on the public landing pages. */ +.section-title { + color: var(--color-text-readable); + font-family: var(--font-nunito); + font-weight: 900; + letter-spacing: -0.02em; +} diff --git a/src/messages/en.json b/src/messages/en.json index c663d05a..ecf51402 100644 --- a/src/messages/en.json +++ b/src/messages/en.json @@ -282,7 +282,13 @@ "featuresCommunity": "Community", "featuresCommunityDesc": "Make friends and chat", "featuresGames": "Games", - "featuresGamesDesc": "Compete and have fun" + "featuresGamesDesc": "Compete and have fun", + "sectionFeaturesLabel": "Features", + "sectionFeaturesTitle": "Everything a great hotel needs", + "sectionStatsLabel": "Live stats", + "sectionStatsTitle": "A community that keeps growing", + "sectionCommunityLabel": "Community", + "sectionCommunityTitle": "Make yourself at home" }, "news": { "title": "News",