100 lines
3.8 KiB
JavaScript
100 lines
3.8 KiB
JavaScript
import React from 'react';
|
|
import { motion, useReducedMotion } from 'framer-motion';
|
|
import { Check } from 'lucide-react';
|
|
|
|
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
|
|
initial: { opacity: 0, y: 20 },
|
|
whileInView: { opacity: 1, y: 0 },
|
|
viewport: { once: true, amount: 0.2 },
|
|
transition: { delay, duration, ease: "easeOut" }
|
|
});
|
|
|
|
const AccelerateSection = () => {
|
|
const shouldReduce = useReducedMotion();
|
|
|
|
const features = [
|
|
"Providing technical guidance & architectural reviews",
|
|
"Mentoring team members",
|
|
"Advising best practices",
|
|
"Addressing security & performance concerns",
|
|
"Performing in-depth code reviews",
|
|
"Long-term support (LTS) & upgrade assistance"
|
|
];
|
|
|
|
if (shouldReduce) {
|
|
return (
|
|
<section className="section-padding bg-white">
|
|
<div className="container-custom">
|
|
<div className="grid lg:grid-cols-2 gap-12 items-center">
|
|
<div>
|
|
<h2 className="text-4xl md:text-5xl font-bold text-nest-dark mb-6">
|
|
Accelerate your development
|
|
</h2>
|
|
<p className="text-lg text-gray-600 mb-6 leading-relaxed">
|
|
We work alongside you to meet your deadlines while avoiding costly tech debt. Challenging issue? We've got you covered.
|
|
</p>
|
|
<p className="text-lg text-gray-600 mb-8 leading-relaxed">
|
|
Our goal is to help you get to market faster. Nest core team members will help you utilize best practices and choose the right strategy for unique goals.
|
|
</p>
|
|
<button className="btn-primary">
|
|
Contact us to learn more
|
|
</button>
|
|
</div>
|
|
<div>
|
|
<ul className="space-y-4">
|
|
{features.map((feature, index) => (
|
|
<li key={index} className="flex items-start">
|
|
<Check className="w-5 h-5 text-green-500 mr-3 mt-1 flex-shrink-0" />
|
|
<span className="text-gray-700">{feature}</span>
|
|
</li>
|
|
))}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<motion.section
|
|
{...fadeUpPreset(0.1, 1.0)}
|
|
className="section-padding bg-white"
|
|
>
|
|
<div className="container-custom">
|
|
<div className="grid lg:grid-cols-2 gap-12 items-center">
|
|
<motion.div {...fadeUpPreset(0.2, 0.8)}>
|
|
<h2 className="text-4xl md:text-5xl font-bold text-nest-dark mb-6">
|
|
Accelerate your development
|
|
</h2>
|
|
<p className="text-lg text-gray-600 mb-6 leading-relaxed">
|
|
We work alongside you to meet your deadlines while avoiding costly tech debt. Challenging issue? We've got you covered.
|
|
</p>
|
|
<p className="text-lg text-gray-600 mb-8 leading-relaxed">
|
|
Our goal is to help you get to market faster. Nest core team members will help you utilize best practices and choose the right strategy for unique goals.
|
|
</p>
|
|
<button className="btn-primary">
|
|
Contact us to learn more
|
|
</button>
|
|
</motion.div>
|
|
<motion.div {...fadeUpPreset(0.3, 0.8)}>
|
|
<ul className="space-y-4">
|
|
{features.map((feature, index) => (
|
|
<motion.li
|
|
key={index}
|
|
{...fadeUpPreset(0.4 + index * 0.05, 0.6)}
|
|
className="flex items-start"
|
|
>
|
|
<Check className="w-5 h-5 text-green-500 mr-3 mt-1 flex-shrink-0" />
|
|
<span className="text-gray-700">{feature}</span>
|
|
</motion.li>
|
|
))}
|
|
</ul>
|
|
</motion.div>
|
|
</div>
|
|
</div>
|
|
</motion.section>
|
|
);
|
|
};
|
|
|
|
export default AccelerateSection; |