responsive bug fixing
This commit is contained in:
@@ -63,3 +63,24 @@ body {
|
|||||||
.icon_animation{
|
.icon_animation{
|
||||||
animation: icon_animatsion_tool 2s infinite alternate-reverse ;
|
animation: icon_animatsion_tool 2s infinite alternate-reverse ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media(max-width:640px){
|
||||||
|
/* 🟠 Sariq blok trapezoid shakl */
|
||||||
|
.clip-trapezoid {
|
||||||
|
clip-path: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Input blokining shakli */
|
||||||
|
.clip-input {
|
||||||
|
clip-path: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tugma blokining shakli */
|
||||||
|
.clip-button {
|
||||||
|
clip-path: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clip-part{
|
||||||
|
clip-path: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -41,7 +41,7 @@ export default function CarType_Header() {
|
|||||||
className="text-white flex items-center justify-center gap-3"
|
className="text-white flex items-center justify-center gap-3"
|
||||||
>
|
>
|
||||||
<Link
|
<Link
|
||||||
href={"/"}
|
href='/'
|
||||||
className="hover:cursor-pointer hover:text-secondary "
|
className="hover:cursor-pointer hover:text-secondary "
|
||||||
>
|
>
|
||||||
<Text txt="home" />
|
<Text txt="home" />
|
||||||
|
|||||||
@@ -3,10 +3,13 @@
|
|||||||
import { ProductTypes } from "@/types";
|
import { ProductTypes } from "@/types";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
import Text from "../text";
|
||||||
|
import { useParams } from "next/navigation";
|
||||||
|
|
||||||
export default function ProductCard({data}:{data: ProductTypes}) {
|
export default function ProductCard({data}:{data: ProductTypes}) {
|
||||||
|
const {lang} = useParams();
|
||||||
return (
|
return (
|
||||||
<Link href={`/${data.path}`} className="h-[400px] flex flex-col items-center justify-between rounded-sm hover:scale-105 hover:cursor-pointer hover:shadow-[0px_0px_5px_10px_#ebebeb]">
|
<Link href={`/${lang}/${data.path}`} className="h-[400px] flex flex-col items-center justify-between rounded-sm hover:scale-105 hover:cursor-pointer hover:shadow-[0px_0px_5px_10px_#ebebeb]">
|
||||||
<div className="rounded-t-lg bg-white py-15 px-2" >
|
<div className="rounded-t-lg bg-white py-15 px-2" >
|
||||||
<Image
|
<Image
|
||||||
src={data.image}
|
src={data.image}
|
||||||
@@ -17,8 +20,8 @@ export default function ProductCard({data}:{data: ProductTypes}) {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="bg-[#fafafa] w-full py-5 rounded-b-lg flex flex-col items-center justify-center ">
|
<div className="bg-[#fafafa] w-full py-5 rounded-b-lg flex flex-col items-center justify-center ">
|
||||||
<p>{data.truck_name}</p>
|
<p><Text txt={data.truck_name}/></p>
|
||||||
<p className="text-secondary">{data.desc}</p>
|
<p className="text-secondary"><Text txt={data.desc}/></p>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ export default function SliderCard({data}:{data:ProductTypes}) {
|
|||||||
height={600}
|
height={600}
|
||||||
className="object-cover max-w-[600px] w-full h-[300px]"
|
className="object-cover max-w-[600px] w-full h-[300px]"
|
||||||
/>
|
/>
|
||||||
<div className="relative mt-6 text-primary flex flex-col items-start p-4 justify-start bg-gray-50 border-b-6 border-gray-400 group hover:border-b-secondary">
|
<div className="relative overflow-visible mt-6 text-primary flex flex-col items-start p-4 justify-start bg-gray-50 border-b-6 border-gray-400 group hover:border-b-secondary">
|
||||||
<div className="absolute -top-8 text-[16px] font-semibold left-5 bg-secondary py-1 px-3 clip-trapezoid">
|
<div className="absolute -top-10 sm:-top-8 text-[16px] font-semibold left-5 bg-secondary py-1 px-3 clip-trapezoid">
|
||||||
<Text txt={data.truck_name}/>
|
<Text txt={data.truck_name}/>
|
||||||
</div>
|
</div>
|
||||||
<div className="text-xl font-bold flex items-center h-[60px] hover:text-secondary"><Text txt={data.desc}/></div>
|
<div className="text-xl font-bold flex items-center h-[60px] hover:text-secondary"><Text txt={data.desc}/></div>
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ import { FaLocationDot } from "react-icons/fa6";
|
|||||||
export default function Footer() {
|
export default function Footer() {
|
||||||
return (
|
return (
|
||||||
<div dir="ltr" className="bg-primary">
|
<div dir="ltr" className="bg-primary">
|
||||||
<div className="max-w-[1200px] w-full mx-auto pt-10 ">
|
<div className="max-w-[1200px] flex items-start w-full mx-auto pt-10 px-5">
|
||||||
<div className="flex items-start justify-around">
|
<div className="flex flex-wrap items-start justify-between gap-5 max-sm:gap-10">
|
||||||
<div>
|
<div>
|
||||||
{/* logo */}
|
{/* logo */}
|
||||||
<div className="flex items-center gap-4">
|
<div className="flex items-center gap-4">
|
||||||
@@ -108,6 +108,7 @@ export default function Footer() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div className="group flex flex-col items-end justify-end pt-15">
|
<div className="group flex flex-col items-end justify-end pt-15">
|
||||||
<div className="group relative">
|
<div className="group relative">
|
||||||
<div
|
<div
|
||||||
@@ -167,7 +168,6 @@ export default function Footer() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className=" py-5 text-white border-t-[1px] text-center border-gray-500 mt-20">
|
<div className=" py-5 text-white border-t-[1px] text-center border-gray-500 mt-20">
|
||||||
Ismoiljon Mirabdullayev © 2025. All rights reserved.
|
Ismoiljon Mirabdullayev © 2025. All rights reserved.
|
||||||
|
|||||||
@@ -31,7 +31,6 @@
|
|||||||
background-color: rgba(66, 64, 64, 0.199);
|
background-color: rgba(66, 64, 64, 0.199);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@media (max-width: 580px) {
|
@media (max-width: 580px) {
|
||||||
.overflow.active {
|
.overflow.active {
|
||||||
display: block;
|
display: block;
|
||||||
@@ -66,24 +65,23 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.nav_link_group_phone {
|
.nav_link_group_phone {
|
||||||
position: absolute;
|
position: fixed; /* ✅ absolute emas */
|
||||||
z-index: 1;
|
z-index: 1001; /* yuqoriroq bo‘lsin */
|
||||||
top: 0vh;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
bottom: 0;
|
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
width: calc(40% + 100px);
|
width: 80%; /* ✅ width: calc(40% + 100px) o‘rniga */
|
||||||
max-width: 100%;
|
max-width: 400px; /* qo‘shimcha himoya */
|
||||||
background-color: white;
|
|
||||||
background: white;
|
background: white;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: start;
|
justify-content: start;
|
||||||
align-items: start;
|
align-items: start;
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
padding: 0 10px 10px 10px;
|
padding: 10px;
|
||||||
transform: translate(-100%);
|
transform: translateX(-100%);
|
||||||
transition: 0.4s ease-in-out;
|
transition: transform 0.4s ease-in-out;
|
||||||
|
box-sizing: border-box; /* ✅ scrollni oldini olish */
|
||||||
}
|
}
|
||||||
|
|
||||||
.overflow {
|
.overflow {
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
|
|
||||||
export default function Contact() {
|
export default function Contact() {
|
||||||
return (
|
return (
|
||||||
<section dir="ltr" className="relative w-full bg-primary py-20 flex justify-center mt-40">
|
<section dir="ltr" className="relative w-full bg-primary py-20 flex justify-center mt-40 px-4">
|
||||||
<div className=" absolute z-20 -top-25 bg-secondary max-w-[1200px] w-full py-10 flex flex-col items-center clip-trapezoid">
|
<div className="mx-auto absolute z-20 -top-25 bg-secondary max-w-[1200px] w-full py-10 flex flex-col items-center clip-trapezoid">
|
||||||
<div id="contactClip" className="w-full flex flex-col items-center justify-center">
|
<div id="contactClip" className="w-full flex flex-col items-center justify-center">
|
||||||
<h2 className="text-2xl md:text-3xl font-bold text-primary mb-5 text-center">
|
<h2 className="text-2xl md:text-3xl font-bold text-primary mb-5 text-center">
|
||||||
Qo'ng'iroqni buyurtma qiling
|
Qo'ng'iroqni buyurtma qiling
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
{/* Input va Button bloki */}
|
{/* Input va Button bloki */}
|
||||||
<div className="flex w-full max-w-2xl">
|
<div className="flex w-full max-w-2xl px-4">
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Your phone number"
|
placeholder="Your phone number"
|
||||||
className="flex-1 py-3 px-5 bg-white text-gray-600 placeholder-gray-400 text-lg clip-input focus:outline-none"
|
className="flex-1 py-3 px-5 bg-white text-gray-600 placeholder-gray-400 text-lg clip-input focus:outline-none"
|
||||||
/>
|
/>
|
||||||
<button className="bg-primary -ml-5 text-white px-6 py-3 text-lg font-medium clip-button">
|
<button className="bg-primary -ml-5 text-white sm:px-6 sm:py-3 p-2 text-lg font-medium clip-button">
|
||||||
Menga qo'ng'iroq qiling
|
Menga qo'ng'iroq qiling
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ const FaqTexts: CollapseProps["items"] = [
|
|||||||
{
|
{
|
||||||
key: "1",
|
key: "1",
|
||||||
showArrow: false,
|
showArrow: false,
|
||||||
className: "!border-[3px] !border-secondary !rounded-[15px] p-5 mb-10",
|
className: "!border-[3px] !border-secondary !rounded-[15px] sm:p-5 mb-10",
|
||||||
label: (
|
label: (
|
||||||
<div className="text-black text-2xl font-[600]">
|
<div className="text-black text-2xl font-[600]">
|
||||||
<Text txt="faq1" />
|
<Text txt="faq1" />
|
||||||
@@ -22,7 +22,7 @@ const FaqTexts: CollapseProps["items"] = [
|
|||||||
{
|
{
|
||||||
key: "2",
|
key: "2",
|
||||||
showArrow: false,
|
showArrow: false,
|
||||||
className: "!border-[3px] !border-secondary !rounded-[15px] p-5 mb-10",
|
className: "!border-[3px] !border-secondary !rounded-[15px] sm:p-5 mb-10",
|
||||||
label: (
|
label: (
|
||||||
<div className="text-black text-2xl font-[600]">
|
<div className="text-black text-2xl font-[600]">
|
||||||
<Text txt="faq2" />
|
<Text txt="faq2" />
|
||||||
@@ -37,7 +37,7 @@ const FaqTexts: CollapseProps["items"] = [
|
|||||||
{
|
{
|
||||||
key: "3",
|
key: "3",
|
||||||
showArrow: false,
|
showArrow: false,
|
||||||
className: "!border-[3px] !border-secondary !rounded-[15px] p-5 mb-10",
|
className: "!border-[3px] !border-secondary !rounded-[15px] sm:p-5 mb-10",
|
||||||
label: (
|
label: (
|
||||||
<div className="text-black text-2xl font-[600]">
|
<div className="text-black text-2xl font-[600]">
|
||||||
<Text txt="faq3" />
|
<Text txt="faq3" />
|
||||||
@@ -68,7 +68,7 @@ const FaqTexts: CollapseProps["items"] = [
|
|||||||
{
|
{
|
||||||
key: "4",
|
key: "4",
|
||||||
showArrow: false,
|
showArrow: false,
|
||||||
className: "!border-[3px] !border-secondary !rounded-[15px] p-5 mb-5",
|
className: "!border-[3px] !border-secondary !rounded-[15px] sm:p-5 mb-5",
|
||||||
label: (
|
label: (
|
||||||
<div className="text-black text-2xl font-[600]">
|
<div className="text-black text-2xl font-[600]">
|
||||||
<Text txt="faq4" />
|
<Text txt="faq4" />
|
||||||
@@ -84,7 +84,7 @@ const FaqTexts: CollapseProps["items"] = [
|
|||||||
|
|
||||||
export default function Faq() {
|
export default function Faq() {
|
||||||
return (
|
return (
|
||||||
<div className="max-w-[1200px] w-full mx-auto text-left mb-30">
|
<div className="max-w-[1200px] w-full mx-auto text-left mb-30 px-4">
|
||||||
<div className="mb-10">
|
<div className="mb-10">
|
||||||
<Title text="faq-h2" />
|
<Title text="faq-h2" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ const navigationNextEl = ".custom-swiper-next";
|
|||||||
|
|
||||||
export default function CustomSlider() {
|
export default function CustomSlider() {
|
||||||
return (
|
return (
|
||||||
<div dir="ltr" className="max-w-[1400px] w-full mx-auto relative my-20">
|
<div dir="ltr" className="max-w-[1400px] w-full mx-auto relative my-20 px-4">
|
||||||
{/* Title */}
|
{/* Title */}
|
||||||
<div className="my-10 mb-20 flex items-center justify-between ">
|
<div className="my-10 mb-20 flex items-center justify-between ">
|
||||||
<div className="">
|
<div className="">
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ export default function Offer() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* body */}
|
{/* body */}
|
||||||
<div className="flex max-[1200px]:flex-wrap items-start justify-end max-w-[1200px] w-full mx-auto">
|
<div className="flex max-[1200px]:flex-wrap max-[1200px]:justify-center items-start justify-end max-w-[1200px] w-full mx-auto">
|
||||||
<Image
|
<Image
|
||||||
src={Ekskavator_offer}
|
src={Ekskavator_offer}
|
||||||
alt="Ekskavator image"
|
alt="Ekskavator image"
|
||||||
className="max-[1200px]:flex hidden w-[700px] "
|
className="max-[1200px]:flex hidden w-[700px] "
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="flex flex-col items-end text-left justify-end gap-5 text-gray-500 max-w-[500px] w-full min-w-[600px] ">
|
<div className="flex flex-col px-4 items-end text-left justify-end gap-5 text-gray-500 max-w-[1000px] w-full ">
|
||||||
<div className="text-[16px] leading-[30px]">
|
<div className="text-[16px] leading-[30px]">
|
||||||
<Text txt="about-p" />
|
<Text txt="about-p" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -27,35 +27,33 @@ const images: StaticImageData[] = [
|
|||||||
|
|
||||||
export default function Partners() {
|
export default function Partners() {
|
||||||
return (
|
return (
|
||||||
<div className="my-5 max-w-[1200px] w-full mx-auto ">
|
<div className="my-5 max-w-[1000px] w-full mx-auto ">
|
||||||
{/* title */}
|
{/* title */}
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
<Title text="partner-h2" />
|
<Title text="partner-h2" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* slider */}
|
{/* slider */}
|
||||||
<div className="my-10">
|
<div className="my-20">
|
||||||
<Swiper
|
<Swiper
|
||||||
autoplay={{
|
autoplay={{
|
||||||
reverseDirection: true,
|
reverseDirection: true,
|
||||||
delay: 2500,
|
delay: 2500,
|
||||||
disableOnInteraction: false,
|
disableOnInteraction: false,
|
||||||
}}
|
}}
|
||||||
|
loop={true}
|
||||||
modules={[Autoplay]}
|
modules={[Autoplay]}
|
||||||
slidesPerView={4}
|
slidesPerView={4}
|
||||||
breakpoints={{
|
className="mySwiper flex items-center justify-around"
|
||||||
320: { slidesPerView: 1 },
|
|
||||||
640: { slidesPerView: 2 },
|
|
||||||
1024: { slidesPerView: 4 },
|
|
||||||
}}
|
|
||||||
className="mySwiper flex items-center justify-center"
|
|
||||||
>
|
>
|
||||||
{images.map((item, index) => (
|
{images.map((item, index) => (
|
||||||
<SwiperSlide key={index}>
|
<SwiperSlide key={index} className="!w-[200px] mx-10 " >
|
||||||
<Image
|
<Image
|
||||||
src={item}
|
src={item}
|
||||||
alt="Partner images"
|
alt="Partner images"
|
||||||
className="w-[200px] h-[200px] object-contain"
|
width={200}
|
||||||
|
height={200}
|
||||||
|
className="object-contain mx-auto max-w-[200px] h-auto"
|
||||||
/>
|
/>
|
||||||
</SwiperSlide>
|
</SwiperSlide>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ export default function Products() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* products */}
|
{/* products */}
|
||||||
<div className="grid gap-5 grid-cols-1 place-content-center min-sm:grid-cols-2 min-lg:grid-cols-4 min-[1210px]:grid-cols-4">
|
<div className="px-4 grid gap-5 grid-cols-1 place-content-center min-[500px]:grid-cols-2 min-lg:grid-cols-4 min-[1210px]:grid-cols-4">
|
||||||
{cars.map((item: ProductTypes, index: number) => (
|
{cars.map((item: ProductTypes, index: number) => (
|
||||||
<div key={index} >
|
<div key={index} >
|
||||||
<ProductCard data={item} />
|
<ProductCard data={item} />
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ export default function Texnika() {
|
|||||||
return (
|
return (
|
||||||
<div className="my-20 max-w-[1100px] w-full mx-auto">
|
<div className="my-20 max-w-[1100px] w-full mx-auto">
|
||||||
{/* title */}
|
{/* title */}
|
||||||
<div className="mb-4">
|
<div className="mb-4 px-2">
|
||||||
<Title text="brand-h2" />
|
<Title text="brand-h2" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user