Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4b493581a9 | |||
| 8272551ef8 | |||
| 3afbc7686d | |||
| 2a9375ecd3 | |||
| 4bb11103d0 | |||
| 4c9a84356d | |||
| 8d0460327b | |||
| 4c2efa370d | |||
| a3f088a8b3 | |||
| 9ecd7ba27f | |||
| 77d1e5aeec | |||
| c572c39d1a | |||
| 4961629b89 | |||
| 0a2455c730 | |||
| a117f539fc |
@@ -1,57 +1,28 @@
|
||||
import type { Metadata } from "next";
|
||||
import { Halant } from "next/font/google";
|
||||
import { Inter } from "next/font/google";
|
||||
import { Nunito } from "next/font/google";
|
||||
import { Geist, Geist_Mono } from "next/font/google";
|
||||
import "./globals.css";
|
||||
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
||||
import Tag from "@/tag/Tag";
|
||||
|
||||
const halant = Halant({
|
||||
variable: "--font-halant", subsets: ["latin"],
|
||||
weight: ["300", "400", "500", "600", "700"],
|
||||
const geist = Geist({
|
||||
variable: "--font-geist-sans", subsets: ["latin"],
|
||||
});
|
||||
|
||||
const inter = Inter({
|
||||
variable: "--font-inter", subsets: ["latin"],
|
||||
});
|
||||
|
||||
const nunito = Nunito({
|
||||
variable: "--font-nunito", subsets: ["latin"],
|
||||
const geistMono = Geist_Mono({
|
||||
variable: "--font-geist-mono", subsets: ["latin"],
|
||||
});
|
||||
|
||||
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"),
|
||||
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,
|
||||
},
|
||||
};
|
||||
title: "Create Next App", description: "Generated by create next app"};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
}) {
|
||||
return (
|
||||
<html lang="en" suppressHydrationWarning>
|
||||
<ServiceWrapper>
|
||||
<body
|
||||
className={`${halant.variable} ${inter.variable} ${nunito.variable} antialiased`}
|
||||
>
|
||||
<Tag />
|
||||
{children}
|
||||
|
||||
<html lang="en">
|
||||
<body className={`${geist.variable} ${geistMono.variable} antialiased`}>
|
||||
{children}
|
||||
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
@@ -1419,7 +1390,6 @@ export default function RootLayout({
|
||||
}}
|
||||
/>
|
||||
</body>
|
||||
</ServiceWrapper>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import ProductCardThree from '@/components/sections/product/ProductCardThree';
|
||||
import BlogCardTwo from '@/components/sections/blog/BlogCardTwo';
|
||||
import ContactCTA from '@/components/sections/contact/ContactCTA';
|
||||
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, ArrowRight } from 'lucide-react';
|
||||
|
||||
export default function LandingPage() {
|
||||
return (
|
||||
@@ -34,7 +34,7 @@ export default function LandingPage() {
|
||||
{ name: "Blog", id: "blog" },
|
||||
{ name: "Boglanish", id: "contact" }
|
||||
]}
|
||||
brandName="Hasanboy"
|
||||
brandName="Bobur "
|
||||
bottomLeftText="Chust, Fergana"
|
||||
bottomRightText="hasanboyleo97@gmail.com"
|
||||
/>
|
||||
@@ -42,7 +42,7 @@ export default function LandingPage() {
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroSplitDoubleCarousel
|
||||
title="Men Nurmuhammadov Hasanboy"
|
||||
title="Men Xomidjonov Boburjon"
|
||||
description="Front-end developer va mentor. React, JavaScript, va modern web technologies bilan ishlaymadam. Chust shahrida o'z kompaniyamni boshqaraman va dars bera daman."
|
||||
tag="Portfolio"
|
||||
tagIcon={Code}
|
||||
@@ -75,8 +75,8 @@ export default function LandingPage() {
|
||||
metrics={[
|
||||
{ icon: Code, label: "Tugallangan Loyihalar", value: "50+" },
|
||||
{ icon: Users, label: "O'quvchilar va Hamkorlar", value: "100+" },
|
||||
{ icon: Award, label: "Tajriba Yillari", value: "5+" },
|
||||
{ icon: Globe, label: "React Projects", value: "30+" }
|
||||
{ icon: Award, label: "Tajriba Yillari", value: "3+" },
|
||||
{ icon: Globe, label: "React Projects", value: "10+" }
|
||||
]}
|
||||
metricsAnimation="slide-up"
|
||||
useInvertedBackground={true}
|
||||
@@ -144,7 +144,7 @@ export default function LandingPage() {
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<FeatureBento
|
||||
title="Mening Hizmatlar"
|
||||
title="Mening Hizmatlarim"
|
||||
description="Faqat web-sayt yaratish emas, balki to'liq digital solution. Custom development, mentoring, va long-term support bilan sizning business-ingizni o'stiramiz."
|
||||
tag="Xizmatlar"
|
||||
tagIcon={Briefcase}
|
||||
@@ -178,7 +178,7 @@ export default function LandingPage() {
|
||||
|
||||
<div id="blog" data-section="blog">
|
||||
<BlogCardTwo
|
||||
title="Mening Blog"
|
||||
title="Mening Blogim"
|
||||
description="Frontend development, JavaScript tips, React tutorials va web development best practices haqida maqolalar."
|
||||
tag="Blog"
|
||||
tagIcon={BookOpen}
|
||||
@@ -189,15 +189,15 @@ export default function LandingPage() {
|
||||
blogs={[
|
||||
{
|
||||
id: "1", category: ["React", "JavaScript"],
|
||||
title: "React Hooks: Beginners Guide", excerpt: "React hooks bilan ishlashning asoslari, useState, useEffect va custom hooks qanday qilib foydalanish haqida.", imageSrc: "http://img.b2bpic.net/free-vector/flat-design-content-management-system-concept_23-2148818636.jpg?_wi=2", imageAlt: "React hooks tutorial", authorName: "Hasanboy", authorAvatar: "http://img.b2bpic.net/free-photo/talking-work_1098-13062.jpg", date: "15 Jan 2025"
|
||||
title: "React Hooks: Beginners Guide", excerpt: "React hooks bilan ishlashning asoslari, useState, useEffect va custom hooks qanday qilib foydalanish haqida.", imageSrc: "http://img.b2bpic.net/free-vector/flat-design-content-management-system-concept_23-2148818636.jpg?_wi=2", imageAlt: "React hooks tutorial", authorName: "Hasanboy", authorAvatar: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AcDue4Q5MkJj7Me70vwpIaxPPK/uploaded-1772885414684-oe8w2d92.png", date: "15 Jan 2025"
|
||||
},
|
||||
{
|
||||
id: "2", category: ["JavaScript", "Performance"],
|
||||
title: "JavaScript Performance Tips", excerpt: "Web-saytlar tezligini oshirish uchun muhim JavaScript optimization texnikalarinig haqida amaliy maslahatlar.", imageSrc: "http://img.b2bpic.net/free-vector/gradient-ui-ux-landing-page_23-2149056162.jpg", imageAlt: "Performance optimization", authorName: "Hasanboy", authorAvatar: "http://img.b2bpic.net/free-photo/talking-work_1098-13062.jpg", date: "10 Jan 2025"
|
||||
title: "JavaScript Performance Tips", excerpt: "Web-saytlar tezligini oshirish uchun muhim JavaScript optimization texnikalarinig haqida amaliy maslahatlar.", imageSrc: "http://img.b2bpic.net/free-vector/gradient-ui-ux-landing-page_23-2149056162.jpg", imageAlt: "Performance optimization", authorName: "Hasanboy", authorAvatar: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AcDue4Q5MkJj7Me70vwpIaxPPK/uploaded-1772885414684-oe8w2d92.png", date: "10 Jan 2025"
|
||||
},
|
||||
{
|
||||
id: "3", category: ["CSS", "Design"],
|
||||
title: "Responsive Design Best Practices", excerpt: "Modern responsive web design principles, mobile-first approach va CSS Grid/Flexbox mastery.", imageSrc: "http://img.b2bpic.net/free-vector/shopping-online-landing-page-illustrated_23-2148518997.jpg", imageAlt: "Responsive design tips", authorName: "Hasanboy", authorAvatar: "http://img.b2bpic.net/free-photo/talking-work_1098-13062.jpg", date: "05 Jan 2025"
|
||||
title: "Responsive Design Best Practices", excerpt: "Modern responsive web design principles, mobile-first approach va CSS Grid/Flexbox mastery.", imageSrc: "http://img.b2bpic.net/free-vector/shopping-online-landing-page-illustrated_23-2148518997.jpg", imageAlt: "Responsive design tips", authorName: "Hasanboy", authorAvatar: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AcDue4Q5MkJj7Me70vwpIaxPPK/uploaded-1772885414684-oe8w2d92.png", date: "05 Jan 2025"
|
||||
}
|
||||
]}
|
||||
carouselMode="buttons"
|
||||
@@ -209,11 +209,10 @@ export default function LandingPage() {
|
||||
tag="Bog'lanish"
|
||||
tagIcon={Mail}
|
||||
tagAnimation="slide-up"
|
||||
title="Murojaat Qiling va Loyihani Boshlaylik"
|
||||
description="Sizning web-sayt yoki application loyihasi haqida gaplashishga tayyor. Qisqa vaqt ichida siz bilan bog'lanamiz va tafsil bilan majburiyatlarni muhokama qilamiz."
|
||||
title="Loyihangizni Boshlaylik"
|
||||
description="Qisqa vaqt ichida siz bilan bog'lanamiz va tafsil bilan majburiyatlarni muhokama qilamiz."
|
||||
buttons={[
|
||||
{ text: "Email: hasanboyleo97@gmail.com", href: "mailto:hasanboyleo97@gmail.com" },
|
||||
{ text: "Telefon: +998 88 371 52 71", href: "tel:+998883715271" }
|
||||
{ text: "Loyihani Boshlash", href: "mailto:hasanboyleo97@gmail.com" }
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "plain" }}
|
||||
@@ -223,8 +222,8 @@ export default function LandingPage() {
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterCard
|
||||
logoText="Hasanboy"
|
||||
copyrightText="© 2025 Hasanboy. Barcha huquqlar himoyalangan."
|
||||
logoText="Bobur "
|
||||
copyrightText="© 2025 Hasanboy. Barcha huquqlar himoyalangan. Email: hasanboyleo97@gmail.com | Telefon: +998 88 371 52 71"
|
||||
socialLinks={[
|
||||
{ icon: Github, href: "https://github.com", ariaLabel: "GitHub" },
|
||||
{ icon: Linkedin, href: "https://linkedin.com", ariaLabel: "LinkedIn" },
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
--background: #ffffff;
|
||||
--card: #f9f9f9;
|
||||
--foreground: #120a00e6;
|
||||
--primary-cta: #ff8c42;
|
||||
--foreground: #000612e6;
|
||||
--primary-cta: #15479c;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #f9f9f9;
|
||||
--secondary-cta-text: #120a00e6;
|
||||
--secondary-cta-text: #000612e6;
|
||||
--accent: #e2e2e2;
|
||||
--background-accent: #c4c4c4;
|
||||
--background-accent: #63d3e2;
|
||||
|
||||
/* text sizing - set by ThemeProvider */
|
||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||
|
||||
Reference in New Issue
Block a user