feat: Introduce new icons and agent images, and update FeaturesSection to display agent cards and refined feature details.
This commit is contained in:
@@ -1,76 +1,207 @@
|
||||
'use client';
|
||||
|
||||
import Image from 'next/image';
|
||||
|
||||
const features = [
|
||||
{
|
||||
icon: (
|
||||
<svg className="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
|
||||
</svg>
|
||||
),
|
||||
icon: '/assets/icons/hourglass-icon.svg',
|
||||
title: 'Hire Quickly',
|
||||
description: 'Connect with experienced local real estate agents who match your needs and preferences. Get answers quickly and move forward on your property decisions.',
|
||||
description: 'Connect with experienced local real estate agents who match your needs and preferences. Our simple process helps you get started quickly and move forward without delays or unnecessary complexity.',
|
||||
},
|
||||
{
|
||||
icon: (
|
||||
<svg className="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" />
|
||||
</svg>
|
||||
),
|
||||
icon: '/assets/icons/verified-badge-icon.svg',
|
||||
title: 'Verified Agents',
|
||||
description: 'All agents are carefully vetted and background checked to ensure that you work with professionals who meet quality and reliability standards.',
|
||||
description: 'All agents are carefully identity-verified and background-checked to ensure trust and safety. You can confidently work with professionals who meet quality and reliability standards.',
|
||||
},
|
||||
{
|
||||
icon: (
|
||||
<svg className="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z" />
|
||||
</svg>
|
||||
),
|
||||
icon: '/assets/icons/star-orange-icon.svg',
|
||||
title: 'Top Rated',
|
||||
description: 'Find highly rated agents based on positive client feedback. Their credentials and contributions have made them standout performers in the industry.',
|
||||
description: 'Work with highly rated agents known for strong expertise and positive client feedback. Their consistent performance helps you make informed and confident property decisions.',
|
||||
},
|
||||
{
|
||||
icon: (
|
||||
<svg className="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z" />
|
||||
</svg>
|
||||
),
|
||||
icon: '/assets/icons/trusted-people-icon.svg',
|
||||
title: 'Trusted by Thousands',
|
||||
description: 'Thousands of buyers, sellers, and investors have relied on our platform. Our professionals help people navigate property tax-free gift exchanges.',
|
||||
description: 'Thousands of buyers, sellers, and renters trust our platform to find reliable agents. Our professionals help people navigate property journeys with confidence and ease.',
|
||||
},
|
||||
];
|
||||
|
||||
export function FeaturesSection() {
|
||||
const agents = [
|
||||
{
|
||||
name: 'Anderson',
|
||||
role: 'Rental & Investment Consultant',
|
||||
rating: '4.9',
|
||||
location: 'New York',
|
||||
experience: '7+ years in the real estate industry.',
|
||||
image: '/assets/images/agent-anderson.jpg',
|
||||
position: 'top-left',
|
||||
},
|
||||
{
|
||||
name: 'Deepak',
|
||||
role: 'Rental & Investment Consultant',
|
||||
rating: '4.9',
|
||||
location: 'New York',
|
||||
experience: '7+ years in the real estate industry.',
|
||||
image: '/assets/images/agent-deepak.jpg',
|
||||
position: 'top-right',
|
||||
},
|
||||
{
|
||||
name: 'Daniel',
|
||||
role: 'Rental & Investment Consultant',
|
||||
rating: '4.9',
|
||||
location: 'New York',
|
||||
experience: '7+ years in the real estate industry.',
|
||||
image: '/assets/images/agent-daniel.jpg',
|
||||
position: 'bottom-center',
|
||||
},
|
||||
];
|
||||
|
||||
function AgentCard({ agent, className = '' }: { agent: typeof agents[0]; className?: string }) {
|
||||
return (
|
||||
<section className="py-16 md:py-24 bg-white">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
{/* Section Header */}
|
||||
<div className="text-center mb-12">
|
||||
<h2 className="text-3xl md:text-4xl font-bold text-[#00293d] mb-4">
|
||||
Find Trusted Real Estate Professionals On Demand
|
||||
</h2>
|
||||
<p className="text-gray-600 max-w-2xl mx-auto">
|
||||
Quickly connect with the right agents exactly when you need them.
|
||||
</p>
|
||||
<div className={`bg-white border border-[#00293d]/10 rounded-[15px] w-[254px] overflow-hidden ${className}`}>
|
||||
{/* Agent Image */}
|
||||
<div className="h-[161px] w-full overflow-hidden rounded-t-[15px]">
|
||||
<Image
|
||||
src={agent.image}
|
||||
alt={agent.name}
|
||||
width={254}
|
||||
height={161}
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Agent Info */}
|
||||
<div className="p-4">
|
||||
{/* Name */}
|
||||
<h4 className="font-fractul font-bold text-[16px] leading-[19px] text-[#00293d]">
|
||||
{agent.name}
|
||||
</h4>
|
||||
|
||||
{/* Role */}
|
||||
<p className="font-fractul font-normal text-[14px] leading-[17px] text-[#00293d] mt-1">
|
||||
{agent.role}
|
||||
</p>
|
||||
|
||||
{/* Verified & Rating */}
|
||||
<div className="flex items-center gap-4 mt-2">
|
||||
<div className="flex items-center gap-1">
|
||||
<Image
|
||||
src="/assets/icons/verified-icon.svg"
|
||||
alt="Verified"
|
||||
width={14}
|
||||
height={14}
|
||||
/>
|
||||
<span className="font-serif font-medium text-[14px] leading-[19px] text-[#00293d]">
|
||||
Verified Agent
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex items-center gap-1">
|
||||
<Image
|
||||
src="/assets/icons/star-filled-icon.svg"
|
||||
alt="Rating"
|
||||
width={14}
|
||||
height={14}
|
||||
/>
|
||||
<span className="font-serif font-normal text-[14px] leading-[19px] text-[#00293d]">
|
||||
{agent.rating} Rating
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Features Grid */}
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8">
|
||||
{features.map((feature, index) => (
|
||||
<div
|
||||
key={index}
|
||||
className="text-center p-6 rounded-xl hover:bg-[#f5f9f8] transition-colors"
|
||||
>
|
||||
<div className="inline-flex items-center justify-center w-16 h-16 rounded-full bg-[#c4d9d4]/30 text-[#00293d] mb-4">
|
||||
{feature.icon}
|
||||
</div>
|
||||
<h3 className="text-xl font-bold text-[#00293d] mb-3">
|
||||
{feature.title}
|
||||
</h3>
|
||||
<p className="text-gray-600 text-sm leading-relaxed">
|
||||
{feature.description}
|
||||
{/* Location */}
|
||||
<div className="flex items-center gap-1 mt-2">
|
||||
<Image
|
||||
src="/assets/icons/location-filled-icon.svg"
|
||||
alt="Location"
|
||||
width={15}
|
||||
height={15}
|
||||
/>
|
||||
<span className="font-serif font-medium text-[14px] leading-[19px] text-[#00293d]">
|
||||
{agent.location}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{/* Experience */}
|
||||
<p className="mt-2 text-[14px] leading-[19px] text-[#00293d]">
|
||||
<span className="font-serif font-bold">Experience:</span>
|
||||
<span className="font-serif font-normal"> {agent.experience}</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export function FeaturesSection() {
|
||||
return (
|
||||
<section className="py-16 md:py-20 bg-white">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="flex flex-col lg:flex-row gap-12 lg:gap-8">
|
||||
{/* Left Side - Title & Features */}
|
||||
<div className="lg:w-1/2">
|
||||
{/* Section Header */}
|
||||
<div className="mb-8">
|
||||
<h2 className="font-fractul font-bold text-[32px] md:text-[40px] leading-[1.2] text-[#00293d] mb-4">
|
||||
Find Trusted Real Estate Professionals On Demand
|
||||
</h2>
|
||||
<p className="font-fractul font-medium text-[18px] md:text-[20px] leading-[1.4] text-[#00293d]">
|
||||
Quickly connect with the right agents exactly when you need them.
|
||||
</p>
|
||||
</div>
|
||||
))}
|
||||
|
||||
{/* Features Grid - 2x2 */}
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
|
||||
{features.map((feature, index) => (
|
||||
<div
|
||||
key={index}
|
||||
className="border border-[#00293d]/10 rounded-[15px] p-5"
|
||||
>
|
||||
<div className="mb-3">
|
||||
<Image
|
||||
src={feature.icon}
|
||||
alt={feature.title}
|
||||
width={35}
|
||||
height={35}
|
||||
/>
|
||||
</div>
|
||||
<h3 className="font-fractul font-semibold text-[20px] leading-[24px] text-[#00293d] mb-2">
|
||||
{feature.title}
|
||||
</h3>
|
||||
<p className="font-serif font-normal text-[14px] leading-[19px] text-[#00293d]">
|
||||
{feature.description}
|
||||
</p>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Right Side - Agent Cards */}
|
||||
<div className="lg:w-1/2 relative min-h-[650px] hidden lg:block">
|
||||
{/* Anderson - Top Left */}
|
||||
<AgentCard
|
||||
agent={agents[0]}
|
||||
className="absolute top-0 left-0 shadow-lg z-10"
|
||||
/>
|
||||
|
||||
{/* Deepak - Top Right, offset down */}
|
||||
<AgentCard
|
||||
agent={agents[1]}
|
||||
className="absolute top-[170px] right-0 shadow-lg z-20"
|
||||
/>
|
||||
|
||||
{/* Daniel - Bottom Left, overlapping */}
|
||||
<AgentCard
|
||||
agent={agents[2]}
|
||||
className="absolute top-[320px] left-[60px] shadow-lg z-30"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Mobile Agent Cards - Horizontal Scroll */}
|
||||
<div className="lg:hidden overflow-x-auto pb-4">
|
||||
<div className="flex gap-4 min-w-max">
|
||||
{agents.map((agent, index) => (
|
||||
<AgentCard key={index} agent={agent} className="shadow-lg flex-shrink-0" />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user