some updates for texts in home page, and font added
This commit is contained in:
parent
7dddd92ffa
commit
986faa3b5f
@ -28,7 +28,7 @@ export default async function AboutMe() {
|
||||
const aboutMeData: AboutMeDataType = await fetch(
|
||||
`${process.env.NEXT_PUBLIC_FRONT_URL}/api/website/about-me`,
|
||||
{
|
||||
cache: "no-store", // غیرفعال کردن کش
|
||||
cache: "no-store",
|
||||
},
|
||||
).then((res) => res.json());
|
||||
|
||||
@ -41,7 +41,7 @@ export default async function AboutMe() {
|
||||
<h2 className="mb-10 text-[55px] font-[800] text-black">
|
||||
{aboutMeData?.title || <Skeleton width={300} height={100} />}
|
||||
</h2>
|
||||
<p className="text-justify text-[21px] font-[400] text-black">
|
||||
<p className="my-5 text-justify text-[21px] font-[400] text-black">
|
||||
{aboutMeData?.description || <Skeleton width={350} height={30} />}
|
||||
</p>
|
||||
<ul className="mt-10 flex w-full flex-col gap-10">
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import siteTexts from "@/app/_constants/siteTexts";
|
||||
import React from "react";
|
||||
|
||||
export default function Contact() {
|
||||
@ -6,26 +7,25 @@ export default function Contact() {
|
||||
className="mt-10 flex w-full max-w-[80%] flex-col gap-[30px] pt-[120px]"
|
||||
id="contact"
|
||||
>
|
||||
<h2 className="text-center text-[35px] font-[800] text-[#000]">
|
||||
Lets Design Together
|
||||
<h2 className="text-center text-[35px] font-[800] text-[#000] capitalize">
|
||||
{siteTexts.en.homePage.contact.slogan}
|
||||
</h2>
|
||||
<p className="text-center text-[18px] font-[600] text-[#000]">
|
||||
Lorem ipsum dolor sit amet consectetur. Tristique amet sed massa nibh
|
||||
lectus netus in. Aliquet donec morbi convallis pretium
|
||||
{siteTexts.en.homePage.contact.description}
|
||||
</p>
|
||||
<div className="flex w-full flex-wrap items-center justify-center gap-[25px]">
|
||||
<input
|
||||
type="text"
|
||||
className="min-w-[340px] rounded-lg border border-[#AFAFAF] bg-[#F8F8F8] p-[22px] text-[18px] font-[400] text-[#797979]"
|
||||
placeholder="Enter your Email address here..."
|
||||
placeholder={siteTexts.en.homePage.contact.placeholder}
|
||||
name="email"
|
||||
id="email"
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
className="whitespace-nowrap rounded-lg bg-[#FD6F00] px-[35px] py-[20px] text-[20px] font-[600] text-[#fff]"
|
||||
className="whitespace-nowrap rounded-lg bg-[#FD6F00] px-[35px] py-[20px] text-[20px] font-[600] text-[#fff] capitalize"
|
||||
>
|
||||
Contact Me
|
||||
{siteTexts.en.homePage.contact.button}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -83,7 +83,7 @@ export default function Footer() {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p className="flex items-center justify-center whitespace-nowrap bg-[#545454] text-[15px] font-[400] text-white">
|
||||
<p className="flex items-center justify-center whitespace-nowrap bg-[#545454] text-[15px] font-[400] text-white py-2">
|
||||
© 2023
|
||||
<span className="mx-[5px] whitespace-nowrap text-[18px] font-[700] text-[#FD6F00]">
|
||||
Parsa Aghayi
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
"use client";
|
||||
import siteTexts from "@/app/_constants/siteTexts";
|
||||
import React, { useEffect, useState } from "react";
|
||||
import Skeleton from "react-loading-skeleton";
|
||||
import "react-loading-skeleton/dist/skeleton.css";
|
||||
@ -77,10 +78,9 @@ export default function MyProjects() {
|
||||
className="flex w-full max-w-[90%] flex-wrap items-center justify-center pt-[50px]"
|
||||
id="projects"
|
||||
>
|
||||
<h2 className="my-10 text-[55px] font-[800] text-black">My Projects</h2>
|
||||
<h2 className="my-10 text-[55px] font-[800] text-black capitalize">{siteTexts.en.homePage.projects.title}</h2>
|
||||
<p className="text-justify text-[21px] font-[400] text-black">
|
||||
Lorem ipsum dolor sit amet consectetur. Mollis erat duis aliquam mauris
|
||||
est risus lectus. Phasellus consequat urna tellus
|
||||
{siteTexts.en.homePage.projects.description}
|
||||
</p>
|
||||
<ul className="mb-10 mt-20 flex w-full flex-wrap items-center justify-center gap-5">
|
||||
{categories.length > 0 ? (
|
||||
@ -88,7 +88,7 @@ export default function MyProjects() {
|
||||
<li
|
||||
key={index}
|
||||
onClick={() => setSelectedCategory(category.label)}
|
||||
className={`select-none whitespace-nowrap rounded-md border border-[#545454] bg-[#F8F8F8] px-[20px] py-[10px] text-[18px] font-[600] hover:cursor-pointer hover:border-[#FD6F00] ${
|
||||
className={`select-none whitespace-nowrap rounded-md border border-[#545454] bg-[#F8F8F8] px-[20px] py-[10px] text-[18px] font-[600] hover:cursor-pointer hover:border-[#FD6F00] capitalize ${
|
||||
selectedCategory === category.label
|
||||
? "bg-[#FD6F00] text-[#FFFFFF]"
|
||||
: "text-[#000]"
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import siteTexts from "@/app/_constants/siteTexts";
|
||||
import { useEffect, useState } from "react";
|
||||
import Skeleton from "react-loading-skeleton";
|
||||
import "react-loading-skeleton/dist/skeleton.css";
|
||||
@ -81,12 +82,13 @@ export default function Services() {
|
||||
className="flex w-full max-w-[90%] flex-col flex-wrap items-center pt-[100px]"
|
||||
id="services"
|
||||
>
|
||||
<h2 className="mb-10 text-[55px] font-[800] text-black">Services</h2>
|
||||
<p className="text-justify text-[21px] font-[400] text-black">
|
||||
Lorem ipsum dolor sit amet consectetur. Tristique amet sed massa nibh
|
||||
lectus netus in. Aliquet donec morbi convallis pretium
|
||||
<h2 className="mb-10 text-[55px] font-[800] capitalize text-black">
|
||||
{siteTexts.en.homePage.services.title}
|
||||
</h2>
|
||||
<p className="text-center text-[21px] font-[400] text-black">
|
||||
{siteTexts.en.homePage.services.description}
|
||||
</p>
|
||||
<div className="service mt-10 flex w-full flex-wrap items-start justify-between gap-8">
|
||||
<div className="service mt-20 flex w-full flex-wrap items-start justify-between gap-8">
|
||||
{loading
|
||||
? Array.from({ length: 4 }).map((_, index) =>
|
||||
renderServiceCard(undefined, index),
|
||||
@ -1,4 +1,5 @@
|
||||
"use client";
|
||||
import siteTexts from "@/app/_constants/siteTexts";
|
||||
import React, { useEffect, useRef, useState } from "react";
|
||||
|
||||
interface Testimonial {
|
||||
@ -83,10 +84,11 @@ export default function Testimonials() {
|
||||
className="flex w-full max-w-[90%] flex-wrap justify-center pt-[100px]"
|
||||
id="testimonials"
|
||||
>
|
||||
<h2 className="text-[55px] font-[800] text-black">Testimonials</h2>
|
||||
<h2 className="text-[55px] font-[800] capitalize text-black">
|
||||
{siteTexts.en.homePage.testimonials.title}
|
||||
</h2>
|
||||
<p className="my-10 text-justify text-[21px] font-[400] text-black">
|
||||
Lorem ipsum dolor sit amet consectetur. Mollis erat duis aliquam mauris
|
||||
est risus lectus. Phasellus consequat urna tellus
|
||||
{siteTexts.en.homePage.testimonials.description}
|
||||
</p>
|
||||
<div
|
||||
className="no-scrollbar relative flex min-h-[780px] w-full select-none flex-nowrap items-start gap-8 overflow-x-scroll py-4 sm:min-h-[560px] lg:min-h-[450px] xl:min-h-[370px] 2xl:min-h-[370px]" // Hide scrollbar using CSS
|
||||
|
||||
@ -2,11 +2,12 @@ import Image from "next/image";
|
||||
import Testimonials from "./components/testimonials/testimonials";
|
||||
import Contact from "./components/contact/contact";
|
||||
import AboutMe from "./components/about-me/aboutMe";
|
||||
import Services from "./components/services/projects";
|
||||
import Services from "./components/services/services";
|
||||
import MyProjects from "./components/projects/projects";
|
||||
import siteTexts from "@/app/_constants/siteTexts";
|
||||
|
||||
export default async function Home() {
|
||||
|
||||
const pageText = siteTexts.en;
|
||||
return (
|
||||
<div className="my-15 flex w-full max-w-[1420px] flex-col items-center gap-[50px]">
|
||||
{/* Home */}
|
||||
@ -60,21 +61,19 @@ export default async function Home() {
|
||||
{/* end */}
|
||||
<div className="items flex w-full max-w-[90%] flex-col md:max-w-[70%] lg:w-[45%] xl:w-[50%]">
|
||||
<p className="text-[20px] font-[400] text-black 2xl:text-[24px]">
|
||||
Hi I am{" "}
|
||||
{pageText.homePage.top.greating}
|
||||
</p>
|
||||
<p className="text-[30px] font-[600] text-[#FD6F00] 2xl:text-[32px]">
|
||||
Parsa Aghayi
|
||||
{pageText.homePage.top.name}
|
||||
</p>
|
||||
<p className="whitespace-nowrap text-start text-[30px] font-[700] text-black sm:text-[50px] lg:text-[45px] xl:text-[60px] 2xl:text-[80px]">
|
||||
Frontend & Backend
|
||||
{pageText.homePage.top.profession}
|
||||
</p>
|
||||
<p className="mt-[-20px] text-end text-[50px] font-[700] text-black lg:mt-[-30px] lg:text-[50px] xl:text-[70px] 2xl:text-[100px]">
|
||||
Developer
|
||||
{pageText.homePage.top.roll}
|
||||
</p>
|
||||
<p className="my-[40px] text-justify text-[21px] font-[400] text-black lg:pe-0">
|
||||
Lorem ipsum dolor sit amet consectetur. Tristique amet sed massa
|
||||
nibh lectus netus in. Aliquet donec morbi convallis pretium. Turpis
|
||||
tempus pharetra
|
||||
{pageText.homePage.top.descriptionAboutMe}
|
||||
</p>
|
||||
<button className="flex h-[52px] w-[188px] items-center whitespace-nowrap rounded-md bg-[#FD6F00] p-[18px] px-[52px] text-[21px] font-[400] text-[#fff]">
|
||||
Hire Me
|
||||
|
||||
55
src/app/_constants/siteTexts.ts
Normal file
55
src/app/_constants/siteTexts.ts
Normal file
@ -0,0 +1,55 @@
|
||||
const siteTexts = {
|
||||
en: {
|
||||
homePage: {
|
||||
top: {
|
||||
greating: "Hi I am",
|
||||
name: "Parsa Aghayi",
|
||||
profession: "Frontend & Backend",
|
||||
roll: "Developer",
|
||||
descriptionAboutMe:
|
||||
"My expertise lies in working with frameworks, focusing on optimizing performance and developing scalable web applications using modern technologies.",
|
||||
},
|
||||
services: {
|
||||
title: "services",
|
||||
description:
|
||||
"In today's digital landscape, having a robust online presence is essential for businesses and individuals alike. Our services cater to a wide range of web development needs, ensuring that your project is functional, visually appealing, and user-friendly.",
|
||||
},
|
||||
projects: {
|
||||
title: "my projects",
|
||||
description:
|
||||
"In this section, you'll find a curated selection of projects that showcase my expertise and creativity in web development. Each project highlights my ability to tackle diverse challenges, utilize modern technologies, and deliver high-quality solutions that meet client needs. From dynamic web applications to user-friendly interfaces, these projects reflect my commitment to excellence and my passion for creating engaging digital experiences. Explore my work to see how I can bring your vision to life!",
|
||||
},
|
||||
testimonials: {
|
||||
title: "testimonials",
|
||||
description:
|
||||
"The Testimonials section features feedback and reviews from clients and collaborators who have experienced my work firsthand. Here, you'll find insights into their experiences, highlighting the quality of my services, my attention to detail, and my commitment to client satisfaction. These authentic testimonials serve as a testament to my professionalism and the positive impact I've made on various projects, providing potential clients with confidence in choosing me for their web development needs.",
|
||||
},
|
||||
contact: {
|
||||
slogan: "Lets Design Together",
|
||||
description:
|
||||
"The Contact Me section offers a simple way to reach out for inquiries, project proposals, or collaboration opportunities. Fill out the contact form or use the provided information, and I'll respond promptly to discuss your ideas and how I can help.",
|
||||
button: "contact me",
|
||||
placeholder: "Enter your Email address here...",
|
||||
},
|
||||
},
|
||||
},
|
||||
fa: {
|
||||
homePage: {
|
||||
top: {
|
||||
greating: "اول از همه اسمم",
|
||||
name: "پارسا آقایی",
|
||||
profession: "Frontend & Backend",
|
||||
roll: "Developer",
|
||||
descriptionAboutMe:
|
||||
"Lorem ipsum dolor sit amet consectetur. Tristique amet sed massanibh lectus netus in. Aliquet donec morbi convallis pretium. Turpis tempus pharetra",
|
||||
},
|
||||
services: {
|
||||
title: "Services",
|
||||
description:
|
||||
"Lorem ipsum dolor sit amet consectetur. Tristique amet sed massa nibh lectus netus in. Aliquet donec morbi convallis pretium",
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default siteTexts;
|
||||
|
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 156 KiB |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user