Skip to content

Commit dc4d106

Browse files
committed
feat: reorder sections and fix three feature cards animation
- Move HowItWorksSection above ProductionGradeSection for better flow - Fix three feature cards animation by wrapping each card in motion.div - Ensure all three cards (01, 02, 03) render properly with staggered animation - Improve animation consistency across feature cards section
1 parent 9884b16 commit dc4d106

2 files changed

Lines changed: 20 additions & 8 deletions

File tree

app/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ export default function LandingPage() {
1414
<div className="hidden">
1515
<CloudAgentsTrustSection />
1616
</div>
17-
<ProductionGradeSection />
1817
<HowItWorksSection />
18+
<ProductionGradeSection />
1919
<FeaturesGridSection />
2020
<SocialProofSection />
2121
<CTASection />

components/sections/ProductionGradeSection.tsx

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -297,34 +297,46 @@ export const ProductionGradeSection = () => {
297297
{/* Three Feature Cards */}
298298
<motion.div
299299
className="grid grid-cols-1 md:grid-cols-3 gap-6 md:gap-8 mb-20"
300-
variants={itemVariants}
300+
variants={containerVariants}
301+
initial="hidden"
302+
whileInView="visible"
303+
viewport={{ once: true }}
301304
>
302305
{/* Card 1 */}
303-
<div className="bg-[#08080a] border border-white/[0.06] rounded-2xl p-10 md:p-14 text-left">
306+
<motion.div
307+
className="bg-[#08080a] border border-white/[0.06] rounded-2xl p-10 md:p-14 text-left"
308+
variants={itemVariants}
309+
>
304310
<div className="text-emerald-400 font-semibold text-lg mb-4">01</div>
305311
<h4 className="text-white font-bold text-2xl mb-4">Generates valid configs</h4>
306312
<p className="text-gray-400 text-base leading-relaxed">
307313
Your agent knows the Nexlayer schema. It creates deployment configs that actually work—no guessing, no copy-pasting from docs.
308314
</p>
309-
</div>
315+
</motion.div>
310316

311317
{/* Card 2 */}
312-
<div className="bg-[#08080a] border border-white/[0.06] rounded-2xl p-10 md:p-14 text-left">
318+
<motion.div
319+
className="bg-[#08080a] border border-white/[0.06] rounded-2xl p-10 md:p-14 text-left"
320+
variants={itemVariants}
321+
>
313322
<div className="text-emerald-400 font-semibold text-lg mb-4">02</div>
314323
<h4 className="text-white font-bold text-2xl mb-4">Validates before deploy</h4>
315324
<p className="text-gray-400 text-base leading-relaxed">
316325
Before anything goes live, your agent checks the config against Nexlayer's validation. Catches errors before they cost you time.
317326
</p>
318-
</div>
327+
</motion.div>
319328

320329
{/* Card 3 */}
321-
<div className="bg-[#08080a] border border-white/[0.06] rounded-2xl p-10 md:p-14 text-left">
330+
<motion.div
331+
className="bg-[#08080a] border border-white/[0.06] rounded-2xl p-10 md:p-14 text-left"
332+
variants={itemVariants}
333+
>
322334
<div className="text-emerald-400 font-semibold text-lg mb-4">03</div>
323335
<h4 className="text-white font-bold text-2xl mb-4">Self-corrects with context</h4>
324336
<p className="text-gray-400 text-base leading-relaxed">
325337
When something fails, Nexlayer sends back detailed context. Your agent reads it, understands it, and fixes it—automatically.
326338
</p>
327-
</div>
339+
</motion.div>
328340
</motion.div>
329341

330342
{/* Three Pillars */}

0 commit comments

Comments
 (0)