Build a Modern Responsive Portfolio Websites with React and TailwindCSS | Czero | Skillshare
Search

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Build a Modern Responsive Portfolio Websites with React and TailwindCSS

teacher avatar Czero, Backend Developer

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

    • 1.

      SkillshareProjectsREACTTAILDINDintro

      1:43

    • 2.

      Project 1: Intro

      1:02

    • 3.

      Project 1: Setup

      2:23

    • 4.

      Project 1: Navbar

      10:52

    • 5.

      Project 1: Hero

      11:40

    • 6.

      Project 1: About

      8:49

    • 7.

      Project 1: Portfolio

      8:49

    • 8.

      Project 1: Experience

      9:30

    • 9.

      Project 1: Contact

      17:54

    • 10.

      Project 1: Footer

      11:49

    • 11.

      Project 1: Final Updates

      6:50

    • 12.

      Project 2: Intro And Setup

      6:35

    • 13.

      Project 2: Navbar

      13:54

    • 14.

      Project 2: Hero

      14:04

    • 15.

      Project 2: About

      10:22

    • 16.

      Project 2: Portfolio

      10:53

    • 17.

      Project 2: Contact

      11:39

    • 18.

      Project 2: Footer

      1:19

    • 19.

      Project 2: Final Fixes

      7:06

    • 20.

      Project 3: Intro and Setup

      2:39

    • 21.

      Project 3: Navbar

      12:00

    • 22.

      Project 3: Hero

      9:52

    • 23.

      Project 3: Portfolio

      13:35

    • 24.

      Project 3: Contact

      9:59

    • 25.

      Project 3: About

      6:53

    • 26.

      Project 3: Footer

      1:53

    • 27.

      Project 3: Final Fixes

      6:56

    • 28.

      Project 4: Intro and Setup

      4:01

    • 29.

      Project 4: Navbar

      10:16

    • 30.

      Project 4: Hero

      9:21

    • 31.

      Project 4: About

      10:33

    • 32.

      Project 4: Portfolio

      12:45

    • 33.

      Project 4: Contact

      11:06

    • 34.

      Project 4: Footer

      3:26

    • 35.

      Project 4: Shinny Effect

      7:28

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

15

Students

--

Project

About This Class

This course is for developers who want to create a functional portfolio websites using React and Tailwind CSS. You'll gain hands-on experience designing and building a personalized website that showcases your skills, projects, and professional background, all while leveraging the power of modern web development tools. Throughout the course, you'll explore key concepts such as responsive design and reusable components.

Meet Your Teacher

Teacher Profile Image

Czero

Backend Developer

Teacher

Related Skills

Development Web Development
Level: Beginner

Class Ratings

Expectations Met?
    Exceeded!
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

Transcripts

1. SkillshareProjectsREACTTAILDINDintro: Course is for everyone who wants to learn about creating websites with react and tailwind. Welcome. Let me walk you through what you will learn and what you will get in this package of websites built with react and Tailwind. This course is completely project based, so you will be learning all this real project examples that you can then keep or customize, save into your portfolio or just use later for your first client project. You will get hours of content to learn and practice tailwind CSS. The projects we will be creating are portfolio websites. We will be building working contact forms so users will be able to send messages to us multiple responsive navigation bars that you can easily use, just like all of the other components, about sections, portfolio sections, hero sections with different layouts, and you will practice how to build your own cool user interfaces. These projects were my road to understanding where I should change or at a tailwind class to make the website work as it should, how to fix bugs, and so on. Now all these step by step solutions are here to help you understand how you can build websites on your own. Fix box in completed websites and overall, learn the knowledge, practice, or just gain more experience to kick start your front end developer career. We will be using Tailwind CSS, and Tailwind CSS is like a big library of premade CSS classes that you can use directly in your HDML to style elements without writing custom CSS each time. Unlike traditional CSS, where you might write styles in a separate file, tailwind lets you apply styles directly to your HDM elements with small single purpose classes. Alongside tailwind, we will be using to create reusable components that you can integrate seamlessly into any of your projects. 2. Project 1: Intro: We will start with creating a navigation bar that on mobile screen will turn into a menu icon that will then display the navigation items whenever it's clicked and expanded. In hero section, which is the first section visible after user gets on the website, we will be using a profile picture with a small t effect behind it and on the left side, a quick description with a CV to download button and on the right side, the social icons. In about section, we will create these columns for our pictures to create an interesting design element that we can put next to our text. And below, few metrics where we can highlight our achievements. Below, we will create a section with our selected projects that we want to highlight. Then we will create an experience section where we will create this letter of our working experience, or maybe if you don't have any yet, we can prepare some achievements from school, and then on the bottom will be a contact section with working contact me form that will be actually sending messages to our mailbox. 3. Project 1: Setup: We'll start by going to the tail end page and there in framework guides, we will go into WD and there we'll start using the commands. We will open the terminal there. We will now paste it, and we are already in our folder, or at least time portfolio website. So there we will delete the My project, do there just a dot, hit Enter, and it will initialize the project there. Now, as we are already also in the folder, we don't need to see it. There we will use this one, install Autoprefixor. Now the next one for initializing the tailwind. Now we will copy this and put it into the tailwind configuration file. Now the tailwind directive in index CSS. There we can delete Epidt CSS, and to test our application, we can also take this, put it in EpidGSsix, save it. We can clean the terminal and do NPM run depth. Now this will start our page. First, I will load the images into the asset you can find on Git, and then I will continue with creating a new folder that will be named pages, and there I can start. First, I will create enough bar. And we can create an export there and put it into our Epidot J six. So there we can start. We will do first import the navbar. And there we will return all the components. So we will do an empty fragments that will hold the Navbar. And on the bottom, we'll do Export default app. 4. Project 1: Navbar: First in the navigation bar, we need to import the use state because we'll be using a state variable there for the navigation bar as we will be switching from the mobile to desktop navigation. Also, we will import some icons. So I will use outline clothes and outline menu from react icons AI. First, let me import or install the library, so N PMI react icons, Now we can do the AI Outline clothes and outline menu. And also, we will import the signature and what is it. I basically created a signature there, transparent signature, and I will use it as my logo. So signature from As such, sinagrePNG. The first, I will start with the state variable, so I will do the NaF and set navigation use state default will be false. Then I will create a function to handle this navigation. So setNa and change the value. And we'll be using this in click function in our navigation. That should be it. There in the main Div we'll open we will first set some class name there. We can use text to black. Then flexbox layout, justify between, so there is evenly distributed space between our elements. Then center it vertically, maximum width to 1,300 pixels. We will center this as we are using the maximum width, and we will set some initial height. We can also set there background green to 700 now to just see the navigation on our page. Now it should be updating. So let's change it to light color and this so it's working. So we can see we have it there. So first in this man div will be a logo, and this logo will be wrapped in the anchor text because we want it to take us on the homepage when it will be clicked. So let's add source, and I will ada the signature. I import it. Now you can see there is the logo or the signature. So we need to add also a class name to this anchor tag. There first, we will start with some margin to left, and, of course, we need to set the maximum weight. To something like 100 pixels. Now I will increase the page there so you can see it better. Okay. Now we can continue with the unordered list that will hold list items. For this unordered list, it will be hidden on the mobile screen as there will be the mobile navigation, and on a medium screen and above, it will be displayed flex, and we will use phone semi boat for all the list items there. Our sections will be about work, experience, and contact. So we can start with about then with work, then with experience, and then with contact. Then we can hold add for all class name with some bedding. Let's bedding five. And now we need to wrap this into a link tag. But first, we need to open a terminal and do we need to get it there. NPM, I react scroll. Now, this will get installed, and we will do the link. Hit Enter. That way, it gets imported there. We can double check it. Now we have the link, so we can put inside the link tag the about. There in this link, we need to put a two, so two and about. Same will apply for work experience, and contact. And I think it won't need these slashes. Let's test it later. Now, also, we will need to add a few more try moods and that will be smooth to two, then offset to 50 and also duration to 500. And that will indicate how the smooth scroll should work. Now we can take this and compete for the other items. Now for the icon on the mobile screen, we'll start their div. Inside this div, we will do a navigation turning operator. So based on this value, which is default false, we will show the closed icon or the menu icon. So let's start with the outline close. In case of true value and in case of a false value, let's use outline menu. We can also put inside their size to 20 and we can also put there some class name or we need to. So on mobile screen, it will be displayed. But on medium screen, this should be hidden because we have there the desktop navigation. Now you can see there, we have there a new navigation, and we have there also the desktop navigation. But if now I will save there these values, it gets hidden because it will be shown only on the mobile phone. Of course, also to this day, we need to add the onclick function. So on click and it will call the handle navigation, which is there. And now we can prepare the navigation for the mobile phone. So whenever this icon of menu gets clicked, it will open div with the unordered list. So let's open div first. There we need to do the class for this dif, so it will again also use the Turner operator based on the value of the Np variable. And there it will say, again, true and false position on true, it will just show this mobile menu. So with some index, text to gray, it will be fixed. It will have full height. It will be fixed to left and top to zero. The width will be to 60% we can add some border to right. And I think that's it. And for the fourth position, it will just be fixed in a left minus -100. So somewhere over there, it will be just out of the screen. We can test it. You can now see how the border appeared, but we need to add the nord list in order to see all the items. So let's continue. First, it will show we can basically take the things we have there, copy there and update the styling. So this one, let's see how it will look like. What we can do is that we will add their background. So let's start there background gradient two, right? From gray 500 via gray 702 gray 900. Also, we will add their east in out and duration 500. Now this is a bit better. But we'll make it a bit darker. So we'll make it from 700, 800, to like this. Also, next thing we should do. Let's cut this maximum width for the image and put it there. So let's do width to 120 maybe. Let's actually do it also there. So we will add there width to 100, cut it from there. Now, it looks like this. And if we increase it on the desktop version, it still looks good. So we will now need to add there some margins and increase the text sizes. First, I would go there, do text for Excel, then maybe do their margin from left to, like, I don't know, 12. That's also a bit better. And then there we will add the betting. And we'll add our class name, margin left to 12, and that should be fine. So now that is how it looks the mobile navigation. What we should also do is to add some margin to the icon. So there you will margin right to six, and that should be it. And we can move to hero section. 5. Project 1: Hero: What we need to do is to open explorer in pages, do a new file, hero JA six. We need this export there in Abdo JSix. We will just write a hero, click Enter. Now it gets imported, we have it there. We will be using a react type animation, open a terminal and do NPMiRact type animation. Now I will close this. Take the page, put it somewhere there, and we can start. First, I will import there the profile picture. So it will go from assets profile picture. And let me check the name, actually. Yes. Is this one? Now we have it there. We will import some icons, so I will import AI fill Linkedin, AI fall Git up, and also AI fall Instagram. Next, I will import the type animation from the library we just installed together. Now there I can go directly into the main Div and I can start. So we will add some vertical margin there. On medium screen, we will set it. So it will be mainly for the mobile devices to have there some additional spacing. Then we will set a maximum weight to 1,300 pixels for the navbar. Then from medium screen, we will set also some viewport height. So we will have more space for our hero section. I will use 70 viewport height. Then we will center this as we have the maximum width. We can use there sum. And I will do it on the start some background green 300 so we can see where we're at. I will uncenter it for you now so you can see I will put it back. Then we'll be using a grid layout because we'll be having in this section, basically, let's say three columns, but I will use the for medium screen, grid columns four because I will want my picture to take two of these columns. So in the first column on the left, there will be the name. In the middle of two columns, there will be the picture and on the right column on the last one, there will be the icons. Now I will also use place items. Center. First, what we will do in this div is the name with the type animation and with the button for the CV. So I will do another div. And in this div, I will do a paragraph tech. And in this paragraph tech, I will do a M. Now let's do a new line. Spen tech. It's not on the win. And after this, we will use the type animation. For this type animation, there is some sequence. Where we will put the things we want to write on our website. So first, we will do the developer. Sequence will be 1,000, then we will do the web designer. Again, sequence will be 1,000 and a consultant. Sequence will be again 1,000. Then we can set there some speed, so I will set there a speed of 50 and some repeat. And of course, repeat will be on infinity, so this is an infinite loop. Now we can see our page is fully white, so it probably failed. We can see the issue by going on the page, inspecting it. And there in console, we can see infinity is not defined. And it just didn't like the small ladder. So now on our page, we can see it's working. Let's add the styling. So for the paragraph tag, I will add on medium screen and above text five Excel. On smaller, we can do text tree Excel and on mobile phone, we can do text Excel. Then we will use tracking tight, so we decreased the letter spacing a bit, as you can see there. Also, we will add there from the Spen tech, some different styling, so I will add a font extra bolt and italic. So maybe a bolt is enough. And after the span tag, I also need to add additional break tech, so we have this another line. Now we can go back to our div. For our div, we will set some maximum weight of 400 pixels. Then we will use a flexbox layout and why we will be using this. Because in this div, next to this paragraph tag will be also the button with the CV. And on the desktop version, this will be below each other. So the flex direction will be column. But on mobile version, this will be next to each other. So it will be with flex direction row. Now, let's add the styling for the button. First, where this button should take us. I will leave it up to you. It should take us somewhere where our CV stored. Then we can set the title for this button. So download CV. And we'll add a class. So for classes, we can add some margin to top. We can also add some padding, so let's use. Let's just do padding two there, and we can add another gradient color. So background gradient to right. And it will be from a one color to second color now let me take the coats for the colors I want to be there. So we will go from this orange to this purple color. It's pretty similar color to the one I'm using on my profile picture. And actually, we can add now the profile picture. Or maybe first I will do just round it. Excel. Let me move it for you and maximum width to Let's try 300 pixels, maybe 260. 80? Okay. Let's keep it like this. Now we'll find where this div is ending. That's there. So there now we will add the picture. That will be the second div and inside, we will do the image with the source of profile picture. We have there. We can add also an old profile picture. There we will add also class name. So let's set width to 300 pixels for the mobile phone and on medium screen and above, we will set this weight to 500 pixels. Then wait first, let's do it. Heads to auto, and we can also use the centering for the DIF above. We will set from medium screen and above to take column span two. And with this, we will achieve that this will take two out of four column span that we set there. So we have there four columns, and with this, we are saying that this should take two of them. We don't even need to specify it in the other diffs because this will be enough. And now you can see how our picture increased. So that will be for the picture. What we will also do is that on medium screen and above, we will adder some margin to left 28. Let's don't be afraid of the value. And now we will add the icons, so we will add a dip Inside the death, you will add the anchor text, and inside the anchor text, we will add the AI fail. Get up. Let me copy this two more times. AI fall LinkedIn and AI fail Instagram. Now let's do the styling. So the styling will be text five Excel, so we can nicely see these icons. Then flexbox layout. So on mobile phone design, we will use a flex row so they will be next to each other on this desktop design. So from medium screen and above, we'll be using a flex direction colum so there will be below each other like you can see now. Let's set also some gap. Maybe this is too much. 12. Maybe even ten is working. Also, something else for medium screen and above, let's set width to full. And also, let's place items to end. And this means they will be nicely aligned below or on the end of our 1,300 maximum width. Now let's dt the background screen. And that should be it for the hero page. Don't forget there to add some HRP of your Git up LinkedIn or Instagram. 6. Project 1: About: Now we will continue to the About page. So there on pages, you file about the J six. Let's get this to Abdo J six. Again, we can now see it on our page there. And we'll go to the component and we can start there. First, I will import the A image from the assets. So again, let me see how it's named about four JP Save it. Now I can open the main disk. And I can start with the styling there. So first, let's set a maximum weight of 1,300 pixels as is standard for our page. Then we will add a flexbox layout, and we will use items to center and to justify center to center items vertically and horizontally. Then we will center it with the mixoto again, you can use the background to, I don't know green 300 to see where you add on your page. Currently, there's nothing. So if we just add something, you will see it there. With this, also, we can add from medium screen and above. We don't need on a mobile phone, height to 70 ie Baheit maybe. Okay. And we can even delete it. And we can continue with another div there. And but it will be there for holding our about image. So we are there class name with flex and flex row because we want these images to be next to each other. We will also at some Gib there. And in this dis, we will add the first image, and we will add the attributes, and then we will just copy it as a second one. So about image. This can be with about image, and the class name will be object cover. We already have it there on our page. So let's do it rounded Excel. Let's also do a width to 100 pixels. Ah, now is there? Let's do height to 300 pixels. Let's use a filter and set a gray scale because I don't want my about image to take too much attention, and also we can lower the brightness to 50. That is better. Now if we copy this image and we'll put it there, we will have these two about images next to each other. But what I wanted to achieve there is that I will lower the height of the second one to 200. And now you can see on our page it will create something like this. Let's first add other content, and then we will be figuring out how to make it work a bit better. But for this, first, we need to also add there some description. So in this other div, we'll be adding something about us, few sentences. So first insight, I will add the paragraph. Let's add the styling. So there for the paragraph, we'll add the king tight. So again, we will decrease the letter spacing a bit, reading loose, so we will increase the line height. Then we will see the maximum weight. Let's use 500 pixels. Now in this div, if we will move, we can add there the statistics. So we will create a new dish. And inside this div, we will create more discs. That will be holding the H two with the statistic number, so 11 and then Spentek plus. And then below, there will be a paragraph tech with projects. Now we will add the styling. So for this statistics dip, we will use let's first do the main one, flexbox layout, gap, margin from top, maximum width to 600 pixels and centering it. For the containers or small containers with statistic itself, we we the class name, background gradient to right from gray 800 to black with some pink and with some rounded large. Save now for the heading two, from medium screen and above, we will set text to four Excel. Otherwise, it will be text to Excel, f semi bot, and we would like to have this text gradient color. So we will now at a CSS class. Let's open the files, open the index dot CSS, and there we'll add background text primary color. And inside, we will add background image, linear gradient to right. There we will use the colors we used before. So where it is there, we can copy them. But we don't need this from and these braces. So we'll do it like this only with comma s. So it's to write from this color to that color. And then we will do a webkit, background clip to text. Also, we'll do background clip to text. Web kit text filled with color transparent and color transparent. With this, when now we will go to our A section, and there, what was the class, Background text primary color, take it and put there and save it. We will have our text with this color. And we will use it there for the projects, not for the projects, we'll use just text white or actually text gray, I don't know, 500, maybe 400 let's see how it looks. That is better. Now what we can do is that we can cook this. Put it there two more times. There I will do six plus years experience and that I can do 30 plus at the liens. Now before moving to green background, we also need to style this. So we have there the first diff, there is the second one. Let's adt gap 24. Let's remove this background and let's see how it looks. What we need to do is to update there for the text of the size. So this one will be Text Excel, definitely, at least. 7. Project 1: Portfolio: So let's open the folder. The pages you file portfolio dot JS six. Now we'll import it there. And we can start. Let's start with importing the project pictures. So import Project one from assets project one dot PNG. Then I will do this for all the other ones. So one, two, three, four. Nice. I have it there. What else I would do there is that I will create a list or constant of these projects. So I will do a constant of projects, and there, I will load all the information about the projects, and then I will iterate over them, and my code won't be repeating, and I will do just one project card. And whenever you will just want to add some project, you will dit there into these projects. So you can see there I will add image that will be Project one. Then I will do a title that can be just project. One, then I will do description, and I can repeat it. Now I will just add there a few more projects and I can continue with defining the project card. This project card, what I will do there, where we will take a project as an input that we will put there in the map that we will use in this main portfolio. This project card, you can also do as a standalone component there. If you will just create a new folder with components and create a new file, project card.j6. You can also take this L code there, but I will keep it in this portrayal of J six component. There we will start with the return, and I will do the div. This main div for the project card, have some styling. I will add I will add rounded corners, background gradient to right from gray 800 via gray 900 to black. Then we will use overflow hidden, so nothing will get out of our cards. Then some shadow to Excel is enough. Let's also add some z index, at some transform and transition and duration. So whenever we will now use the scale to 500 and whenever we will hover over the card, you will be able to see how it will increase and transform itself and increase the scale. Then we can start there with the anchor tag. And in this anchor tag, again, we will put an image. For this image, we will add a source, and the source will be the project dot image. And again, this project, you cannot see it anywhere. There is only project, but we will be mapping over projects there and using this project and calling this project card. And then this will map this image value, title value, and description value. So source will be this image value. Then we will have there also some class name, even for the image, of course. So height will be 300 pixels width to full, object to cover, object to top. Rounded top will be to Excel. That's it. Let's also do this styling. For the Anchor tech, we will set there an HRF, and there in ideal scenario, you will put URL to your working life demo of the website, you did. Or if it's for some clients, just put there the link to their website, then class name. So we can group this, set the column span to three, set their display to block, and also do their overflow hidden. And below the image, we will put the disk And inside this dif, we'll do heading two with the project title. And also a paragraph tag with the project description. Let's close it. Now, about the styling. So for the dif itself, let's put there some bedding, set text to white, some margin to bottom, and margin to right. Now before adding there more styling, we'll add code there. So we'll be actually seeing the styling we are doing there in the portfolio, we'll do another div. And in this div, we will do the projects dot Map. We'll do a project index, and there we will call the Project card. So project card. Inside this project card, we will input a key, which will be the index, and in project, we will input the project. So we'll input there from the project maps, the project, and there it will read its title and description. And all these informations we have there. Now on our website, we will scroll down, you can already see there the project. Of course, now you'll add the styling. First into the man Div, some bedding, something from button also. Okay? Now, let's continue there with some maximum width. We are using 1,300 pixels. And you also center it now into the second div, we might not even actually need. We can do it in the first one. What we want to do or maybe what you want to do also, is to have the grid layout and put at least two projects on a row. If you maybe don't have that many projects and you feel it will be better to just have the projects online and below each other, you can also leave it like this and just add there some spacing between the projects. I will use the grid layout, so I will add the grid. And on mobile screen, we will leave it as default value on column span one or grid columns one. But on medium screen and above, we will add grid columns two. So the projects will be next to each other. Also, we will add some gap. So we have some spacing between them, and we can move back there and do some styling for the heading two, which will be text to arch on semibt. Okay. And for project description, we will add text to gray 300 and text small and march into dp. Let's see the Bache. I think we'll leave the heading to text white, and that is fine. And I think we can leave it like this. 8. Project 1: Experience: Now let's continue with the experience section. So in Explorer pages, we'll create a new file experience.j6. We will edit there. And we can start. First, what we will do is that we will do a constant with our experience. So let's do experiences or also resume. And there we will start with company duration and description. Oh no, this They're company, so I will do just first company. Duration I can do there, I don't know, 2017 to 2018 and description. I worked as a front end developer. Now we can coup it, do there something similar, but change it to second, third, of course, there should be the real names of the companies, but I will put there just some placeholders. Fifth. This can be 2018, 2019, 2019, 2021, 2021, 2023 and 2023 to present. Of course, there will be a different description, most probably. Again, I will use this as some placeholder. Now as we have the list of the experiences, we can now use it in the main div, so we won't do any repetitive code, but we will have it there, and we will access it via the map and reuse it. So in the main div, we will add some class name with some bedding, with some mixing with 1,300 pixels. We will center it with a Mixoto and we'll add also relative class because we'll be using the line, and it will be some timeline for us, and that will be of position absolute. Now before I will map over this constant, I will create the timeline, so it will be a separate div there, and it won't have any content inside. It will have just class, and this class will be of position absolute with some width, background gradient to bottom from gray 500 to gray 800. Then we will add height to full, left half, and also on another line, I can do Transform, translate X, and again, 50% like this. Now you can see the start of the timeline is already on our page, and below, we will map over the constant, so we will do their experiences dot Map, experience, or we can do XP Index, and there we will start with the not empty fragments, but with the div. In our first di in a class name, we will do curly Basis, backslash, flexbox layout, and inside, we will check if the remainder of index divided by two is zero. And if yes, we will do justify start, so it means our experience will be on the left, and in case no, we will use justify end. So the experience will be on the right. And this is a turner operator. So the first position is a true one, and the second one is false or is executed. In case, it's false. So this condition more exactly. There we will add items to center and also vertical margin to eight. And there we will use key as index. What's wrong there is that for Turner operator, we are missing there the question mark. Now inside, we can create another div And in this dip, we will at the experience dot company dot duration at and do the description. So we will do the paragraph tech with experience dot company. Of course, company. Now we can copy it and do it for duration and description. Like this. Now we can check the page and you can see on our page how it's on the left and on the right. Now, also, if you will add the class name background black, you will see how exactly look like. We can for now, or we can now edit the gradient color gradient to right from gray 800 via gray 900 to black. So we can nicely see how it will look like. Now, check the page. And now you'll play with the padings and not even margin, I think. Let's go. Also, we will set there the maximum width. Definitely, so into our div right there, we can do the maximum width. Let's try 600 pixels. Maybe 700. Let's check the page. 700. Also, let's do it to full. Now it's better. So now maybe you can go back to 500 let's do 500. Or six? Let's do six. Now also we will add there some rounded three Excel. Let's see how it looks like. That's fine. Some shadow. Some overflow hidden in case, so it won't overflow outside of this card, let's say. Maybe some padding. That's a bit better. Now you'll need to add also text color, but I won't be putting it there, but to each line because on the company, I will use text white maybe or text grade 200. I will use definitely font semibolt I will use text Large. Okay. Now there on the bottom, for duration and description, we will try text gray, 400 Mm hmm. And for description, also, we will add text Small. That's better. And I think that can be for our experience section. 9. Project 1: Contact: Let's move to contact section. So there on pages, new file, contact.j6. Now we'll edit there. First, we will add their icons. So we will do import AI fail. LinkedIn. Also AI fail Git up, and also AI fail Instagram. Save it. There in contact, we can start with the main DIF. Inside, we will first do some bedding, 16 from top, and that's it. And then we will do another div, and that will hold our contact form. So there we'll do a maximum width of actually, let's now use seven Excel, for example, let's use a background gradient to write again from gray 800 via gray, 900 to black. Now, if we will add there some content, we can see it already on our page. There we will again center it. We will round it Excel. And there we will at at least from medium screen and above, height of 92 portight Now, you can see there is our section. Ipectrum to black, you will be able to see where the section exactly is. Inside the second div that is for the form with this background, we'll start adding the header div, which will be with let's connect and start working on something. Paragraph text. I think we can edit right now. So there we will at first heading two, that will be let's connect. And below, we will add a paragraph with and start working on amazing things. Now let's add some styling there. So margin bottom, punt ball, tracking tight for the style. Text gray, let's use 200 for the heading, text three Excel, maybe even increase it. So for medium screen, let's use Text five Excel. For the paragraph, let's use text XL and text gray 400. And I think that's it for now. For the dif that will hold this, we will use maximum weight of three Excel. We can see where this the rng y. So we can do text to center and mix to like this. Now maybe we can increase the text even here. Awesome. Below this div. Let's add some margin to top. Actually there. Now, what I would do is I would add something. And then below this day, we will do another one, and there we will fill the information for contacting or we will let the user fill the information in case he would like to contact us. So there we will do first class name with flexbox layout and justify to center So there we will do a dip with grid layout. On mobile screen, we will leave it with grid cools one on a medium and above. We will change it from the default value of grid columns one to grid column two. Inside, we will start with the first and second div. The first div will be on the left side and will be with some contact informations. And below, we will have a second dip, and that will be the actual form for the contact Form for filling the email. So we can edit right there, ID, form. But we will start with the first diff. For the first dif, we will add a vertical margin to auto, some padding to write to six. Inside, we will do an unordered list. And there we will do a first list item second and also third list item. Each of them will hold the icon we have there. So AI fill LinkedIn. Then AI fill Git up and AI fail Instagram. And there let's continue with the class name. Actually, what we can do is to hold out and do the class name with some width to 70. Pixels eight to audio and text to gray 300. Also, then we can style it like this. And in this list item, there will also be a dif. And in this dif, we will have a heading three with We can put the address. We can put there contact. Then a paragraph with mobile, and the paragraph with email. In case somebody don't want to fill the form and just want to use the email and contact us directly. Then this div we'll add some margin. Also, we can already sit there, but take this diff, cut it and put it below this one. Now it's better. Now we will do more magic tricks. So there into the dip, we place items to center for the list items, and actually, we can take all of them. We will add a class of flexbox layout. Now there for heading, we will add text too large, one too bold, and text to gray 200. This is what we all exactly there. But instead of 200, we will at 400, save it and see how it looks like. Now, for the Git up, if we will do the same thing as in the previous list item, we can copy this paragraph with heading or the Wal dif, actually. Put it there, and instead of contact, we'll put working hours and we can do Monday to Friday, I don't know, from 3:00 P.M. To 8:00 P.M. And on weekends, we can do Chels available on WhatsApp. For example, now for the Instagram, we can leave it as. Now we'll add the email form. So there in the div for the form or with the ID of a form. This four is kind of straightforward, we will add there some class with the maximum width of six Excel, some padding, and we'll increase the patting on a medium screen and above, something like 12. We'll add a form Inside this form, we will put an action. In this section, we'll put an endpoint, but I will do to do because after we will code this UI for the form, I will show you how to make this work with the gtformtiO page. And actually, when someone will fill this form and click on submit, you will receive an email into thisgtform dot IO, so it will be fully working. Let's add their method, post. And we will start adding their input boxes. So first, let's add a div. Let's do their margin to bottom six. Inside, I will put input, another input and the text area. For the first input, it will be of type text. Also with ID, name, then also placeholder your name. Then also class name with. Let's actually save it so we can see it and add the margin to bottom with the full. That's actually not at yet width to full. Rounded medium. Now border gray 400, some bedding Y to two, bedding left to two, bedding right to four, Let's check it. We can actually add there width to full. But yeah, we will add or we will just copy this line and put it there because now this input, it was right next to it. Now, as it's taking full width, it will be below. There we'll just add different placeholder, which will be your email. So let's put it like this with ID, email, and type also email. A, we will put there name two. Name and there name two email. Like this. In text area, we will at ID. Or let's start with the we will at ID. That will be text area, name will be text area. Columns, so defaultly we can set like 30 rows. We can set defaultly to five. So it will look like this. And we will set a placeholder write your message. And now we can do class names. So we'll use the width to fill margin to actually about the margin we don't need. Let's do rounded medium, border gray for 100 and also a border itself actually for better readability. Let's do it like this, copy it and put it also there. Nice. Now, after Border color, we will set also some padding white. Two, pdding left two, and I think that's it. Now let's check the page. That looks fine. We will need to add a button also, and maybe if we will set rows to four, it's okay. Fine. Now, below this div, but still in the form, we will add a button that will say send message, and this button will be of type submit and this button will be of type submit with class width to fill. We need to do background gradient to write from gray 400 via gray 600 to gray 800. And now we need to move the colors a bit. I think, or maybe let's make it a bit darker, 600, 800 to 900. Maybe that's too much. What about 700, 604 hundred? Let's do four. I think that's better. So now, if we will add there also some BI to three, round it to Excel. It looks better. We will also need to add text to white or rather text to grade 200 for semi bolt and text Excel. And we cannot do rounded Excel. We need to keep the rounded medium as we do for our inputs. So we'll do it like this. I think that's fine. What now else we can do Basically, that's it, and I will now show you how to make this contact form work. And for which endpoint, you will need to change it there. Let's go to this page, ap dotgtfm dot IO slash Login. Then we will sign up, click on Create there, put there some name and put there the time zone, copy this endpoint and put it there. Of course, this endpoint is not valid. You need to put there your own endpoint that you got on that page. 10. Project 1: Footer: Now we'll open an explorer. There in pages, we'll create a new file, footer.j6, and there we'll do the Footer. Let's add it to our Epi Ja six, Footer. Save it. For the footer, we will add icons first, so import FA Github, square FA Instagram. There in the main Div, we had a maximum width of 1,300 pixels, center it. We will do background gradient to write from gray 800 via gray 900 to black. Now also, we centered it so we can round it to to three Excel. Actually, let's add there some content. We will want to have only rounded borders on top, so we will use this. Then also, we will use a grid layout. And we will use great columns two, actually, on mobile phone. And on medium screen and above, we'll use grid columns to four. So we'll have four columns next to each other. We will use place items center, some pink, and text too Large. Let's start adding the unordered list. So first, unordered list. With paragraph tech, there will be some logo. Then with the paragraph tech, there we can have our name or some description. I'm a Costach developer and consultant. There we can have the icons. So let's put them into a DIV, have a Github square, have a Instagram and why I'm putting there into a DIV Because I would like to have them next to each other. And for that, I will use the Flexbox layout and flex direction row. I will add some gap, and I will also set for them text to gray 400. With this, I don't need to do any additional staling for the separate icons. And on the bottom, I will add a paragraph 2024. G join. There I will also add the styling for text gray, 400. Now, for the description there, let's add text gray, 400 also. And for the logo, we would use something like text gray 200. Also for this unordered list, I would use margin to left. I would also use space y22. So vertical spacing between all of these elements we set it two. And I think that's enough. We can now move to other unordered lists, and now we'll do just one and we will copy it two more times. So we'll end up with four columns. Unordered list. Inside, we'll do a list item with general And again, we will do the space Y do. There another list item we can do home about projects. Then for this, we will do text gray, 400 and for the general, we will do font bolt. That's the same for logo, so font bolt. Like this. Now let's take this unordered list, copy it two times. The heading should have some color, and let's use text grade 200. There we can do live or we can do Project Limo Project one, and then we will change it for Project two and three. And the last one can be contact. There can be phone email once again and we can just delete one list item. If we don't have any more content, we can put there in our footer. Now let's check how it looks like. So now, if we will check our page, we can go to top of our contact component there and there we can at some margin top. Let's do 44, some higher value. That looks better for our project page. And actually, by the way, this march into 44, let's do only for medium screen and above because on a mobile version, this shouldn't be an issue. Let's go to a portfolio there actually there to this main dith we'll at marge into bottom, also 44, save it. Now this is better. And otherwise, it's fine. So this is how the page would look like without the background that we will now add. But make it a little bit more interesting, let's say, we'll also add the grid background. So let's go to VS code. There we'll go to index dot CSS. There we will open a body tech. And inside this body tech, we will add the background. And the background looks like this. I just copied it because this is a background you can find on the Internet and just take it and we can modify it a bit. We can modify the color to ours a bit. So let's use something like this. But maybe it's too much. Now, if I will put the page there, we can set this to 50%. I changed also this 800 pixels to 500 pixels, and it will be in the middle like this. Also, now we can check the page, and it will look like this, also with this great background. We will now change this to a mobile size and check how it's looking there. So what we can do is to move this CV button a bit, then there's some p. This is fine. Huh. There we need to improve this experience section and also at some margin to contact and footer. So let's go and do it. Let's start from the bottom. So there we will set the I think it's there, margin from left, we will set from medium screen above, margin to bottom to eight, maybe. Yes, from medium, we can reset it also, I think we can set text to small. So from medium, text will be large again. Also, I think there is some bedding that should be only from medium screen and above. Actually, there should be some, but definitely smaller. So let's use six. So basically, what I would do is that I would create another div these three unordered list, put inside the DIV for this dish, I would add a grid layout with grid calls three. And now, if you'll increase the page, it of course looks terrible, but we can fix it. So at least on mobile screen, it looks better. If we will now do or do I we will now delete it from there, it will be like this, which is fine. And if we will increase it, it will look terrible. But we can fix it by deleting this margin to left And actually, yes. So what I did, I will show you, is that we will also delete this margin from bottom on medium screen and above. Now we will save it and check it. It will look like this, which is better and on a mobile screen like this. Also, what we will do is that we will at the margin to top to 12. Awesome. So now you probably didn't see it. Oh, you did. There, I added margin to top on the main diff in our footer. 11. Project 1: Final Updates: Now I will scroll up. So we need to fix this experience, and that can be simple fix because there we can just do Hyden. And on the medium screen and above, we'll do display block. Now, let's try it. So there we are on a mobile phone. Let's increase it. And on desktop, we have it there. So we will also add there some pitting. So let's do betting ten. And on medium screen and above, we will do betting zero like this. That's the responsiveness. Okay, works. Now, what else is missing? We need to go to a section there in the main dipth. So let's do putting to two on medium and above. We will reset it two. And there we will delete the Gap. We will just make this gap for medium screen and above. And on mobile phone, we will use get 12 that's too low. Let's use 16 or 20, and it works. So now we can do patting it to four, and it's better. What we can also do is that from medium screen and above, we'll use Text Excel. Otherwise, we will use textarge and now also we can add the margin top something like 12. Maybe let's do 16. And if we'll go to hero section there for the button, which is there, we can add margin left to six. And from medium screen and above, we will reset the margin to left. And that's it. Now we will try the navigation. We can open explorer there in about section. We will do ID about contact form, ID, contact, experience, ID, experience, footer. Well, we don't need ID there, hero section. We can do ID home and portfolio, we can do ID portfolio. Now we can go to Navbar. There we can see it works, but for work, it's portfolio, same there. Well, the navigation bar works, but of course, we have there some problem with the z index. So let's go to portfolio. The remove the z index from ten. Now save it. Now it works. Also, what we need to do is that we need to go to navigation bar. And there for the icon, we need to use display fixed, top zero, right, or top five, right five, index to ten. Sorry, it's five. And we can also increase the size to 40. That's better. So now we will go to contact. And we'll have it like this. What we will also do probably, we will do some bedding we'll do background white, rounded medium, bedding four, or maybe two. And that's better. So now we will open it we will go to work or experience or about, and we will be able to see it and close it. One more thing we can do to increase our UX. We can create the const, close navigation there we will do Set NaF to pulse. Now we will go to our menu navigation there, and there we can add, let's actually select everything. So hold hold There we will do On click, and we will do close navigation. Now we will save it and we will test so we will go to experience and now to about, and it's working fine. And that's it for the wall page finally. Let's check how it looks like. 12. Project 2: Intro And Setup: Act tailwind, with all of them in today's portfolio. We'll make contact form work, so we will receive emails. And of course, it will be responsive. First, make sure we have this intellisense extension installed and also this ES seven. Now we'll go to terminal. There will the new terminal, and we'll paste there our first command, and that will be this one. You can find them in a description there we will use this as a front end name. We will select react JavaScript. Now on the talent page, we'll go to get started framework guides Wet and there we already did this, so we'll use this first command. We actually maybe didn't went to our front end project that we created, so we will CD. Now we'll run the command. Now we'll run the second one that is there. Now we should go in tailwind config file and paste there this. Then we should paste the tailwind directives. So let's go to the source folder, index D CSS, pase there the directives, and there to try that our tail wend is working and connect it, we'll go to Abdo J six file and pase there the thing. Like this, we don't need logo and tweet. Also, we don't need well, basically anything now, even this constant, save it. Let's check the ADCSS. We can delete it. In the EO CSS, we will leave there and this MindGS six also. Now we will do that we will run death so NPM run def and that we'll open the server where will be our page. Now let's try this is working. So let's do for example, this and yeah, it's working. So we have Telewnd installed. And now we can start in our folder. First, we'll create there some folders. So first one will be components where we will have the sections that we will use. Then assets we have there that we will put the images, and that will be it for now. We can also install create the new terminal, and we can also actually, see the front end, and there we can actually install the react scroll and also React icons library that we will use for the smooth scrolling and also for the icons on our page. Now, I would pre create all the components that we will be creating and put them in our Edo S six, so we have this ready and we can just then code the components. So let's start. First one will be actually Navbar. Now, as we imported or install the extensions, we can use this AFC and save it. Then we will also use some skills section Also, some about section. Contact section. Then Puter And what else? So you have about contact outer. Definitely your section, right? And also we will have there some work section with our work that we did. Now in this ABG six page, we will put all these components and then we'll just code it and it will be ready. So we'll start with Navbar. It will import it, then we will continue with the hero section. After hero section, we will continue with work, probably. Then we will have there some skills. After skills, there will be about section. Contact section, and on the end, there will be a footer. So we have the 24, 67 components. Okay, that should be fine. Of course, we can reorder it in the end. It will be fine. I just now prepared it, so we can then just code. Let's go and code the first component. But before that, we should add some assets. I will edit these assets that you can find on a Git I will provide for you and also, of course, use your own pictures, but if you want to code along and use something that I used, you can of course use also this that I will give to you. I will also give you this index dot CSS file where I'm using this grid layout or grid background for my web page, also this font space grotesque and also this CSS class that we will use for most of our components to make it with this effect that will have some shadow backdrop filter with blurred background, so it will create the class effect. Then we'll just apply it as other taunt classes, and it will edit to our element or component. And this is how the grid background will look like, by the way. And you can also see there on the left side, there are all of our components that we imported in Epilod J six, and we like pre create it. And now we add a code and a content to all of them. So let's dive right into it. 13. Project 2: Navbar: What we'll do first there is that we'll also import use state because we'll be using state variable that will be changing our navigation from desktop to mobile version. Then we'll import the icons for our navigation. So we'll be importing outline close and also outline menu. Then we will be importing the link from the smooth scroll or from the react scroll library. So from react scroll. And now in our NAF bar, we can start above the return, and we'll start redefining the state variable that will be a constant and NAP with function Set Nap. There we will create a function handle math and this function will be setting the state variable NAF there. So whenever we will click the element that will have click function with this handle NAF, the NAF value will be set from true to false or other way around. Now having this state NAF, we can continue in our navigation in our main div. There we will just start with some unordered list with list items. And inside these list items, we will have the link. That we just imported from this Rax scroll library. It will be used for the Smooth scroll. Let's copy it three times, let's say, because we will have it for the homepage, home, also for about. Then for portfolio and also for contact. Then let's do some spacing there. Then after this, we will have there also the icon that will be changed whenever it's like mobile screen or whenever it's disco version. So there we'll edit and we will add there the onclick function. So on click, we will call this handle navigation. And after it's called, it will change the value of the navigation state variable. There inside, we will add the Turner operator Nap and this will execute the first position or the second position based on the value of the variable. So the first position as true position, and in case it will be true, it will execute the so in case it will be true, it will be showing the outline closed icon. We import it there. And in case it will be false, which is the default state, it will show the other icon, which is this outline menu. We will set there some size. Let's set 30. Let's close it there and set the same size. And also, we will set there some styling for this icon, but let's a it later. As I will need to change the screen, you can see there to mobile screen, and I don't want to do it now. I just want to finish now the text, and then I will start adding the classes. Okay. Last thing that we need there is the mobile navigation. So we'll create the div that will hold another unordered list. And again, that will be the same story. That will be the list items with these links. We will use in this div another turner operator because we want to show this navigation only when this onclick function happens. So only when this menu is changed to this closed icon or the value of the variable is changed from force to true. And there in the styling, we will again use the turner operator. So there we'll use the variable, question mark, and we will define the first position, and then the second or force position. First, what we need to do is that we will need to actually hide this unordered list for the desktop. For the menu and close, we will set the styling. So on the mobile screen, it will be block. And then on a medium screen and above, we will hide it. Also, we will put there some colors. So text grade 300 is fine. Then we will make it fixed. Also, we will as this is fixed, we will put the two right. Let's try ten, and also top ten, so it's not, something like this is fine. And also we'll hire the Z index. Now let's try the so it's changing. That's fine. So the turn operator works. And now what we will make is that we will code there for the second turn operator, the styling, and it will actually show the mobile navigation when we will click it. So when this will be false, we will make it fixed to left -100%. We will style the text gray 300. But let's actually make it true on our screen. So when I click it, it's getting to -100 fixed left. And when I click it again, it appears. Well, that's basically it for this mobile screen navigation, but of course, we need to style it, so it looks at least somehow good. Let's start with the text gray 300, continue with Z index 240, so we are able to see it, even though there are some other elements with other z indexes on the page, then we will make it fixed to left zero and also top zero. Let's make width to full. We can now try the background to white. Yeah, of course, so it's taking the full width and it's fixed to left and top zero. As we want it. Let's now actually set some background. So usually what I'm using for my navigations is something like this gray color. Then I will continue with ease and out that will make our navigation smoothly slide in and also some duration, so it's not instant. 500 is fine. Let's now try. Now we'll add styling to our unordered list. So yeah, it doesn't look like this. Let's put there some bedding let's increase the text size. Et's also do some margin to left. Let's also hire the index there. And what else will we do is that for these links, is that you put there all the holds, you basically hold Alt and then you will click on all these lines, and then we can write on all these lines at the same time. I will use their class name, and I will set the pedding 22, and it will do this. Okay, we also need to make this link work. What we need to do is that we need to add a destination where this link will head us. So we'll add two. And the first one, as it's a homepage, it will lead us to hero. Then also, for the smooth scroll to work, we need to add a few values. First one is spy. We also set it to true. Second one will be smooth. Course we want it to be true. And then we will set the offset values, which is 50 and also the duration, and again, I will use the 500. Then I can just copy it from there and put it there and then just use this contact portfolio because it will be the IDs I will put to my pages. So I can then just reuse it and this smooth grown navigation will work. Let's change this to different screen size. Let's close it. Change it to different screen, and this is where we will go to the desktop navigation. So now let's do there something like medium screen and above. This will be again displayed flex with background white, so I can see it. Okay, so let's put there something more or actually now you can see it because I move the window in my OBS. So yeah, we can continue. I made sure it's there with this background white, and there I will just continue with the styling. So I'm using on a medium screen and above display flex, so that will change the display hidden. And now we can continue. So we can leave there the background only for the purpose, so we will see where our navigation bar is. We can do something like orange 200. Or 100. Okay. We will use also some fixed height, so it's not this thin. Let's use something like, I don't know, 96 pixels. This fixed height we'll use on the top diff because that will hold the wall navigation bar. So we'll set it there. Also the color will be set there. And this will just keep the hidden and on medium, it will become display flex. We can set there some max width let's use 1,200 pixels. We can set the display flex and justify between. So we will have between spacing between all elements we will have in our nap bar. So I will justify between and also items center, so we will center it vertically. How our navigation bar looks like. Okay, we also need to use their MMX auto. We will also add their logo or our name, and that can be just in some H one tech, so I will use the H one, John Doe, name, and on the right side, the items. Of course, in the items, we can also use justify we can set some gap, for example, to six, or some text Excel. Maybe that's fine. And for the logo or for the name, we also set text Excel, and maybe want both. And that's fine. Now we'll do the thing that I mentioned on the beginning. We will start or we will change the background for the class effect. We import it in index CSS, and it will look like this. Also, we'll add some bedding on a horizontal line, so I will add maybe eight. Of course, I also need to change the text. So let's use text white or even better if you use something a bit darker. So text gray 200. Okay, 300 works the best, probably. And I will keep it like this. Now let's try to change the window to this, and it works. We need to change this to the same style as we have there in mobile navigation. That means we'll change it to the link with the smooth scroll like this. Yeah. And now we can really we maybe don't even need the spanning, by the way. How it looks like. Yeah, this spending is not needed. So we can delete this, you know, classes from the link list items like this and we can keep it. 14. Project 2: Hero: In here section, we'll start with all the imports. We will import the images. Then we will import also the other pictures, which will be two notebooks and one mobile, if I'm not mistaken, so we can check there, notebook left, notebook middle, and also mobile right. These pictures are named the same, so we will just copy paste this one and also we will need to import the type animation, so import type animation from react type animation. Yeah, I don't import the library, so let's open the terminal. NPMIRac type animation, install it, and that should make it work again. Yeah, it helped. Now we can go to coding of the hero section as we imported everything. So there we will open the section or the main div and again, we'll start with the elements. So we want the three pictures that will be behind all the text in our hero section. So this will have this will have some class name, also some source, and also anode. We will want it three times. Then we will have the if that will hold the heading one with our react animation text or yeah, type animation text where will be written what we are doing and so on. And under this, there will be a paragraph. That will say our name and below this div. We will have profile picture. It won't be actually below this div. It will be next to it, but it will be on the bottom of this section. So there we'll just add a div. And inside, we will again put some image like there. Of course, we have the errors, but we'll quickly fix it. So the first images will be the notebook left, then it will be the notebook middle and then it will be the mobile phone. Then we will have the the profile picture, and it's working now. We have the pictures, and we can continue. First, let's at the react type animation, actually. So there in the H one tech, we will add a span. And inside the span text, there will be a paragraph tech I'm and there will be the other text. Now a break text, and below this will be the type animation. This type animation requires some fields we need to fill. First one will be sequence. And that will be saying what we want this animation to write. First, we'll want you to write front end, developer for duration of 1,000, second one, web designer for duration of 1,000 again, and third one consultant for duration of 1,000 again. We will wrap this in Spen tax and also we will put there some speed that will be set to 50 and we will repeat this on infinite. That means it will be in an infinite loop. We will also need maybe first to style the images because then we would be able to see actually our navigation and be able to play with it. Now we cannot see it because it's actually so small that you cannot see it on the screen yet. Let's go and add to this H one, some styling. So there we will use text white. So you can see it's there. Also, well there text for L, and we'll make it responsive. So on a smaller screen and above, we'll be increasing this on a large screen, even bigger. So we'll let's use text eight XL and also font extra bolt. We'll also use there for this dip, class name of the glass, so it's wrapped like this. Horizontal padding. Let's set horizontal padding to five, so we have it a little bit more not on the corners. Now let's actually go to the images because we really need to get them to absolute position so we can starle the hero section better. There to every image, we will set position to absolute. We will set the lower z index. We will also set there some width. So let's use 400 pixels. We will set bottom to zero, and we will set some position on left. For this one, I will use -170 pixels. And in order for this to work, we also need to set position relative to the main dip. There we position relative like this. Now we can take all these position absolute classes, put it to every image. Okay. And we also let's actually go to this image and set there some width so we can see Awesome. There we'll change the positioning so we can keep this a -170 pixels. The second one, we can try something else. So let's do I don't know, 320 pixels. Yes, it will be somewhere more in the middle. And for the third one, let's use 450 pixels because we want it to be more on the right side. Okay, Let's also decrease the width to 200 pixels. So it's a bit smaller. And now to work with it, let's also start to add some styling for the main div. So we'll use their grid layout. And on a mobile screen, there will be defaults set grid coms one, but on a smaller screen and above, we'll be using grid Comms three. So we'll create the three columns. And we'll want this text, you can see there this type animation with also the paragraph that we fill, my name is John Doe, and I have five plus years experience and but development. For this vol text in this div, we will set the column span to two. So it means it will take two out of three columns. Also some horizontal padding and center it with Oh, we already have it there and center it vertically like this. And we will continue, so we will set there some gap we will set there also some max width. So let's use, again, 1,200 pixels. On medium screen and above, we will set some viewport height. So let's use 70. Now, let's center it again. It's starting finally to get in some shape, which is great. And also, we'll set there some vertical padding. Let's try eight. Okay. The mobile picture, we will need to change also the bottom position. So let's use there something like 500 pixels. It looks better. So it's behind our navigation, and we can see some of the mobile. Yeah, you can play with these values for bottom left, and maybe even with wid depends on what pictures will you put on your page and style it as you want. Of course, if you want on mobile screen to be somewhere different, you can just change it from medium, that it will be there and on the basic mobile screen that it will be somewhere on the different position, something like this. Then when you will change it, you can see how the bottom of the mobile is changing there. Let's actually continue. We can revert this because I won't be using this for now. For the image there, we will do the same thing. We will set it absolute. We will put it to bottom zero, so it will be there, but we'll also put it to right zero. So it will be in the right bottom corner. Then we can also delete the width from there. Because we will set it in the div above, and there we will set the width for the large screen and above to 750 pixels. Still too big. Let's decrease it 500 pixels. And now we'll be playing with it, but 600 pixels works. And on mobile screen, we will set this to What about 200 pixels. Maybe 300. Okay, that's too much. Let's continue with styling of this paragraph text. We cannot even see there, so we will style this with text white. Now we can see at least that something is on the bottom. We'll continue with some margin on vertical. Okay, we will definitely increase this text, but we'll be careful with it. We will start with text small or maybe even okay, we'll leave it as this, but from smaller screen, we will continue with TextLarge and on a larger screen, we can try something like text Excel even. We will use the Mx with. Hundred pixels. Mm. Okay, and when on a larger or medium at least screen, we will set the mix width to, I don't know, 600 pixels. How it looks like. It looks like a bit better. But what would I also do is that I would put the mix auto. No, it doesn't look good, so margin left four. Okay. Then I would do text gray. Okay. Of course, we will delete this also. So we'll use text gray 300. We will make this font bolt and on top there, we will need to change this one a bit. First, we will get the dirit of this break tech. Then to this we will say actually, we don't even need to spend there. Right. There we will add a class name. We'll add some march into bottom. Let's write something like four. We will add the text gray 200. Oh well, 400. Maybe even 500. Maybe even 500 isn't that bad. And most probably we will leave it like this. So we have their IMA then the type navigation, and there there is little bit of a description, and that will be for the hero section for now. So let's move to another section, and maybe on the end we'll do some final updates. Depends on the final design, how everything will look. 15. Project 2: About: We will continue with a section. So let's go there, open about. We'll do some imports there. Actually, we will do similar imports like we have there. So let's do two images, go to about, put it there. We will want middle notebook again and mobile again. So we can keep the same things. Just remove this one. What we'll do there is that we'll do the grid layout, and we'll put there four containers. And these containers will be taking a different colspan on each row. So we'll have, I don't know, three coalspans and the one container will take two and the second one. And below them, the one will take one colspan and the right 12. You will see how it looks like in a while, let's just code it and see. First, let's do the containers, so we'll open the div, copy it three more times, do some spacings there, so we improve the readability for our purpose, of course. Otherwise, we shouldn't do there any blank spaces. We will delete them later at the end. And there we will set text to white so we can see it. Also some gap between again, mix width to 1,200 pixels. Then we will center this as it's some different width that we have on our report height because there is more than 1,200 pixels. So in that case, we will center it with mix auto. Then we'll do some margin or vertical margin. We'll set this to 12. Then we'll set there the grid layout, and on mobile screen, default value will be one column and on a smaller screen and above, we can set this grid columns three. Yeah, we'll start editing some contents. So we'll actually see something also on the page, but not yet. First, let's do the dips. The first one will take the column span. Two. So it will take two columns, and it will use the class effect and also on smaller screen and above, it will have some pedding. So we'll set there pedding of 16 on smaller screen and above. Now we can see there the container. Let's do the second one. So on smaller screen and above, this one will take one colspan. Also, it will have a glass effect. Then let's go for the third one that will start from the left side. So again, will be the same as the second one, smaller screen and above, one colspan, glass effect, then the fourth one on small screen and above, we'll have column span of two. And it will be basically the same as the first one, so we can copy it. And now you will see how the layout will look like. So we have the left and right containers, and this one is taking two out of three com spans and all the way around in a bottom row. And we'll have some additional tap and it will be only for the mobile screen because we will be also hiding some of these grids on a mobile screen. This one there will be only for mobile phone, so we'll make it hidden for now and we'll get back to it later. For the first one, we can continue. So we will center it vertically. Then we will center it also. No, we don't need horizontal centering. We will just put the text to left and that will be it. Inside, we will create another div that will hold our H two, and also it will hold the paragraph this div will have some max. So I will show you why we need max width. First there, we can do some text, and I can optimize your website. And the paragraph will be Epsom for now, and you can see what's happening on the page, it's aligned to a left side, and we don't want it. So what we'll do and we cannot also center it because yeah, it's taking the fluid. So what we will do is that we'll set there a max width of 60%, and we'll have it like this. Now we can also do the styling for the heading two. That means we will do the text three Excel, font bolt, margin to bottom, and, that would be it. For the paragraph tech, we will do the text ray, I don't know, 200. We can now move to another div that will be this one, and there will be image. This image will have a source of the notebook. We will set some width on a small screen to 200 pixels, and on medium screen and above, we will set there width of 500 pixels. We also need to set there, of course, the height. But maybe we can leave it as is. Maybe we can set there the position absolute. Yeah, that would be better. Also, you will need to set there overflow hidden because it's running out of our card. Of course, take there, and it will look like this. Okay, then we can move to another diff that again hold an image, so we can just cop it. Let's take it, put it there. Mobile image, again, we will copy this overflow hidden, put it there. It will be like this. Then for the hidden one, we'll leave it for now. And for the last one, what we can do, we can just copy this we have there and paste it on its position. And that will be it. Now we can just play with a text. Maybe we can also do Mm hmm. 80%. Yes, I think I will change 60 to 80%. And then we can also add some text like this. There it will be the same Awesome. Like two rows of text are fine. I think that will be for the work section. Yes. And this gets us to this next div. We'll do is that we will hide these two pictures on a mobile screen because it doesn't look good and there is no way we can make it look good on a mobile screen. It's mostly for the desktop version. So we will make it hidden, and we will make it on medium screen and above display block. Copy there, do the same filling for this second div, so it will look like this. And now we can code this div that is only for the mobile purpose, and it will be basically connecting these two images. So we'll take this there and there There we will set on medium screen and above display hidden. Also, you'll add the position relative for the absolute position that we will add there. Overflow hidden, so it doesn't get out of our card and we also set some fixed height to the card that will be 200 pixels, and also you'll apply the class effect we have. And it will look like this. Now we'll play pictures a bit. So first, this one, we will just set there. We don't need medium screen because on medium screen and above, it's hidden. First one is there that the weight is set to 400 pixels, and then we have the 200 pixels. We actually need to set there write zero. And when we expand this page, let's see what happens. Yeah, it will get hidden, and there will be the elements we had there before. But for mobile screen, we will make a section where actually there are both of the images in one card. What I would do is that I would add there some bedding and on medium screen and above, I would reset it. Then I would take it, apply it also to the first diff, save it. And let's see now it looks better. And when we expand it, actually, let's just do patting four for both screens. And I think it's fine. Mobile screen like this and medium screen and above is like this. We have this section, and now we can move to another one, and it will be the section with our work or portfolio with our project. 16. Project 2: Portfolio: I'll go to work component. There we will need to import all the images. So again, we can take from there and we will import project one image from Assets Project one dot PNG, I hope I'm right. Yes. And then we will copy it. So it's Project two, three, four, five and six. Awesome. Now, what we'll do is that we'll make a constant with informations from this project, and then into HTMOtext we'll map this constant, so we don't need to repeat our code multiple times and we will have everything in one place. So let's put our constant project Then I will open this there. I will put there ID. That will be one. Image will be Project one. Title will be Project one and Live URL will be there, or we will put it there later. I mean, I won't put it there, but if you have some, you can put it there. Okay, now we will copy this five more times. Now change the numbers. Project 23, four, five, six, two, three, four, five, six. Now, we have the constant so we can go to our main div. And there we will first divide it even more. So there will be a first div that will be with heading one, my work. And then there will be the project mapping and inside we will have another div. So we will open the caer brackets, and there we will say that projects dot MAP project. And there we'll start to div. And inside this div, we will put an image and another div. And in this div, we will have a Spentag that will hold the project title. After this san tech, we will have another div that will actually hold the URL for the live demo. So this div will need to have an anchor tag inside, and this anchor tag will redirect the person to a live demo of the project. So this HRF would be project dot Live URL. And there, of course, will be something like f. The main div will again have max width of 1,200 pixels. We will also center it. I will use two grid coins. We'll have some gap of four between all the items. We will use the glass CSS class that we defined in index dot CSS, and also you'll say there's some petting. Now we have it there, so we can start. And there for the first day, also first we'll define the text. So there we will put column span two, and I will explain to you why because if we didn't put it there into the column spent two, it would take you can see there. You can see there is the MW thing. And if we didn't put it as column span two, it would be next to all the other cards. So we need to put it there. Now we need to starle my work, H one, so there well at text four l, some margin to bottom, and also text grade 300. Awesome. And now we can go to the cards itself. Well, the cards, first, the div that is holding, the cards will have a key. And this key will be the project ID. Then we'll add a class name, and it will be a class for everything. Then we will use this transform and transform transition. Because we want to use this Her scale one oh five, and that means when we will hover over the card with the project, it will be increasing the size inside. So it will create a nice effect when we will hover over the project. Now we also need to set the duration for how long it will be increasing the size. Then we will need to set overflow hidden, so nothing will run out of our card. Then some shadowing for the card. And let's try. So now you can see how the effect works. So it's increasing like this. What we will now add is that for an image, we will need to put a source. So the source of the image will be project dot Image. Awesome. We'll define some classes. So with the full height to full and object to cover. Great. There we continue after shadowing, and we will put there some fixed height that can be like 200 pixels. And this div that is holding the spenteg and the other dif tech will make an effect where we will how it and it will show the button to live demo. So we will need to add some opacity and so on. Let's start and make the group hover and add there an opacity 90. Let's see what happens now. Yeah, we will also need to add the group. And next to group also relative because this showing with the life button will be of position absolute, so we need to do it. Then we can go back to the stiff and we finally can set the opacity to zero first. I will add some background. Let's use again, these numbers I'm using mostly. Also, let me set the absolute. I think we will need to set there even more values to see it. So we will need to next to the opposity then we will group hover over it that increases the opposite to 90. There is the background we will use now position absolute, that is relative to this. That is also fine. We do transition opacity. And duration 300, so it's not instant. Then after this, we will need to set also the inset. And now you can see it's working. The inset zero is adjusting the positioning of the element. Okay, we can now continue with the styling of this Spen tech and of the second or of the dip inside. This one, we just set. For the Spen tag, we will just set there text to Excel, also from the bolt. How it looks. Of course, we need to set also text to white so we can even see it. Looks better. And I think that will be for the Spen tech, we will need to set the flex position there. So after the insight, let's do flex and justify center item center, how it looks like now, better. That gets us to styling of the anchor tag itself. So the div that will hold it won't have any styling. And the anchor tag itself, let's s also text to white so we can even see it. Great. There maybe we need like cooling better. Now we want to make it a sum button. So let's just do something like background white. Betting five, betting on two, margin top two. Actually, let's do the margin bottom. Let's do four. Let's do rounded Excel. And let's do also font bolt. So that will be it for the work section. And now we can move to the contact one, and then we will finish with the footer. And also, we have the skills section, but I don't think I will use it in the end. I wanted to create some styling element, but in the end, probably we can just delete it. We can also go to Abdo J six, delete it from there, from there, and that's 17. Project 2: Contact: Let's go finish with the contact and a footer. Next to react, we will need to import also the icons from library react icons AI. There we will import fall LinkedIn. Also, we'll import Fil Git up and also Instagram. Next thing what we will do is that into this main div, we will create another div that will hold Heading two, and paragraph then there will be another div that will hold the email form. And it will be also divided on two sides on left and right side. On the left side, it will hold the icons that we just imported. And on the right side, it will hold the actual form. So inside this diff on the right side, we will also have the H two that will say something like ready to get started maybe with and G. And below there will be an actual form. Inside this form, we will have two dips. First one there, second one there. Inside this dip, we will have first input. Then we will have second input, and then we will have a third input, but it won't be just will be text area, actually. And then in the next div, we will have a bottom send message. Of course, everything will have classes, but I just wanted to do some blueprint of how this will look like, and there will be the icons. But the icons, we will wrap them in Anchor tech. They will be redirecting us to the pages we will set there, so Linkedin and so on. So we will have some HRF. Also then inside there will be icon, so AI fall linked in. We will add some styling to the icon, and this will happen two more times there and there. AI fail Git up, and also AI fail Instagram. Now let's fill the class names, so we will set there a fixed width of 100 pixels. And let me actually move the page down so we can see there. Well, not yet, but we'll be able soon as we do more styling and head to do and also march them to bottom for the first two icons. For the next one, we won't need it, or I mean, for the last one. I like this. Now you can see the icons on our page there. What we also do to the disk that is holding these icons, we will set the an epsilon, it will center it vertically, but not yet now because well, it's technically centered because it's taking the full height, but it will change soon. And also, we'll set text purple to, I don't know, 800. Let's make it a bit darker and use 900. Perfect. For this div that is holding these icons and the form, we will also at Flexbox layout and justify center. Awesome. For the form itself, we will add some more styling, so we will use there some being and maybe some mix width. Mix width six Excel. Let's try. But let's do there. Of course, the max width of 1,200 pixels that we are using for all of our page. Now we need to center it. Now we will add there the class effect. We have defined Exo CSS on the start, and that will be it. For the next day we have there, we will add there some text first so we can see what we are styling, actually. Let's connect and then start working on amazing things. Now, we would really use some text color. So let's add the text gray 500. Also, of course, the text size. So this can be like Tre Excel. So merging to bottom. What else? From the boat. And maybe let's change it to five Excel and from smaller or medium screen and above. And on the base screen on the mobile screen, I would do like text three Excel. Awesome. Now for the paragraph tech, we will at also text gray, maybe 600, so it's a bit darker. But we still need to see it. So let's do 500. And text Excel. Well, that's better. Then for the div that is holding this one, I would use also, again, MMx Auto, but we need to do a max With to it because otherwise, we won't be able to center it. So let's do 600 pixels of Mx With. Awesome. Where we are at now, Okay, text center. Awesome. Now you will also use there some bedding. That's better. And what next? Next one we will style. Well, I think we will just add the content for the contact form and we will style it. So I will go there and I will start with the contact form, and I will start with this ready to get started text. So there, I will use some margin in the bottom again. I will use text Excel, so it increases the text size, text weight with one Bolt, text ray 300. Awesome. Maybe more darker one. That's better. For the form itself, we will need to have there the action that will be with the endpoint from Gt form IO. We will change this to an actual endpoint. Let's go to this page, a dogfdtiolash Login. Then we will sign up, click on Create there. Put there some name and put there the time zone, copy this endpoint. So now we also need to set method to post then in one diff below, we will set some vertical spacing between the elements to four, and also you'll set a margin to bottom to six. Now each inputs, we'll need to set type. So first one will be text, ID will be name, name will be name, and placeholder, we'll put your name with three dots. And I think we will just copy it and do the same for the other inputs. But there is email ID is the email also name is also email, and placeholder is your email address. For text area, the type is text area, there is no ID. Name is message. Initial routes are five. Placeholder is your message. And I think we can move to class names for these inputs. The first input, we all set with two full. Now we will do border gray, 400, some vertical padding, some horizontal pedding And what else? Um, I didn't add the border. I set the border gray but didn't add it. I should definitely do it. What about some border radios? Looks better. Okay? Can we basically copy it to all the other inputs? I think we can. Let's see how it looks like. That's fine. So now let's dial the button and it will be for the contact section. I will go there to this button. I will use text center. We cannot see it, so I will use some color. Let me use the color there on the button itself. So and before it, the button needs to be of type submit because it will be submitting the message. And again, it will take it full. It will be purple, I don't know, 500, maybe a darker one, 700 looks better. Then we'll use some padding x or horizontal padding to six. Of course, we need to use some xwid and Mm What about large? What about medium? Okay, that is better. Putting is to six, then we will set vertical padding to three, and we will do medium round it. Okay, maybe we can do Excel around it. That looks better. So I think that will be it for our contact section and we can move to Footer. 18. Project 2: Footer: And the Putter will be a quick job for us. So let's go there. For the Futer we don't even need to import anything. It's basically just Spen tech, and below is a paragraph tech, John Doe, jon.com. In Spen tech, we will use something like maybe J Doe, something like this. Then we will actually you can just do their break tech, do their I don't know hash tag web development 2024. Of course, now we need to style it a bit. So again, let's use the max width of 1,200 pixels. Let's use some bedding. Let's use flex box layout, so we can justify between. That means we will have even spacing between these elements and center it with MMC Auto. Now we have it there, but you cannot see it. We need to update the text color to text grave 4500. Do the same thing for the paragraph tech. 19. Project 2: Final Fixes: Page is almost done. We should make this navigation work because I think I forgot to add all the IDs to sections. So let's do it actually right now. Contact we have ID, contact. Let's copy it. Go to work. ID work, go to about ID about, go to hero. There we will add ID hero. Let's go to navigation bar and IC the issue now. We cannot use capital letters there, so H. So let's just change it to regular letters home about portfolio and contact. Save it. Now we can try it. Home section. About section. Contact section. And portfolio section is not named. Portfolio, but it's named. Work section and we are naming it as a portfolio in our navigation bar, which can be confusing most probably, but I think I will just leave it like this. We will change this to a mobile device screen. And so we need to make overflow hidden for the hero section. In our hero section there, we will add overflow hidden. And we'll also style a bit better the the hero section itself for mobile screen, I think, or my idea is that we will, for the notebook, left, set hidden, and on medium screen and above, we will set it to block. So it's better readable. You use this glass effect from medium screen and above. For our picture or profile picture, we will set the something more than 200 pixels, let's you 250 there from medium and above. And from medium and above, bottom zero, but otherwise on mobile screen, let's see what it can do. 50 maybe. No, I don't like it. 140, 190. Okay. This is better, I think. Actually, I like this. So what I will do more is that I will expand this text. So I will go there and set the higher max width. So actually, I have it there. I didn't see it. Set there 300 pixels and set there. Mm hmm. Text small and use 250 pixels. 280 pixels. And what about some padding Bedding four? Well, that would be fine only if we do the pading gaette on medium screen and above and to do the same also for this heading one, because it needs to be aligned. Okay, so this will happen on medium screen and above. And this will happen on medium screen and above and margin to bottom two or actually, let's just six and medium screen and above, we will reset it. Let's open this. We will need to go to Hero page. So let's add there the z index there. Now when we open it, it will work. And well, we can leave there the image or we can hide it also behind the numb bar because then it wouldn't like that it's broken. So let's edit also there. Now, what else we need to fix there? So we need to go to hero section and the overflow hidden. We will apply only on a mobile screen, but on medium screen and above, visible? Like this, and we need to resolve the Nagbar issue where we cannot click the link because it's behind this hero section that has the same class glass, and we need to go to this hero section. First thing that we will do is that for the glass that we are removing there, we will put it back. And for the index CSS, we will put there we will copy this glass, we will do class navigation remove this backdrop filter, save it. What will happen now is that we need to go to Navbar, change this glass to glass navigation, and this won't be blurred. So now the navigation is working. What we will do is that we will just go to Navbar as we are now, and we will also add from medium screen and above backdrop blur Excel. Now if we increase the size of the page, it will be blurred again. So we will have our issue fixed, and that will be finally for the design of the page. Now, let's test everything. So there is our page. First, let's test the navigation that works. Let's now check the mobile screen design. And this navigation wheel changed from fixed also from fixed there to absolute like this. 20. Project 3: Intro and Setup: This session we'll be creating this ReactJS and Tailwind CSS personal portfolio website. We have a grid layout in the hero section, Smooth scroun navigation, project section, that switches the project depending on which one you select, Skoll section, and a contact section with working contact form. And of course, it's fully responsive. Let's start with executing all the commands we have there on tailwincss.com. We will open a terminal, make sure we are in our folder. And to not let this command create another folder, we will go there and instant and instead of my project, we'll put there dot, Head enter, and it will create a project right in the folder where we are. So then we need to do a C project because we are already in. We will run another command for the tailwind installation with both CSS and auto prefixor. Now with another command, we will initialize the tailwind. Now we will go into configuration file. Pase there these things, and now we will go there in index CSS and paste there detail in directives. Now with NPM run Def, we will start our page on Local Host. Before we start, let's also open another terminal and there do NPM, I react icons, space, react, scroll and space react type animation. I will move it so you can see it. Now we'll install all these three libraries that we will use, and we can start with coding the navigation bar. So first, what we'll do is to create a new folder with components. Then we'll create Now bar. Then we will use the snippet, go into Abdo J six. We can do all of these, this and this. And there we will do an bar had Enter and it will get imported. So now after we will save it, it will be on our page. If you want the snippet for export, I'm using this ES seven extension, and also definitely, if you don't have yet, install the intellisense extension, and it's this one. 21. Project 3: Navbar: The navigation bar, we will start with importing their icons. AI outline, close with AI Outline menu, we will use this for navigation or for the menu buttons on mobile screen. Also, we need to use the use state there we will start with defining the state variables, navigation and set navigation. The default state will be false. Then we will create our function handle navigation And this one will be setting the navivigation to a different value. So we will call this in on click on one of our elements with these buttons. So there we can start with the main div. And we would like to have this some maximum weight. So let's use that 1,200 pixels. Also, we can set there some background. For now, I will use background red 200, so we can see where the navigation bar is. We need to de there something. Now also we would like to set there some height 024. Of course, we'll delete this background color later. Now it's just for us to see where our navigation is and we can better style it. I mix Ato, then we will use the Flexbook layout, and we will center the items with justify between and items to center. So this will center it horizontally, and this one will center it vertically. Then we will use also some bedding. Actually, we don't need bedding gigs when we set there the maximum width, that will look fine also. And we can set there some text size. The potex size maybe yes. Let's use text large for now. Let's continue with the H one that will hold our name, so I will use the RJ Do. For this one, we can style text three Excel, font to both, and let's not use margin from Math now. Basically why I did their TextLarg when I'm setting their text Excel because I don't then need to set the text large for all the other menu items that will be held in the unordered list. Let's start with an order list inside. We will do a list item. And inside this list item, we will do a link. And this link will be from the wreck scroll we installed earlier. So this link is basically a anchor tech, but it starts with the smooth scroll navigation. So instead of href, we will do there too, and there we will do about or maybe it's actually with the slash. I'm not sure now, but we will test it later and we will see. For the list item, we will do padding to five, and that's it. Now we will copy as many list items as we need. I will need for the A section, experience section, and for the contact. Then inside the link text, I will put the names of the sections. So about experience. Nice. And I will continue actually for the contact. I will need to do also class there additionally, because we would like this contact to look at some button. I will add a class name, and into this class name, I will put some bedding gigs and Bedding Y round it Excel, and for now, background pen 300. And we also need to put there Oh, flexbox layout. Nice. And on mobile navigation, as we are entailment, so the fourth it will be hidden. And on medium screen and above, it will be shown with display flex. Now we will add the dip. Inside this dip, we will do Turner operator. So based on the value of a navigation, which we have there, default is false, we will execute true position or false position. And as it is defaultly false, we will first execute this one. So it will be AI Outline menu because we want to show there the Burger navigation icon, which is like this menu. Then on True position, after we click on the menu, it will show the cross. So when we will click on it, it will again show the menu then, so it will be switching whenever user will click on this one. So Outline menu. Let's say there's some size. Let's use 20. Another 120. Now we will have it there. But of course, we don't want to have it on desktop. This should be on mobile, so into this div we will add on a mobile screen display block on medium and above, we will hide it. And let's use some hist index 40. Also, of course, to have this working, we need to add the nclick function, which we defined there. So this handle navigation, we will put there into this click. Now we will save it, and now it will work. Now we will add div and inside this div, we will basically copy this unordered list. We need to do a few updates to it. So first update is that this won't have any hidden or flags. It will have just some bedding, and we can increase text to it so. Also, what will be important is to create a class name for this dif, and in this class name, we will set again higher that index. We will also set there text to gray 300. We'll make it fixed. So now we need to assign it to let zero and top zero, and height will be full, and to it, we can set something like 60%. Let's change the view to Mable screen actually so we can see so now we can continue with adding a border. Also on border right, border right, gray 900. Then we'll add some background. So let's use some gray color. I'm using usually for background, 23, 23, 23, but there we can make it a bit darker like this. Okay. And we will continue with Ps in out and duration 500. So we have the smooth slide in after we will click on the menu icon, which is this one. But now after we are clicking on the icon, nothing is happening, and it's because we don't have there the ternary operator. So what we will do is that we will add there these curly brackets. And on the start, we will do a navigation question mark, and we will execute this first through position. So we'll just paste it there. And then we can start on another line. And there we will put a force position. So in case of force position, we will make this fix left -100%. Now we need to actually the closing is there. So now we will save it. And now after we click on it, it will work like this. So make sure you have correctly written the turner operator there also for this diff. So this is the di, and there's a turner operator. And based on the value of the navigation state variable, we are changing these icons and also showing these menu items on the mobile screen. We also miss the name or logo. So we will put it there. Text itself on both, and let's at some margin like this. Now check how it looks maybe what we also do is that we will add there putting x to four and on medium screen and above, we will reset it to zero because we just need this on a mobile screen. Now it looks better. Now we can remove the background. And I see a typo there, so it's, of course, a outline close. Now we can test it. So it works fine. Now what we will do is that for this contact, we will change this background to background primary color and also the background primary color. We will save it. And we will now go to the folders, and there we will go into Index CSS, and we will paste the index dot CSS. I will provide you on Git. What this is basically about is that I edit font from Google fonts, then I a background. Then I set there primary color. Now if you would like to just change a primary color to some different one, you will change it there and it will be applied to wall page. Then I set there some text for heading two and paragraph, and also I added there this glass effect. So whenever I will use this glass keyboard, this effect will be applied to the element where I will set it, and I will use this for a few cards on my page. Let's continue now with creating of the hero section. So there we'll create Hero J six. Make an export, go into Eb Do J six and put it there. Now we can continue inside the hero section. By the way, I also see we have issue on our page. So let's go to Navbar, and there we need to use text grade 200. Now it's better. 22. Project 3: Hero: Hero page, I did these imports. First, what you need to do is that you will take the assets in case you want to use mine from my Github, I will provide you in the description, load them, and after you have loaded, then I have there the profile picture. I have the three icons from react icons, AI library we installed earlier. Then I have their type animation, from react type animation, library we also installed, and from another react icons, I have all these icons for the JavaScript react and so on. Now, after you have these imports, we can move to the hero section itself. There we'll start in the man Div with maximum weight 1,200 pixels, similar as we did in Navbar or the same, basically. Center it. Then use a grid layout because we'll have a dar three columns next to each other, but we will still on the medium screen and above, use grid columns eight because we would like one column to take more columns. And if you don't understand what I'm saying, you will see it in a minute. Now, let's use a gap between them, some pedding and on the medium screen and above, we will reset the bedding. Also, let's set the ID for this section, so it will be ID at home, and we can continue. So first, we will do the uh Di Di. And this div will be for our name or picture and name. For this div, we'll do class name with also a grid layout, will be grid columns two. And on medium screen and above, we'll use the columns ten to five. And this is what I was talking about. Because currently we have there like eight columns, and on medium screen above, this div will take 85 of these eight columns. So you will also see it in a while if you still understand. Now what we'll add there is a image. For this image, we'll add the class name also, but first let's add the image, so profile picture. We have it there. Let me move it like this. And also some odd profile picture. So what we will set there is some width. Let's use 800 pixels, a mix, or a height auto or maybe you don't even need it, actually. Let's set it for now like this. Also for this div, let's add our glass effect. And below this image, we will add actually another diff because we would like there that this div will hold the reac type animation, our name, and our experience. So inside this div, I will do MI auto margin to left eight and flex direction column. Inside. I will put the paragraph. Hi I'm John Doe. I need to change the text colors, so let's set the text grade 200. There we can start with setting the different text size. So let's use two Excel, medium and above for Excel, then font bolt, Okay. We'll play with the sizes a bit later also. We'll do break tech. So the next element will start on another line, and we'll call that the type animation. In this type animation, we will do sequence, and in the sequence, we will use front end developer duration to 1,000 web designer. Actually, we need a commode duration to also 1,000 and consultant duration also to 1,000. Below this, we'll put a wrapper and this will be set to span. So this will use span wrap. And if you check R CSS, for span, we defined there the transparent linear gradient color. So we will set there speed, so I will set there 50, and I will put this on repeat to infinity. So it will be going in infinite loop cycle. Below, we have the closure of the paragraph tech, and even below we can start with the next one, and this will be with a five plus years experience. We'll put our class name. So on a mobile screen, we will set text Excel, medium text, Tree Excel, font semibt maybe, and text gray 400, something a bit darker than the text we have above. And even below this text, we will put a button with download CV. We will put there a styling. So we'll be merging from top, ping to and paring to Y. Text too large, font bold, text to white, actually, background primary, color, and rounded Excel. So now we have a button like this. Now update this bit. So currently this is our first card. Now below, we will continue with another two. So we will create a dip there. Inside this div, we'll put a grid layout on medium screen. We will do column span three and get up to six. So with this, we will ensure that the first dif, we'll be taking on medium screen, column span five out of this eight, and the second 13 out of this eight. Let's continue inside this div. Inside this div, we will start with another diff that will hold the icons and the text. So let's move it back there we'll do text five, Excel, bedding, and also a glass effect. And inside, we'll do a paragraph with Mitch stack. There we'll put text grade 200, text Excel, one bot, margin to bottom and text to center. And below this paragraph, we will put all the icons. But we have them nicely next to each other, we'll do another div, use the grid layout, set the grid columns to four. That means after four icons, it will go to another line and set some gap. Now inside this div, we will put the icons, and for each icon, I will use color to 500. For the first four, I will use actually 600. We can play with it a bit so the colors look nice. Now we will add another div. So below this one, you will create a div. Inside this one, we will add the Linked in icons. So fill get up. Linked in and also Instagram. We'll put the pluxbx layout, center them, and the glass effect. So now on our page, we have it there. Let's just add there also Plex gray, 600 or 500. Let's try 600, it looks better. Also we need that text size, so let's use actually seven Excel, maybe six. Let's check the page. And currently, it looks like this. Maybe we will increase the gap between them, so we will use their gap four, and that looks better. 23. Project 3: Portfolio: Now we can move to portfolio side. So there we the new file portfolio six. There we'll import it. And in portfolio, we first need to do the imports. So I'll import the use state, all the project images, arrow image, and also Git up icon. Then do not repeat our code. We will create a constant with projects. And inside, we'll be putting there the project itself. So image for the first project will be Project one, title for the First project will be Project one, description will be UI for front end development using R and links will be to site. I won't have the link and to get up. And I won't also have the link, but put there yours. Now, do this for as many projects as you would like to have there. So I will have there six projects. So it will look like this. Now we can move to coding the portfolio itself. First, I will use the state variable for setting the current project. So constant current project is set current project. Defaultly there will be zero. And then we are moving into the return, and there we'll start with the man Div. So MI six, maximum width as we are used to 1,200 pixels, center it, make a grid layout, grid go to eight, also, some gap between them, and also ID portfolio. Inside this div, we'll create another one with the selection of the project. So we can put it there, select project. And also, we will put there the arrow. So arrow with class name, absolute with 50 pixels, top to ten, and right to 12. Then that means for this main div or for this div that holds this image, we need to set the position relative, and also set index to ten, columns 1023, grid layout, we will center items, grid columns one, and that should be now. Now for the paragraph, we will set text grade 200, p two bolt and text for Excel, and minus skew Y six. I will also do the for now, but you don't need to do it. Height to I don't know, 90 vie pothet Because I want to scroll there into this section, currently, you won't be able to see it. Now you are, so now it's better. So currently, of course, this isn't right, but it will be fixed soon. Inside this dish, we will add unordered list. And let's use the classes there first. So margin to left. X box layout, flex row, and on medium screen and above, we will use Flex Colum. So the selection of the items will be on medium screen and above, below each other and on mobile screen, it will be next to each other. Then some gap between them, flex wrap. Now we will center it. On medium screen and above, you'll use some gap, some space Y to two. So we have some spacings between them. On medium screen, we will increase it to four and we will set text two Excel. You can see there. Now in this unordered list, now we will map or iterate over this constant that we created there with the project. So we'll do project dot Map, project Index, and there we can start writing the list items. So inside these list items, now we can do this project title, and this will be changing based on the project we will go through. Project 65, four, three, two, and one. Let's start with styling or actually, first, we'll do the arrow key, which will be the index for the list item. Then to onclick function, we will set an arrow function for set current project index. And we will set there also class name, which we can do actually on another line. And for this class name, we will set a cursor pointer text to gray 300. And now we actually need to do some magic there. So let's do a backslash. Also there because we need to use a Turner operator. So there we will do $1 sign with these curly brackets there we'll do current project equals to index and Turner operator. So in case this is true, we will set active project, and in case it's false, we won't set anything. Then we have the project title, and we did some typo. So where is the typo and it's not closing the deck of list item, so now it should be fine. Also, this active project, if we go to index dot CSS, we need to edit there. So the idea is that whenever we will click on the project, we should get some active class. So that active project, we will now define it. So the active project itself will have position relative, and now you'll do magic with active project before and active project after and there we will set the content to empty value, position to absolute left to zero, width 100%, height to four pixels, background color to some pink. I will find the codes later and bottom two minus six pixels. You will see it after we click on the project. And also active project after two background color, and there will be some yellow. Again, I will need to find the code and with 80% width and bottom two minus ten pixels. Now let me find the correct code values for the pink and yellow colors. So I will use these two. Now you can see on our page that it got underlined for the active project. So this is what we wanted. Now we go back to portfolio, actually accidentally closed it there, and we can continue with creating the deep project preview. So below this div, we'll start another diff with some index. Also the glass effect we have index of CSS and columns pen to five. Nice. Inside, we'll create a div. In this div we will have an image. Let's do styling for the dF. So with the film, also height to AD and for the image, we'll set sours to projects, current project dot image. Nice. We have the first one selected. We can set their all to projects current project dot title. And now on another line, we will set a class name, and there will be with to full height to full object to cover round it large and margin to bottom. Awesome. Now below this image, actually, we'll do it in another div. So below this div, we'll do another div. We will set there some bedding, can you sting six. There we do a paragraph and inside this paragraph, we will do projects actually, not dot yet, grant project dot description. And we can copy it for now, and the the styling first. So we will use text grade 200 and margin or vertical margin to four. Now, below this paragraph, we will have a di this day will have a flexbox layout and Space x24, and also it will have anchor text where we can copy these values and actually do them twice. And these anchor text will be with reference to Links dot site and Link dot Git up. So it will take the user on the site and get up that they set there. We need to add some styling for this. And also, we need to do it like this. And this will be as HRF. And there will be AI fill Git up, and there will be view site. Okay. Now we can move to styling. So let's put it on another line, class name, and we'll use padding x24, padding white to two, background slate 600, text gray 200, round it large. On her, we will change background slate to 700 and transition duration to 300. Now we can copy this, do the same thing there. Save it. Now we can check it. Of course, this reference. We are not using quotes on this one. The thing that helped us from the beginning, we need to now delete it because it's the ruining the page. So I think I will just need to move this up so we can see it properly. But before I will just open the page only. So there now, we can test it, go to another project, and it's working as expected. So I think I will still keep it somewhere over there. Now we can move to contact section. 24. Project 3: Contact: Let's create there in components, contact dot JS six, and you know what? Actually, let's create even about J six and footer.j6. We have it prepared and we can just code it. Next one, we will use the A or contact. We can use the contact and we can switch it later if we won't like it. Actually, one more thing we need to do is do the export there in about contact and Footer, we need to use the snippet. Now we can import it about and Potter now this is the complete layout for the page. So we just need to quote this contact about Footer. We can close all there and open it contact about Footer, so we have the prepared things. Let's start with contact. So in contact, we will import the AI fill linked in and AI fill get up. Okay. Nice. Then we can start with the main div and that will be with bedding X two, six, maximum weight to 1,200 pixels, Mx, auto, grid layout on medium. We will use grid Colum two and center the items. Also, we will set their ID of contact. Inside, we will do a first div. And for this div, we will create heading cream with let's connect. And actually, we can put this connect into a Spenek. That means this disk will have text grade 300, marching Y two, three, on some heading. This heading three will have text for Excel on semi bolt and march into bottom. Now below, we will do paragraph. Inside, we'll put some text. For the class name, we will do text to justify and leading to seven. So I put there some Lori Mpsum for the testing so we can see it. Now we can see if ideally text justify what will happen. The lines won't be ending at the same time there or at the same place. And with leading seven, we are decreasing the line height a bit. Now we'll do there some statistics. So let's actually do there one more div. Inside this div, we will put this one that we just created. And below, we will start with an di and inside, we will put the statistics. First, let's do the class there. So flexbox layout, marge into top, items to center, and get to seven. There we will start with divs, but we will copy them, so don't worry. We won't actually coat that much. Now. Inside this div, we will do heading three with 11 and with the Spen tech. Inside the Spent tech, we will put the plus sign. Now, into this div, we'll add some background. So let's use again this one, but a bit darker. Maybe something like this. And let's change the opacity to 40. Then we will add some bedding and round it large. You still cannot see it, but now we will because we will add that well, we'll start with mobile screen so text to Excel on medium manuba we'll use text for Excel on semi bolt and text to grade 200. Now also we will add the paragraph with projects. We can also put this into Spenteg and class name will be text excess and on medium text base like this. I'm actually not sure if we want the spend text there, maybe. Let's delete them. Okay, and also what it looks like currently. I think we need to add the text grade 200, actually. Okay. Now we will take this diff. Copt two more times. I will do that instead of 115 plus years experience and 30 pre clients. Sorry will be like this. And now you'll find the correct dif which is below this one. And there we can start with the actual form for the email. So in the form, we will put class name, of course, but even before we will put an action, there we will put later the endpoint. I will show you after we form or after we finish this form, I will show you how to add the endpoint and make this form actually working. Method will be post and now the class name. So for the class name, we will at the maximum weight of six xl, some bedding, I know medium screen and above, we will do betting 12. ID will be to form. And we can start with the first paragraph. Actually, we have there. Let's connect, so we won't do it there. So let's start with input right away. Inside this input, we can make it like this and do type of text, ID of name, placeholder of your name, name to name, and class name to margin bottom with the full, rounded medium. Let's add also border. Let's add border color to gray 400, PY to two, padding left to two, padding right to four. Okay. Now we can take this input and just change the values. So second one will be for email. Actually, the third one will be for text area. Let's change the second one now, second one, type will be email, ID will be also email, placed will be your email, name will be email. That's it. And texta will be of name. Text area. ID, the same your message. Also, we need to set their coins to 30, let's say, rows to four. We don't need the name there, and class name can stay ***. Also, what we will have there is a button. This button will be of type submit, and the class names will be with the full B Y two, three, rounded medium, text gray, 100, one semi bot. Let's use text Excel and background primary color. And send message. So maybe let's change this 2000. So now let's check how to put there working action or the endpoint for our action. So actually, when someone will fill this form, we will receive the email. Let's go to this page, dotgtfm dotiO slash Login. Then we will sign up, click on Create there, put there some name and put there the time zone, copy this endpoint, and paste it there. But 25. Project 3: About: Now let's move to about section. Then in about section, we will first import these two projects or the project images. Then we will import these icons. And then we can move there and start. First, in the main dith we the class name with maximum width to also 1,000 centred and Moto, betting to six, we'll use a grid layout. So grid comes two. Gap to eight, actually grid comes two only from medium screen and above. Place items center and ID to about. Inside, we can start with the first diff. And for this div, we will add a heading to six, and inside, we will put heading two with skills for this ring two, we will add text grade 200, text three Excel, font to bolt, and margin to bottom. Below skills, we will put a paragraph with some text I will add now. Now we can add the styling, so it will be text grade 300, margin to bottom. And below, we will add the icons. So before we add them, we'll create another di like this. Class name there will be flex from medium screen and Bob, flex wrap, get to four, and text to four Excel and justify center. Now I will add the icons, and I can move the DIF. There it will also have something. Inside, there will be heading two with front end experience. So let's set text gray 200, actually, text, Excel, form the bot and margin to bottom. Then we'll add a paragraph with class name text gray 300 and margin to bottom four. I will ddt some text. And now we can dd the pictures because we have the text. So first, we will do text on left and right there, we will di the picture. And then we will have another picture below and text to write because we are using great columns too. Let's first code this first picture, and then we'll just copy it and maybe small updates, but it will basically for just coding the first one. So we'll use the relative and group. In this day we will create another one. And really basically an empty dith because it will be just for the border for our image. So there we all do width to full, height to full, position Epsot inset minus one, background gradient to right from purple 100 to orange 900 and rounded large. And it's an empty dif, so I can put it there. Below, I will put another div and inside, I will put the image itself. For the image, we can put it there class name of rounded large and on medium screen, maximum weight to 500 pixels. Also, I will put there, of course, the source. That will be project one, old Project one. Now, of course, it looks terrible. We need to add styling to this depth. So relative position, and it's better already with four, adding to four, background to white, and background opacity to one to ten. Backdrop Buller to large and rounded large. Now it's like this. Okay. Maybe we can change the purple to 300 or maybe even 700. I guess we can play with this later. For now, what we will do is that we will copy this, paste it below instead of Project one, and there will be Project three. Uh, of course, it should be let's actually rename it Project two. Project two, like this. Now let's check how the page looks like. Okay, so there is some issue with the grid layout, so let's check it. We are using their grid columns two, which is fine. And most probably, okay, this div we should cut it and it should end there. Yep, that's correct. Now what we can do is that how this should be. This should be moved. Oh, this should be back like this. And we can do this. Now let's check the page. A bit better, but we will need to make the images a bit smaller. So we will just go on about J six and there we'll change it to the size we would like to. So 350 maybe we work. 60, 360, we can use 360, now let's check it. 26. Project 3: Footer: For footer, we won't make any crazy things. We will just import there the FA Github square and AA Instagram. Inside, we will create a maximum with 1,200 pixels, MMX Oddo flexbox layout, justify between, so we have even space between all our elements there, bedding to six, on medium, bedding to 20, text small, on medium, text large. And margin from top to 12. Inside, we will do a dif. This will be on the left side and a paragraph that will be on the right side. We can do there on the right side, something like this. Text gray 400 and on the left side, we will do space y24 and put the heading green with our name and put their DIF with the FA Git up square and with the A Instagram. For this dip, we will need to do a flex books layout like row so they are next to each other. Some gap, text gray, 400 and text for Excel. For this heading tree we will do text to Excel text ray 200, funk semi volt. 27. Project 3: Final Fixes: Check how the page looks like. Now what we can do is that probably it would be better if we will go on there into the Ablogis and switch the about section with the contact section. Now let's check it. For about section, I would put the margin to to 24 maybe. Okay. And for contact, I would do the same 24. Now I tried and project hovering is not working. So what we need to do is that we will go to there. And we will need to add blur, capacity 25 group how to capacity 100, of course, transition and duration, 300. Now we can copy this. Put it right there. Save it. Now if we will test it, you can see that it's working now. And another thing is to go to a navigation bar. There we need to change this. So this first will be portfolio, then experience, then contact. We will delete these slashes. So first one will be two portfolio, then the bot, then the contact, and similar, it will be there. Portfolio, experience, contact, and there it will be portfolio, their experience, and their contact. Save it. Now let's test it, and it works, but it's not smooth scroll yet because we need to add few more attributes. There, after a link, we will do smooth true offset to 50 and duration to 500. Now we will copy it and put it to all the links. Like this. Now we will save it. We will go back to page, and it will be working. There is not experience, of course, it's portfolio and about. So there I will put about. Now it will be working. What we would like to do is that this would get closed after we click on it. We can fix it easily by going there, creating another function, close menu. There we will use set knife to force. And for these menu items, if we will at on click function to close menu, we'll put it to all the other items. Save it. Now we can test it. So for the arrow, we will go to portfolio Gasix. We'll do this from medium screen, and we'll set the right to, I don't know, five. Let's try. Maybe two or maybe even zero. Zero will work there. So this is how we fix the arrow. We need to fix the front end developer. So what we do there is that we will decrease the size on mobile screen to just Excel, and we can also do the break text. So if we will put it like this, we will get this output. Now to fix this, we need to go into about J six, and there we will delete the flex layout from medium screen and above. That should be fine. Then we have two pictures below each other, so it would be nice to divide them with this front end experience. Let's try to do it. In order to fix this for this first relative group, we will do order two and on medium squeen and above, order one. And below there, we will do order one and on medium squeen and above, order two. In portfolio to G six, we will set the Gita Bacon to text to Excel. Now if we will go into the about section, or this is actually a contact section, for the statistics, we should use a different color, or maybe delete opacity. I will change it to this one. Now I will paste it to other statistics and delete opacity also there, save it and it will look like this. The last thing I would do is to add some scale effect to the hovering on these icons. So let's go there, and also we need to add them to Anchor tech with HRF to the desired link. We will put in the icon, and we will adapt the class hover on scale 110, transition transform, duration 300. Let's test it. Now let's edit for all the icons. I will copy paste this two more times. Then cut the LinkedIn, put it there, cut the Instagram, put it there, save it should be it for the page. Let's check the final layout. So the smooth scroll is working. The eo type animation, icons projects are being switched. There we have the about section or skills section, and there we have the contact form. 28. Project 4: Intro and Setup : Session, we'll be creating this website with Rick and tail end. We have their project section that is switching them based on the button user select. I will also help you create a picture like I have, and we also add some shining effects. First, let's open a terminal. Then we'll run the command from the tail end page for creating the ID Then we will install the tailwind, both CSS and auto prefixor then we will initialize the tailwind. We will paste the content into the tailwind config file. There we will paste the tailwind directives into Index Dot CSS. We will delete the Epidot CSS we will paste this into the api J six and we will NPM run deep to open the page. Basically, we just now run the commands that are on the tail end page. We can check our page and if the text is underlined, it's working. Let's create a new folder for our components. Inside, we can start with the Navbar component. There we will use the snippet, use the Export, and put it into app Jasix. So there we will do an empty fragment Inside, we will do the Now bar. Now we will import it, and it will be shown on our page. And before going there, we will set the background and font for our page. So there we will import this font that you can find on the Git in the description with the handy files. Now, if we will open body tech there, inside, we will define the font family space, grotesque sanserif. We also put there the background. So background, we will use linear gradient, put there some degrees. But in the end, it's basically a gray background. So we put there some color. Now let's find the proper one, so I will set it. And now we would also define background size to cover, and background repeat to none. One more CSS we use in this file. Otherwise, we will use everything in the tailwind is this glass and this shiny effect. You can also find them in the handy files I will provide to you. Basically, glass is using this background with this backdrop filter blur. Also it's setting border radius to the element where it's applied. It also has some border and it has some box shadow. For the shine effect, it's using position absolute, so we need some element with position relative to stylet better. Then it's using the full radius. So with the 50%, it's like a circle, then it's using a low z index and also it has some background set. We will use this blueish color. Now to have a nice styling of our text, we will set the H two, and we will apply to all of our H two, text l, and on medium screen, we will apply text for Excel. Then for the paragraph text, we will apply text Excel, tracking type, and leading relaxed. That should be for the CSS. Now let's jump to Navbar and start coding it. 29. Project 4: Navbar: First, we will need to install two libraries, so we will do NPM, I react icons, and also react scroll. We will be also using us state, so there we will use state. There we will do import, AI outline menu, and AI outline close. And also, we will be importing the link from react scroll for the Smooth scroll. First, we will define the state variable, so const No, set NF, and use state default value will be false. Below, we will do total navigation function. That will basically set the state variable to the value. We will use this in Encliq function on one of the elements, and also we will use a function close navigation. And this will be setting navigation to falls. So this specifically we will be using on the mobile navigation. Whenever we will click on mobile navigation on the link, it will close the navigation for us. Let's first add some content and then we will style it. So there we will want to add Anchor tech with our name, so J Doe. You can add also logo. Then you would like to unord list. There we will later add also list items. There we would like to add a div with the onclick function that will be triggering the navigation, so Togo Map. And then below, we would like to add another div, and this div will be with the mobile navigation. So there in this div will be unordered list, and inside will be a list item with actually the link Awesome. Same case will be there. Now we have the skeleton, so we can start styling it. Actually, we will add the first link, which will be about same here, and let's also add the icon so we can style it better. There, we use the ternary operator. So based on the value of the navigation variable, it will execute the true position, which will be AI outline close or if it's false, which is the default value, it will be executing the second one, the false position, AI Outline menu, whoops, like this. I will create a Burger navigation. There also let's set some default size. So let's use Tirty and same size will be for there. Now let's save it. On our page, you can already see the items and the navigation. Now if we go back, we can start styling so the main div will have a class name with. First, we will use flex. Then we will increase the text size. We will justify between to make space between all the elements. We will use text gray 200, so we can actually see them. Now it's better. We will place items to center to center them vertically. Then we will do some Horizontal padding. Let's use six. Actually, we also set a max width. I will be using for this page 1,300 pixels, and let's center it with MMX Auto. We can also increase the height, height to 24. And if you are not sure how your navigation is doing, basically, you can set background to white to check it every time. So I'm happy with this. I will now remove it. That's the main diff. For the logo, I can set there some HRF. We can use basically the homepage or whatever you want. But for now, I will use this empty. For the unordered list, we will set the class name with hidden on the mobile phone because actually on mobile phone, we will be showing this div with these menu items. There on medium screen and above, we will again show it with display flex. We will use some gap there between the items. We will increase the Z index, and we will use cursor pointer. So when we will hover over the items, we will have different cursor. For the list items, we will use a class name with relative and group because we will be using there some effect on Hober. Now, we can go to Link. For the link, we need to set where it will head us. So the first one will be two about section. Also, we will set smooth to three, so the smooth scroll is activated, then the offset to 50, and then the duration for the smooth scroll, which will be 500. I usually use this value. Then we will below this link set a span, and what this span will do is a small hober animation that we will use. So just an empty span, there we'll do class name, and we will start with absolute. This is why the disposition relative is important because otherwise, it won't be underlining this about item. So after absolute, we'll use bottom zero, left zero, width to full height one, background sky 600 we can use. Then we'll use transform scale horizontal zero and group however, two, scale horizontal 100. We can continue on another line. There we will use the transition, transform. Also, we will set some duration and ease in out. Now let's save it and let's try if it's working. And it's working, which is fine. Now what we'll do is that we will first copy this link and we will put it there for the mobile. Then we will copy this wall is tem, and we will paste it there and there. We'll be using a section, portfolio section, and contact section. So we can change this to portfolio and contact. What we'll do there is that we will copy for the distal version, the wall is tem, as you can see there. We can make some more spacings there, so you want lost to code. Copy it second time and third time. And also, you have the about section, portfolio section, and contact section. There this will be heading us to contact and to portfolio, and we cannot forget on adding the IDs to the actual sections, so this will work. Now let's continue there to the Berger navigation. So for this day, we'll add a class name with medium screen and above hidden, and we'll increase the index to 30. Now we will go to the DIV and there first, we can for the unordered list, set the class name with font semi bolt, text for Excel, space Y to eight. So the spacing between all these list items will be set to eight and margin from top to 24. You will see y right now because we will be using there for this DIF that is holding this unordered list, another ternary operator there. And basically, Again, same case as before. Based on the value of the NAF, it will be executing disposition or disposition. So first, like disposition, when we will open the mobile navigation, we will make this text center, set index to 20, fixed height full width full, left zero and top zero and some background. Usually, I'm using this gray 2020, 23 or 23, 23, 23, yeah, right? And when it's false, I'm using fixed position and left minus -100%. Save it. Now we can test it. So when I will open it now, we'll have it like this. And we need their own click function. When we will click on the items, it should get closed. So there we will hold hold, and we will do on click Close Navigation. Now it's working. And also for the disc versions working. 30. Project 4: Hero: Great than your file, hero.j6. Get the export there, go tap JSix, put there the hero, can style it, save it. Now we can go and do the hero section. First, we will install the library with react type animation, so NPMIRacttype animation. Now we will import the profile picture, so profile picture from. And actually, we need to edit the assets now. You can find in handy files on a Git. So I edit it just right now, and there I will do assets profile picture dot PNG. Save it and we argued. Now I will do another import with the type animation. Awesome. This hero page will have a main div, then an ordered div that will hold a text and then an image with the profile picture. But I will edit a bit later. Let's start with the styling of the main div. So there we'll be using grid layout. On Mobile screen, it will be defaultly set to grid columns one on medium screen and above, we will set there grid columns two. We'll place items to center. We will set a max width of this hero section to 1,250 pixels. We will center it. In case again, you don't know where you are, you can set background white. But I need to add some content there in case to see. Then some margin to bottom. For another section from medium, we will increase it. So we have some spacing there, and that will be it for now. Also, we can maybe at some margin to top. Let's use 14. That's better. For the main div, we will set a maximum weight of 800 pixels. Inside we will put a paragraph and below the paragraph, we will put heading two. And inside the paragraph, we will put a text. A, now we will break it, so it will start on another line. And there we will put a spenteg actually for us to be able to style this Jon Do then again, we will put a break tag, and there we will put a type animation. We can close it like this. And inside this type animation, we will do a sequence that will be basically developer for this time. Duration will be 1,000, web designer, duration also 1,000 and consultant, duration also 1,000. Then we will set there a speed, which will be 50, then a repeat, which will be infinity. And then like this. And then a class name, which will be font bold and italic. Save it. Now it failed. And it failed because of the infinity, we need to have I. Yes, that's it. Now, what else? There we at the text with five plus years of experience. And now we can remove the background white. And we can start styling it so we can actually see the text. So for the paragraph tech, we use the text gray 200 on medium and above. It will be sized with six Excel on a screen or mobile screen, it will be text three Excel and it will have tracking tight. So the letters are closer. Looks like this on our page now. Let's continue. The span tag, let's leave it as is now, but for later, we can do something like text blue 200, something like this. But for now, let's leave it empty. There we did the styling. For this, we already don't forget for H two we already did the styling in index of CSS there. But we will also add there some color text gray 300 maybe. Okay. And now we'll put there the image. So that will be pretty easy. There we will do the source with the profile picture, and class name will be width to 500 pixels. I think let's do this from medium screen. On mobile, actually, I'm usually using something like width to 300 pixels. By the way, the image is created in canva.com. There you have the picture. There you have this element, and you set the color there. Then you play with the position and you put the picture inside. Then you need to download it as a transparent image and, of course, cut the corners. Now, what we will also add are the buttons. So right below this H two, still in this div we will do New Div. And this new div will hold button one and the button two. The Button one will be like download CV, and the button two will be like view W now what we will do for these buttons is that they will be next to each other. So let's set it by flex box layout and using Flex Row. Then we will set some gap between them, margin to bottom on medium screen and above. Let's reset this margin. It's basically for mobile screen because then the image was right below the buttons and it didn't look good. Now, let's styling for the buttons. So for the first one, I will start with setting the Zen index, then the cursor pointer, then also font bolt, text grade 200, also with two half, then margin from top. Then I would use also bedding two. And now we will start with the colors. So let's start on another line, and I will set the background gradient to right from some color. I will set in a minute via some color. To some color. So like this, we will get there three colors gradient, and we will make this rounded Excel. Now what I can do is I can start class there, and I can set there also that index to ten, Crouser to pointer, point to bolt, text to grade 200 with 12. Margin from top to six, wedding to two, and I will say there a border because this will be outlined and not filled with the color. So border and border gray 400, and I will also use rounded Excel. I can put it also on another line so you can see all the code. Now I'll save it. I have there two buttons on my page, but I will be now adding the color. So let me get the codes from the color I want to use there. I will be using this color, and now we will add the hover effect for the buttons. So let's start on the top. I will add the transform, transition transform, then Her scale to one oh five. It will increase it, and also on Hover, there will be some shadow. We can now copy this, put it to another button. We have there. Save it. Let's try it. 31. Project 4: About: Let's now go and create there about section. So about J six. We can import it. Now put it there. First there, we need to import the images, so import project. One from the assets and I will actually do it off video, and also we'll import all of these icons from the library we installed react icons DI, and there we'll be using JavaScript and so on. We will start with styling de Mandiv there. So we will set as usually next week to 1,300 pixels, center it, some padding, then a grid layout on medium screen and above, grid columns two, some gap, place items to center, and also we will put their ID, which is about for our navigation. Inside, we will start with the cards. So we will have on this page seven cards the real shown in the grid layout. But on desktop version, there will be only six cards. On mobile, we will have additional one card to have some better syling element there. So let's start with it, actually. Class name that will be hidden on the medium screen and above. But actually, we'll do this hidden later so we can see it now. Let's use the background white background oppositiutn backdrop. Blurred large, rounded, large, and also bedding to six. Now into this diff inside, we will put actually the icons. So DI HTML five, it there with their class name, and there we can set the color. So for this one, I will set the color of orange, 600. And now I will do it for all the icons I want from there. So I will actually do it of video. Now you can see it. I have it there. So I can actually add more classes there. Flexbox layout, flex rep, cap four, text for Excel, and Justify Center. Now I'll save it. I have it like this. And let's actually check how it would look on the mobile, so I will do it like this. Now we can see it will look like this. Fine. Now we can hide it as we want it. So there we will do a hidden from medium screen and above because it will be only on mobile phone for the styling purpose. Let's actually now start edding the disks we will have on desktop also to the first one will be for the image. So there is the new div. There we add a medium screen above to hiddon and for the image, first, we'll put there relative because we'll be using an absolute position inside and we will group it. And don't worry, we will use these elements, so we'll code it once, and then we will just copy paste it. There we'll create a div and this will be empty diff. It will be just for styling. So we'll have a width and height to fell. We'll have a position absolute, so there we have the position relative to it. We will do inset minus one. We'll do background gradient to right, and we will set this from teal 100 color to teal 900 color. We'll do round it large. We can start on an underline now, and we'll do blur, o plasity to 25 group over, we will do oplasity to 100 and transition and the duration to 300. Now, let's save inside, we will put another div that will actually hold the image. So we can put there the source of the image that will be project one. We can also there. So let's put there Project one and a class name, which will be rounded large and on medium screen and above, we will say there mix with 500 pixels. Now we can scroll down. We have the dimage. So it's working like this. What we will add there also is that into this day there is holding the image, we will put the relative position with the full, bedding to four, background to white, background to opacity, ten, and backdrop blurred to large width, rounded, large. We save it, and we will have it like this. It's actually scroll will be down. Now if we continue below the div and we will add another div that will be basically the skills section. You can put the class name with heading to six. Inside this diff we'll put heading two with skills. So styling there. So text grade 200, text three, Excel and pond bolt and margin to bottom. Below the skies, we will put a paragraph with text grade 300, margin to bottom four. And now, inside the actually what did I do? We need to cut it, put it in class. Inside this paragraph, we will put down some text. So I will put it there. I will write it off video, and there we have it. Now we have it there, so below, we can put some icons. So I will do another div. For this div, we will do class with medium and above flex, flex to wrap, get up to four, text for Excel, justify center, and hidden on mobile screen. Now we can take some icons we have there. Copy paste it there. We can style it like this. Save it. Now what we want there. HTML CSS, good strap gel script react. Note, we can I think this is fine. Now what we will do is that, actually, what else do we want to do there? I think nothing. I think this can be it. We can play with the margins later if we want for the styling, but for now, it's good. So I think we can continue. Basically, what we would like is that we would like to copy this wall section and put it below, and then we will be able to see it on the left side below the picture. So then we would like to take the picture there and put it again below. So it will get on the right side, and then we'll repeat it. So we will take this picture, put it again there. It will get on the left side. And with taking this text, it will get again on the right side. Now we can just update the text and the images. So the first one is Project one, two, and three. So the first one is Project one, second one is Project two. Third one actually there. Project two. And third one is Project three. Like this. Now we will update text. So for the first one, we have the skills. For the second one, I will update text now like this and the third text, I will also update now like this. Now we can check how it looks like. So of course we can play with the icons, text and images for our projects, but it's ho like this. And later we will add even the shining effect below. One thing we should fix are the icons. So for the last one, I would use the Actually, let's copy this one or let's do it. Even. So there we are saying about the ftc. So I would put there note. Then we can do Mongoi B. Then we can do rea and you get up. Then let's add some colors. So let's copy paste this. And I would put there green. We can leave there also green, blue, gray like this. Then I would go to these icons for front end. So basically there, we can use this, this, this bootstrap Ja script. Let's delete the note. I canon let's put it like this. 32. Project 4: Portfolio: Copy these imports, open explorer folder, and components, click on you, do a portfolio.j6 component, do an explorer there, put it in Eb do JSix. There we can paste the projects. So we'll be using there actually six of them, and I will change them a bit later. We'll be also using the Gita icon, so AI fill Gita. We'll be also using the use state. From react, and now I can change the projects and we can start. So first, what we'll do is there we will create a constant with projects. Do not write a repetitive code, we will save it into this constant, and from there, we'll be mapping over it and using the image Title description UI for front end development using React. Also link which is site and G up and there below, we can just copy paste this. I will use six projects, so one, two, three, four, five, six, we can change the values to images. So project six, five, and so on. I will now do it for everything like this. You can see there. And we can move to the portfolio. First, we'll do the constant current project, two set current project. So we'll do a state variable there, and default value will be zero. Then there we can start writing in return. We can set the styling for the main Div, which will be again with a relative class because we'll be using some absolutes there for the shining effect later, maximum width there will be 800 pixels. We will center it. So padding then let's do some vertical margin there on medium screen and above. Let's use 20. Flexboks layout, flex direction, ColumO medium screen and above, flex direction row. And ID will be portfolio. Did we made ID on about? Yes. So now we can start writing there into the main div of our portfolio component. We will have there basically a div with the project information and an unordered list. That will be holding the options, and we'll be selecting the projects and it will be changing on our site. So let's start for the project, and we will have their background white or we don't even maybe need it. We will use the glass effect that we defined there in index to CSS. So we'll apply all of this to our card for the glass effect, or after the glass effect, we'll be opening with the full, border to two, and maximum weight to 600 pixels. Now we can see there on our page. So below, we will put a div, and this div will be with an image. And that image will have a variable there instead of the like Project one, source, for example. But for now for styling it, I will use their source of Project one. Then it will have some old also. So there for now I can put Project one and also some class name width to full, height to full, object to cover, round it too large and margin to bottom. Awesome. This div, let's say that also with full and height to 80. So we'll set some height for the image. And below this div, we will set a paragraph, and this paragraph will be some description, and we will make this variable later. Class name will be text gray 200 and march into or vertical margin into four. Then below this, we'll create a div. And this div will be holding the anchor text for the Git up and for the link to the page. So the first one will be view side, and the second one will be like AI fail Git up. Nice. Let's use the flexbox layout and vertical space to four. Then for the first anchor tech, the HRF, we will set for now this, but it will be variable. Then we will set our class name with some bedding horizontal. We'll make this a button. So we'll do this, and we will set the background, you will be able to see how it looks. Actually, for the site, we will use background slate 600 text gray, 200 rounded large. Her background slate 700, Then the transition and duration 300. We will save it. Now we can see it already on the page. We'll do the same thing almost for the get up. So big to four, y to two, background to gray 800, text to gray 200, text to Excel, round it large.Oher we will set background gray 600 and some transition and duration to 300. Now we have it also for the Git. Let's check it. Okay. Now, there will also the HRF. For now, we will leave it with the hastek only, and we can continue. And we can continue to this unordered list. There we'll set some margin to left. Flexbox layout, flex row on a mobile screen, and on medium screen above, we'll do flex Colum some gap, flex rep, so it's wrapped on the mobile screen, justify center, so it's centered horizontally, margin to top, and also on medium screen, we'll change the gap to one. On mobile screen, the gap will be six. This unordered list, first, what we'll need to do there before the list items is that we need to do projects map. So we'll map over the constant we created there on the top over this one. We'll do project map, project, index, and there we'll open it, and inside, we will put the actual list item. Inside the list item there, we'll put a key, which will be the index. We'll put there the click, which will be like set current project index. And also after this one and before ending of the tech, we will put a class name. Inside the class name, we'll actually don't start with backslash, but we'd like this and now we'll do backslash. Inside, we can start with cursor pointer, put it to another line. Text gray, 300, background, slate 700, rounded large, bedding, then a mix weight of 100 pixels on Her we will change the background to slate 800, and we'll do transition and duration to 300. I need to scroll so you can see what is important now, I will make this on another line is that we won't be ending there. We'll do $1 sign and curly brackets. Inside, we will say that current project equals index, and there, in case it's selected, we all set background slate to 900 and in case we won't set anything. So this is another turn operator we will use there with this question mark. So what we are saying there is that when this set current project will be selected, we will have the background slate, a dark color. So now let's see how it actually works. We will need to just put there the project, the title. Now the magic happened, so we can go on our page and test it. On our page, you can see it's changing. On our page, you can see that it's actually working, but it's not changing the images because on the images, we didn't put a variable, but we put there the hard coded image. So let's fix it. There we will need to scroll up. And so you'll start there image source. There we will do projects. Current project dot Image. Now we can basically copy this and put it all. But instead of image, we will put a title. Now we can copy it also there. But instead of image, we will put their description. And now let's go to Anchor text and to HFF HRF, second HRF. And there we will put the links dot sit and links dot GitA. Now, let's save it. Let's test it. So as you can see, it's changing images, and it will be also using the site and the git up you specified there in the constant. So it will be using this site and this giup for the like project where you set it. 33. Project 4: Contact: We can continue to contact form, there we will create a new component, contact the J six. Add it to Abo J six. And we will do an import there, so we will import AI fail LinkedIn and AI fail Git up. Awesome. There we can start with the man Div. So first, we'll do pink. We will do maximum weight of, let's use 1,000 pixels, and mix codo, and set there also an ID of contact. Let's actually continue with more classes there. So we will set that glass effect that we edit in an index that CSS there. Then we will set a grid layout on medium screen and above. We will use grid column two, place items center. So What else? Actually Hmm. Actually, what we will do is that we'll use another div or we want. Actually, let's continue with coding the contact form and then later we'll update it with the UI. So I will our first div. In this div, we will do unordered list. Inside the unordered list, we will do list item. First will be AI fail LinkedIn. Second will be AI fail Get up. For the first list item, there we will set a class name. We can already see them there, but they are too small. So let's continue now there in this unordered list. Let's actually set MI to Auto. So vertical margin to Auto, padding to write to six because we will have their on the right contact form. There for this list item, we will set a flexbox layout. And for this LinkedIn we will set a class named width 70 pixels. Also had to do text grade 300. Now, what we also do is that we will basically we can actually copy this, put it there, and put there the AI get up. Now, let's make some spacing between and let's continue. So there in this list item, let's actually make it like this. What also will be there is a disk with heading three, which will be contact. And with paragraph, that will be mobile, something, and another one, which will be email, something. Now we can hold out. There we can do class name with text gray to 400. And then contact, we can do text Large, font, bolt, and text gray 200. Let's check the page. It's looking better. But of course, we still miss a lot there. So actually, let's do the styling there. Let's do there something similar, we can maybe also even cop it as Waldif. But what we miss there is some margin five. Now, let's cop it, put it there. In the second one, we can do working hours. We can do there Monday to Friday and Saturday to Sunday or weekend or whatever you want, maybe you can just live there Monday to Friday because we won't work on the weekend, right? So we can do that. I don't know. 10:00 A.M. To 5:00 P.M. And there from the styling point of view, we have it currently like this. So I think it will change a bit after we will create a form, and later we can update it. So what we need to do is that under or below this unordered list, we will create a div and that will be the div with the email contact form. First, to have the grill lay out let's actually delete this div. Save now we should have two columns. So if I save this text, it should be on the right side, and it is there, so it's working. Now, for this day, Inside, we will start with the form, or we can actually do the form instead of the world div so we don't even need to use the DIF. So we'll start with the class name, which will be maximum width. Let's actually use six Excel, some padding on medium screen, we will increase the pending even more. ID will be form. Now we'll save it. Let's put there some content so we can check it on the page. It's there. Inside the form, we will put the inputs. So there will be a first input, then there will be a second input. Then there will be a text area for the text or for the message, and then we will have the button for the send message. Nice. Let's actually do it like this. And like this. And let's start. So for the input, the type of the first one will be text, ID will be name, placeholder will be your name. Name will be name, and the class name will be margin bottom to two, width to full, rounded to medium, then some border. Well dorsal border colors of border grade 400, PI two, two, bedding left two, two also, and bedding right to four Okay. Well, it's pretty similar to the second one, so let's do it. But there instead of type text, it will be type email ID, email, place holder your email, and name will be email. This will be the same. For the text area, we can, like, copy the fields. Type will be text area, ID will be text area, then columns. Default 30 rows to four. Placeholder, your message. Like this, your message. Type. Actually, for text area, there is not a type. There is a name. So let's use it like this. And that is fine. Now let's go for the button. For the button, it will be type. Submit with class name to width to four, color we will set in a minute. Bedding white to three, round it to medium, text to gray 200 from semi bold and text to Excel. Now, let's go to hero section. Let's go to this button. Let's actually take this gradient color. Copy, go back to contact. We can start there on the new line, put there the gradient, save it. Well, and that's it. We have the contact section. I see issue there. The It's not below, so we miss there some We miss there something on the page, as you can see. Actually, we don't, it's just a long line. I didn't see it correctly. So yeah, that's for a contact section. Actually, one more thing. I guess the most important one in the form, we need to add also method that will be post, and the most important thing we need to read there to have it actually fully working, we need to add an action, and into this section, we need to add an endpoint, and the endpoint, you will add, like I will show you now. Let's go to this page, a dotgtfm dot IO slash Login. Then we will sign up, click on Create there, put there some name and put there the time zone, copy this endpoint. And then you will paste the endpoint there. Now let's test it, and it's working. So we now receive the email into gettformiO. 34. Project 4: Footer: Now let's do the footer, so the components we'll create a new component footer J six, like this, put it into the app. Let's import. Now let's go there. That will be pretty quick. First, we will import the FA Github, square and FA Instagram like this. Nice. Inside, we will put the D for a left side, and also for the right side. So we will use a relayout there. Let's at maximum weight to 1,300 pixels. Let's center it. Let's do flexbox layout there. Justify between ftting to six on medium ftding to 20. Text to small is fine on medium, text to Excel is also fine. Or let's reduce text too large and marching from top to 12. Now let's jump to the first div on the right, then on the Now let's jump to the first div on the left, then on this one to the right. Inside or inside the diff on the left side, we will have a heading three with J Doe. Can do it like this. And the div that will hold the anchor tag. That will hold the FA Github square, and below we'll hold the FA Instagram. Now let's do the styling, there we will do space Y four. We have some spacing between the elements between the H three and this DIF. For the H three, we will use text two Excel. We can now scroll the page so we can see it. Of course, text grade 200, so we really can see it better. Want to bolt or semi bolt, maybe. Mm hmm. Then to this div, I would put the flexbox layout, flex row, so the icons are next to each other. So gap, text gray 400 and text for Excel because we can actually see the icons at least. Then for the other div on the right side, we actually maybe don't even need to dip there. Let's put a paragraph there with Dak at 24 J Doe. And let's put there text gray 400. Let's see the page. This is how our footer will look like. And I think that's it. So now we should have our page done. What we are missing is the shining effect we'll do right now. 35. Project 4: Shinny Effect: We will need to create there a new component and we will call it shiny effect with Jasix. We won't be now putting it anywhere. We'll do it just there. So inside in the return there, actually the dip will be empty. Class name will be the shining effect, and this shining effect is not a tailwind class. It's the thing. Let's do actually close others is the one we edit there. You can find it on Git up. I will provide you with handy files. So we'll apply there and also we will put the position styles. And we'll define these position styles there. So there we'll be constant with position styles, and we'll set the W width, height, and the index two minus one. We will need some input parameters. So inside, we'll put the left, right, top and size to 500. Also, what we will do there is a condition. So when we will be defining this shiny effect, we don't need to define left or right side every time. For this occasion, we'll do the left undefined. Then the position styles that left will be and we need to use backslash left pixels. Basically, now we can copy it and do the same thing for a right side. Right is undefined, so we won't be defining it after calling this component. We will set position styles right to right pixels, which can be zero. Then for the top, we will be using the same as there, so we can copy it, put it there, there and there. But the top value will be top. The weight value will be size and height will be also size. We set there. Now we can go and try to use it. So let's scroll the page up. Let's now go to hero section, make sure it's saved. On hero section, somewhere between the div and the image, we will do a shining effect. So shiny effect. Now it enters, so make sure it's imported there for every page where you want to use it. And there we need to define the left. Let's use, I don't know 100. Top 200 and size, something like 1,600. Let's say that now you can see the shine effect is on our page. But what is also happening on our page is that we got this vertical scroll where you can scroll to the left and right. And we need to fix this by actually putting these shine effects into a div were really setting overflow hidden. So let's create a div And there we'll put an absolute position inside, zero overflow hidden on the mobile screen. On a medium screen above, we'll do overflow visible. Inside, we'll put a shining effect. Oh, actually, got it. Put it there. And we'll put it there also a second time because we want more shining effects, of course. The first one, we'll put in another div. So we'll put it like this. And in the div for the first one, we'll actually hide it on the mobile screen, do not make any mess there. So we'll do hidden and medium block. By the way, on the mobile screen, this shining *** isn't that much visible. So in the end, you can just hide it and put it to block on medium screen above because there it's visible pretty much. But on the mobile screen, all the screen iscked stuffed with all the elements and all the content we have there. So it's barely visible there, but you can do it like this. Now we'll save it. And we will change the value. So the first one will be 100, 216 hundred. The second China effect, we can move it a bit. There, we can do top zero and the size, we can use 1,200. Now let's check the page. So we have it like this. We still have the vertical scroll, so let's fix it. Basically, we need to change the sizes. We need to be careful with it. Let's use something like 1,412 hundred to have effect like this. Now we can also put this shiny effect to some other page, but we need to import it there, of course, let's go and do it. For example, if we go on the portfolio, there we will go somewhere between the unordered list and the DIF. Let's go there. Let's put it there. We can leave there just the one shine effect. Let's put there zero size. We can use 900. And let's do these overflows now because we should be fine. And now you can see the error. So don't forget to import it like this. Let's check the page. Now you can see there in portfolios. So now you can play with the shining effects as you wish, put it there on the page and so on. Now also being on the portfolio, as we put there Shining effect, don't forget it has some Z index, so we need to go to the page and higher the Z index there. So if we will check, it has a Z index of one. So we need to go to the first dif, put the Z index of ten, save it. Then the second one, set index to ten, save it. Now let's test. And it's working even there. Okay, and that's it. Let's check how it looks like.