Mobile SEO & performance optimization

This commit is contained in:
root 2026-02-15 12:29:17 +05:00
parent 9d02c62292
commit bfd858ca62
6 changed files with 33 additions and 8 deletions

View File

@ -56,5 +56,11 @@
"tailwindcss": "^4",
"tsx": "^4.21.0",
"typescript": "^5"
}
}
},
"browserslist": [
"last 2 versions",
"not dead",
"> 0.5%",
"not ie 11"
]
}

10
public/noise.svg Normal file
View File

@ -0,0 +1,10 @@
<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'>
<filter id='noiseFilter'>
<feTurbulence
type='fractalNoise'
baseFrequency='0.65'
numOctaves='3'
stitchTiles='stitch' />
</filter>
<rect width='100%' height='100%' filter='url(#noiseFilter)' />
</svg>

After

Width:  |  Height:  |  Size: 301 B

View File

@ -176,7 +176,7 @@ html {
/* Optimize backdrop blur performance during scroll */
[data-scroll-container] .backdrop-blur-xl {
will-change: auto;
will-change: transform;
}
/* Smooth transitions for interactive elements */
@ -220,7 +220,7 @@ button, a, input, select, textarea {
/* Optimize backdrop blur performance */
.backdrop-blur-xl {
will-change: backdrop-filter;
will-change: transform;
transform: translateZ(0);
}

View File

@ -5,16 +5,19 @@ import "./globals.css";
const geistSans = Geist({
variable: "--font-geist-sans",
subsets: ["latin"],
display: "swap",
});
const geistMono = Geist_Mono({
variable: "--font-geist-mono",
subsets: ["latin"],
display: "swap",
});
export const metadata: Metadata = {
title: "JUNOHUB",
description: "JUNOHUB - Your dropshipping and e-commerce management platform",
title: "JUNOHUB | Modern Commerce Infrastructure",
description: "The world's most advanced encrypted ecosystem for vendors and suppliers.",
viewport: "width=device-width, initial-scale=1, maximum-scale=5",
};
export const viewport = {

View File

@ -4,11 +4,17 @@ import { useMediaQuery } from "@/hooks/useMediaQuery"
import { LandingNavbar } from "@/components/landing/LandingNavbar"
import { LandingHero } from "@/components/landing/LandingHero"
import { LandingFeatures } from "@/components/landing/LandingFeatures"
import { LandingSolutions } from "@/components/landing/LandingSolutions"
import { LandingFooter } from "@/components/landing/LandingFooter"
import { MobileHero } from "@/components/landing/mobile/MobileHero"
import { MobileFeatures } from "@/components/landing/mobile/MobileFeatures"
import dynamic from "next/dynamic"
const LandingSolutions = dynamic(() => import("@/components/landing/LandingSolutions").then(mod => mod.LandingSolutions), {
ssr: true,
loading: () => <div className="min-h-[400px] bg-[#0a0e1a]" />
})
export default function HomePage() {
const isMobile = useMediaQuery("(max-width: 768px)")

View File

@ -28,7 +28,7 @@ export function LandingHero() {
</div>
{/* Grid Pattern */}
<div className="absolute inset-0 z-0 opacity-[0.03] bg-[url('https://grainy-gradients.vercel.app/noise.svg')] pointer-events-none" />
<div className="absolute inset-0 z-0 opacity-[0.03] bg-[url('/noise.svg')] pointer-events-none" />
<div
className="absolute inset-0 z-0 opacity-[0.4]"
style={{