From 435d264a1a69559f79fde2013e1e2183ed5e6e4a Mon Sep 17 00:00:00 2001 From: jinhojang6 Date: Fri, 19 Jun 2026 16:23:12 +0900 Subject: [PATCH] fix(web): update mobile text and structure in use cases section; refine descriptions in technology stack pages --- .../sections/home/use-cases-section.tsx | 17 ++- .../technology-stack/tech-overview-hero.tsx | 127 +++++++----------- apps/web/messages/en.json | 6 +- content/builders-hub/settings/en.json | 2 +- .../pages/en/technology-stack-blockchain.json | 4 +- .../pages/en/technology-stack-messaging.json | 2 +- .../pages/en/technology-stack-networking.json | 2 +- .../pages/en/technology-stack-storage.json | 2 +- content/pages/en/technology-stack.json | 8 +- 9 files changed, 74 insertions(+), 96 deletions(-) diff --git a/apps/web/components/sections/home/use-cases-section.tsx b/apps/web/components/sections/home/use-cases-section.tsx index 950ad67647..40a93f841d 100644 --- a/apps/web/components/sections/home/use-cases-section.tsx +++ b/apps/web/components/sections/home/use-cases-section.tsx @@ -11,8 +11,8 @@ import { HOME_USE_CASE_CARDS } from '@/lib/homepage-section-data' export default async function UseCasesSection({ locale }: { locale: string }) { const t = await getTranslations({ locale, namespace: 'home.useCases' }) - const renderLambdaPrizeText = () => - t.rich('lambda', { + const renderLambdaPrizeText = (key: 'lambda' | 'lambdaMobile' = 'lambda') => + t.rich(key, { lambdaPrize: (chunks: ReactNode) => ( -

- {t('headline')} - {'\n\n'} - {renderLambdaPrizeText()} -

+
+

+ {t('headlineMobile')} +

+

+ {renderLambdaPrizeText('lambdaMobile')} +

+

{t('eyebrow')}

{t('headline')} diff --git a/apps/web/components/sections/technology-stack/tech-overview-hero.tsx b/apps/web/components/sections/technology-stack/tech-overview-hero.tsx index 8ac1fb5d61..a573964d95 100644 --- a/apps/web/components/sections/technology-stack/tech-overview-hero.tsx +++ b/apps/web/components/sections/technology-stack/tech-overview-hero.tsx @@ -82,95 +82,68 @@ function StatusCard({ export default function TechOverviewHero({ data }: Props) { return ( -
- +
+ + {/* Status card — desktop, anchored top-left over the spine */}
{data.status ? : null}
-
-

- {data.eyebrow} -

-
-

- {data.body} -

- {data.ctas && data.ctas.length > 0 ? ( -
- {data.ctas.map((cta) => ( - - ))} -
- ) : null} -
+ {/* Header image — mobile, anchored top-left over the spine */} +
+
+ {data.background?.alt +
-
-
-
- {data.background?.alt -
-
-
-

- {data.eyebrow} -

-
+ {/* Eyebrow — right column */} +

+ {data.eyebrow} +

- -

- {data.headline === 'The Logos Technology Stack' ? ( - <> - The Logos - Technology Stack - - ) : ( - data.headline - )} + {/* Headline */} + +

+ {data.headline}

-
-
-

{data.body}

- {data.ctas && data.ctas.length > 0 ? ( -
- {data.ctas.map((cta) => ( - - ))} -
- ) : null} -
-
+ {/* Body + CTAs — right column */} +
+

{data.body}

+ {data.ctas && data.ctas.length > 0 ? ( +
+ {data.ctas.map((cta) => ( + + ))} +
+ ) : null} +
+
+ + {/* Divider + status — mobile only */} +
+
{data.status ? ( -
+
) : null} diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index c51d7ec5c8..cab30c327b 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -155,7 +155,9 @@ "useCases": { "eyebrow": "Use Cases", "headline": "Privacy is the condition that makes free association possible.\nLogos is the technology stack that makes it the default.", + "headlineMobile": "Privacy is the\ncondition that makes\nfree association possible.\n\nLogos is the\ntechnology stack that\nmakes it the default.", "lambda": "Explore the applications Logos is funding through the Lambda Prize.", + "lambdaMobile": "Explore the applications\nLogos is funding through\nthe Lambda Prize.", "secure": { "title": "Secure, private communications.", "body": "Resilient, private messaging for coordination in hostile environments." @@ -174,7 +176,7 @@ } }, "builderPortal": { - "title": "Basecamp.\nThe local launcher\nfor the Logos stack", + "title": "Basecamp.\nThe local launcher\nfor the Logos stack.", "description": "Basecamp is a ready-to-run Logos distribution that you deploy on your own hardware, under your control. From the moment it’s installed, you’re standing on your own ground, not connecting to someone else’s infrastructure.\n\nThe Logos runtime runs locally, core modules are loaded, and essential applications — wallet, messenger, file sharing, blockchain explorer — are ready to use from day one.", "feature1": "Explore programmes and resources to help you build your cyberstate.", "feature2": "The Node Programme is for anyone who wants to join our movement to revitalise civil society using decentralised technologies.", @@ -252,7 +254,7 @@ }, "scaffold": { "title": "Start with the Scaffold Boilerplate", - "body": "A Rust CLI for bootstrapping LSSA program_deployment projects in standalone mode." + "body": "A Rust CLI for bootstrapping LEZ (Logos Execution Zone) program_deployment projects in standalone mode." }, "sampleApps": { "title": "Sample Apps", diff --git a/content/builders-hub/settings/en.json b/content/builders-hub/settings/en.json index 3a3e827dca..d057b6020b 100644 --- a/content/builders-hub/settings/en.json +++ b/content/builders-hub/settings/en.json @@ -106,7 +106,7 @@ }, { "title": "Start with the Scaffold Boilerplate", - "description": "A Rust CLI for bootstrapping LSSA program_deployment projects in standalone mode.", + "description": "A Rust CLI for bootstrapping LEZ (Logos Execution Zone) program_deployment projects in standalone mode.", "ctas": [ { "label": "Learn more", diff --git a/content/pages/en/technology-stack-blockchain.json b/content/pages/en/technology-stack-blockchain.json index 00be0d15fd..0e18733017 100644 --- a/content/pages/en/technology-stack-blockchain.json +++ b/content/pages/en/technology-stack-blockchain.json @@ -90,7 +90,7 @@ "cards": [ { "title": "Cryptarchia:\nPrivate Proof-of-Stake", - "description": "Most proof-of-stake systems reveal who proposed each block, creating a target for censorship, bribery, and coercion. Logos solves this with Cryptarchia, a private proof-of-stake mechanism in which block proposers are selected through a private lottery and anonymised through Blend, a mixnet-based protocol.\n\nValidators take part in consensus without revealing their identity during block proposal — a privacy guarantee most blockchains cannot offer.", + "description": "Many proof-of-stake systems reveal who proposed each block, creating a target for censorship, bribery, and coercion. Logos solves this with Cryptarchia, a private proof-of-stake mechanism in which block proposers are selected through a private lottery and anonymised through Blend, a mixnet-based protocol that makes it hard to link a proposal to its proposer through network analysis.\n\nValidators take part in consensus without revealing their identity during block proposal — a level of proposer privacy that few proof-of-stake networks provide.", "image": { "src": "/images/blockchain/overview/mantle.webp", "alt": "", @@ -157,7 +157,7 @@ "width": 1280, "height": 720 }, - "cta": { "label": "Build", "href": "/builders-hub" } + "cta": { "label": "Build", "href": "/get-started" } }, { "title": "Install Basecamp", diff --git a/content/pages/en/technology-stack-messaging.json b/content/pages/en/technology-stack-messaging.json index 6b1077c442..54575386c2 100644 --- a/content/pages/en/technology-stack-messaging.json +++ b/content/pages/en/technology-stack-messaging.json @@ -146,7 +146,7 @@ "width": 1280, "height": 720 }, - "cta": { "label": "Build", "href": "/builders-hub" } + "cta": { "label": "Build", "href": "/get-started" } }, { "title": "Install Basecamp", diff --git a/content/pages/en/technology-stack-networking.json b/content/pages/en/technology-stack-networking.json index 3f1460edd7..f23f50b36a 100644 --- a/content/pages/en/technology-stack-networking.json +++ b/content/pages/en/technology-stack-networking.json @@ -152,7 +152,7 @@ "width": 1280, "height": 720 }, - "cta": { "label": "Build", "href": "/builders-hub" } + "cta": { "label": "Build", "href": "/get-started" } }, { "title": "Install Basecamp", diff --git a/content/pages/en/technology-stack-storage.json b/content/pages/en/technology-stack-storage.json index f985625b79..24c1390de0 100644 --- a/content/pages/en/technology-stack-storage.json +++ b/content/pages/en/technology-stack-storage.json @@ -164,7 +164,7 @@ "width": 1280, "height": 720 }, - "cta": { "label": "Build", "href": "/builders-hub" } + "cta": { "label": "Build", "href": "/get-started" } }, { "title": "Install Basecamp", diff --git a/content/pages/en/technology-stack.json b/content/pages/en/technology-stack.json index 5376413aa3..db651e3b18 100644 --- a/content/pages/en/technology-stack.json +++ b/content/pages/en/technology-stack.json @@ -19,9 +19,9 @@ { "componentType": "hero", "key": "techStack.hero", - "eyebrow": "A unified ecosystem.\nPrivate-by-default.\nBuilt for real life.", - "headline": "The Logos Stack", - "body": "Private-by-default infrastructure for decentralised applications, private communication, and secure storage.", + "eyebrow": "Open by design, open in spirit. Build \ntruly decentralized applications with \nthe modular Logos Technology Stack.", + "headline": "The Logos \nTechnology Stack", + "body": "The Logos technology stack is a unified ecosystem of distinct modules. The whole stack is modular, allowing developers to assemble their own desired stack from their selection of modules.", "background": { "src": "/images/technology-stack/header-status.jpg", "alt": "", @@ -143,7 +143,7 @@ "accent": "grey", "imagePosition": "left", "title": "Logos Basecamp", - "description": "Basecamp is the launcher and unified surface of the Logos stack. It is an executable that wraps the Logos runtime, initialises the Logos Core environment, and discovers and loads plugins from installed modules. It is the primary, unified interface for users to interact with applications built on Logos.", + "description": "Basecamp is the launcher and unified surface of the Logos stack. It is an executable that wraps the Logos runtime, initialises the Logos Core environment, and discovers and loads plugins from installed modules.", "image": { "src": "/images/home/figma-refresh/basecamp.webp", "alt": "",