File size: 3,208 Bytes
4a94926
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import { MessageSquare, Cpu, Rocket } from 'lucide-react';

const steps = [
  {
    icon: MessageSquare,
    step: '01',
    title: 'Describe Your Idea',
    description: 'Tell Lovable what you want to build in plain English. Be as detailed or brief as you like — our AI understands context and intent.',
    color: 'from-brand-400 to-brand-600',
  },
  {
    icon: Cpu,
    step: '02',
    title: 'AI Generates & Iterates',
    description: 'Watch as Lovable generates a full-stack application in real-time. Edit with natural language, refine with clicks, iterate instantly.',
    color: 'from-pink-400 to-rose-600',
  },
  {
    icon: Rocket,
    step: '03',
    title: 'Ship to Production',
    description: 'One click deploys your app to the cloud. Custom domains, SSL, and CDN included. Your app is live in seconds.',
    color: 'from-orange-400 to-red-500',
  },
];

export default function HowItWorks() {
  return (
    <section id="how-it-works" className="py-24 px-4 sm:px-6 lg:px-8 relative">
      <div className="absolute inset-0 pointer-events-none">
        <div className="absolute top-0 left-0 right-0 h-px bg-gradient-to-r from-transparent via-white/5 to-transparent" />
      </div>

      <div className="max-w-5xl mx-auto">
        <div className="text-center mb-16">
          <div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-brand-500/10 border border-brand-500/20 mb-4">
            <span className="text-xs font-medium text-brand-300 uppercase tracking-wider">How it works</span>
          </div>
          <h2 className="text-4xl sm:text-5xl font-bold tracking-tight mb-4">
            Three steps to <span className="gradient-text">your dream app</span>
          </h2>
          <p className="text-lg text-surface-300 max-w-2xl mx-auto">
            No setup, no configuration, no boilerplate. Just describe and deploy.
          </p>
        </div>

        <div className="relative">
          {/* Connecting line */}
          <div className="hidden lg:block absolute top-1/2 left-0 right-0 h-px bg-gradient-to-r from-brand-500/30 via-pink-500/30 to-orange-500/30 -translate-y-1/2" />

          <div className="grid grid-cols-1 lg:grid-cols-3 gap-8 lg:gap-12">
            {steps.map((step, index) => (
              <div key={step.step} className="relative group">
                <div className="glass-card p-8 text-center hover:bg-white/[0.08] transition-all duration-300">
                  <div className="inline-flex items-center justify-center mb-6">
                    <div className={`w-16 h-16 rounded-2xl bg-gradient-to-br ${step.color} flex items-center justify-center shadow-lg group-hover:scale-110 transition-transform duration-300`}>
                      <step.icon className="w-7 h-7 text-white" />
                    </div>
                  </div>
                  <div className="text-sm font-bold text-brand-400 mb-2">{step.step}</div>
                  <h3 className="text-xl font-bold mb-3">{step.title}</h3>
                  <p className="text-surface-300 leading-relaxed">{step.description}</p>
                </div>
              </div>
            ))}
          </div>
        </div>
      </div>
    </section>
  );
}