refactor: update "Explore Docs" buttons across all pages to link to docs.projectmycelium.com

- Changed all "Explore Docs" buttons from internal links to external docs.projectmycelium.com links with target="_blank"
- Updated CloudArchitecture, CloudHeroNew, CloudIntro, GpuHero, NodeHero, StorageHero, and CallToAction components
- Added "Explore Docs" buttons to AgentHeroAlt and ComputeCapabilities components
- Updated HomeBlink, HomeSpotlight, and HomeCTA to use external docs link instead of onClick
This commit is contained in:
2025-11-26 14:06:07 +01:00
parent 1834ec9391
commit d6a5f70bd6
20 changed files with 93 additions and 41 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 KiB

BIN
public/images/reserve2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 KiB

View File

@@ -30,6 +30,14 @@ export function Footer() {
<Link to="/nodes" className="text-sm text-gray-700 hover:text-cyan-500 transition-colors"> <Link to="/nodes" className="text-sm text-gray-700 hover:text-cyan-500 transition-colors">
Nodes Nodes
</Link> </Link>
<a
href="https://docs.projectmycelium.com/"
target="_blank"
rel="noopener noreferrer"
className="text-sm text-gray-700 hover:text-cyan-500 transition-colors"
>
Docs
</a>
<Link to="/mediakit" className="text-sm text-gray-700 hover:text-cyan-500 transition-colors"> <Link to="/mediakit" className="text-sm text-gray-700 hover:text-cyan-500 transition-colors">
Media Kit Media Kit
</Link> </Link>

View File

@@ -1,6 +1,7 @@
'use client' 'use client'
import { Eyebrow, H3, P } from '@/components/Texts' import { Eyebrow, H3, P } from '@/components/Texts'
import { Button } from '@/components/Button'
export function AgentHeroAlt() { export function AgentHeroAlt() {
return ( return (
@@ -33,6 +34,16 @@ Private, local, and autonomous by design, they give you everything you need to b
<div className="mt-10 flex items-center gap-x-6"> <div className="mt-10 flex items-center gap-x-6">
{/* TODO: Hero CTAs (Follow Development / Explore Docs) to be added when links are ready. {/* TODO: Hero CTAs (Follow Development / Explore Docs) to be added when links are ready.
Previously two Buttons here with href="#". */} Previously two Buttons here with href="#". */}
<Button
variant="solid"
color="cyan"
as="a"
to="https://docs.projectmycelium.com/ai-agent-framework/"
target="_blank"
rel="noreferrer noopener"
>
Explore docs
</Button>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -67,14 +67,14 @@ export function CallToAction() {
<Button <Button
as="a" as="a"
to="https://threefold.info/mycelium_network/docs/" to="https://docs.projectmycelium.com/ai-agent-framework/"
variant="link" variant="link"
color="white" color="white"
className="inline-flex items-center gap-1.5" className="inline-flex items-center gap-1.5"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
Follow Development Explore Docs
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
</Button> </Button>
</div> </div>

View File

@@ -50,7 +50,7 @@ export function CallToAction() {
</p> </p>
{/* ✅ Two cards, stacked center with spacing */} {/* ✅ Two cards, stacked center with spacing */}
<div className="mt-10 flex flex-wrap justify-center gap-x-10 gap-y-8"> <div className="mt-6 flex flex-wrap justify-center gap-x-6 gap-y-6">
<div className="flex flex-col items-center text-center max-w-xs"> <div className="flex flex-col items-center text-center max-w-xs">
<Button to="/nodes" variant="solid" color="cyan" className="mt-4"> <Button to="/nodes" variant="solid" color="cyan" className="mt-4">
Host a Node Host a Node

View File

@@ -75,7 +75,7 @@ export function CloudArchitecture() {
<Button variant="solid" color="cyan" href="/start"> <Button variant="solid" color="cyan" href="/start">
Get Started Get Started
</Button> </Button>
<Button variant="outline" color="white" href="/docs"> <Button variant="outline" color="white" href="https://docs.projectmycelium.com/" target="_blank">
Explore Docs Explore Docs
</Button> </Button>
</div> </div>

View File

@@ -42,7 +42,7 @@ export function CloudHeroNew() {
</Button> </Button>
<Button <Button
as="a" as="a"
to="https://myceliumcloud.tf/docs" to="https://docs.projectmycelium.com/cloud/"
variant="outline" variant="outline"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"

View File

@@ -59,20 +59,19 @@ const tabs = [
}, },
]; ];
const tabButtons = { const tabButtons: Record<string, { primary: string; secondary?: string }> = {
kubernetes: { kubernetes: {
primary: "Deploy a Cluster", primary: "Deploy a Cluster",
secondary: "Learn More", secondary: "Learn More",
}, },
vdc: { vdc: {
primary: "Follow Development", primary: "Learn More",
secondary: "Learn More",
}, },
qsfs: { qsfs: {
primary: "View Docs", primary: "View Docs",
secondary: "Explore Integration", secondary: "Explore Integration",
}, },
} as const; };
export function CloudIntro() { export function CloudIntro() {
const [active, setActive] = useState("kubernetes"); const [active, setActive] = useState("kubernetes");
@@ -81,13 +80,12 @@ export function CloudIntro() {
const primaryLinks: Record<string, string | undefined> = { const primaryLinks: Record<string, string | undefined> = {
kubernetes: "https://myceliumcloud.tf", kubernetes: "https://myceliumcloud.tf",
vdc: undefined, vdc: "https://docs.projectmycelium.com/vdc/",
qsfs: undefined, qsfs: undefined,
}; };
const secondaryLinks: Record<string, string | undefined> = { const secondaryLinks: Record<string, string | undefined> = {
kubernetes: "https://myceliumcloud.tf/docs", kubernetes: "https://docs.projectmycelium.com/cloud/kubernetes-basics/",
vdc: "https://threefold.info/mycelium_vdc/docs/",
qsfs: undefined, qsfs: undefined,
}; };
@@ -123,9 +121,9 @@ export function CloudIntro() {
{/* Left: Code UI */} {/* Left: Code UI */}
<div className="w-full lg:w-1/2"> <div className="w-full lg:w-1/2">
<img <img
src="/images/cloud/reserve.png" src="/images/cloud/reserve3.png"
alt="Mycelium Cloud reserve" alt="Mycelium Cloud reserve"
className="w-full h-auto rounded-xl border border-white/10 object-cover" className="w-full h-full object-contain"
/> />
</div> </div>
@@ -173,7 +171,7 @@ export function CloudIntro() {
</ul> </ul>
</div> </div>
{currentButtons && ( {currentButtons && active !== "qsfs" && (
<div className="mt-8 flex flex-wrap gap-4"> <div className="mt-8 flex flex-wrap gap-4">
<Button <Button
as={primaryLinks[active] ? "a" : undefined} as={primaryLinks[active] ? "a" : undefined}
@@ -187,6 +185,7 @@ export function CloudIntro() {
{currentButtons.primary} {currentButtons.primary}
</Button> </Button>
{currentButtons.secondary && (
<Button <Button
as={secondaryLinks[active] ? "a" : undefined} as={secondaryLinks[active] ? "a" : undefined}
to={secondaryLinks[active] ?? "#"} to={secondaryLinks[active] ?? "#"}
@@ -198,6 +197,7 @@ export function CloudIntro() {
> >
{currentButtons.secondary} {currentButtons.secondary}
</Button> </Button>
)}
</div> </div>
)} )}

View File

@@ -2,6 +2,7 @@
import { Container } from '@/components/Container' import { Container } from '@/components/Container'
import { Eyebrow, H3, P } from '@/components/Texts' import { Eyebrow, H3, P } from '@/components/Texts'
import { Button } from '@/components/Button'
const capabilities = [ const capabilities = [
{ {
@@ -77,6 +78,18 @@ export function ComputeCapabilities() {
{/* Button section */} {/* Button section */}
{/* TODO: CTA buttons (Get Started / Explore Docs) to be re-enabled when real links are available. {/* TODO: CTA buttons (Get Started / Explore Docs) to be re-enabled when real links are available.
Previously rendered here as two Buttons with href="#". */} Previously rendered here as two Buttons with href="#". */}
<div className="mt-10 flex justify-center gap-x-6">
<Button
variant="outline"
color="white"
as="a"
to="https://docs.projectmycelium.com/"
target="_blank"
rel="noreferrer noopener"
>
Explore docs
</Button>
</div>
</Container> </Container>
</div> </div>

View File

@@ -25,7 +25,7 @@ export function GpuHero() {
<Button to="/gpu#gpu-getting-started" variant="solid" color="cyan"> <Button to="/gpu#gpu-getting-started" variant="solid" color="cyan">
How it works How it works
</Button> </Button>
<Button to="#gpu-architecture" as="a" variant="outline"> <Button to="https://docs.projectmycelium.com/" as="a" variant="outline" target="_blank">
Explore Docs Explore Docs
</Button> </Button>
</div> </div>

View File

@@ -49,7 +49,14 @@ export function HomeBlink({ onGetStartedClick }: { onGetStartedClick: () => void
<Button variant="solid" color="cyan" onClick={onGetStartedClick}> <Button variant="solid" color="cyan" onClick={onGetStartedClick}>
Enter the Network Enter the Network
</Button> </Button>
<Button variant="outline" color="gray" onClick={onGetStartedClick}> <Button
variant="outline"
color="gray"
as="a"
to="https://docs.projectmycelium.com/"
target="_blank"
rel="noreferrer noopener"
>
Explore Docs Explore Docs
</Button> </Button>
</div> </div>

View File

@@ -44,7 +44,14 @@ export function HomeSpotlight({
<Button variant="solid" color="cyan" onClick={onGetStartedClick}> <Button variant="solid" color="cyan" onClick={onGetStartedClick}>
Enter the Network Enter the Network
</Button> </Button>
<Button variant="outline" color="gray" onClick={onGetStartedClick}> <Button
variant="outline"
color="gray"
as="a"
to="https://docs.projectmycelium.com/"
target="_blank"
rel="noreferrer noopener"
>
Explore Docs Explore Docs
</Button> </Button>
</div> </div>

View File

@@ -28,9 +28,14 @@ export function HomeCTA() {
</button> </button>
{/* Button 2 */} {/* Button 2 */}
<button className="inline-flex items-center justify-between bg-white border border-gray-300 rounded-full px-6 py-3 text-sm font-semibold shadow-sm hover:border-cyan-500 transition"> <a
href="https://docs.projectmycelium.com/"
target="_blank"
rel="noreferrer noopener"
className="inline-flex items-center justify-between bg-white border border-gray-300 rounded-full px-6 py-3 text-sm font-semibold shadow-sm hover:border-cyan-500 transition"
>
Explore Docs Explore Docs
</button> </a>
</div> </div>
</div> </div>

View File

@@ -103,7 +103,7 @@ export function Hero() {
</Button> </Button>
<Button <Button
as="a" as="a"
to="https://threefold.info/mycelium_network/docs/" to="https://docs.projectmycelium.com/network/"
variant="outline" variant="outline"
color="gray" color="gray"
target="_blank" target="_blank"

View File

@@ -45,15 +45,15 @@ export function CallToAction() {
while expanding the sovereign digital grid. while expanding the sovereign digital grid.
</p> </p>
<div className="mt-6 flex flex-wrap justify-center gap-x-10 gap-y-8"> <div className="mt-6 flex flex-wrap justify-center gap-x-6 gap-y-8">
<div className="flex flex-col items-center text-center max-w-xs"> <div className="flex flex-col items-center text-center max-w-xs">
<Button to="/host" variant="solid" color="cyan" className="mt-4"> <Button to="https://docs.projectmycelium.com/hosters/buy-node/" variant="solid" color="cyan" className="mt-4" target="_blank">
Join Mycelium Join Mycelium Grid
</Button> </Button>
</div> </div>
<div className="flex flex-col items-center text-center max-w-xs"> <div className="flex flex-col items-center text-center max-w-xs">
<Button to="/docs" variant="outline" color="white" className="mt-4"> <Button to="https://docs.projectmycelium.com/hosters/" variant="outline" color="white" className="mt-4" target="_blank">
Explore Docs Explore Docs
</Button> </Button>
</div> </div>

View File

@@ -36,7 +36,7 @@ export function NodeHero() {
> >
How it works How it works
</Button> </Button>
<Button to="https://threefold.info/mycelium_economics/docs/faq/hosting_faq" as="a" variant="outline" target="_blank"> <Button to="https://docs.projectmycelium.com/hosters/" as="a" variant="outline" target="_blank">
Explore Docs Explore Docs
</Button> </Button>
</div> </div>

View File

@@ -96,11 +96,11 @@ export function CallToAction() {
</Button> </Button>
</div> </div>
<div className="flex flex-col items-center text-center max-w-xs"> {/* <div className="flex flex-col items-center text-center max-w-xs">
<Button to="/pods#pods-learn-more" variant="outline" color="white" className="mt-4"> <Button to="/pods#pods-learn-more" variant="outline" color="white" className="mt-4">
Learn More Learn More
</Button> </Button>
</div> </div> */}
</div> </div>
</div> </div>
</Container> </Container>

View File

@@ -31,7 +31,7 @@ export default function Homepod() {
Mycelium Pods - Coming Soon Mycelium Pods - Coming Soon
</Eyebrow> </Eyebrow>
<H3 className="mt-4"> <H3 className="mt-4">
Your Private Space in the New Internet Your Private Space on the Network
</H3> </H3>
<P className="mt-6 text-gray-600"> <P className="mt-6 text-gray-600">
Pods are personal digital spaces on the Mycelium Network. They are private, persistent, and fully under your control. Run conversations, files, and tools directly on the network instead of through central servers Pods are personal digital spaces on the Mycelium Network. They are private, persistent, and fully under your control. Run conversations, files, and tools directly on the network instead of through central servers

View File

@@ -26,8 +26,9 @@ export function StorageHero() {
How It Works How It Works
</Button> </Button>
<Button <Button
to="/storage#storage-developer-experience" to="https://docs.projectmycelium.com/"
variant="outline" variant="outline"
target="_blank"
> >
Explore Docs Explore Docs
</Button> </Button>