fix: center hero nav primary button using CSS grid

Use a 3-column grid layout (1fr auto 1fr) to ensure the "Read the Spec"
button is perfectly centered regardless of the different widths of the
"About" and "FAQ" buttons on either side.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-13 23:39:14 +00:00
parent 0f01a1f154
commit cb43e511c2

View File

@@ -13,9 +13,9 @@ interface Props {
const { version, versions, svgContent } = Astro.props; const { version, versions, svgContent } = Astro.props;
const navItems = [ const navItems = [
{ id: "about", label: "About" }, { id: "about", label: "About", align: "end" },
{ id: "spec", label: "Read the Spec", primary: true }, { id: "spec", label: "Read the Spec", primary: true },
{ id: "faq", label: "FAQ" }, { id: "faq", label: "FAQ", align: "start" },
]; ];
const baseClasses = `inline-flex items-center justify-center gap-2 const baseClasses = `inline-flex items-center justify-center gap-2
@@ -29,6 +29,7 @@ const primaryClasses = `bg-sky-600 text-white
const secondaryClasses = `text-gray-600 dark:text-neutral-400 const secondaryClasses = `text-gray-600 dark:text-neutral-400
hover:bg-gray-100 hover:text-gray-950 hover:bg-gray-100 hover:text-gray-950
dark:hover:bg-neutral-800 dark:hover:text-neutral-50`; dark:hover:bg-neutral-800 dark:hover:text-neutral-50`;
--- ---
<section <section
@@ -133,7 +134,7 @@ const secondaryClasses = `text-gray-600 dark:text-neutral-400
<!-- Navigation links --> <!-- Navigation links -->
<nav <nav
class="animate-fade-in-up delay-400 class="animate-fade-in-up delay-400
flex flex-nowrap items-center justify-center gap-2 sm:gap-4" grid grid-cols-[1fr_auto_1fr] items-center gap-2 sm:gap-4"
> >
{ {
navItems.map((item) => ( navItems.map((item) => (
@@ -142,6 +143,8 @@ const secondaryClasses = `text-gray-600 dark:text-neutral-400
class:list={[ class:list={[
baseClasses, baseClasses,
item.primary ? primaryClasses : secondaryClasses, item.primary ? primaryClasses : secondaryClasses,
item.align === "end" && "justify-self-end",
item.align === "start" && "justify-self-start",
]} ]}
> >
{item.label} {item.label}