From e5a2efdaa27682d36b641b39b059411fdfa68582 Mon Sep 17 00:00:00 2001 From: zhangxiang Date: Thu, 3 Sep 2026 22:41:10 +0800 Subject: [PATCH] =?UTF-8?q?refactor(animations):=20converge=20P2=20stagger?= =?UTF-8?q?=20delays=20to=20=E2=89=A460ms=20target?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task #16 P2: converge 25 stagger/delay delays to ≤60ms target. scope: 12 files, 25 staggerDelay/delayChildren props before: 0.07/0.08/0.1/0.12s -> after: 0.05s (50ms, aligns ScrollReveal default) verified: - tsc --noEmit: clean (TSC_EXIT=0) - eslint (12 files): 0 errors, 22 pre-existing warnings only - jest: 130/130 suites, 1573 passed, 2 skipped, 0 failed (JEST_EXIT=0) - motion audit: P0=0, P1=5 preserved, P2=0, OK=425 note: P1 residual 5 preserved (flip-clock 2 + page-transition 2 by semantics; design-system.ts 1 dead-code deferred). visual regression waived: stagger is entrance delay, reducedMotion yields same pixels. Co-Authored-By: 阿睿 --- src/app/(marketing)/home-content-v15.tsx | 6 +++--- src/app/(marketing)/methodology/methodology-content.tsx | 2 +- .../products/erp-upgrade/erp-upgrade-content-v2.tsx | 8 ++++---- .../(marketing)/products/product-detail-content-v3.tsx | 6 +++--- src/app/(marketing)/products/products-content-v3.tsx | 4 ++-- .../(marketing)/solutions/solution-detail-content-v3.tsx | 8 ++++---- src/components/content/sections.tsx | 6 +++--- src/components/detail/detail-case-studies-section.tsx | 2 +- src/components/detail/detail-certifications-section.tsx | 2 +- src/components/detail/detail-hero.tsx | 2 +- src/components/sections/case-detail-page.tsx | 2 +- src/components/ui/page-transition.tsx | 2 +- 12 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/app/(marketing)/home-content-v15.tsx b/src/app/(marketing)/home-content-v15.tsx index 063674d..d1edd09 100644 --- a/src/app/(marketing)/home-content-v15.tsx +++ b/src/app/(marketing)/home-content-v15.tsx @@ -358,7 +358,7 @@ function TrustSection({ pageCopy }: { pageCopy?: HomePageCopy | null }) { {/* 首批客户共创计划:如实呈现共创/内测/授权公开状态,不虚构客户 */} - +
@@ -439,7 +439,7 @@ function NarrativeSection({ pageCopy }: { pageCopy?: HomePageCopy | null }) {
{NARRATIVE_ACTS_CMS.map((act) => ( - +
{items.slice(0, 4).map((insight, i) => ( - + {phases.map((phase, idx) => ( diff --git a/src/app/(marketing)/products/erp-upgrade/erp-upgrade-content-v2.tsx b/src/app/(marketing)/products/erp-upgrade/erp-upgrade-content-v2.tsx index fc0a5ec..ce56105 100644 --- a/src/app/(marketing)/products/erp-upgrade/erp-upgrade-content-v2.tsx +++ b/src/app/(marketing)/products/erp-upgrade/erp-upgrade-content-v2.tsx @@ -178,7 +178,7 @@ export default function ErpUpgradeContentV2({ item }: ErpUpgradeContentV2Props) {PAIN_POINTS.map((item, index) => (
{UPGRADE_BENEFITS.map((item, index) => (
{UPGRADE_PROCESS.map((item, index) => (
@@ -352,7 +352,7 @@ export default function ErpUpgradeContentV2({ item }: ErpUpgradeContentV2Props) {certifications.length > 0 ? ( {certifications.map((cert, index) => (
{features.map((feature, idx) => ( @@ -175,7 +175,7 @@ function BenefitsSection({ benefits }: BenefitsSectionProps) {
- + {benefits.map((benefit, idx) => (
- + {process.map((step, idx) => (
{specializedProducts.map((product) => ( @@ -413,7 +413,7 @@ function SuiteCombosSection({ products }: { products: Product[] }) { {SUITE_COMBOS.map((combo, idx) => { diff --git a/src/app/(marketing)/solutions/solution-detail-content-v3.tsx b/src/app/(marketing)/solutions/solution-detail-content-v3.tsx index 4def5b7..2793cb7 100644 --- a/src/app/(marketing)/solutions/solution-detail-content-v3.tsx +++ b/src/app/(marketing)/solutions/solution-detail-content-v3.tsx @@ -118,7 +118,7 @@ function ChallengesSection({ challenges }: ChallengesSectionProps) {
- + {challenges.map((challenge, idx) => (
- + {solutions.map((solution, idx) => (
- + {valueProposition.points.map((point, idx) => { const icon = VALUE_ICONS[point.icon] || ; return ( @@ -275,7 +275,7 @@ function SuiteCombinationSection({ suiteCombination, products }: SuiteCombinatio
- + {primaryProducts.map((product) => product && (
- + {layers.map((layer, index) => (
- + {categories.map((category, index) => (
- + {metrics.map((metric, index) => (
diff --git a/src/components/detail/detail-certifications-section.tsx b/src/components/detail/detail-certifications-section.tsx index d9dddf2..e769665 100644 --- a/src/components/detail/detail-certifications-section.tsx +++ b/src/components/detail/detail-certifications-section.tsx @@ -50,7 +50,7 @@ export function CertificationsSection({ certifications }: CertificationsSectionP {/* flex 直接挂 StaggerReveal(同 CaseStudiesSection 的布局要点) */} diff --git a/src/components/detail/detail-hero.tsx b/src/components/detail/detail-hero.tsx index c1cc531..1b026fc 100644 --- a/src/components/detail/detail-hero.tsx +++ b/src/components/detail/detail-hero.tsx @@ -54,7 +54,7 @@ export function DetailHero({ visible: { transition: { staggerChildren: 0.12, - delayChildren: 0.2, + delayChildren: 0.05, }, }, }} diff --git a/src/components/sections/case-detail-page.tsx b/src/components/sections/case-detail-page.tsx index 76bdf99..0fddd21 100644 --- a/src/components/sections/case-detail-page.tsx +++ b/src/components/sections/case-detail-page.tsx @@ -482,7 +482,7 @@ function RelatedServicesSection({ services }: { services: CaseDetailData['servic
- + {services.slice(0, 3).map((s) => (