diff --git a/src/components/marketing/FeatureBulkDemo.tsx b/src/components/marketing/FeatureBulkDemo.tsx
index 33b434a..73678bc 100644
--- a/src/components/marketing/FeatureBulkDemo.tsx
+++ b/src/components/marketing/FeatureBulkDemo.tsx
@@ -7,14 +7,18 @@ import { FileSpreadsheet, ArrowRight } from 'lucide-react';
export const FeatureBulkDemo: React.FC = () => {
const [showQRs, setShowQRs] = useState(false);
+ const [hasAnimated, setHasAnimated] = useState(false);
useEffect(() => {
- const interval = setInterval(() => {
- setShowQRs((prev) => !prev);
- }, 4000);
+ if (hasAnimated) return;
- return () => clearInterval(interval);
- }, []);
+ const timer = setTimeout(() => {
+ setShowQRs(true);
+ setHasAnimated(true);
+ }, 500);
+
+ return () => clearTimeout(timer);
+ }, [hasAnimated]);
const qrCodes = [
{ id: 1, url: 'product-1', delay: 0 },
diff --git a/src/components/marketing/FeatureCustomizationDemo.tsx b/src/components/marketing/FeatureCustomizationDemo.tsx
index db20475..1211703 100644
--- a/src/components/marketing/FeatureCustomizationDemo.tsx
+++ b/src/components/marketing/FeatureCustomizationDemo.tsx
@@ -14,14 +14,25 @@ const colorPresets = [
export const FeatureCustomizationDemo: React.FC = () => {
const [activeIndex, setActiveIndex] = useState(0);
+ const [hasAnimated, setHasAnimated] = useState(false);
useEffect(() => {
+ if (hasAnimated) return;
+
const interval = setInterval(() => {
- setActiveIndex((prev) => (prev + 1) % colorPresets.length);
- }, 2500);
+ setActiveIndex((prev) => {
+ const next = prev + 1;
+ if (next >= colorPresets.length) {
+ clearInterval(interval);
+ setHasAnimated(true);
+ return 0; // Reset to first
+ }
+ return next;
+ });
+ }, 1500);
return () => clearInterval(interval);
- }, []);
+ }, [hasAnimated]);
const currentPreset = colorPresets[activeIndex];
diff --git a/src/components/marketing/Features.tsx b/src/components/marketing/Features.tsx
index 1a779c5..f761144 100644
--- a/src/components/marketing/Features.tsx
+++ b/src/components/marketing/Features.tsx
@@ -61,19 +61,9 @@ export const Features: React.FC
+ {type.name} +
+ + {/* Subtle glow on hover */} + ++ Support for all major QR code types +
+{stat.label}
+{stat.label}