diff --git a/src/app/(marketing)/products/product-detail-content-v3.tsx b/src/app/(marketing)/products/product-detail-content-v3.tsx index d6cf67c..995a947 100644 --- a/src/app/(marketing)/products/product-detail-content-v3.tsx +++ b/src/app/(marketing)/products/product-detail-content-v3.tsx @@ -26,7 +26,7 @@ function DetailHero({ product }: DetailHeroProps) { const productIcon = PRODUCT_ICONS[product.title] || ; return ( -
+
(
@@ -157,7 +157,7 @@ interface BenefitsSectionProps { function BenefitsSection({ benefits }: BenefitsSectionProps) { return ( -
+
@@ -178,7 +178,7 @@ function BenefitsSection({ benefits }: BenefitsSectionProps) { {benefits.map((benefit, idx) => (
@@ -231,7 +231,7 @@ function ProcessSection({ process }: ProcessSectionProps) { {process.map((step, idx) => (
{idx + 1} @@ -256,7 +256,7 @@ function CaseStudiesSection({ caseStudies }: CaseStudiesSectionProps) { if (!caseStudies || caseStudies.length === 0) return null; return ( -
+
@@ -281,7 +281,7 @@ function CaseStudiesSection({ caseStudies }: CaseStudiesSectionProps) { {caseStudies.map((study) => (
@@ -350,7 +350,7 @@ function CertificationsSection({ certifications }: CertificationsSectionProps) { {certifications.map((cert, idx) => (
@@ -374,7 +374,7 @@ interface CTASectionProps { function CTASection({ product }: CTASectionProps) { return ( -
+
diff --git a/src/app/(marketing)/products/standalone/[id]/client.tsx b/src/app/(marketing)/products/standalone/[id]/client.tsx index 83789ce..034c276 100644 --- a/src/app/(marketing)/products/standalone/[id]/client.tsx +++ b/src/app/(marketing)/products/standalone/[id]/client.tsx @@ -68,7 +68,7 @@ export function StandaloneProductClient({ item }: StandaloneProductClientProps) /> {status === 'coming-soon' ? ( -
+
-
+

@@ -129,7 +129,7 @@ export function StandaloneProductClient({ item }: StandaloneProductClientProps)

) : ( <> -
+
{param.name}
{param.value}
@@ -207,7 +207,7 @@ export function StandaloneProductClient({ item }: StandaloneProductClientProps) )} {complianceCertifications.length > 0 && ( -
+
-
+
diff --git a/src/components/detail/detail-hero.tsx b/src/components/detail/detail-hero.tsx index 2a3eb6e..7491276 100644 --- a/src/components/detail/detail-hero.tsx +++ b/src/components/detail/detail-hero.tsx @@ -32,7 +32,7 @@ export function DetailHero({ const bgClass = isBrand ? 'bg-brand-section text-white' - : 'bg-white text-ink'; + : 'bg-bg-primary text-ink'; return (
diff --git a/src/components/detail/detail.test.tsx b/src/components/detail/detail.test.tsx index 8aedbfa..4e771fa 100644 --- a/src/components/detail/detail.test.tsx +++ b/src/components/detail/detail.test.tsx @@ -383,6 +383,21 @@ describe('DetailHero', () => { const section = container.querySelector('section'); expect(section).toBeInTheDocument(); }); + + it('should use theme-aware bg token (not hard-coded bg-white) for light variant', async () => { + const { DetailHero } = await import('./detail-hero'); + const { container } = render( + + ); + // 暗黑模式:浅色底色必须走 CSS 变量 token,dark 下才能随主题反色 + const section = container.querySelector('section'); + expect(section?.className).toContain('bg-bg-primary'); + expect(section?.className).not.toContain('bg-white'); + }); }); describe('ProductValueSection', () => {