From 0318d6fe9f8531d32f8030a07a30a107fb6df972 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 3 Jul 2026 21:49:45 -0500 Subject: [PATCH] Make hero the full landing page; move quick links into hero editor Remove the two-card destination row and the below-hero quick-links nav from the portal so the hero fills the viewport with nothing rendered after it. The 5 quick links (News, Screenshots, Five on Friday, Monthly Newsletter, About) move into the hero editor as a third buttons element in defaultLayout(), reusing the existing buttons element type so they stay fully editable with no schema changes. Also drop overflow:hidden on the hero section: on mobile, 100vh can compute smaller than window.innerHeight, and with overflow hidden the wrapped quick-links text was getting clipped at the bottom edge. Co-Authored-By: Claude Sonnet 5 --- client/src/lib/heroLayout.js | 19 ++++++++++ client/src/routes/public/Portal.jsx | 57 +---------------------------- 2 files changed, 21 insertions(+), 55 deletions(-) diff --git a/client/src/lib/heroLayout.js b/client/src/lib/heroLayout.js index 3ff659e..94aafec 100644 --- a/client/src/lib/heroLayout.js +++ b/client/src/lib/heroLayout.js @@ -84,6 +84,25 @@ export function defaultLayout(teaser) { ], }, }, + { + id: 'default-quick-links', + type: 'buttons', + x: 50, + y: 85, + z: 3, + anchor: 'center', + props: { + align: 'center', + gap: 10, + items: [ + { label: 'News', to: '/site/news', variant: 'ghost' }, + { label: 'Screenshots', to: '/site/screenshots', variant: 'ghost' }, + { label: 'Five on Friday', to: '/site/five-on-friday', variant: 'ghost' }, + { label: 'Monthly Newsletter', to: '/site/newsletter', variant: 'ghost' }, + { label: 'About', to: '/site/about', variant: 'ghost' }, + ], + }, + }, ], } } diff --git a/client/src/routes/public/Portal.jsx b/client/src/routes/public/Portal.jsx index 01f526b..9cf1fd6 100644 --- a/client/src/routes/public/Portal.jsx +++ b/client/src/routes/public/Portal.jsx @@ -1,34 +1,10 @@ import { useEffect, useMemo, useState } from 'react' -import { Link } from 'react-router-dom' import PublicLayout from '../../components/PublicLayout.jsx' import HeroElement from '../../components/HeroElement.jsx' import { useSite } from '../../contexts/SiteContext.jsx' import { api } from '../../api/client.js' import { defaultLayout, parseLayout, heroBackground } from '../../lib/heroLayout.js' -const QUICK = [ - { label: 'News', to: '/site/news' }, - { label: 'Screenshots', to: '/site/screenshots' }, - { label: 'Five on Friday', to: '/site/five-on-friday' }, - { label: 'Monthly Newsletter', to: '/site/newsletter' }, - { label: 'About', to: '/site/about' }, -] - -const DESTINATIONS = [ - { - kicker: 'Public portal', - title: 'Mysticmoon Website', - body: 'Updates, screenshots, newsletters, and weekly community posts from the shard.', - to: '/site', - }, - { - kicker: 'Knowledge base', - title: 'Mysticmoon Wiki', - body: 'Guides, maps, systems, items, monsters, crafting, lore, and rules.', - to: '/wiki', - }, -] - // Admin "Preview" opens the portal with ?preview=1 to render the unpublished draft. const PREVIEW = typeof window !== 'undefined' && new URLSearchParams(window.location.search).get('preview') === '1' @@ -77,8 +53,8 @@ export default function Portal() {
@@ -88,35 +64,6 @@ export default function Portal() { ))}
- -
- -
- -
- -
) -- 2.49.1