From d51b16f8199fb4e30ef23574e56658068be823e0 Mon Sep 17 00:00:00 2001
From: wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sat, 9 May 2026 10:11:35 +0200
Subject: [PATCH 1/2] refactor(ui): ExpandableCard defaults
- forceMount to true
- space-y-[1lh] for Content children
- refactor usage to remove redundancy
- fix(i18n): extract hard-coded title string
---
app/[locale]/bug-bounty/page.tsx | 18 +-
app/[locale]/gas/_components/gas.tsx | 10 +-
app/[locale]/layer-2/_components/layer-2.tsx | 36 ++--
app/[locale]/roadmap/_components/roadmap.tsx | 54 +++---
app/[locale]/staking/_components/staking.tsx | 39 ++--
app/[locale]/videos/[slug]/page.tsx | 6 +-
src/components/ExpandableCard.tsx | 6 +-
src/components/ListingMethodology/index.tsx | 19 +-
src/components/NetworkMaturity.tsx | 185 +++++++++----------
src/components/ui/accordion.tsx | 3 +-
src/intl/en/page-layer-2-networks.json | 1 +
11 files changed, 174 insertions(+), 203 deletions(-)
diff --git a/app/[locale]/bug-bounty/page.tsx b/app/[locale]/bug-bounty/page.tsx
index 09056a63b56..22605caed51 100644
--- a/app/[locale]/bug-bounty/page.tsx
+++ b/app/[locale]/bug-bounty/page.tsx
@@ -775,29 +775,29 @@ export default async function Page(props: { params: Promise }) {
title={t("bug-bounty-faq-q2-title")}
contentPreview={t("bug-bounty-faq-q2-contentPreview")}
>
-
+
{t.rich("bug-bounty-faq-q2-content-1", {
a: (chunks) => (
{chunks}
),
})}
-
+
-
+
{t.rich("bug-bounty-faq-q3-content-1", {
strong: Strong,
})}
-
+
- {t("bug-bounty-faq-q4-content-1")}
+ {t("bug-bounty-faq-q4-content-1")}
@@ -805,20 +805,20 @@ export default async function Page(props: { params: Promise }) {
title={t("bug-bounty-faq-q5-title")}
contentPreview={t("bug-bounty-faq-q5-contentPreview")}
>
- {t("bug-bounty-faq-q5-content-1")}
+ {t("bug-bounty-faq-q5-content-1")}
- {t("bug-bounty-faq-q6-content-1")}
- {t("bug-bounty-faq-q6-content-2")}
+ {t("bug-bounty-faq-q6-content-1")}
+ {t("bug-bounty-faq-q6-content-2")}
- {t("bug-bounty-faq-q7-content-1")}
+ {t("bug-bounty-faq-q7-content-1")}
diff --git a/app/[locale]/gas/_components/gas.tsx b/app/[locale]/gas/_components/gas.tsx
index 7ccf8f80a93..a2de06d8fc0 100644
--- a/app/[locale]/gas/_components/gas.tsx
+++ b/app/[locale]/gas/_components/gas.tsx
@@ -338,15 +338,15 @@ const GasPage = ({
{/* MaxWidth will be enforced by FAQ component once implemented */}
-
+
-
+
-
+
@@ -354,10 +354,10 @@ const GasPage = ({
-
+
- {t("page-gas-faq-question-3-a-2")}
+ {t("page-gas-faq-question-3-a-2")}
diff --git a/app/[locale]/layer-2/_components/layer-2.tsx b/app/[locale]/layer-2/_components/layer-2.tsx
index 68a9f50ff07..3a803cc290f 100644
--- a/app/[locale]/layer-2/_components/layer-2.tsx
+++ b/app/[locale]/layer-2/_components/layer-2.tsx
@@ -431,16 +431,14 @@ const Layer2Hub = ({
eventAction="expand"
eventName="how do i know if a network is part of ethereum"
>
-
-
- {t("page-layer-2-faq-ExpandableCard-1-description-1")}{" "}
-
- {t("common:nav-ethereum-networks")}
-
- {t("page-layer-2-period")}
-
-
{t("page-layer-2-faq-ExpandableCard-1-description-2")}
-
+
+ {t("page-layer-2-faq-ExpandableCard-1-description-1")}{" "}
+
+ {t("common:nav-ethereum-networks")}
+
+ {t("page-layer-2-period")}
+
+ {t("page-layer-2-faq-ExpandableCard-1-description-2")}
-
-
- {t("page-layer-2-faq-ExpandableCard-2-description-1")}{" "}
-
- {t("page-layer-2-faq-ExpandableCard-2-link")}
-
- {t("page-layer-2-period")}
-
-
{t("page-layer-2-faq-ExpandableCard-2-description-2")}
-
+
+ {t("page-layer-2-faq-ExpandableCard-2-description-1")}{" "}
+
+ {t("page-layer-2-faq-ExpandableCard-2-link")}
+
+ {t("page-layer-2-period")}
+
+ {t("page-layer-2-faq-ExpandableCard-2-description-2")}
{
title={t("page-roadmap-faq-1-title")}
className="mb-0"
>
-
-
- {t("page-roadmap-faq-1-p1")} {" "}
- {t("page-roadmap-faq-1-p1-continued")}
-
-
{t("page-roadmap-faq-1-p2")}
-
+
+ {t("page-roadmap-faq-1-p1")} {" "}
+ {t("page-roadmap-faq-1-p1-continued")}
+
+ {t("page-roadmap-faq-1-p2")}
-
-
- {t("page-roadmap-faq-2-p1")}{" "}
- {t("page-roadmap-faq-2-p1-strong")} {" "}
- {t("page-roadmap-faq-2-p1-continued")}
-
-
{t("page-roadmap-faq-2-p2")}
-
+
+ {t("page-roadmap-faq-2-p1")}{" "}
+ {t("page-roadmap-faq-2-p1-strong")} {" "}
+ {t("page-roadmap-faq-2-p1-continued")}
+
+ {t("page-roadmap-faq-2-p2")}
-
+
+
+
-
+
+
+
diff --git a/app/[locale]/staking/_components/staking.tsx b/app/[locale]/staking/_components/staking.tsx
index 6196ea39878..3dac8b0b32c 100644
--- a/app/[locale]/staking/_components/staking.tsx
+++ b/app/[locale]/staking/_components/staking.tsx
@@ -464,26 +464,19 @@ const StakingPage = async ({
{tocItems.faq.title}
-
- {t("page-staking-faq-4-answer-p1")}
- {t("page-staking-faq-4-answer-p2")}
- {t("page-staking-faq-4-answer-p3")}
-
- {t("page-upgrades-merge-btn")}
-
-
+ {t("page-staking-faq-4-answer-p1")}
+ {t("page-staking-faq-4-answer-p2")}
+ {t("page-staking-faq-4-answer-p3")}
+
+ {t("page-upgrades-merge-btn")}
+
-
- {t("page-staking-faq-5-answer-p1")}
- {t("page-staking-faq-5-answer-p2")}
-
- {t("page-staking-faq-5-answer-link")}
-
-
+ {t("page-staking-faq-5-answer-p1")}
+ {t("page-staking-faq-5-answer-p2")}
+
+ {t("page-staking-faq-5-answer-link")}
+
@@ -492,12 +485,10 @@ const StakingPage = async ({
{t("page-staking-faq-2-answer")}
-
- {t("page-staking-faq-3-answer-p1")}
-
-
-
-
+ {t("page-staking-faq-3-answer-p1")}
+
+
+
diff --git a/app/[locale]/videos/[slug]/page.tsx b/app/[locale]/videos/[slug]/page.tsx
index 329c32cce7b..1a0292b344b 100644
--- a/app/[locale]/videos/[slug]/page.tsx
+++ b/app/[locale]/videos/[slug]/page.tsx
@@ -94,11 +94,7 @@ const VideoLandingPage = async (props: {
{t("page-videos-view-transcript")}
- {/* forceMount keeps transcript in DOM for SEO crawlers */}
-
+
{await renderSimpleMarkdown(transcriptMdx, {
h1: htmlElements.h2,
})}
diff --git a/src/components/ExpandableCard.tsx b/src/components/ExpandableCard.tsx
index 8b0c4659b38..d86d746ccfc 100644
--- a/src/components/ExpandableCard.tsx
+++ b/src/components/ExpandableCard.tsx
@@ -39,7 +39,7 @@ const ExpandableCard = ({
eventName = "",
visible = false,
className,
- forceMount,
+ forceMount = true,
}: ExpandableCardProps) => {
const [isVisible, setIsVisible] = useState(visible)
const { t } = useTranslation("common")
@@ -104,7 +104,9 @@ const ExpandableCard = ({
"in-data-[state=closed]:hidden in-data-[state=closed]:h-0"
)}
>
- {children}
+
+ {children}
+
diff --git a/src/components/ListingMethodology/index.tsx b/src/components/ListingMethodology/index.tsx
index 76e9eaa4d28..5b959b5a07a 100644
--- a/src/components/ListingMethodology/index.tsx
+++ b/src/components/ListingMethodology/index.tsx
@@ -54,19 +54,16 @@ const ListingMethodology = async ({
-
- {children}
+ {children}
- {footers && (
-
- {footers.map((footer) => (
-
{footer}
- ))}
-
- )}
-
+ {footers && (
+
+ {footers.map((footer) => (
+
{footer}
+ ))}
+
+ )}
diff --git a/src/components/NetworkMaturity.tsx b/src/components/NetworkMaturity.tsx
index a0202cfd755..33d0467fea2 100644
--- a/src/components/NetworkMaturity.tsx
+++ b/src/components/NetworkMaturity.tsx
@@ -20,105 +20,100 @@ const NetworkMaturity = () => {
return (
-
-
-
-
- {t("page-layer-2-network-maturity-component-1")}{" "}
-
- {t("page-layer-2-network-maturity-component-2")}
- {" "}
- ({t("page-layer-2-network-maturity-component-3")}
- ),{" "}
-
- {t("page-layer-2-network-maturity-component-4")}
- ,{" "}
- {t("page-layer-2-network-maturity-component-5")} .{" "}
- {t("page-layer-2-network-maturity-component-6")}
-
-
{t("page-layer-2-network-maturity-component-7")}
-
+
+
+ {t("page-layer-2-network-maturity-component-1")}{" "}
+
+ {t("page-layer-2-network-maturity-component-2")}
+ {" "}
+ ({t("page-layer-2-network-maturity-component-3")}
+ ),
+ {t("page-layer-2-network-maturity-component-4")}
+ ,{" "}
+ {t("page-layer-2-network-maturity-component-5")} .{" "}
+ {t("page-layer-2-network-maturity-component-6")}
+
+ {t("page-layer-2-network-maturity-component-7")}
-
-
-
-
- {t("page-layer-2-network-maturity-component-8")}
-
-
- {t("page-layer-2-network-maturity-component-9")}
-
-
-
-
-
-
-
-
- {t("page-layer-2-networks-robust-label")}
-
-
-
- {t("page-layer-2-network-maturity-component-10")}
-
- {t("page-layer-2-network-maturity-component-11")}
-
-
+
+
+
+
+ {t("page-layer-2-network-maturity-component-8")}
+
+
+ {t("page-layer-2-network-maturity-component-9")}
+
+
+
+
+
+
+
+
+ {t("page-layer-2-networks-robust-label")}
+
+
+
+ {t("page-layer-2-network-maturity-component-10")}
+
+ {t("page-layer-2-network-maturity-component-11")}
+
+
-
-
-
-
- {t("page-layer-2-networks-maturing-label")}
-
-
-
- {t("page-layer-2-network-maturity-component-12")}
-
- {t("page-layer-2-network-maturity-component-13")}
-
- {t("page-layer-2-network-maturity-component-14")}
-
-
+
+
+
+
+ {t("page-layer-2-networks-maturing-label")}
+
+
+
+ {t("page-layer-2-network-maturity-component-12")}
+
+ {t("page-layer-2-network-maturity-component-13")}
+
+ {t("page-layer-2-network-maturity-component-14")}
+
+
-
-
-
-
-
- {t("page-layer-2-networks-developing-label")}
-
-
-
-
- {t("page-layer-2-network-maturity-component-15")}
-
- {t("page-layer-2-network-maturity-component-16")}
-
- {t("page-layer-2-network-maturity-component-13")}
-
- {t("page-layer-2-network-maturity-component-14")}
-
-
+
+
+
+
+ {t("page-layer-2-networks-developing-label")}
+
+
+
+ {t("page-layer-2-network-maturity-component-15")}
+
+ {t("page-layer-2-network-maturity-component-16")}
+
+ {t("page-layer-2-network-maturity-component-13")}
+
+ {t("page-layer-2-network-maturity-component-14")}
+
+
-
-
-
-
- {t("page-layer-2-networks-emerging-label")}
-
-
-
- {t("page-layer-2-network-maturity-component-15")}
-
- {t("page-layer-2-network-maturity-component-17")}
-
- {t("page-layer-2-network-maturity-component-18")}
-
-
-
-
-
+
+
+
+
+ {t("page-layer-2-networks-emerging-label")}
+
+
+
+ {t("page-layer-2-network-maturity-component-15")}
+
+ {t("page-layer-2-network-maturity-component-17")}
+
+ {t("page-layer-2-network-maturity-component-18")}
+
+
+
+
)
diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx
index 46c4fd8e557..a42e99d2693 100644
--- a/src/components/ui/accordion.tsx
+++ b/src/components/ui/accordion.tsx
@@ -46,9 +46,10 @@ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName
const AccordionContent = React.forwardRef<
React.ComponentRef,
React.ComponentPropsWithoutRef
->(({ className, children, ...props }, ref) => (
+>(({ className, forceMount = true, children, ...props }, ref) => (
diff --git a/src/intl/en/page-layer-2-networks.json b/src/intl/en/page-layer-2-networks.json
index 06c73943b9f..33df9fccaf6 100644
--- a/src/intl/en/page-layer-2-networks.json
+++ b/src/intl/en/page-layer-2-networks.json
@@ -64,6 +64,7 @@
"page-layer-2-networks-transaction-fee": "Transaction fee",
"page-layer-2-networks-transaction-fee-description": "The average cost of transaction for transfers, swaps, minting and other activities.",
"page-layer-2-networks-transaction-see-networks": "See networks",
+ "page-layer-2-network-maturity-component-title": "Network maturity explained",
"page-layer-2-network-maturity-component-1": "We review the network’s progress towards",
"page-layer-2-network-maturity-component-2": "Ethereum alignment",
"page-layer-2-network-maturity-component-3": "total value locked (TVL)",
From ea8bec55a25b3090e7d2ced0ec6a071a6ab96240 Mon Sep 17 00:00:00 2001
From: wackerow <54227730+wackerow@users.noreply.github.com>
Date: Tue, 12 May 2026 15:38:41 +0200
Subject: [PATCH 2/2] feat(ui): update border-radius to `2xl` token
Co-Authored-By: Jakub <100724231+konopkja@users.noreply.github.com>
---
src/components/ExpandableCard.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/ExpandableCard.tsx b/src/components/ExpandableCard.tsx
index d86d746ccfc..df71f805544 100644
--- a/src/components/ExpandableCard.tsx
+++ b/src/components/ExpandableCard.tsx
@@ -71,7 +71,7 @@ const ExpandableCard = ({
>