59 lines
2.5 KiB
TypeScript
59 lines
2.5 KiB
TypeScript
import { motion } from 'framer-motion'
|
|
import { Container } from '../../components/Container'
|
|
|
|
const galleryItems = [
|
|
{ text: 'Navigate and interact with any web interface', image: '/images/gallery/interface.jpg' },
|
|
{ text: 'Process documents across all formats', image: '/images/gallery/docs.jpg' },
|
|
{ text: 'Execute multi-step workflows autonomously', image: '/images/gallery/flow.jpg' },
|
|
{ text: 'Manage calendars, emails, and tasks', image: '/images/gallery/calendar.jpg' },
|
|
{ text: 'Perform deep semantic search across all data sources', image: '/images/gallery/data.jpg' },
|
|
{ text: 'Identify patterns in complex datasets', image: '/images/gallery/datasets.jpg' },
|
|
]
|
|
|
|
export function GallerySection() {
|
|
return (
|
|
<section className="bg-gray-50 py-20 lg:py-32">
|
|
<Container>
|
|
<motion.div
|
|
initial={{ opacity: 0, y: 20 }}
|
|
whileInView={{ opacity: 1, y: 0 }}
|
|
viewport={{ once: true }}
|
|
transition={{ duration: 0.8 }}
|
|
className="mx-auto max-w-3xl text-center mb-16"
|
|
>
|
|
<h2 className="text-3xl lg:text-4xl font-medium tracking-tight text-gray-900">
|
|
Agents with Endless Possibilities.
|
|
</h2>
|
|
<p className="mt-6 text-lg text-gray-600">
|
|
Your private agent coordinates a team of specialists that spin up on demand, collaborate across your world, and deliver end-to-end results. Many agents, one intelligence—yours.
|
|
</p>
|
|
</motion.div>
|
|
|
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
{galleryItems.map((item, index) => (
|
|
<motion.div
|
|
key={index}
|
|
initial={{ opacity: 0, y: 20 }}
|
|
whileInView={{ opacity: 1, y: 0 }}
|
|
viewport={{ once: true }}
|
|
transition={{ duration: 0.5, delay: index * 0.1 }}
|
|
className="group relative overflow-hidden rounded-2xl bg-white border border-gray-200 hover:border-cyan-500 hover:shadow-lg transition-all duration-300"
|
|
>
|
|
<div className="aspect-video overflow-hidden">
|
|
<img
|
|
src={item.image}
|
|
alt={item.text}
|
|
className="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
|
|
/>
|
|
</div>
|
|
<div className="p-6">
|
|
<p className="text-sm font-medium text-gray-900">{item.text}</p>
|
|
</div>
|
|
</motion.div>
|
|
))}
|
|
</div>
|
|
</Container>
|
|
</section>
|
|
)
|
|
}
|