5 Commits

Author SHA1 Message Date
77d1e5aeec Update src/app/page.tsx 2026-03-07 11:40:28 +00:00
c572c39d1a Update src/app/layout.tsx 2026-03-07 11:40:27 +00:00
4961629b89 Merge version_1 into main
Merge version_1 into main
2026-03-07 11:37:52 +00:00
0a2455c730 Merge version_1 into main
Merge version_1 into main
2026-03-07 11:36:35 +00:00
a117f539fc Merge version_1 into main
Merge version_1 into main
2026-03-07 11:34:56 +00:00
2 changed files with 8 additions and 46 deletions

View File

@@ -1,57 +1,20 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google"; import { Inter } from "next/font/google";
import { Nunito } from "next/font/google";
import "./globals.css"; import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const halant = Halant({ const inter = Inter({ subsets: ["latin"] });
variable: "--font-halant", subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
});
const nunito = Nunito({
variable: "--font-nunito", subsets: ["latin"],
});
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Hasanboy - Frontend Developer & Mentor | Portfolio", description: "Frontend developer va mentor. React, JavaScript ga expert. Custom web development, mentoring services va 50+ completed projects.", keywords: "frontend developer, React developer, JavaScript expert, web development, mentoring, Chust", metadataBase: new URL("https://hasanboy-portfolio.com"), title: "Create Next App", description: "Generated by create next app"};
alternates: {
canonical: "https://hasanboy-portfolio.com"},
openGraph: {
title: "Hasanboy - Frontend Developer & Mentor", description: "Professional frontend development and mentoring services. Expert in React, JavaScript, and modern web technologies.", url: "https://hasanboy-portfolio.com", siteName: "Hasanboy Portfolio", type: "website", images: [
{
url: "http://img.b2bpic.net/free-photo/middle-eastern-manager-examines-infographics-oversee-business-operations_482257-128607.jpg", alt: "frontend developer workspace portfolio"},
],
},
twitter: {
card: "summary_large_image", title: "Hasanboy - Frontend Developer & Mentor", description: "Explore professional frontend development and mentoring services.", images: ["http://img.b2bpic.net/free-photo/middle-eastern-manager-examines-infographics-oversee-business-operations_482257-128607.jpg"],
},
robots: {
index: true,
follow: true,
},
};
export default function RootLayout({ export default function RootLayout({
children, children,
}: Readonly<{ }: {
children: React.ReactNode; children: React.ReactNode;
}>) { }) {
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en">
<ServiceWrapper> <body className={inter.className}>{children}
<body
className={`${halant.variable} ${inter.variable} ${nunito.variable} antialiased`}
>
<Tag />
{children}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: ` __html: `
@@ -1419,7 +1382,6 @@ export default function RootLayout({
}} }}
/> />
</body> </body>
</ServiceWrapper>
</html> </html>
); );
} }

View File

@@ -9,7 +9,7 @@ import ProductCardThree from '@/components/sections/product/ProductCardThree';
import BlogCardTwo from '@/components/sections/blog/BlogCardTwo'; import BlogCardTwo from '@/components/sections/blog/BlogCardTwo';
import ContactCTA from '@/components/sections/contact/ContactCTA'; import ContactCTA from '@/components/sections/contact/ContactCTA';
import FooterCard from '@/components/sections/footer/FooterCard'; import FooterCard from '@/components/sections/footer/FooterCard';
import { Code, Users, Award, Globe, Sparkles, Briefcase, Mail, BookOpen, ShoppingCart, BarChart3, Settings, Database, Lock, Palette, Smartphone, Zap, Layers, Github, Linkedin, MessageSquare } from 'lucide-react'; import { Code, Users, Award, Globe, Sparkles, Briefcase, Mail, BookOpen, ShoppingCart, BarChart3, Settings, Database, Lock, Palette, Smartphone, Zap, Layers, Github, Linkedin, MessageSquare, Heart } from 'lucide-react';
export default function LandingPage() { export default function LandingPage() {
return ( return (
@@ -76,7 +76,7 @@ export default function LandingPage() {
{ icon: Code, label: "Tugallangan Loyihalar", value: "50+" }, { icon: Code, label: "Tugallangan Loyihalar", value: "50+" },
{ icon: Users, label: "O'quvchilar va Hamkorlar", value: "100+" }, { icon: Users, label: "O'quvchilar va Hamkorlar", value: "100+" },
{ icon: Award, label: "Tajriba Yillari", value: "5+" }, { icon: Award, label: "Tajriba Yillari", value: "5+" },
{ icon: Globe, label: "React Projects", value: "30+" } { icon: Heart, label: "Hamjamiyat Qoniqarsi", value: "98%" }
]} ]}
metricsAnimation="slide-up" metricsAnimation="slide-up"
useInvertedBackground={true} useInvertedBackground={true}