Thinking Machines Inkling – Shopping
via BaseTen · Generated
- AIMAC Debt 4.70
- Cost $0.09
- Total Violations 17
- HTML Size 50 KB
- Em Dashes 2
Screenshot
View Live Page
Accessibility Issues Found
17 Serious
-
color-contrast serious 17 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<span class="font-semibold text-brand-600">WELCOME10</span>
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Meridian Market | Curated Commerce for Modern Shoppers</title>
<script src="https://cdn.tailwindcss.com"></script>
<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;800&display=swap" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Inter', 'sans-serif'],
},
colors: {
brand: {
50: '#fffbeb',
100: '#fef3c7',
500: '#f59e0b',
600: '#d97706',
900: '#78350f',
}
}
}
}
}
</script>
<style>
html { scroll-behavior: smooth; }
.accordion-content {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 0.3s ease;
}
.accordion-content.open {
grid-template-rows: 1fr;
}
.accordion-inner {
overflow: hidden;
}
</style>
</head>
<body class="font-sans text-gray-800 bg-white antialiased">
<!-- HEADER -->
<header class="sticky top-0 z-50 bg-white/95 backdrop-blur border-b border-gray-200">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between items-center h-20">
<!-- Logo & Brand -->
<div class="flex items-center gap-3">
<img src="https://placehold.co/150x50/1e293b/FFFFFF?text=Meridian+Mkt&font=montserrat" alt="Meridian Market Logo" class="h-10 w-auto rounded-md shadow-sm">
<div class="hidden sm:block">
<h1 class="text-xl font-bold text-slate-900 leading-tight">Meridian Market</h1>
<p class="text-xs text-gray-500 font-medium tracking-wide uppercase">Curated Commerce for Modern Shoppers</p>
</div>
</div>
<!-- Desktop Nav -->
<nav class="hidden md:flex items-center gap-8 text-sm font-medium text-gray-600">
<a href="#" class="hover:text-brand-600 transition">Home</a>
<a href="#" class="hover:text-brand-600 transition">Shop</a>
<a href="#" class="hover:text-brand-600 transition">Deals</a>
<a href="#" class="hover:text-brand-600 transition">Gift Guides</a>
<a href="#" class="hover:text-brand-600 transition">Help Center</a>
<a href="#" class="hover:text-brand-600 transition">My Orders</a>
<a href="#" class="hover:text-brand-600 transition flex items-center gap-1">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z" /></svg>
Wishlist
</a>
</nav>
<!-- Mobile Menu Button -->
<button id="mobile-menu-btn" class="md:hidden p-2 text-gray-600 hover:text-brand-600">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" /></svg>
</button>
</div>
</div>
<!-- Mobile Nav -->
<div id="mobile-menu" class="hidden md:hidden border-t border-gray-100 bg-white">
<div class="px-4 py-3 space-y-2 text-sm font-medium text-gray-700">
<a href="#" class="block py-2 hover:text-brand-600">Home</a>
<a href="#" class="block py-2 hover:text-brand-600">Shop</a>
<a href="#" class="block py-2 hover:text-brand-600">Deals</a>
<a href="#" class="block py-2 hover:text-brand-600">Gift Guides</a>
<a href="#" class="block py-2 hover:text-brand-600">Help Center</a>
<a href="#" class="block py-2 hover:text-brand-600">My Orders</a>
<a href="#" class="block py-2 hover:text-brand-600">Wishlist</a>
</div>
</div>
</header>
<!-- HERO -->
<section class="relative bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900 text-white overflow-hidden">
<div class="absolute inset-0 opacity-20">
<img src="https://picsum.photos/1200/600?grayscale" alt="Background texture" class="w-full h-full object-cover">
</div>
<div class="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20 lg:py-28">
<div class="grid lg:grid-cols-2 gap-12 items-center">
<div>
<span class="inline-block px-3 py-1 bg-brand-600/20 text-brand-100 text-xs font-bold uppercase tracking-widest rounded-full mb-4 border border-brand-500/30">Summer Sale Live</span>
<h2 class="text-4xl lg:text-5xl xl:text-6xl font-extrabold leading-tight mb-6">Discover Curated Deals That Actually Deliver</h2>
<p class="text-lg text-gray-300 mb-8 leading-relaxed max-w-xl">
At Meridian Market, we believe shopping should be effortless, transparent, and rewarding. Our platform brings together curated products from trusted vendors, competitive pricing, and a seamless checkout experience backed by our 30-day return policy. Whether you're hunting for seasonal fashion, home essentials, or the perfect gift, our editorial team reviews every listing to ensure quality and value.
</p>
<div class="flex flex-wrap gap-4">
<a href="#editor-picks" class="inline-flex items-center justify-center px-8 py-3.5 bg-brand-600 hover:bg-brand-500 text-white font-semibold rounded-lg transition shadow-lg shadow-brand-900/20">Shop Now</a>
<a href="#seasonal" class="inline-flex items-center justify-center px-8 py-3.5 bg-white/10 hover:bg-white/20 text-white font-semibold rounded-lg transition backdrop-blur border border-white/20">View Deals</a>
</div>
</div>
<div class="relative">
<img src="https://picsum.photos/600/450?blur=1" alt="Featured shopping collection" class="rounded-2xl shadow-2xl border border-white/10 w-full object-cover">
<div class="absolute -bottom-6 -left-6 bg-white text-slate-900 p-5 rounded-xl shadow-xl hidden md:block">
<p class="text-2xl font-bold">50K+</p>
<p class="text-sm text-gray-500">Happy Customers</p>
</div>
</div>
</div>
</div>
</section>
<!-- TRUST / FEATURES -->
<section class="py-12 bg-gray-50 border-b border-gray-200">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-8">
<div class="flex items-start gap-4">
<div class="p-3 bg-white rounded-lg shadow-sm text-brand-600">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" /></svg>
</div>
<div>
<h3 class="font-bold text-slate-900">Curated Quality</h3>
<p class="text-sm text-gray-600 mt-1">Every product vetted by our editorial team for durability and design.</p>
</div>
</div>
<div class="flex items-start gap-4">
<div class="p-3 bg-white rounded-lg shadow-sm text-brand-600">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" 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-5.93 9-11.622 0-1.042-.133-2.052-.382-3.016z" /></svg>
</div>
<div>
<h3 class="font-bold text-slate-900">30-Day Returns</h3>
<p class="text-sm text-gray-600 mt-1">Not satisfied? Our hassle-free return policy has you covered.</p>
</div>
</div>
<div class="flex items-start gap-4">
<div class="p-3 bg-white rounded-lg shadow-sm text-brand-600">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>
</div>
<div>
<h3 class="font-bold text-slate-900">Loyalty Rewards</h3>
<p class="text-sm text-gray-600 mt-1">Earn points on every purchase and unlock exclusive member perks.</p>
</div>
</div>
<div class="flex items-start gap-4">
<div class="p-3 bg-white rounded-lg shadow-sm text-brand-600">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M18.364 5.636l-3.536 3.536m0 5.656l3.536 3.536M9.172 9.172L5.636 5.636m3.536 9.192l-3.536 3.536M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-5 0a4 4 0 11-8 0 4 4 0 018 0z" /></svg>
</div>
<div>
<h3 class="font-bold text-slate-900">24/7 Support</h3>
<p class="text-sm text-gray-600 mt-1">Our team is always available to help with orders and returns.</p>
</div>
</div>
</div>
</div>
</section>
<!-- MAIN CONTENT + SIDEBAR -->
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16">
<div class="grid lg:grid-cols-4 gap-10">
<!-- LEFT COLUMN -->
<div class="lg:col-span-3 space-y-16">
<!-- EDITOR PICKS -->
<section id="editor-picks">
<div class="mb-6">
<h2 class="text-3xl font-bold text-slate-900 mb-3">Editor Picks</h2>
<p class="text-gray-600 leading-relaxed">
Our editorial team spends over 40 hours each week reviewing new arrivals, comparing prices across the market, and testing products for durability and design. The result is a handpicked selection that saves you time without sacrificing quality. Every item in this collection qualifies for free shipping over $50 and is covered by our hassle-free return window. Don't forget to apply your welcome promo code <span class="font-semibold text-brand-600">WELCOME10</span> at checkout for an additional 10% off your first order. Members of our loyalty program also earn double points on all editor picks this month—redeem them for discounts, free shipping, and exclusive early access to seasonal drops.
</p>
</div>
<div class="grid sm:grid-cols-2 md:grid-cols-3 gap-6">
<!-- Card 1 -->
<div class="group bg-white border border-gray-200 rounded-xl overflow-hidden hover:shadow-lg transition">
<div class="aspect-square overflow-hidden bg-gray-100">
<img src="https://picsum.photos/400/400?random=1" alt="Urban Wool Coat" class="w-full h-full object-cover group-hover:scale-105 transition duration-300">
</div>
<div class="p-4">
<p class="text-xs font-bold text-brand-600 uppercase tracking-wide">Outerwear</p>
<h3 class="font-semibold text-slate-900 mt-1">Urban Wool Coat</h3>
<div class="flex items-center gap-1 mt-2">
<div class="flex text-yellow-400">
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
</div>
<span class="text-xs text-gray-500">4.8</span>
</div>
<div class="flex items-center justify-between mt-3">
<span class="font-bold text-slate-900">$129.99</span>
<button class="px-3 py-1.5 bg-slate-900 text-white text-sm font-medium rounded-md hover:bg-slate-700 transition">Buy Now</button>
</div>
</div>
</div>
<!-- Card 2 -->
<div class="group bg-white border border-gray-200 rounded-xl overflow-hidden hover:shadow-lg transition">
<div class="aspect-square overflow-hidden bg-gray-100">
<img src="https://picsum.photos/400/400?random=2" alt="Ceramic Coffee Set" class="w-full h-full object-cover group-hover:scale-105 transition duration-300">
</div>
<div class="p-4">
<p class="text-xs font-bold text-brand-600 uppercase tracking-wide">Kitchen</p>
<h3 class="font-semibold text-slate-900 mt-1">Ceramic Coffee Set</h3>
<div class="flex items-center gap-1 mt-2">
<div class="flex text-yellow-400">
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current text-gray-300" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
</div>
<span class="text-xs text-gray-500">4.7</span>
</div>
<div class="flex items-center justify-between mt-3">
<span class="font-bold text-slate-900">$45.00</span>
<button class="px-3 py-1.5 bg-slate-900 text-white text-sm font-medium rounded-md hover:bg-slate-700 transition">Buy Now</button>
</div>
</div>
</div>
<!-- Card 3 -->
<div class="group bg-white border border-gray-200 rounded-xl overflow-hidden hover:shadow-lg transition">
<div class="aspect-square overflow-hidden bg-gray-100">
<img src="https://picsum.photos/400/400?random=3" alt="Leather Crossbody Bag" class="w-full h-full object-cover group-hover:scale-105 transition duration-300">
</div>
<div class="p-4">
<p class="text-xs font-bold text-brand-600 uppercase tracking-wide">Accessories</p>
<h3 class="font-semibold text-slate-900 mt-1">Leather Crossbody</h3>
<div class="flex items-center gap-1 mt-2">
<div class="flex text-yellow-400">
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
</div>
<span class="text-xs text-gray-500">4.9</span>
</div>
<div class="flex items-center justify-between mt-3">
<span class="font-bold text-slate-900">$89.50</span>
<button class="px-3 py-1.5 bg-slate-900 text-white text-sm font-medium rounded-md hover:bg-slate-700 transition">Buy Now</button>
</div>
</div>
</div>
</div>
</section>
<!-- SEASONAL COLLECTION -->
<section id="seasonal" class="bg-brand-50 rounded-2xl p-6 md:p-8">
<div class="grid md:grid-cols-2 gap-8 items-center">
<div>
<span class="text-brand-600 font-bold text-sm uppercase tracking-wider">Seasonal Drop</span>
<h2 class="text-2xl md:text-3xl font-bold text-slate-900 mt-2 mb-4">Autumn Essentials 2025</h2>
<p class="text-gray-700 leading-relaxed mb-6">
As temperatures drop, our Autumn Essentials collection delivers warmth, style, and functionality. From sustainably sourced knitwear to weather-resistant footwear, each piece has been selected to complement your seasonal wardrobe. For a limited time, use promo code <span class="font-bold text-brand-900">FALL25</span> to save 25% on orders over $100. All seasonal items include our standard 30-day return policy, so you can shop with confidence. Join over 50,000 members who rely on our loyalty program to earn points on every seasonal purchase—redeem them for exclusive discounts and early access to sales.
</p>
<a href="#" class="inline-flex items-center justify-center px-6 py-3 bg-slate-900 text-white font-semibold rounded-lg hover:bg-slate-800 transition">Explore Collection</a>
</div>
<div>
<img src="https://picsum.photos/500/400?random=10" alt="Autumn collection display" class="rounded-xl shadow-lg w-full object-cover">
</div>
</div>
</section>
<!-- TRENDING NOW -->
<section>
<div class="mb-6">
<h2 class="text-2xl font-bold text-slate-900 mb-2">Trending Now</h2>
<p class="text-gray-600 leading-relaxed">
These are the items our community can't stop adding to cart. Updated in real-time based on sales velocity, search trends, and customer reviews, this list highlights what's hot right now. Many of these products feature limited inventory, so we recommend checking availability using our live stock tool below. Prices shown include current discounts, and active promo codes can be stacked with loyalty rewards for maximum savings.
</p>
</div>
<div class="grid sm:grid-cols-2 gap-5">
<div class="flex gap-4 items-center bg-white border border-gray-200 rounded-lg p-3 hover:shadow-md transition">
<img src="https://picsum.photos/120/120?random=20" class="w-20 h-20 rounded-md object-cover" alt="Trending item 1">
<div>
<h4 class="font-semibold text-slate-900 text-sm">Smart Home Hub</h4>
<p class="text-brand-600 font-bold text-sm mt-0.5">$89.00</p>
<a href="#" class="text-xs text-slate-600 underline hover:text-brand-600 mt-1 inline-block">View Deal</a>
</div>
</div>
<div class="flex gap-4 items-center bg-white border border-gray-200 rounded-lg p-3 hover:shadow-md transition">
<img src="https://picsum.photos/120/120?random=21" class="w-20 h-20 rounded-md object-cover" alt="Trending item 2">
<div>
<h4 class="font-semibold text-slate-900 text-sm">Organic Cotton Tee Pack</h4>
<p class="text-brand-600 font-bold text-sm mt-0.5">$34.00</p>
<a href="#" class="text-xs text-slate-600 underline hover:text-brand-600 mt-1 inline-block">View Deal</a>
</div>
</div>
<div class="flex gap-4 items-center bg-white border border-gray-200 rounded-lg p-3 hover:shadow-md transition">
<img src="https://picsum.photos/120/120?random=22" class="w-20 h-20 rounded-md object-cover" alt="Trending item 3">
<div>
<h4 class="font-semibold text-slate-900 text-sm">Noise Cancelling Headphones</h4>
<p class="text-brand-600 font-bold text-sm mt-0.5">$129.00</p>
<a href="#" class="text-xs text-slate-600 underline hover:text-brand-600 mt-1 inline-block">View Deal</a>
</div>
</div>
<div class="flex gap-4 items-center bg-white border border-gray-200 rounded-lg p-3 hover:shadow-md transition">
<img src="https://picsum.photos/120/120?random=23" class="w-20 h-20 rounded-md object-cover" alt="Trending item 4">
<div>
<h4 class="font-semibold text-slate-900 text-sm">Stainless Steel Bottle</h4>
<p class="text-brand-600 font-bold text-sm mt-0.5">$28.00</p>
<a href="#" class="text-xs text-slate-600 underline hover:text-brand-600 mt-1 inline-block">View Deal</a>
</div>
</div>
</div>
</section>
</div>
<!-- RIGHT SIDEBAR -->
<aside class="lg:col-span-1 space-y-8">
<!-- New Arrivals -->
<div class="bg-white border border-gray-200 rounded-xl p-5 shadow-sm">
<h3 class="font-bold text-slate-900 mb-4 flex items-center gap-2">
<span class="w-2 h-2 bg-green-500 rounded-full"></span> New Arrivals
</h3>
<div class="space-y-4">
<a href="#" class="flex gap-3 group">
<img src="https://picsum.photos/80/80?random=30" class="w-14 h-14 rounded-md object-cover" alt="New arrival 1">
<div>
<p class="text-sm font-semibold text-slate-900 group-hover:text-brand-600 transition">Minimalist Desk Lamp</p>
<p class="text-xs text-gray-500">$39.00</p>
</div>
</a>
<a href="#" class="flex gap-3 group">
<img src="https://picsum.photos/80/80?random=31" class="w-14 h-14 rounded-md object-cover" alt="New arrival 2">
<div>
<p class="text-sm font-semibold text-slate-900 group-hover:text-brand-600 transition">Recycled Yoga Mat</p>
<p class="text-xs text-gray-500">$52.00</p>
</div>
</a>
<a href="#" class="flex gap-3 group">
<img src="https://picsum.photos/80/80?random=32" class="w-14 h-14 rounded-md object-cover" alt="New arrival 3">
<div>
<p class="text-sm font-semibold text-slate-900 group-hover:text-brand-600 transition">Wireless Earbuds Pro</p>
<p class="text-xs text-gray-500">$79.00</p>
</div>
</a>
<a href="#" class="flex gap-3 group">
<img src="https://picsum.photos/80/80?random=33" class="w-14 h-14 rounded-md object-cover" alt="New arrival 4">
<div>
<p class="text-sm font-semibold text-slate-900 group-hover:text-brand-600 transition">Ceramic Vase Set</p>
<p class="text-xs text-gray-500">$42.00</p>
</div>
</a>
</div>
</div>
<!-- Price Drops -->
<div class="bg-white border border-gray-200 rounded-xl p-5 shadow-sm">
<h3 class="font-bold text-slate-900 mb-4 flex items-center gap-2">
<span class="w-2 h-2 bg-red-500 rounded-full"></span> Price Drops
</h3>
<div class="space-y-4">
<div class="flex gap-3 items-center">
<img src="https://picsum.photos/80/80?random=40" class="w-12 h-12 rounded-md object-cover" alt="Price drop 1">
<div>
<p class="text-sm font-medium text-slate-900">Smart Watch S5</p>
<p class="text-xs text-gray-500 line-through">$249.00</p>
<p class="text-sm font-bold text-red-600">$179.00</p>
</div>
</div>
<div class="flex gap-3 items-center">
<img src="https://picsum.photos/80/80?random=41" class="w-12 h-12 rounded-md object-cover" alt="Price drop 2">
<div>
<p class="text-sm font-medium text-slate-900">Bluetooth Speaker</p>
<p class="text-xs text-gray-500 line-through">$89.00</p>
<p class="text-sm font-bold text-red-600">$59.00</p>
</div>
</div>
</div>
</div>
<!-- Loyalty Promo -->
<div class="bg-slate-900 text-white rounded-xl p-5 shadow-lg">
<h3 class="font-bold text-lg mb-2">Meridian Rewards</h3>
<p class="text-sm text-gray-300 mb-4 leading-relaxed">Earn 1 point for every $1 spent. Redeem for discounts, free shipping, and birthday rewards. New members get 500 bonus points with code <span class="font-bold text-brand-400">JOINNOW</span>.</p>
<a href="#" class="block text-center py-2 bg-brand-600 hover:bg-brand-500 rounded-lg text-sm font-semibold transition">Join Program</a>
</div>
</aside>
</div>
</div>
<!-- INTERACTIVE: STOCK CHECKER -->
<section class="py-16 bg-slate-50 border-y border-gray-200">
<div class="max-w-2xl mx-auto px-4 text-center">
<h2 class="text-2xl md:text-3xl font-bold text-slate-900 mb-3">Real-Time Inventory Checker</h2>
<p class="text-gray-600 mb-8 leading-relaxed">
Don't miss out on limited-stock items. Enter a product name or SKU below to instantly check availability, estimated shipping time, and current warehouse location. Our system updates every 60 seconds to reflect real inventory levels across our fulfillment network.
</p>
<div class="bg-white p-6 rounded-2xl shadow-sm border border-gray-200 text-left">
<label for="stock-input" class="block text-sm font-semibold text-slate-700 mb-2">Product Name or SKU</label>
<div class="flex gap-2">
<input type="text" id="stock-input" placeholder="e.g., Urban Wool Coat" class="flex-1 px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-brand-500 focus:border-transparent">
<button id="check-stock" class="px-6 py-3 bg-brand-600 hover:bg-brand-500 text-white font-semibold rounded-lg transition">Check Stock</button>
</div>
<div id="stock-result" class="mt-5 hidden">
<div class="p-4 rounded-lg bg-green-50 border border-green-200">
<div class="flex items-center gap-2 mb-1">
<span class="w-3 h-3 bg-green-500 rounded-full"></span>
<span class="font-bold text-green-800" id="stock-status">In Stock</span>
</div>
<p class="text-sm text-green-700" id="stock-detail">This item is available at our East Coast warehouse and ships within 24 hours.</p>
</div>
</div>
<p id="stock-error" class="mt-3 text-sm text-red-600 hidden">Please enter a product name to check availability.</p>
</div>
</div>
</section>
<!-- TESTIMONIALS -->
<section class="py-16 bg-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-12">
<h2 class="text-3xl font-bold text-slate-900">What Shoppers Say</h2>
<p class="text-gray-600 mt-2 max-w-2xl mx-auto">Real feedback from customers who value quality, transparency, and great service.</p>
</div>
<div class="grid md:grid-cols-3 gap-8">
<div class="bg-gray-50 rounded-xl p-6 border border-gray-100">
<div class="flex items-center gap-3 mb-4">
<img src="https://i.pravatar.cc/80?u=sarah" alt="Sarah J." class="w-12 h-12 rounded-full object-cover">
<div>
<p class="font-bold text-slate-900">Sarah J.</p>
<p class="text-xs text-gray-500">Verified Buyer</p>
</div>
</div>
<div class="flex text-yellow-400 mb-3">
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
</div>
<p class="text-gray-700 text-sm leading-relaxed">
I've been shopping here for six months and the quality consistently impresses me. The return process was seamless when a coat didn't fit, and my loyalty points added up quickly. I used a promo code on my second order and saved even more.
</p>
</div>
<div class="bg-gray-50 rounded-xl p-6 border border-gray-100">
<div class="flex items-center gap-3 mb-4">
<img src="https://i.pravatar.cc/80?u=marcus" alt="Marcus T." class="w-12 h-12 rounded-full object-cover">
<div>
<p class="font-bold text-slate-900">Marcus T.</p>
<p class="text-xs text-gray-500">Verified Buyer</p>
</div>
</div>
<div class="flex text-yellow-400 mb-3">
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
</div>
<p class="text-gray-700 text-sm leading-relaxed">
The seasonal collections are always on point. I grabbed the autumn knitwear set using the FALL25 promo code and saved 25%. Shipping was fast, and the loyalty program made my next purchase even cheaper. Highly recommend for anyone who loves curated fashion.
</p>
</div>
<div class="bg-gray-50 rounded-xl p-6 border border-gray-100">
<div class="flex items-center gap-3 mb-4">
<img src="https://i.pravatar.cc/80?u=elena" alt="Elena R." class="w-12 h-12 rounded-full object-cover">
<div>
<p class="font-bold text-slate-900">Elena R.</p>
<p class="text-xs text-gray-500">Verified Buyer</p>
</div>
</div>
<div class="flex text-yellow-400 mb-3">
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
<svg class="h-4 w-4 fill-current" viewBox="0 0 20 20"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 1.934a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-1.934a1 1 0 00-1.175 0l-2.8 1.934c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>
</div>
<p class="text-gray-700 text-sm leading-relaxed">
Customer service helped me update my order address within minutes. The stock checker saved me from ordering an out-of-stock item. Plus, the packaging was eco-friendly, which I appreciate as part of their sustainability commitment.
</p>
</div>
</div>
</div>
</section>
<!-- FAQ ACCORDION -->
<section class="py-16 bg-gray-50">
<div class="max-w-3xl mx-auto px-4">
<h2 class="text-2xl font-bold text-slate-900 text-center mb-8">Frequently Asked Questions</h2>
<div class="space-y-4">
<div class="bg-white rounded-xl border border-gray-200 overflow-hidden">
<button class="accordion-btn w-full text-left px-6 py-4 font-semibold text-slate-900 flex justify-between items-center hover:bg-gray-50">
How long does shipping take?
<span class="transform transition-transform duration-200">+</span>
</button>
<div class="accordion-content">
<div class="accordion-inner">
<div class="px-6 pb-4 text-gray-600 text-sm leading-relaxed">
Standard shipping takes 3-5 business days within the continental US, with express options available at checkout for 1-2 day delivery. International orders typically arrive within 7-14 days depending on customs processing. All orders over $50 qualify for free standard shipping, and tracking is provided via email and SMS updates.
</div>
</div>
</div>
</div>
<div class="bg-white rounded-xl border border-gray-200 overflow-hidden">
<button class="accordion-btn w-full text-left px-6 py-4 font-semibold text-slate-900 flex justify-between items-center hover:bg-gray-50">
What is your return policy?
<span class="transform transition-transform duration-200">+</span>
</button>
<div class="accordion-content">
<div class="accordion-inner">
<div class="px-6 pb-4 text-gray-600 text-sm leading-relaxed">
We offer a 30-day hassle-free return policy on all unused items in original packaging. Simply initiate a return through your order dashboard, print the prepaid label, and drop off at any authorized carrier. Refunds are processed within 5-7 business days after we receive the item. Seasonal sale items are also eligible for returns unless marked as final sale.
</div>
</div>
</div>
</div>
<div class="bg-white rounded-xl border border-gray-200 overflow-hidden">
<button class="accordion-btn w-full text-left px-6 py-4 font-semibold text-slate-900 flex justify-between items-center hover:bg-gray-50">
Can I stack promo codes with sale prices?
<span class="transform transition-transform duration-200">+</span>
</button>
<div class="accordion-content">
<div class="accordion-inner">
<div class="px-6 pb-4 text-gray-600 text-sm leading-relaxed">
Yes, our system allows one promo code per order, and it can be applied to items already on sale unless specifically excluded. Loyalty members can also apply point-redemption discounts in addition to promo codes for maximum savings. Check the terms on each promo for specific exclusions and expiration dates.
</div>
</div>
</div>
</div>
<div class="bg-white rounded-xl border border-gray-200 overflow-hidden">
<button class="accordion-btn w-full text-left px-6 py-4 font-semibold text-slate-900 flex justify-between items-center hover:bg-gray-50">
How does the loyalty program work?
<span class="transform transition-transform duration-200">+</span>
</button>
<div class="accordion-content">
<div class="accordion-inner">
<div class="px-6 pb-4 text-gray-600 text-sm leading-relaxed">
Our loyalty program rewards you with 1 point for every dollar spent, plus bonus points for referrals and reviews. Points never expire and can be redeemed for dollar-off discounts, free shipping vouchers, and exclusive member-only sales. New members receive 500 welcome points with code JOINNOW.
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- NEWSLETTER -->
<section class="py-14 bg-brand-600 text-white">
<div class="max-w-4xl mx-auto px-4 text-center">
<h2 class="text-2xl md:text-3xl font-bold mb-3">Subscribe for Exclusive Deals</h2>
<p class="text-brand-100 mb-8 max-w-xl mx-auto">Join 120,000+ subscribers and get weekly curated deals, early access to sales, and a 10% welcome discount delivered to your inbox.</p>
<form class="flex flex-col sm:flex-row gap-3 justify-center max-w-md mx-auto" onsubmit="event.preventDefault(); alert('Thank you for subscribing!');">
<input type="email" required placeholder="Enter your email" class="flex-1 px-5 py-3 rounded-lg text-gray-900 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-white/50">
<button type="submit" class="px-6 py-3 bg-slate-900 hover:bg-slate-800 font-semibold rounded-lg transition">Subscribe</button>
</form>
<p class="text-xs text-brand-200 mt-4">By subscribing, you agree to our Privacy Policy. Unsubscribe anytime.</p>
</div>
</section>
<!-- FOOTER -->
<footer class="bg-slate-900 text-gray-300 py-12">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid md:grid-cols-4 gap-8 mb-8">
<div>
<div class="flex items-center gap-2 mb-4">
<img src="https://placehold.co/120x40/1e293b/FFFFFF?text=Meridian+Mkt&font=montserrat" alt="Logo" class="h-8 w-auto rounded">
<span class="text-white font-bold text-lg">Meridian Market</span>
</div>
<p class="text-sm text-gray-400 leading-relaxed">
Curated commerce for the modern shopper. Quality products, transparent pricing, and a loyalty program that rewards you for every purchase.
</p>
</div>
<div>
<h4 class="text-white font-semibold mb-4">Shop</h4>
<ul class="space-y-2 text-sm">
<li><a href="#" class="hover:text-white transition">New Arrivals</a></li>
<li><a href="#" class="hover:text-white transition">Editor Picks</a></li>
<li><a href="#" class="hover:text-white transition">Seasonal Sales</a></li>
<li><a href="#" class="hover:text-white transition">Gift Guides</a></li>
</ul>
</div>
<div>
<h4 class="text-white font-semibold mb-4">Support</h4>
<ul class="space-y-2 text-sm">
<li><a href="#" class="hover:text-white transition">Help Center</a></li>
<li><a href="#" class="hover:text-white transition">My Orders</a></li>
<li><a href="#" class="hover:text-white transition">Return Policy</a></li>
<li><a href="#" class="hover:text-white transition">Wishlist</a></li>
</ul>
</div>
<div>
<h4 class="text-white font-semibold mb-4">Contact</h4>
<ul class="space-y-2 text-sm text-gray-400">
<li>120 Commerce Blvd, Suite 400</li>
<li>Seattle, WA 98101</li>
<li>hello@meridianmarket.com</li>
<li>(555) 123-4567</li>
</ul>
<div class="flex gap-4 mt-4">
<a href="#" class="text-gray-400 hover:text-white transition">Twitter</a>
<a href="#" class="text-gray-400 hover:text-white transition">Instagram</a>
<a href="#" class="text-gray-400 hover:text-white transition">Facebook</a>
</div>
</div>
</div>
<div class="border-t border-slate-800 pt-8 flex flex-col md:flex-row justify-between items-center gap-4 text-sm text-gray-500">
<p>© 2025 Meridian Market Inc. All rights reserved.</p>
<div class="flex gap-6">
<a href="#" class="hover:text-white transition">Privacy Policy</a>
<a href="#" class="hover:text-white transition">Terms of Service</a>
<a href="#" class="hover:text-white transition">Cookie Settings</a>
</div>
</div>
</div>
</footer>
<script>
// Mobile menu toggle
const btn = document.getElementById('mobile-menu-btn');
const menu = document.getElementById('mobile-menu');
btn.addEventListener('click', () => {
menu.classList.toggle('hidden');
});
// Accordion
document.querySelectorAll('.accordion-btn').forEach(button => {
button.addEventListener('click', () => {
const content = button.nextElementSibling;
const icon = button.querySelector('span');
const isOpen = content.classList.contains('open');
document.querySelectorAll('.accordion-content').forEach(c => c.classList.remove('open'));
document.querySelectorAll('.accordion-btn span').forEach(s => s.textContent = '+');
if (!isOpen) {
content.classList.add('open');
icon.textContent = '-';
}
});
});
// Stock checker
const checkBtn = document.getElementById('check-stock');
const input = document.getElementById('stock-input');
const result = document.getElementById('stock-result');
const error = document.getElementById('stock-error');
const statusText = document.getElementById('stock-status');
const detailText = document.getElementById('stock-detail');
checkBtn.addEventListener('click', () => {
const val = input.value.trim();
error.classList.add('hidden');
result.classList.add('hidden');
if (!val) {
error.classList.remove('hidden');
return;
}
result.classList.remove('hidden');
if (val.length % 2 === 0) {
statusText.textContent = 'In Stock';
statusText.parentElement.parentElement.className = 'p-4 rounded-lg bg-green-50 border border-green-200';
detailText.textContent = `We found "${val}" available at our East Coast facility. Estimated delivery within 3-5 business days.`;
} else {
statusText.textContent = 'Low Stock';
statusText.parentElement.parentElement.className = 'p-4 rounded-lg bg-yellow-50 border border-yellow-200';
detailText.textContent = `Only a few units of "${val}" remain. Order within 2 hours for same-day processing, or join our waitlist for restock alerts.`;
}
});
</script>
</body>
</html>
View Axe Report (JSON)
{
"testEngine": {
"name": "axe-core",
"version": "4.10.2"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
"windowWidth": 1280,
"windowHeight": 720,
"orientationAngle": 0,
"orientationType": "landscape-primary"
},
"timestamp": "2026-11-12T09:45:10.218Z",
"url": "https://benchmark.aimac.invalid/58fae32cb10cadcdd535d2f199c0685d58f82bb79711625b300112d107b0c3ad.html",
"toolOptions": {
"runOnly": {
"type": "tag",
"values": [
"wcag2a",
"wcag2aa",
"wcag21a",
"wcag21aa",
"wcag22a",
"wcag22aa"
]
},
"resultTypes": [
"violations"
],
"reporter": "v1"
},
"inapplicable": [
{
"id": "area-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <area> elements of image maps have alternative text",
"help": "Active <area> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
"nodes": []
},
{
"id": "aria-allowed-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure an element's role supports its ARIA attributes",
"help": "Elements must only use supported ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-braille-equivalent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
"help": "aria-braille attributes must have a non-braille equivalent",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
"nodes": []
},
{
"id": "aria-command-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA button, link and menuitem has an accessible name",
"help": "ARIA commands must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-conditional-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are used as described in the specification of the element's role",
"help": "ARIA attributes must be used as specified for the element's role",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": []
},
{
"id": "aria-hidden-focus",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-prohibited-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-valid-attr-value",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all ARIA attributes have valid values",
"help": "ARIA attributes must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
"nodes": []
},
{
"id": "aria-valid-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure attributes that begin with aria- are valid ARIA attributes",
"help": "ARIA attributes must conform to valid names",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "marquee",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag222",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <marquee> elements are not used",
"help": "<marquee> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
"nodes": []
},
{
"id": "meta-refresh",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag221",
"TTv5",
"TT8.a",
"EN-301-549",
"EN-9.2.2.1"
],
"description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
"help": "Delayed refresh under 20 hours must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
"nodes": []
},
{
"id": "object-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure <object> elements have alternative text",
"help": "<object> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
"nodes": []
},
{
"id": "role-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure [role=\"img\"] elements have alternative text",
"help": "[role=\"img\"] elements must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "scrollable-region-focusable",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"wcag213",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1",
"EN-9.2.1.3"
],
"description": "Ensure elements that have scrollable content are accessible by keyboard",
"help": "Scrollable region must have keyboard access",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
"nodes": []
},
{
"id": "select-name",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure select element has an accessible name",
"help": "Select element must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
"nodes": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "summary-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure summary elements have discernible text",
"help": "Summary elements must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
"nodes": []
},
{
"id": "svg-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
"help": "<svg> elements with an img role must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "td-headers-attr",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
"help": "Table cells that use the headers attribute must only refer to cells in the same table",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
"nodes": []
},
{
"id": "th-has-data-cells",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
"help": "Table headers in a data table must refer to data cells",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
"nodes": []
},
{
"id": "valid-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2aa",
"wcag312",
"TTv5",
"TT11.b",
"EN-301-549",
"EN-9.3.1.2",
"ACT"
],
"description": "Ensure lang attributes have valid values",
"help": "lang attribute must have a valid value",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
"nodes": []
},
{
"id": "video-caption",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag122",
"section508",
"section508.22.a",
"TTv5",
"TT17.a",
"EN-301-549",
"EN-9.1.2.2"
],
"description": "Ensure <video> elements have captions",
"help": "<video> elements must have captions",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
"nodes": []
},
{
"id": "no-autoplay-audio",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag142",
"TTv5",
"TT2.a",
"EN-301-549",
"EN-9.1.4.2",
"ACT"
],
"description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
"help": "<video> or <audio> elements must not play automatically",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
"nodes": []
}
],
"passes": [
{
"id": "aria-hidden-body",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"wcag412",
"EN-301-549",
"EN-9.1.3.1",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden=\"true\" is not present on the document body.",
"help": "aria-hidden=\"true\" must not be present on the document body",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-hidden-body",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "No aria-hidden attribute is present on document body"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<body class=\"font-sans text-gray-800 bg-white antialiased\">",
"target": [
"body"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button class=\"px-3 py-1.5 bg-slate-900 text-white text-sm font-medium rounded-md hover:bg-slate-700 transition\">Buy Now</button>",
"target": [
".hover\\:shadow-lg.group.overflow-hidden:nth-child(1) > .p-4 > .mt-3.justify-between.items-center > .py-1\\.5.hover\\:bg-slate-700.px-3"
]
}
]
},
{
"id": "bypass",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag241",
"section508",
"section508.22.o",
"TTv5",
"TT9.a",
"EN-301-549",
"EN-9.2.4.1"
],
"description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
"help": "Page must have means to bypass repeated blocks",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "internal-link-present",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Valid skip link found"
},
{
"id": "header-present",
"data": null,
"relatedNodes": [
{
"html": "<h1 class=\"text-xl font-bold text-slate-900 leading-tight\">Meridian Market</h1>",
"target": [
"h1"
]
},
{
"html": "<h2 class=\"text-4xl lg:text-5xl xl:text-6xl font-extrabold leading-tight mb-6\">Discover Curated Deals That Actually Deliver</h2>",
"target": [
".text-4xl"
]
},
{
"html": "<h3 class=\"font-bold text-slate-900\">Curated Quality</h3>",
"target": [
".items-start.gap-4.flex:nth-child(1) > div:nth-child(2) > h3"
]
},
{
"html": "<h3 class=\"font-bold text-slate-900\">30-Day Returns</h3>",
"target": [
".items-start.gap-4.flex:nth-child(2) > div:nth-child(2) > h3"
]
},
{
"html": "<h3 class=\"font-bold text-slate-900\">Loyalty Rewards</h3>",
"target": [
".items-start.gap-4.flex:nth-child(3) > div:nth-child(2) > h3"
]
},
{
"html": "<h3 class=\"font-bold text-slate-900\">24/7 Support</h3>",
"target": [
".items-start.gap-4.flex:nth-child(4) > div:nth-child(2) > h3"
]
},
{
"html": "<h2 class=\"text-3xl font-bold text-slate-900 mb-3\">Editor Picks</h2>",
"target": [
".text-3xl.mb-3"
]
},
{
"html": "<h3 class=\"font-semibold text-slate-900 mt-1\">Urban Wool Coat</h3>",
"target": [
".hover\\:shadow-lg.group.overflow-hidden:nth-child(1) > .p-4 > h3"
]
},
{
"html": "<h3 class=\"font-semibold text-slate-900 mt-1\">Ceramic Coffee Set</h3>",
"target": [
".hover\\:shadow-lg.group.overflow-hidden:nth-child(2) > .p-4 > h3"
]
},
{
"html": "<h3 class=\"font-semibold text-slate-900 mt-1\">Leather Crossbody</h3>",
"target": [
".hover\\:shadow-lg.group.overflow-hidden:nth-child(3) > .p-4 > h3"
]
},
{
"html": "<h2 class=\"text-2xl md:text-3xl font-bold text-slate-900 mt-2 mb-4\">Autumn Essentials 2025</h2>",
"target": [
".md\\:text-3xl.mt-2.text-2xl"
]
},
{
"html": "<h2 class=\"text-2xl font-bold text-slate-900 mb-2\">Trending Now</h2>",
"target": [
".mb-2.text-2xl"
]
},
{
"html": "<h4 class=\"font-semibold text-slate-900 text-sm\">Smart Home Hub</h4>",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(1) > div > h4"
]
},
{
"html": "<h4 class=\"font-semibold text-slate-900 text-sm\">Organic Cotton Tee Pack</h4>",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(2) > div > h4"
]
},
{
"html": "<h4 class=\"font-semibold text-slate-900 text-sm\">Noise Cancelling Headphones</h4>",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(3) > div > h4"
]
},
{
"html": "<h4 class=\"font-semibold text-slate-900 text-sm\">Stainless Steel Bottle</h4>",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(4) > div > h4"
]
},
{
"html": "<h3 class=\"font-bold text-slate-900 mb-4 flex items-center gap-2\">\n <span class=\"w-2 h-2 bg-green-500 rounded-full\"></span> New Arrivals\n </h3>",
"target": [
".p-5.shadow-sm.rounded-xl:nth-child(1) > .gap-2"
]
},
{
"html": "<h3 class=\"font-bold text-slate-900 mb-4 flex items-center gap-2\">\n <span class=\"w-2 h-2 bg-red-500 rounded-full\"></span> Price Drops\n </h3>",
"target": [
".p-5.shadow-sm.rounded-xl:nth-child(2) > .gap-2"
]
},
{
"html": "<h3 class=\"font-bold text-lg mb-2\">Meridian Rewards</h3>",
"target": [
".text-lg.mb-2"
]
},
{
"html": "<h2 class=\"text-2xl md:text-3xl font-bold text-slate-900 mb-3\">Real-Time Inventory Checker</h2>",
"target": [
".max-w-2xl.text-center.px-4 > .md\\:text-3xl.text-2xl.mb-3"
]
},
{
"html": "<h2 class=\"text-3xl font-bold text-slate-900\">What Shoppers Say</h2>",
"target": [
".mb-12 > .text-3xl"
]
},
{
"html": "<h2 class=\"text-2xl font-bold text-slate-900 text-center mb-8\">Frequently Asked Questions</h2>",
"target": [
".text-center.mb-8.text-2xl"
]
},
{
"html": "<h2 class=\"text-2xl md:text-3xl font-bold mb-3\">Subscribe for Exclusive Deals</h2>",
"target": [
".max-w-4xl > .md\\:text-3xl.text-2xl.mb-3"
]
},
{
"html": "<h4 class=\"text-white font-semibold mb-4\">Shop</h4>",
"target": [
".md\\:grid-cols-4 > div:nth-child(2) > h4"
]
},
{
"html": "<h4 class=\"text-white font-semibold mb-4\">Support</h4>",
"target": [
"div:nth-child(3) > h4"
]
},
{
"html": "<h4 class=\"text-white font-semibold mb-4\">Contact</h4>",
"target": [
"div:nth-child(4) > h4"
]
}
],
"impact": "serious",
"message": "Page has a heading"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#0f172a",
"bgColor": "#ffffff",
"contrastRatio": 17.85,
"fontSize": "15.0pt (20px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 17.85"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<h1 class=\"text-xl font-bold text-slate-900 leading-tight\">Meridian Market</h1>",
"target": [
"h1"
]
}
]
},
{
"id": "document-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"TTv5",
"TT12.a",
"EN-301-549",
"EN-9.2.4.2",
"ACT"
],
"description": "Ensure each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document has a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "duplicate-id-aria",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every id attribute value used in ARIA and in labels is unique",
"help": "IDs used in ARIA and labels must be unique",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "duplicate-id-aria",
"data": "stock-input",
"relatedNodes": [],
"impact": "critical",
"message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<input type=\"text\" id=\"stock-input\" placeholder=\"e.g., Urban Wool Coat\" class=\"flex-1 px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-brand-500 focus:border-transparent\">",
"target": [
"#stock-input"
]
}
]
},
{
"id": "form-field-multiple-labels",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag332",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.3.3.2"
],
"description": "Ensure form field does not have multiple label elements",
"help": "Form field must not have multiple label elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "multiple-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"stock-input\" class=\"block text-sm font-semibold text-slate-700 mb-2\">Product Name or SKU</label>",
"target": [
"label"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<input type=\"text\" id=\"stock-input\" placeholder=\"e.g., Urban Wool Coat\" class=\"flex-1 px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-brand-500 focus:border-transparent\">",
"target": [
"#stock-input"
]
}
]
},
{
"id": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://placehold.co/150x50/1e293b/FFFFFF?text=Meridian+Mkt&font=montserrat\" alt=\"Meridian Market Logo\" class=\"h-10 w-auto rounded-md shadow-sm\">",
"target": [
".h-10"
]
}
]
},
{
"id": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": {
"explicitLabel": "Product Name or SKU"
},
"relatedNodes": [
{
"html": "<label for=\"stock-input\" class=\"block text-sm font-semibold text-slate-700 mb-2\">Product Name or SKU</label>",
"target": [
"label"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
},
{
"id": "non-empty-placeholder",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a placeholder attribute"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<input type=\"text\" id=\"stock-input\" placeholder=\"e.g., Urban Wool Coat\" class=\"flex-1 px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-brand-500 focus:border-transparent\">",
"target": [
"#stock-input"
]
}
]
},
{
"id": "link-in-text-block",
"impact": null,
"tags": [
"cat.color",
"wcag2a",
"wcag141",
"TTv5",
"TT13.a",
"EN-301-549",
"EN-9.1.4.1"
],
"description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
"help": "Links must be distinguishable without relying on color",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "link-in-text-block-style",
"data": null,
"relatedNodes": [
{
"html": "<div>",
"target": [
".md\\:grid-cols-2 > div:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Links can be distinguished from surrounding text by visual styling"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#\" class=\"inline-flex items-center justify-center px-6 py-3 bg-slate-900 text-white font-semibold rounded-lg hover:bg-slate-800 transition\">Explore Collection</a>",
"target": [
".hover\\:bg-slate-800.inline-flex.justify-center"
]
}
]
},
{
"id": "link-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is not in tab order or has accessible text"
}
],
"impact": null,
"html": "<a href=\"#\" class=\"hover:text-brand-600 transition\">Home</a>",
"target": [
"nav > .hover\\:text-brand-600[href=\"#\"]:nth-child(1)"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul class=\"space-y-2 text-sm\">",
"target": [
"div:nth-child(2) > ul"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li><a href=\"#\" class=\"hover:text-white transition\">New Arrivals</a></li>",
"target": [
"div:nth-child(2) > ul > li:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<img src=\"https://placehold.co/150x50/1e293b/FFFFFF?text=Meridian+Mkt&font=montserrat\" alt=\"Meridian Market Logo\" class=\"h-10 w-auto rounded-md shadow-sm\">",
"target": [
".h-10"
]
}
]
},
{
"id": "target-size",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag22aa",
"wcag258"
],
"description": "Ensure touch targets have sufficient size and space",
"help": "All touch targets must be 24px large, or leave sufficient space",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "target-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#\" class=\"hover:text-brand-600 transition\">Home</a>",
"target": [
"nav > .hover\\:text-brand-600[href=\"#\"]:nth-child(1)"
]
}
]
}
],
"incomplete": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": null,
"bgColor": null,
"contrastRatio": 0,
"fontSize": "9.0pt (12px)",
"fontWeight": "bold",
"messageKey": "bgOverlap",
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element's background color could not be determined because it is overlapped by another element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"inline-block px-3 py-1 bg-brand-600/20 text-brand-100 text-xs font-bold uppercase tracking-widest rounded-full mb-4 border border-brand-500/30\">Summer Sale Live</span>",
"target": [
".py-1"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined because it is overlapped by another element"
}
]
}
],
"violations": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d97706",
"bgColor": "#ffffff",
"contrastRatio": 3.18,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body class=\"font-sans text-gray-800 bg-white antialiased\">",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"font-semibold text-brand-600\">WELCOME10</span>",
"target": [
".text-gray-600.leading-relaxed > .text-brand-600"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d97706",
"bgColor": "#ffffff",
"contrastRatio": 3.18,
"fontSize": "9.0pt (12px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"group bg-white border border-gray-200 rounded-xl overflow-hidden hover:shadow-lg transition\">",
"target": [
".hover\\:shadow-lg.group.overflow-hidden:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"text-xs font-bold text-brand-600 uppercase tracking-wide\">Outerwear</p>",
"target": [
".hover\\:shadow-lg.group.overflow-hidden:nth-child(1) > .p-4 > .tracking-wide.uppercase.text-brand-600"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d97706",
"bgColor": "#ffffff",
"contrastRatio": 3.18,
"fontSize": "9.0pt (12px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"group bg-white border border-gray-200 rounded-xl overflow-hidden hover:shadow-lg transition\">",
"target": [
".hover\\:shadow-lg.group.overflow-hidden:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"text-xs font-bold text-brand-600 uppercase tracking-wide\">Kitchen</p>",
"target": [
".hover\\:shadow-lg.group.overflow-hidden:nth-child(2) > .p-4 > .tracking-wide.uppercase.text-brand-600"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d97706",
"bgColor": "#ffffff",
"contrastRatio": 3.18,
"fontSize": "9.0pt (12px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"group bg-white border border-gray-200 rounded-xl overflow-hidden hover:shadow-lg transition\">",
"target": [
".hover\\:shadow-lg.group.overflow-hidden:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"text-xs font-bold text-brand-600 uppercase tracking-wide\">Accessories</p>",
"target": [
".hover\\:shadow-lg.group.overflow-hidden:nth-child(3) > .p-4 > .tracking-wide.uppercase.text-brand-600"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d97706",
"bgColor": "#fffbeb",
"contrastRatio": 3.07,
"fontSize": "10.5pt (14px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section id=\"seasonal\" class=\"bg-brand-50 rounded-2xl p-6 md:p-8\">",
"target": [
"#seasonal"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.07 (foreground color: #d97706, background color: #fffbeb, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"text-brand-600 font-bold text-sm uppercase tracking-wider\">Seasonal Drop</span>",
"target": [
".tracking-wider"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.07 (foreground color: #d97706, background color: #fffbeb, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d97706",
"bgColor": "#ffffff",
"contrastRatio": 3.18,
"fontSize": "10.5pt (14px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"flex gap-4 items-center bg-white border border-gray-200 rounded-lg p-3 hover:shadow-md transition\">",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"text-brand-600 font-bold text-sm mt-0.5\">$89.00</p>",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(1) > div > .mt-0\\.5.text-brand-600.font-bold"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d97706",
"bgColor": "#ffffff",
"contrastRatio": 3.18,
"fontSize": "10.5pt (14px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"flex gap-4 items-center bg-white border border-gray-200 rounded-lg p-3 hover:shadow-md transition\">",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"text-brand-600 font-bold text-sm mt-0.5\">$34.00</p>",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(2) > div > .mt-0\\.5.text-brand-600.font-bold"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d97706",
"bgColor": "#ffffff",
"contrastRatio": 3.18,
"fontSize": "10.5pt (14px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"flex gap-4 items-center bg-white border border-gray-200 rounded-lg p-3 hover:shadow-md transition\">",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"text-brand-600 font-bold text-sm mt-0.5\">$129.00</p>",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(3) > div > .mt-0\\.5.text-brand-600.font-bold"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d97706",
"bgColor": "#ffffff",
"contrastRatio": 3.18,
"fontSize": "10.5pt (14px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"flex gap-4 items-center bg-white border border-gray-200 rounded-lg p-3 hover:shadow-md transition\">",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"text-brand-600 font-bold text-sm mt-0.5\">$28.00</p>",
"target": [
".hover\\:shadow-md.p-3.gap-4:nth-child(4) > div > .mt-0\\.5.text-brand-600.font-bold"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #d97706, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#d97706",
"contrastRatio": 3.18,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<a href=\"#\" class=\"block text-center py-2 bg-brand-600 hover:bg-brand-500 rounded-lg text-sm font-semibold transition\">Join Program</a>",
"target": [
".hover\\:bg-brand-500.bg-brand-600.text-center"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #ffffff, background color: #d97706, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"block text-center py-2 bg-brand-600 hover:bg-brand-500 rounded-lg text-sm font-semibold transition\">Join Program</a>",
"target": [
".hover\\:bg-brand-500.bg-brand-600.text-center"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #ffffff, background color: #d97706, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#d97706",
"contrastRatio": 3.18,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<button id=\"check-stock\" class=\"px-6 py-3 bg-brand-600 hover:bg-brand-500 text-white font-semibold rounded-lg transition\">Check Stock</button>",
"target": [
"#check-stock"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #ffffff, background color: #d97706, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<button id=\"check-stock\" class=\"px-6 py-3 bg-brand-600 hover:bg-brand-500 text-white font-semibold rounded-lg transition\">Check Stock</button>",
"target": [
"#check-stock"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #ffffff, background color: #d97706, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#fef3c7",
"bgColor": "#d97706",
"contrastRatio": 2.86,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"py-14 bg-brand-600 text-white\">",
"target": [
".py-14"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.86 (foreground color: #fef3c7, background color: #d97706, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"text-brand-100 mb-8 max-w-xl mx-auto\">Join 120,000+ subscribers and get weekly curated deals, early access to sales, and a 10% welcome discount delivered to your inbox.</p>",
"target": [
".text-brand-100.max-w-xl.mb-8"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.86 (foreground color: #fef3c7, background color: #d97706, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#d97706",
"contrastRatio": 3.18,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"py-14 bg-brand-600 text-white\">",
"target": [
".py-14"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.18 (foreground color: #ffffff, background color: #d97706, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"text-xs text-brand-200 mt-4\">By subscribing, you agree to our Privacy Policy. Unsubscribe anytime.</p>",
"target": [
".text-brand-200"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.18 (foreground color: #ffffff, background color: #d97706, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6b7280",
"bgColor": "#0f172a",
"contrastRatio": 3.69,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"bg-slate-900 text-gray-300 py-12\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.69 (foreground color: #6b7280, background color: #0f172a, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>\u00a9 2025 Meridian Market Inc. All rights reserved.</p>",
"target": [
".border-slate-800 > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.69 (foreground color: #6b7280, background color: #0f172a, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6b7280",
"bgColor": "#0f172a",
"contrastRatio": 3.69,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"bg-slate-900 text-gray-300 py-12\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.69 (foreground color: #6b7280, background color: #0f172a, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"hover:text-white transition\">Privacy Policy</a>",
"target": [
".gap-6.flex > .hover\\:text-white[href=\"#\"]:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.69 (foreground color: #6b7280, background color: #0f172a, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6b7280",
"bgColor": "#0f172a",
"contrastRatio": 3.69,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"bg-slate-900 text-gray-300 py-12\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.69 (foreground color: #6b7280, background color: #0f172a, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"hover:text-white transition\">Terms of Service</a>",
"target": [
".gap-6.flex > .hover\\:text-white[href=\"#\"]:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.69 (foreground color: #6b7280, background color: #0f172a, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6b7280",
"bgColor": "#0f172a",
"contrastRatio": 3.69,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"bg-slate-900 text-gray-300 py-12\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.69 (foreground color: #6b7280, background color: #0f172a, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"hover:text-white transition\">Cookie Settings</a>",
"target": [
".gap-6.flex > .hover\\:text-white[href=\"#\"]:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.69 (foreground color: #6b7280, background color: #0f172a, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 4994
},
{
"y": 576,
"height": 4994
},
{
"y": 1152,
"height": 4994
},
{
"y": 1728,
"height": 4994
},
{
"y": 2304,
"height": 4994
},
{
"y": 2880,
"height": 4994
},
{
"y": 3456,
"height": 4994
},
{
"y": 4032,
"height": 4994
},
{
"y": 4274,
"height": 4994
}
],
"scans": 10,
"max_states": 512,
"settle_ms": 5000,
"page_timeout_seconds": 150,
"layout_stability": "consecutive 100ms size samples within one CSS pixel",
"animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
"interactive_states": "not exercised",
"horizontal_scroll": "not exercised"
}
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Shopping" sector.
Your goal is to generate the full HTML code for a page that is not just functional but also visually compelling, content-rich, and feels like a finished product ready for launch.
**Client & Category:**
- Industry: "Shopping"
- Description: Online shopping, e-commerce, deals, retail products, and gift guides.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Shopping" category.
2. **Define Page:** Determine the most effective primary page type (e.g., homepage, service landing page, category portal) to showcase this fictional entity.
3. **Design:** Develop an opinionated, modern, and professional layout. Make distinct choices about structure and flow.
**Content & Structure Requirements (Deliver a COMPLETE page):**
- **Overall:** The final page must feel substantial and complete, with realistic amounts of text (multiple paragraphs per section where appropriate, avoid single sentences), well-integrated placeholder images, and logical flow. It should look like a real website a business would proudly use.
- **HEADER:** Include the invented site name, tagline, a logo placeholder image, and a primary navigation bar. Ensure the navigation has **at least 5-7 clearly defined, relevant links** including: "Help", "Orders", "Wishlist".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Shopping" category. Consider themes similar to: "Editor Picks", "Seasonal Collections", "Trending Now".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "return policy", "promo code", "loyalty program".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Subscribe", "Buy Now", "View Deal".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Shopping" sector. Ideas similar but not limited to: "inventory checker".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "new arrivals", "trending products", "price drops".
- **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
- **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.