Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Amazon TV Matchmaker</title> | |
<script src="https://cdn.tailwindcss.com"></script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
<link rel="preconnect" href="https://fonts.googleapis.com"> | |
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> | |
<style> | |
body { | |
font-family: 'Inter', sans-serif; | |
background-color: #f8fafc; | |
} | |
.glass-card { | |
background: rgba(255, 255, 255, 0.85); | |
backdrop-filter: blur(12px); | |
-webkit-backdrop-filter: blur(12px); | |
border: 1px solid rgba(255, 255, 255, 0.18); | |
} | |
.progress-bar { | |
height: 8px; | |
transition: width 0.6s cubic-bezier(0.65, 0, 0.35, 1); | |
background: linear-gradient(90deg, #3b82f6, #8b5cf6); | |
} | |
.card-hover { | |
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); | |
} | |
.card-hover:hover { | |
transform: translateY(-8px); | |
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.12); | |
} | |
.fade-in { | |
animation: fadeIn 0.6s cubic-bezier(0.39, 0.575, 0.565, 1) both; | |
} | |
@keyframes fadeIn { | |
from { opacity: 0; transform: translateY(20px); } | |
to { opacity: 1; transform: translateY(0); } | |
} | |
.feature-icon { | |
width: 48px; | |
height: 48px; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
border-radius: 12px; | |
margin-right: 16px; | |
} | |
.option-card { | |
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); | |
border-radius: 16px; | |
} | |
.option-card:hover { | |
transform: scale(1.03); | |
} | |
.selected-card { | |
border: 2px solid #3b82f6; | |
box-shadow: 0 10px 15px -3px rgba(59, 130, 246, 0.2); | |
} | |
.gradient-text { | |
background: linear-gradient(90deg, #3b82f6, #8b5cf6); | |
-webkit-background-clip: text; | |
background-clip: text; | |
color: transparent; | |
} | |
.budget-slider { | |
-webkit-appearance: none; | |
width: 100%; | |
height: 8px; | |
border-radius: 4px; | |
background: linear-gradient(90deg, #e0e7ff, #3b82f6); | |
} | |
.budget-slider::-webkit-slider-thumb { | |
-webkit-appearance: none; | |
width: 24px; | |
height: 24px; | |
border-radius: 50%; | |
background: #3b82f6; | |
cursor: pointer; | |
box-shadow: 0 4px 6px rgba(59, 130, 246, 0.3); | |
border: 3px solid white; | |
} | |
.pulse { | |
animation: pulse 2s infinite; | |
} | |
@keyframes pulse { | |
0% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4); } | |
70% { box-shadow: 0 0 0 12px rgba(59, 130, 246, 0); } | |
100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); } | |
} | |
.checkmark { | |
display: inline-block; | |
width: 22px; | |
height: 22px; | |
background-color: #10b981; | |
color: white; | |
border-radius: 50%; | |
text-align: center; | |
line-height: 22px; | |
margin-right: 8px; | |
font-size: 12px; | |
} | |
</style> | |
</head> | |
<body class="bg-gradient-to-br from-gray-50 to-blue-50 min-h-screen"> | |
<!-- Floating Navigation --> | |
<nav class="fixed top-0 left-0 right-0 glass-card shadow-sm z-50"> | |
<div class="container mx-auto px-6 py-3 flex items-center justify-between"> | |
<div class="flex items-center space-x-3"> | |
<div class="bg-gradient-to-r from-blue-600 to-blue-800 text-white p-2 rounded-lg"> | |
<i class="fab fa-amazon text-2xl"></i> | |
</div> | |
<span class="text-xl font-bold text-gray-800">TV Matchmaker</span> | |
</div> | |
<div class="hidden md:flex items-center space-x-8"> | |
<a href="#" class="text-gray-700 hover:text-blue-600 transition font-medium">Home</a> | |
<a href="#" class="text-gray-700 hover:text-blue-600 transition font-medium">TVs</a> | |
<a href="#" class="text-gray-700 hover:text-blue-600 transition font-medium">Deals</a> | |
<a href="#" class="text-gray-700 hover:text-blue-600 transition font-medium">Support</a> | |
</div> | |
<div class="flex items-center space-x-5"> | |
<button class="p-2 rounded-full hover:bg-gray-100 transition text-gray-600 hover:text-blue-600"> | |
<i class="fas fa-search"></i> | |
</button> | |
<button class="p-2 rounded-full hover:bg-gray-100 transition text-gray-600 hover:text-blue-600"> | |
<i class="fas fa-user"></i> | |
</button> | |
<button class="p-2 rounded-full hover:bg-gray-100 transition text-gray-600 hover:text-blue-600 relative"> | |
<i class="fas fa-shopping-cart"></i> | |
<span class="absolute -top-1 -right-1 bg-yellow-400 text-black text-xs rounded-full h-5 w-5 flex items-center justify-center font-bold">0</span> | |
</button> | |
</div> | |
</div> | |
</nav> | |
<!-- Main Content --> | |
<main class="container mx-auto px-4 py-24"> | |
<!-- Wizard Header --> | |
<div class="glass-card rounded-2xl shadow-xl p-8 mb-10 max-w-4xl mx-auto"> | |
<div class="text-center mb-6"> | |
<span class="inline-block bg-blue-100 text-blue-600 px-4 py-1 rounded-full text-sm font-medium mb-3">Find Your Perfect TV</span> | |
<h1 class="text-4xl font-bold text-gray-900 mb-3">Tell us about your <span class="gradient-text">dream TV experience</span></h1> | |
<p class="text-lg text-gray-600 max-w-2xl mx-auto">We'll match you with the ideal television based on your space, budget, and viewing preferences</p> | |
</div> | |
<div class="mb-6"> | |
<div class="flex justify-between mb-3"> | |
<span class="text-sm font-medium text-gray-700">Step <span id="current-step">1</span> of 5</span> | |
<span class="text-sm font-medium text-blue-600" id="progress-text">20% complete</span> | |
</div> | |
<div class="w-full bg-gray-200 rounded-full h-2.5 overflow-hidden"> | |
<div class="progress-bar h-2.5 rounded-full" style="width: 20%" id="progress-bar"></div> | |
</div> | |
</div> | |
</div> | |
<!-- Wizard Steps --> | |
<div class="glass-card rounded-2xl shadow-xl p-8 mb-10 max-w-4xl mx-auto fade-in" id="step-container"> | |
<!-- Step 1 - Screen Size --> | |
<div class="step" id="step-1"> | |
<div class="mb-8"> | |
<h2 class="text-2xl font-bold text-gray-900 mb-2">Where will your new TV be placed?</h2> | |
<p class="text-gray-600">This helps us suggest the right screen size for your space</p> | |
</div> | |
<div class="grid grid-cols-1 md:grid-cols-2 gap-5 mb-10"> | |
<button class="size-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 text-left hover:border-blue-200 hover:shadow-md transition-all" data-value="32"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-purple-100 text-purple-600"> | |
<i class="fas fa-bed text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Bedroom</span> | |
<span class="text-gray-500">Smaller screen (32" or under)</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Great for cozy viewing</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
<button class="size-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 text-left hover:border-blue-200 hover:shadow-md transition-all" data-value="43"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-blue-100 text-blue-600"> | |
<i class="fas fa-home text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Small living space</span> | |
<span class="text-gray-500">Medium screen (40-43")</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Ideal for apartments</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
<button class="size-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 text-left hover:border-blue-200 hover:shadow-md transition-all" data-value="55"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-green-100 text-green-600"> | |
<i class="fas fa-couch text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Living room</span> | |
<span class="text-gray-500">Larger screen (50-55")</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Perfect for family viewing</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
<button class="size-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 text-left hover:border-blue-200 hover:shadow-md transition-all" data-value="65"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-red-100 text-red-600"> | |
<i class="fas fa-theater-masks text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Home theater</span> | |
<span class="text-gray-500">Extra large screen (65"+)</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Cinematic experience</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
</div> | |
<div class="flex justify-between pt-4 border-t border-gray-100"> | |
<button class="px-8 py-3 text-gray-600 rounded-lg hover:bg-gray-50 transition font-medium" disabled> | |
<i class="fas fa-chevron-left mr-2"></i> Back | |
</button> | |
<button class="px-8 py-3 bg-gradient-to-r from-blue-600 to-blue-500 text-white rounded-lg hover:from-blue-700 hover:to-blue-600 transition shadow-md hover:shadow-lg next-step"> | |
Next <i class="fas fa-chevron-right ml-2"></i> | |
</button> | |
</div> | |
</div> | |
<!-- Step 2 - Budget --> | |
<div class="step hidden" id="step-2"> | |
<div class="mb-8"> | |
<h2 class="text-2xl font-bold text-gray-900 mb-2">What's your comfortable budget range?</h2> | |
<p class="text-gray-600">We'll show you the best options that fit your price point</p> | |
</div> | |
<div class="mb-10"> | |
<div class="flex justify-between mb-3"> | |
<span class="text-sm font-medium text-gray-700">More affordable</span> | |
<span class="text-sm font-medium text-gray-700">Premium options</span> | |
</div> | |
<input type="range" min="300" max="5000" value="1000" step="100" class="budget-slider mb-6" id="budget-slider"> | |
<div class="text-center"> | |
<span class="text-3xl font-bold text-blue-600" id="budget-value">$1,000</span> | |
<span class="text-sm text-gray-500 block mt-1">Typical price for quality TVs</span> | |
</div> | |
<div class="grid grid-cols-4 gap-4 mt-8"> | |
<button class="budget-preset py-2 px-3 rounded-lg border border-gray-200 hover:border-blue-300 hover:bg-blue-50 text-sm font-medium transition" data-value="500"> | |
<span class="block">$500</span> | |
<span class="text-gray-500 text-xs">Budget</span> | |
</button> | |
<button class="budget-preset py-2 px-3 rounded-lg border border-gray-200 hover:border-blue-300 hover:bg-blue-50 text-sm font-medium transition" data-value="1000"> | |
<span class="block">$1,000</span> | |
<span class="text-gray-500 text-xs">Standard</span> | |
</button> | |
<button class="budget-preset py-2 px-3 rounded-lg border border-gray-200 hover:border-blue-300 hover:bg-blue-50 text-sm font-medium transition" data-value="2000"> | |
<span class="block">$2,000</span> | |
<span class="text-gray-500 text-xs">Premium</span> | |
</button> | |
<button class="budget-preset py-2 px-3 rounded-lg border border-gray-200 hover:border-blue-300 hover:bg-blue-50 text-sm font-medium transition" data-value="3000"> | |
<span class="block">$3,000+</span> | |
<span class="text-gray-500 text-xs">High-end</span> | |
</button> | |
</div> | |
</div> | |
<div class="flex justify-between pt-4 border-t border-gray-100"> | |
<button class="px-8 py-3 text-gray-600 rounded-lg hover:bg-gray-50 transition font-medium prev-step"> | |
<i class="fas fa-chevron-left mr-2"></i> Back | |
</button> | |
<button class="px-8 py-3 bg-gradient-to-r from-blue-600 to-blue-500 text-white rounded-lg hover:from-blue-700 hover:to-blue-600 transition shadow-md hover:shadow-lg next-step"> | |
Next <i class="fas fa-chevron-right ml-2"></i> | |
</button> | |
</div> | |
</div> | |
<!-- Step 3 - Usage --> | |
<div class="step hidden" id="step-3"> | |
<div class="mb-8"> | |
<h2 class="text-2xl font-bold text-gray-900 mb-2">What do you love to watch most?</h2> | |
<p class="text-gray-600">We'll optimize for the best picture quality for your favorite content</p> | |
</div> | |
<div class="grid grid-cols-1 md:grid-cols-2 gap-5 mb-10"> | |
<button class="usage-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 text-left hover:border-blue-200 hover:shadow-md transition-all" data-value="movies"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-purple-100 text-purple-600"> | |
<i class="fas fa-film text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Movies & shows</span> | |
<span class="text-gray-500">For cinematic experiences at home</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Deep blacks, rich colors</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
<button class="usage-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 text-left hover:border-blue-200 hover:shadow-md transition-all" data-value="gaming"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-green-100 text-green-600"> | |
<i class="fas fa-gamepad text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Video games</span> | |
<span class="text-gray-500">Smooth gameplay with fast response</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Low input lag, high refresh</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
<button class="usage-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 text-left hover:border-blue-200 hover:shadow-md transition-all" data-value="sports"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-red-100 text-red-600"> | |
<i class="fas fa-running text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Sports & action</span> | |
<span class="text-gray-500">Clear motion for fast-paced content</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Motion smoothing, clarity</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
<button class="usage-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 text-left hover:border-blue-200 hover:shadow-md transition-all" data-value="streaming"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-blue-100 text-blue-600"> | |
<i class="fas fa-play-circle text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Streaming services</span> | |
<span class="text-gray-500">Built-in apps for Netflix, Prime, etc.</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Smart platform included</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
</div> | |
<div class="flex justify-between pt-4 border-t border-gray-100"> | |
<button class="px-8 py-3 text-gray-600 rounded-lg hover:bg-gray-50 transition font-medium prev-step"> | |
<i class="fas fa-chevron-left mr-2"></i> Back | |
</button> | |
<button class="px-8 py-3 bg-gradient-to-r from-blue-600 to-blue-500 text-white rounded-lg hover:from-blue-700 hover:to-blue-600 transition shadow-md hover:shadow-lg next-step"> | |
Next <i class="fas fa-chevron-right ml-2"></i> | |
</button> | |
</div> | |
</div> | |
<!-- Step 4 - Features --> | |
<div class="step hidden" id="step-4"> | |
<div class="mb-8"> | |
<h2 class="text-2xl font-bold text-gray-900 mb-2">Which features would enhance your experience?</h2> | |
<p class="text-gray-600">Select all that matter to you</p> | |
</div> | |
<div class="space-y-3 mb-10"> | |
<label class="feature-checkbox flex items-start p-4 bg-white rounded-xl border-2 border-gray-100 hover:border-blue-200 hover:shadow-md cursor-pointer transition-all"> | |
<input type="checkbox" id="feature-4k" class="mt-1 h-5 w-5 text-blue-600 rounded focus:ring-blue-500"> | |
<div class="ml-4"> | |
<span class="font-semibold text-gray-900">Super sharp picture</span> | |
<span class="block text-gray-500 mt-1">4K resolution for incredible detail</span> | |
<div class="mt-2 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>4x sharper than HD</span> | |
</div> | |
</div> | |
</label> | |
<label class="feature-checkbox flex items-start p-4 bg-white rounded-xl border-2 border-gray-100 hover:border-blue-200 hover:shadow-md cursor-pointer transition-all"> | |
<input type="checkbox" id="feature-hdr" class="mt-1 h-5 w-5 text-blue-600 rounded focus:ring-blue-500"> | |
<div class="ml-4"> | |
<span class="font-semibold text-gray-900">Brighter, more vivid colors</span> | |
<span class="block text-gray-500 mt-1">HDR for lifelike images</span> | |
<div class="mt-2 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Wider color range</span> | |
</div> | |
</div> | |
</label> | |
<label class="feature-checkbox flex items-start p-4 bg-white rounded-xl border-2 border-gray-100 hover:border-blue-200 hover:shadow-md cursor-pointer transition-all"> | |
<input type="checkbox" id="feature-smart" class="mt-1 h-5 w-5 text-blue-600 rounded focus:ring-blue-500"> | |
<div class="ml-4"> | |
<span class="font-semibold text-gray-900">Built-in streaming</span> | |
<span class="block text-gray-500 mt-1">Watch Netflix, Prime Video and more</span> | |
<div class="mt-2 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>No extra devices needed</span> | |
</div> | |
</div> | |
</label> | |
<label class="feature-checkbox flex items-start p-4 bg-white rounded-xl border-2 border-gray-100 hover:border-blue-200 hover:shadow-md cursor-pointer transition-all"> | |
<input type="checkbox" id="feature-oled" class="mt-1 h-5 w-5 text-blue-600 rounded focus:ring-blue-500"> | |
<div class="ml-4"> | |
<span class="font-semibold text-gray-900">Perfect black levels</span> | |
<span class="block text-gray-500 mt-1">OLED technology for dark room viewing</span> | |
<div class="mt-2 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Infinite contrast ratio</span> | |
</div> | |
</div> | |
</label> | |
<label class="feature-checkbox flex items-start p-4 bg-white rounded-xl border-2 border-gray-100 hover:border-blue-200 hover:shadow-md cursor-pointer transition-all"> | |
<input type="checkbox" id="feature-voice" class="mt-1 h-5 w-5 text-blue-600 rounded focus:ring-blue-500"> | |
<div class="ml-4"> | |
<span class="font-semibold text-gray-900">Voice control</span> | |
<span class="block text-gray-500 mt-1">Use Alexa or Google Assistant</span> | |
<div class="mt-2 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Hands-free operation</span> | |
</div> | |
</div> | |
</label> | |
</div> | |
<div class="flex justify-between pt-4 border-t border-gray-100"> | |
<button class="px-8 py-3 text-gray-600 rounded-lg hover:bg-gray-50 transition font-medium prev-step"> | |
<i class="fas fa-chevron-left mr-2"></i> Back | |
</button> | |
<button class="px-8 py-3 bg-gradient-to-r from-blue-600 to-blue-500 text-white rounded-lg hover:from-blue-700 hover:to-blue-600 transition shadow-md hover:shadow-lg next-step"> | |
Next <i class="fas fa-chevron-right ml-2"></i> | |
</button> | |
</div> | |
</div> | |
<!-- Step 5 - Room Lighting --> | |
<div class="step hidden" id="step-5"> | |
<div class="mb-8"> | |
<h2 class="text-2xl font-bold text-gray-900 mb-2">How's the lighting in your room?</h2> | |
<p class="text-gray-600">This helps us suggest the right screen brightness and anti-glare features</p> | |
</div> | |
<div class="grid grid-cols-1 md:grid-cols-2 gap-5 mb-10"> | |
<button class="lighting-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 hover:border-blue-200 hover:shadow-md transition-all" data-value="bright"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-yellow-100 text-yellow-600"> | |
<i class="fas fa-sun text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Lots of sunlight</span> | |
<span class="text-gray-500">Big windows or very bright lights</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Anti-glare recommended</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
<button class="lighting-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 hover:border-blue-200 hover:shadow-md transition-all" data-value="moderate"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-orange-100 text-orange-600"> | |
<i class="fas fa-lightbulb text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Normal lighting</span> | |
<span class="text-gray-500">Some lamps or natural light</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Standard brightness</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
<button class="lighting-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 hover:border-blue-200 hover:shadow-md transition-all" data-value="dark"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-indigo-100 text-indigo-600"> | |
<i class="fas fa-moon text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Dim or dark</span> | |
<span class="text-gray-500">Home theater or low lighting</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Deep blacks important</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
<button class="lighting-option option-card bg-white border-2 border-gray-100 rounded-xl p-6 hover:border-blue-200 hover:shadow-md transition-all" data-value="variable"> | |
<div class="flex items-start"> | |
<div class="feature-icon bg-blue-100 text-blue-600"> | |
<i class="fas fa-adjust text-xl"></i> | |
</div> | |
<div> | |
<span class="font-semibold text-lg block">Changes often</span> | |
<span class="text-gray-500">Bright during day, dark at night</span> | |
<div class="mt-3 text-blue-600 font-medium flex items-center"> | |
<span class="checkmark hidden"><i class="fas fa-check"></i></span> | |
<span>Adaptive brightness</span> | |
</div> | |
</div> | |
</div> | |
</button> | |
</div> | |
<div class="flex justify-between pt-4 border-t border-gray-100"> | |
<button class="px-8 py-3 text-gray-600 rounded-lg hover:bg-gray-50 transition font-medium prev-step"> | |
<i class="fas fa-chevron-left mr-2"></i> Back | |
</button> | |
<button class="px-8 py-3 bg-gradient-to-r from-blue-600 to-blue-500 text-white rounded-lg hover:from-blue-700 hover:to-blue-600 transition shadow-md hover:shadow-lg pulse" id="show-results"> | |
Find My Perfect TV <i class="fas fa-tv ml-2"></i> | |
</button> | |
</div> | |
</div> | |
<!-- Results --> | |
<div class="step hidden" id="results"> | |
<div class="flex flex-col md:flex-row md:items-center md:justify-between mb-8"> | |
<div> | |
<h2 class="text-3xl font-bold text-gray-900 mb-1">Your Personalized TV Matches</h2> | |
<p class="text-gray-600">We've selected these based on your preferences</p> | |
</div> | |
<div class="mt-4 md:mt-0 flex items-center"> | |
<span class="text-sm text-gray-600 mr-3">Sort by:</span> | |
<select class="border border-gray-300 rounded-lg px-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 bg-white"> | |
<option>Best matches</option> | |
<option>Price: Low to High</option> | |
<option>Price: High to Low</option> | |
<option>Top rated</option> | |
<option>New arrivals</option> | |
</select> | |
</div> | |
</div> | |
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-10"> | |
<!-- TV Card 1 --> | |
<div class="bg-white rounded-xl shadow-lg overflow-hidden card-hover"> | |
<div class="relative"> | |
<img src="https://m.media-amazon.com/images/I/71vZypjNkVL._AC_SX679_.jpg" alt="Sony Bravia XR" class="w-full h-56 object-contain p-4"> | |
<div class="absolute top-4 left-4 bg-yellow-400 text-black text-xs font-bold px-2 py-1 rounded-full">Best Seller</div> | |
<div class="absolute top-4 right-4 bg-white rounded-full p-2 shadow-md cursor-pointer hover:bg-gray-100 transition"> | |
<i class="far fa-heart text-gray-600 hover:text-red-500"></i> | |
</div> | |
<div class="absolute bottom-4 right-4 bg-blue-600 text-white rounded-full p-2 shadow-md cursor-pointer hover:bg-blue-700 transition"> | |
<i class="fas fa-bolt"></i> | |
</div> | |
</div> | |
<div class="p-5"> | |
<h3 class="font-bold text-xl mb-2 text-gray-900">Sony Bravia XR A80K 55" OLED TV</h3> | |
<div class="flex items-center mb-3"> | |
<div class="flex text-yellow-400"> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star-half-alt"></i> | |
</div> | |
<span class="text-sm text-gray-600 ml-2">(2,487 reviews)</span> | |
</div> | |
<div class="mb-4"> | |
<span class="text-2xl font-bold text-gray-900">$1,398.00</span> | |
<span class="text-sm text-gray-500 line-through ml-2">$1,599.99</span> | |
<span class="text-xs bg-red-100 text-red-800 font-medium ml-2 px-2 py-1 rounded-full">13% off</span> | |
</div> | |
<div class="text-sm text-gray-600 space-y-2 mb-5"> | |
<div class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i> | |
<span>Perfect for movies with OLED contrast</span> | |
</div> | |
<div class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i> | |
<span>Great for dark rooms</span> | |
</div> | |
<div class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i> | |
<span>Includes Google TV with voice control</span> | |
</div> | |
</div> | |
<button class="w-full bg-gradient-to-r from-yellow-400 to-yellow-500 hover:from-yellow-500 hover:to-yellow-600 text-black font-bold py-3 px-4 rounded-lg shadow-md hover:shadow-lg transition"> | |
<i class="fas fa-shopping-cart mr-2"></i> Add to Cart | |
</button> | |
</div> | |
</div> | |
<!-- TV Card 2 --> | |
<div class="bg-white rounded-xl shadow-lg overflow-hidden card-hover"> | |
<div class="relative"> | |
<img src="https://m.media-amazon.com/images/I/71CjUSx422L._AC_SX679_.jpg" alt="LG C2 Series" class="w-full h-56 object-contain p-4"> | |
<div class="absolute top-4 right-4 bg-white rounded-full p-2 shadow-md cursor-pointer hover:bg-gray-100 transition"> | |
<i class="far fa-heart text-gray-600 hover:text-red-500"></i> | |
</div> | |
<div class="absolute bottom-4 right-4 bg-blue-600 text-white rounded-full p-2 shadow-md cursor-pointer hover:bg-blue-700 transition"> | |
<i class="fas fa-bolt"></i> | |
</div> | |
</div> | |
<div class="p-5"> | |
<h3 class="font-bold text-xl mb-2 text-gray-900">LG C2 Series 55" OLED TV</h3> | |
<div class="flex items-center mb-3"> | |
<div class="flex text-yellow-400"> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
</div> | |
<span class="text-sm text-gray-600 ml-2">(5,213 reviews)</span> | |
</div> | |
<div class="mb-4"> | |
<span class="text-2xl font-bold text-gray-900">$1,296.99</span> | |
<span class="text-sm text-gray-500 line-through ml-2">$1,499.99</span> | |
<span class="text-xs bg-red-100 text-red-800 font-medium ml-2 px-2 py-1 rounded-full">14% off</span> | |
</div> | |
<div class="text-sm text-gray-600 space-y-2 mb-5"> | |
<div class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i> | |
<span>Excellent for gaming with 120Hz refresh</span> | |
</div> | |
<div class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i> | |
<span>Great HDR performance</span> | |
</div> | |
<div class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i> | |
<span>WebOS smart platform included</span> | |
</div> | |
</div> | |
<button class="w-full bg-gradient-to-r from-yellow-400 to-yellow-500 hover:from-yellow-500 hover:to-yellow-600 text-black font-bold py-3 px-4 rounded-lg shadow-md hover:shadow-lg transition"> | |
<i class="fas fa-shopping-cart mr-2"></i> Add to Cart | |
</button> | |
</div> | |
</div> | |
<!-- TV Card 3 --> | |
<div class="bg-white rounded-xl shadow-lg overflow-hidden card-hover"> | |
<div class="relative"> | |
<img src="https://m.media-amazon.com/images/I/71QeVa5UE+L._AC_SX679_.jpg" alt="Samsung QN90B" class="w-full h-56 object-contain p-4"> | |
<div class="absolute top-4 left-4 bg-blue-100 text-blue-800 text-xs font-bold px-2 py-1 rounded-full">Deal</div> | |
<div class="absolute top-4 right-4 bg-white rounded-full p-2 shadow-md cursor-pointer hover:bg-gray-100 transition"> | |
<i class="far fa-heart text-gray-600 hover:text-red-500"></i> | |
</div> | |
<div class="absolute bottom-4 right-4 bg-blue-600 text-white rounded-full p-2 shadow-md cursor-pointer hover:bg-blue-700 transition"> | |
<i class="fas fa-bolt"></i> | |
</div> | |
</div> | |
<div class="p-5"> | |
<h3 class="font-bold text-xl mb-2 text-gray-900">Samsung QN90B Neo QLED 55" TV</h3> | |
<div class="flex items-center mb-3"> | |
<div class="flex text-yellow-400"> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="far fa-star"></i> | |
</div> | |
<span class="text-sm text-gray-600 ml-2">(1,842 reviews)</span> | |
</div> | |
<div class="mb-4"> | |
<span class="text-2xl font-bold text-gray-900">$1,497.99</span> | |
<span class="text-sm text-gray-500 line-through ml-2">$1,799.99</span> | |
<span class="text-xs bg-red-100 text-red-800 font-medium ml-2 px-2 py-1 rounded-full">17% off</span> | |
</div> | |
<div class="text-sm text-gray-600 space-y-2 mb-5"> | |
<div class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i> | |
<span>Bright room performance</span> | |
</div> | |
<div class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i> | |
<span>Great for sports with anti-glare</span> | |
</div> | |
<div class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i> | |
<span>Samsung Tizen OS with Alexa</span> | |
</div> | |
</div> | |
<button class="w-full bg-gradient-to-r from-yellow-400 to-yellow-500 hover:from-yellow-500 hover:to-yellow-600 text-black font-bold py-3 px-4 rounded-lg shadow-md hover:shadow-lg transition"> | |
<i class="fas fa-shopping-cart mr-2"></i> Add to Cart | |
</button> | |
</div> | |
</div> | |
</div> | |
<div class="bg-blue-50 border border-blue-100 rounded-xl p-6 mb-10"> | |
<h3 class="font-bold text-xl text-blue-800 mb-4">Your TV Preferences</h3> | |
<div class="grid grid-cols-1 md:grid-cols-3 gap-4"> | |
<div class="bg-white rounded-xl p-4 shadow-sm"> | |
<span class="block text-sm text-gray-500 mb-1">Room placement</span> | |
<span class="font-semibold text-lg" id="pref-size">Living room</span> | |
</div> | |
<div class="bg-white rounded-xl p-4 shadow-sm"> | |
<span class="block text-sm text-gray-500 mb-1">Your budget</span> | |
<span class="font-semibold text-lg" id="pref-budget">$1,000</span> | |
</div> | |
<div class="bg-white rounded-xl p-4 shadow-sm"> | |
<span class="block text-sm text-gray-500 mb-1">Favorite content</span> | |
<span class="font-semibold text-lg" id="pref-usage">Movies, Gaming</span> | |
</div> | |
<div class="bg-white rounded-xl p-4 shadow-sm"> | |
<span class="block text-sm text-gray-500 mb-1">Preferred features</span> | |
<span class="font-semibold text-lg" id="pref-features">4K, HDR, Smart TV</span> | |
</div> | |
<div class="bg-white rounded-xl p-4 shadow-sm"> | |
<span class="block text-sm text-gray-500 mb-1">Room lighting</span> | |
<span class="font-semibold text-lg" id="pref-lighting">Moderate</span> | |
</div> | |
<div class="bg-white rounded-xl p-4 shadow-sm"> | |
<span class="block text-sm text-gray-500 mb-1">Screen size</span> | |
<span class="font-semibold text-lg" id="pref-screen">50-55"</span> | |
</div> | |
</div> | |
</div> | |
<div class="flex justify-center"> | |
<button class="px-8 py-3 bg-white border-2 border-gray-200 text-gray-700 rounded-lg hover:bg-gray-50 hover:border-gray-300 transition font-medium shadow-sm" id="restart-wizard"> | |
<i class="fas fa-redo mr-2"></i> Start Over | |
</button> | |
</div> | |
</div> | |
</div> | |
</main> | |
<!-- Footer --> | |
<footer class="bg-gray-900 text-gray-300"> | |
<div class="container mx-auto px-6 py-12"> | |
<div class="grid grid-cols-1 md:grid-cols-4 gap-10"> | |
<div> | |
<h3 class="font-bold text-white text-lg mb-4">Get to Know Us</h3> | |
<ul class="space-y-3"> | |
<li><a href="#" class="hover:text-white transition">About Us</a></li> | |
<li><a href="#" class="hover:text-white transition">Careers</a></li> | |
<li><a href="#" class="hover:text-white transition">Press Releases</a></li> | |
<li><a href="#" class="hover:text-white transition">Amazon Science</a></li> | |
</ul> | |
</div> | |
<div> | |
<h3 class="font-bold text-white text-lg mb-4">Make Money with Us</h3> | |
<ul class="space-y-3"> | |
<li><a href="#" class="hover:text-white transition">Sell products</a></li> | |
<li><a href="#" class="hover:text-white transition">Become an Affiliate</a></li> | |
<li><a href="#" class="hover:text-white transition">Advertise Your Products</a></li> | |
<li><a href="#" class="hover:text-white transition">Self-Publish with Us</a></li> | |
</ul> | |
</div> | |
<div> | |
<h3 class="font-bold text-white text-lg mb-4">Payment Products</h3> | |
<ul class="space-y-3"> | |
<li><a href="#" class="hover:text-white transition">Amazon Business Card</a></li> | |
<li><a href="#" class="hover:text-white transition">Shop with Points</a></li> | |
<li><a href="#" class="hover:text-white transition">Reload Your Balance</a></li> | |
<li><a href="#" class="hover:text-white transition">Amazon Currency Converter</a></li> | |
</ul> | |
</div> | |
<div> | |
<h3 class="font-bold text-white text-lg mb-4">Let Us Help You</h3> | |
<ul class="space-y-3"> | |
<li><a href="#" class="hover:text-white transition">Your Account</a></li> | |
<li><a href="#" class="hover:text-white transition">Your Orders</a></li> | |
<li><a href="#" class="hover:text-white transition">Shipping Rates & Policies</a></li> | |
<li><a href="#" class="hover:text-white transition">Returns & Replacements</a></li> | |
<li><a href="#" class="hover:text-white transition">Help</a></li> | |
</ul> | |
</div> | |
</div> | |
<div class="border-t border-gray-800 mt-12 pt-8 flex flex-col md:flex-row justify-between items-center"> | |
<div class="flex items-center mb-6 md:mb-0"> | |
<div class="bg-gradient-to-r from-blue-600 to-blue-800 text-white p-2 rounded-lg mr-3"> | |
<i class="fab fa-amazon text-2xl"></i> | |
</div> | |
<span class="font-bold text-white text-xl">TV Matchmaker</span> | |
</div> | |
<div class="flex space-x-6"> | |
<a href="#" class="text-gray-400 hover:text-white transition text-xl"><i class="fab fa-facebook-f"></i></a> | |
<a href="#" class="text-gray-400 hover:text-white transition text-xl"><i class="fab fa-twitter"></i></a> | |
<a href="#" class="text-gray-400 hover:text-white transition text-xl"><i class="fab fa-instagram"></i></a> | |
<a href="#" class="text-gray-400 hover:text-white transition text-xl"><i class="fab fa-youtube"></i></a> | |
</div> | |
</div> | |
<div class="mt-8 text-center text-sm text-gray-500"> | |
<p>© 2023 Amazon TV Matchmaker. All rights reserved.</p> | |
</div> | |
</div> | |
</footer> | |
<script> | |
document.addEventListener('DOMContentLoaded', function() { | |
// Wizard navigation | |
const steps = document.querySelectorAll('.step'); | |
const nextButtons = document.querySelectorAll('.next-step'); | |
const prevButtons = document.querySelectorAll('.prev-step'); | |
const showResultsButton = document.getElementById('show-results'); | |
const restartButton = document.getElementById('restart-wizard'); | |
const progressBar = document.getElementById('progress-bar'); | |
const progressText = document.getElementById('progress-text'); | |
const currentStepText = document.getElementById('current-step'); | |
const stepContainer = document.getElementById('step-container'); | |
const resultsSection = document.getElementById('results'); | |
let currentStep = 1; | |
const totalSteps = 5; | |
// User preferences | |
const userPrefs = { | |
size: 'Living room', | |
screen: '50-55"', | |
budget: 1000, | |
usage: [], | |
features: [], | |
lighting: '' | |
}; | |
// Update progress bar | |
function updateProgress() { | |
const progressPercent = (currentStep / totalSteps) * 100; | |
progressBar.style.width = `${progressPercent}%`; | |
progressText.textContent = `${Math.round(progressPercent)}% complete`; | |
currentStepText.textContent = currentStep; | |
} | |
// Next step | |
nextButtons.forEach(button => { | |
button.addEventListener('click', function() { | |
if (currentStep < totalSteps) { | |
document.getElementById(`step-${currentStep}`).classList.add('hidden'); | |
currentStep++; | |
document.getElementById(`step-${currentStep}`).classList.remove('hidden'); | |
updateProgress(); | |
// Add fade-in animation | |
stepContainer.classList.remove('fade-in'); | |
void stepContainer.offsetWidth; // Trigger reflow | |
stepContainer.classList.add('fade-in'); | |
// Scroll to top of step | |
window.scrollTo({ | |
top: stepContainer.offsetTop - 100, | |
behavior: 'smooth' | |
}); | |
} | |
}); | |
}); | |
// Previous step | |
prevButtons.forEach(button => { | |
button.addEventListener('click', function() { | |
if (currentStep > 1) { | |
document.getElementById(`step-${currentStep}`).classList.add('hidden'); | |
currentStep--; | |
document.getElementById(`step-${currentStep}`).classList.remove('hidden'); | |
updateProgress(); | |
// Add fade-in animation | |
stepContainer.classList.remove('fade-in'); | |
void stepContainer.offsetWidth; // Trigger reflow | |
stepContainer.classList.add('fade-in'); | |
// Scroll to top of step | |
window.scrollTo({ | |
top: stepContainer.offsetTop - 100, | |
behavior: 'smooth' | |
}); | |
} | |
}); | |
}); | |
// Show results | |
showResultsButton.addEventListener('click', function() { | |
document.getElementById(`step-${currentStep}`).classList.add('hidden'); | |
resultsSection.classList.remove('hidden'); | |
progressBar.style.width = '100%'; | |
progressText.textContent = '100% complete'; | |
currentStepText.textContent = 'Complete!'; | |
// Scroll to top of results | |
window.scrollTo({ | |
top: resultsSection.offsetTop - 100, | |
behavior: 'smooth' | |
}); | |
// Update preferences display | |
document.getElementById('pref-size').textContent = userPrefs.size; | |
document.getElementById('pref-screen').textContent = userPrefs.screen; | |
document.getElementById('pref-budget').textContent = `$${userPrefs.budget.toLocaleString()}`; | |
document.getElementById('pref-usage').textContent = userPrefs.usage.length > 0 ? | |
userPrefs.usage.map(u => { | |
if (u === 'movies') return 'Movies'; | |
if (u === 'gaming') return 'Gaming'; | |
if (u === 'sports') return 'Sports'; | |
if (u === 'streaming') return 'Streaming'; | |
return u; | |
}).join(', ') : 'Not specified'; | |
document.getElementById('pref-features').textContent = userPrefs.features.length > 0 ? | |
userPrefs.features.map(f => { | |
if (f === '4k') return '4K'; | |
if (f === 'hdr') return 'HDR'; | |
if (f === 'smart') return 'Smart TV'; | |
if (f === 'oled') return 'OLED'; | |
if (f === 'voice') return 'Voice Control'; | |
return f; | |
}).join(', ') : 'Not specified'; | |
document.getElementById('pref-lighting').textContent = userPrefs.lighting || 'Not specified'; | |
}); | |
// Restart wizard | |
restartButton.addEventListener('click', function() { | |
resultsSection.classList.add('hidden'); | |
currentStep = 1; | |
document.getElementById('step-1').classList.remove('hidden'); | |
updateProgress(); | |
currentStepText.textContent = currentStep; | |
// Reset user preferences | |
userPrefs.size = 'Living room'; | |
userPrefs.screen = '50-55"'; | |
userPrefs.budget = 1000; | |
userPrefs.usage = []; | |
userPrefs.features = []; | |
userPrefs.lighting = ''; | |
// Reset UI selections | |
document.querySelectorAll('.size-option, .usage-option, .lighting-option, .budget-preset').forEach(option => { | |
option.classList.remove('selected-card', 'border-blue-500', 'bg-blue-50'); | |
option.classList.add('border-gray-100'); | |
// Hide checkmarks | |
const checkmark = option.querySelector('.checkmark'); | |
if (checkmark) checkmark.classList.add('hidden'); | |
}); | |
document.getElementById('budget-slider').value = 1000; | |
document.getElementById('budget-value').textContent = '$1,000'; | |
document.querySelectorAll('input[type="checkbox"]').forEach(checkbox => { | |
checkbox.checked = false; | |
// Hide checkmarks in feature checkboxes | |
const container = checkbox.closest('.feature-checkbox'); | |
if (container) { | |
const checkmark = container.querySelector('.checkmark'); | |
if (checkmark) checkmark.classList.add('hidden'); | |
} | |
}); | |
// Scroll to top | |
window.scrollTo({ | |
top: 0, | |
behavior: 'smooth' | |
}); | |
}); | |
// Screen size selection | |
document.querySelectorAll('.size-option').forEach(option => { | |
option.addEventListener('click', function() { | |
document.querySelectorAll('.size-option').forEach(opt => { | |
opt.classList.remove('selected-card', 'border-blue-500', 'bg-blue-50'); | |
opt.classList.add('border-gray-100'); | |
opt.querySelector('.checkmark').classList.add('hidden'); | |
}); | |
this.classList.remove('border-gray-100'); | |
this.classList.add('selected-card', 'border-blue-500', 'bg-blue-50'); | |
this.querySelector('.checkmark').classList.remove('hidden'); | |
const size = this.getAttribute('data-value'); | |
if (size === '32') { | |
userPrefs.size = 'Bedroom'; | |
userPrefs.screen = '32" or under'; | |
} | |
else if (size === '43') { | |
userPrefs.size = 'Small living space'; | |
userPrefs.screen = '40-43"'; | |
} | |
else if (size === '55') { | |
userPrefs.size = 'Living room'; | |
userPrefs.screen = '50-55"'; | |
} | |
else if (size === '65') { | |
userPrefs.size = 'Home theater'; | |
userPrefs.screen = '65"+'; | |
} | |
}); | |
}); | |
// Budget slider | |
const budgetSlider = document.getElementById('budget-slider'); | |
const budgetValue = document.getElementById('budget-value'); | |
budgetSlider.addEventListener('input', function() { | |
const value = parseInt(this.value); | |
userPrefs.budget = value; | |
// Format as currency | |
budgetValue.textContent = `$${value.toLocaleString()}`; | |
}); | |
// Budget presets | |
document.querySelectorAll('.budget-preset').forEach(preset => { | |
preset.addEventListener('click', function() { | |
const value = parseInt(this.getAttribute('data-value')); | |
userPrefs.budget = value; | |
budgetSlider.value = value; | |
budgetValue.textContent = `$${value.toLocaleString()}`; | |
// Highlight selected preset | |
document.querySelectorAll('.budget-preset').forEach(p => { | |
p.classList.remove('border-blue-300', 'bg-blue-50'); | |
p.classList.add('border-gray-200'); | |
}); | |
this.classList.remove('border-gray-200'); | |
this.classList.add('border-blue-300', 'bg-blue-50'); | |
}); | |
}); | |
// Usage selection | |
document.querySelectorAll('.usage-option').forEach(option => { | |
option.addEventListener('click', function() { | |
const value = this.getAttribute('data-value'); | |
const index = userPrefs.usage.indexOf(value); | |
if (index === -1) { | |
userPrefs.usage.push(value); | |
this.classList.remove('border-gray-100'); | |
this.classList.add('selected-card', 'border-blue-500', 'bg-blue-50'); | |
this.querySelector('.checkmark').classList.remove('hidden'); | |
} else { | |
userPrefs.usage.splice(index, 1); | |
this.classList.remove('selected-card', 'border-blue-500', 'bg-blue-50'); | |
this.classList.add('border-gray-100'); | |
this.querySelector('.checkmark').classList.add('hidden'); | |
} | |
}); | |
}); | |
// Features selection | |
document.querySelectorAll('input[type="checkbox"]').forEach(checkbox => { | |
checkbox.addEventListener('change', function() { | |
const id = this.id.replace('feature-', ''); | |
const container = this.closest('.feature-checkbox'); | |
const checkmark = container.querySelector('.checkmark'); | |
if (this.checked) { | |
if (!userPrefs.features.includes(id)) { | |
userPrefs.features.push(id); | |
} | |
container.classList.add('border-blue-500', 'bg-blue-50'); | |
checkmark.classList.remove('hidden'); | |
} else { | |
const index = userPrefs.features.indexOf(id); | |
if (index !== -1) { | |
userPrefs.features.splice(index, 1); | |
} | |
container.classList.remove('border-blue-500', 'bg-blue-50'); | |
checkmark.classList.add('hidden'); | |
} | |
}); | |
}); | |
// Lighting selection | |
document.querySelectorAll('.lighting-option').forEach(option => { | |
option.addEventListener('click', function() { | |
document.querySelectorAll('.lighting-option').forEach(opt => { | |
opt.classList.remove('selected-card', 'border-blue-500', 'bg-blue-50'); | |
opt.classList.add('border-gray-100'); | |
opt.querySelector('.checkmark').classList.add('hidden'); | |
}); | |
this.classList.remove('border-gray-100'); | |
this.classList.add('selected-card', 'border-blue-500', 'bg-blue-50'); | |
this.querySelector('.checkmark').classList.remove('hidden'); | |
const lighting = this.getAttribute('data-value'); | |
if (lighting === 'bright') userPrefs.lighting = 'Lots of sunlight'; | |
else if (lighting === 'moderate') userPrefs.lighting = 'Normal lighting'; | |
else if (lighting === 'dark') userPrefs.lighting = 'Dim or dark'; | |
else if (lighting === 'variable') userPrefs.lighting = 'Changes often'; | |
}); | |
}); | |
// Initialize first step | |
document.querySelector('.size-option[data-value="55"]').click(); | |
}); | |
</script> | |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=LukasBe/tv-matchmaker" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |