Build 10 Complete and Modern UI Design Templates | Giorgi Lomidze | Skillshare

Playback Speed


1.0x


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

Build 10 Complete and Modern UI Design Templates

teacher avatar Giorgi Lomidze, UI / UX Designer

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.

      Introduction

      2:06

    • 2.

      Setup

      1:56

    • 3.

      Project 1 - Project Preview

      2:22

    • 4.

      Project 1 - Create HTML Markup for Landing and Define Common Styles

      7:38

    • 5.

      Project 1 - Style Landing Page and Create Slideshow

      13:03

    • 6.

      Project 1 - Create and Style 3D Cards

      16:29

    • 7.

      Project 1 - Create and Style Foods Gallery

      18:18

    • 8.

      Project 1 - Create and Customize Footer

      11:00

    • 9.

      Project 1 - Create and Style Fixed Navbar

      20:23

    • 10.

      Project 1 - Make Project Responsive

      11:25

    • 11.

      Project 2 - Project Preview

      2:26

    • 12.

      Project 2 - Create HTML Markup for Landing and Define Common Styles

      7:00

    • 13.

      Project 2 - Create Waves Effect using Floating Background

      7:36

    • 14.

      Project 2 - Customize Landing Page

      7:59

    • 15.

      Project 2 - Create and Customize Customers Section

      12:53

    • 16.

      Project 2 - Create and Style Team Section

      26:04

    • 17.

      Project 2 - Create and Style Contact Section and Footer

      16:14

    • 18.

      Project 2 - Create Scroll up Button and Make Navbar Work

      4:45

    • 19.

      Project 2 - Make Project Responsive

      14:41

    • 20.

      Project 3 - Project Preview

      2:42

    • 21.

      Project 3 - Create and Customize Landing

      15:32

    • 22.

      Project 3 - Add Animations to Landing

      12:48

    • 23.

      Project 3 - Create and Customize Navbar

      13:24

    • 24.

      Project 3 - Make Navbar Work

      10:03

    • 25.

      Project 3 - Create and Style About Us Section

      14:39

    • 26.

      Project 3 - Make Custom Video Controls Work

      11:32

    • 27.

      Project 3 - Create and Customize Pricing Cards Section

      15:38

    • 28.

      Project 3 - Make Pricing Cards Work using Swiper

      13:43

    • 29.

      Project 3 - Create and Style Contact Section

      13:37

    • 30.

      Project 3 - Create and Style Footer

      5:57

    • 31.

      Project 3 - Make Project Responsive

      16:35

    • 32.

      Project 4 - Project Preview

      2:19

    • 33.

      Project 4 - Create and Customize Landing Page

      21:23

    • 34.

      Project 4 - Create Background Images Slideshow

      14:17

    • 35.

      Project 4 - Create and Customize Cube

      16:38

    • 36.

      Project 4 - Create and Customize Cube Controllers

      8:21

    • 37.

      Project 4 - Make Cube Work

      13:14

    • 38.

      Project 4 - Create and Customize iPhones Section

      16:47

    • 39.

      Project 4 - Create and Style MacBook Section - Part 1

      11:02

    • 40.

      Project 4 - Create and Style MacBook Section - Part 2

      17:07

    • 41.

      Project 4 - Create and Style Watches Section

      14:36

    • 42.

      Project 4 - Make Watches Section Work

      11:52

    • 43.

      Project 4 - Create and Style AirPods Section

      10:18

    • 44.

      Project 4 -Create and Customize Footer

      8:07

    • 45.

      Project 4 - Make Project Responsive

      18:48

    • 46.

      Project 5 - Project Preview

      2:42

    • 47.

      Project 5 - Create and Customize Landing Page

      15:03

    • 48.

      Project 5 - Create and Style Navigation

      7:12

    • 49.

      Project 5 - Create and Customize Progress Bars

      13:34

    • 50.

      Project 5 - Create and Customize Projects Section

      17:04

    • 51.

      Project 5 - Create and Style Contact Section

      7:18

    • 52.

      Project 5 - Create and Style Footer

      5:17

    • 53.

      Project 5 - Make Navbar and Progress Bars Work using JavaScript

      17:28

    • 54.

      Project 5 - Make Project Responsive

      7:15

    • 55.

      Project 6 - Project Preview

      2:33

    • 56.

      Project 6 - Create HTML Markup for Landing and Define Common Styles

      8:26

    • 57.

      Project 6 - Create and Make Navigation Work

      16:31

    • 58.

      Project 6 - Style and Make Hamburger Menu Work

      5:51

    • 59.

      Project 6 - Create and Customize Landing Page

      5:39

    • 60.

      Project 6 - Create and Customize Popular Cars Section

      9:03

    • 61.

      Project 6 - Create and Style Video Gallery

      7:02

    • 62.

      Project 6 - Create and Style Image Gallery

      12:00

    • 63.

      Project 6 - Create and Customize Contact Section and Footer

      11:26

    • 64.

      Project 6 - Make Project Responsive

      18:27

    • 65.

      Project 7 - Project Preview

      3:35

    • 66.

      Project 7 - Create and Customize Landing Page

      24:03

    • 67.

      Project 7 - Create and Make Sidebar Work

      24:03

    • 68.

      Project 7 - Create and Style About Us Section using CSS Grid

      17:09

    • 69.

      Project 7 - Create and Customize Cards with Tilt

      18:08

    • 70.

      Project 7 - Create and Style Contact Section

      25:44

    • 71.

      Project 7 - Make Project Responsive and Create Loading Spinner

      32:39

    • 72.

      Project 8 - Project Preview

      2:42

    • 73.

      Project 8 - Create HTML Markup for Landing and Define Common Styles

      23:02

    • 74.

      Project 8 - Customize and Make Landing Page Work

      24:04

    • 75.

      Project 8 - Create and Style Most Popular Tours Section

      32:41

    • 76.

      Project 8 - Create and Customize Testimonials Section

      14:09

    • 77.

      Project 8 - Create and Customize Contacts Section with Animated Background

      20:41

    • 78.

      Project 8 - Create and Style Footer

      6:57

    • 79.

      Project 8 - Create and Make Navigation Work

      24:25

    • 80.

      Project 8 - Make Project Responsive

      13:30

    • 81.

      Project 9 - Project Preview

      2:42

    • 82.

      Project 9 - Create and Customize First, Second, and Third Sections

      25:01

    • 83.

      Project 9 - Create and Customize Fourth and Fifth Sections

      13:32

    • 84.

      Project 9 - Create and Style Navbar and Make Progress Bars

      17:01

    • 85.

      Project 9 - Create Horizontal Scroll Effect with JavaScript

      14:44

    • 86.

      Project 9 - Make Progress Bar Work with JavaScript

      14:27

    • 87.

      Project 9 - Make Project Responsive

      37:07

    • 88.

      Project 10 - Project Preview

      2:42

    • 89.

      Project 10 - Create and Style Landing Page - Part 1

      15:14

    • 90.

      Project 10 - Create and Style Landing Page - Part 2

      9:09

    • 91.

      Project 10 - Create and Make Dropdown Menus Work

      13:44

    • 92.

      Project 10 - Create and Customize Services Section

      7:31

    • 93.

      Project 10 - Create and Style Features Section

      7:15

    • 94.

      Project 10 - Create and Style Get Started Section

      7:10

    • 95.

      Project 10 - Create and Style Footer

      9:13

    • 96.

      Project 10 - Create and Style Login Page

      14:54

    • 97.

      Project 10 - Create and Style Sign Up Page

      21:31

    • 98.

      Project 10 - Make Project Responsive - Part 1

      11:24

    • 99.

      Project 10 - Make Project Responsive - Part 2

      16:11

    • 100.

      Project 10 - Make Project Responsive - Part 3

      19:49

    • 101.

      Project 10 - Make Project Responsive - Part 4

      16:37

  • --
  • 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.

218

Students

--

Projects

About This Class

Resource Files

Welcome to the brand new class where you can learn about how to create modern and beautiful UI design templates for your websites.

If you want to build and customize your portfolio, become an experienced developer, and get hired, then this is the right course for you.

We will build together 10 mega and complete responsive UI Design Templates with three core technologies HTML, CSS, and JS. If you have some basic knowledge of these technologies and still you have some trouble building the websites or if you want to level up your developer and designer skills, then you’ve come to the right place.

We created this course in order to give students the best experience in three core technologies and give them the opportunity to create the best-designed templates that will allow them to excite their clients.

We will build 10 different complete websites and not only the parts of them from scratch. They will be full of modern, nice, and beautiful effects and designs. We will start with relatively simple projects and we will go through some advanced parts as well. We can guarantee you that you will master the front end web development after completing this course.

Using this course you can get the inspirations that will help you to enhance your projects and put them in your portfolio.

Mastering just these core technologies of front-end web development you can create awesome and modern themes and simply get hired. Also, you will have enough knowledge to move on and learn other technologies like some front-end frameworks and libraries, which nowadays are really popular and highly demanded.

PROJECT 1 - FOODS

PROJECT 2 - CREATIVE DESIGN

PROJECT 3 - BUSINESS AGENCY WEBSITE

PROJECT 4 - APPLE E-COMMERCE

PROJECT 5 - PERSONAL PORTFOLIO

PROJECT 6 - CLASSIC CARS

PROJECT 7 - ARCHITECT WEBSITE

PROJECT 8 - THE ROAD

PROJECT 9 - THE WINE HOUSE

PROJECT 10 - PAYPAL CLONE

Meet Your Teacher

Teacher Profile Image

Giorgi Lomidze

UI / UX Designer

Teacher

Hi,

I'm George, an UI / UX Designer, Web Developer, Founder at 'Code And Create' , and an author of several best-selling online classes.

I'm excited that I have a chance to help people to learn one of the most interesting and hottest fields in the world.

I decided to share my knowledge and experience with you and that's the main reason for being here at Skillshare.

Looking forward to seeing you inside my classes and help you to become a professional UI / UX Designer

See full profile

Level: All Levels

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. Introduction: Welcome to the brand new course, where you can learn about how to create modern and beautiful design templates for your websites. If you want to build and customize your portfolio, become an experienced developer and get hired, then this is the right course for you. We will build together ten mega and conflict and responsive websites with three core technologies, HTML, CSS, and Java. If you have some basic knowledge of these technologies, and still you have some trouble building their websites. Or if you want to level up your developers and designers skills, then you come to the right place. We created this course in order to give students the best experience in three core technologies and give them the opportunity to create the best design templates that will allow them to excite their clients. We will build tangy for incomplete websites and not all of the parts of them from scratch. They will be full of modern, nice and beautiful effects and designs. We will start with relatively simple projects and we will go through some advanced parts as well. We can guarantee you that you will master the front end web development after completing this course. Using this course, you can get the inspiration that will help you to enhance your projects and put them in your portfolio. Mastering just these core technologies of front end web development. You can create awesome and modern themes and simply get hired. Also, you will have enough knowledge to move on and learn other technologies like some front-end frameworks and libraries, which nowadays are really popular and highly demanded. The course is not definitely a small one. So be patient and try to get out of the most from this course without just copying and pasting the code. If I were in your shoes, I would definitely dream of a course like this. So join us 2. Setup: Hello and welcome to the course. We're glad that you're here and we hope that you will enjoy the course before we dive deeper and start to create our projects. First of all, we have to prepare our working environment. I'm sure that most of you are already prepared to write the code. If so, then you can feel free to skip this video and jump into the projects right away. But if not, then that's not the problem. Let's go ahead and set up some tools. Throughout this course, we will need two main tools, which are modern web browser and a text editor. As the web browser, I'm going to use mostly Google Chrome. And also in some cases we'll need the help of Mozilla Firefox as well. I'm sure that you already know how to install this web browsers, and I think you all already have them. But anyway, let's see how to download them. In order to get the Google Chrome, we have to go to this URL here and download the web browser. The installation process is quite simple, so I'm not going to go through it. As for the Mozilla Firefox, you have to use this URL and download the web browser from here. Both links will be attached to this lecture. Alright, let's move on and talk about the text editor. We're going to use Visual Studio Code because right now it's one of the best texts editors in the world. Of course, you can feel free and use your favorite text editor. It's up to you, but I recommend to use the VS code. In order to download the VS code, you have to visit this website and get the text editor either for Windows or Mac or Linux. This link will be attached to this lecture as well. The installation process of the visual Studio Code is very simple too, so I'm sure that it won't have any trouble with it. Alright, so once you install both tools that you will be good to go. So let's jump right into the projects 3. Project 1 - Project Preview: Alright, so once we have set up all the needed tools, now we're ready to start to build our first project. The project is going to be about some foods. I mean, something like selling different foods. And it will consist of a couple of different sections. Before we start to write the code, I'm going to go through the project and describe each section. The first section is going to be the slideshow of different Font, Awesome icons. Next comes the card section in which we will have three different cards with 3D shapes and also with some nice hover effect. Next comes the gallery. It consists of six different gallery items. We have here images with multilevel shadow effects. If we hover over them, then some information will display with pretty nice and cool effects. After that, we will have a simple filter with some text elements and an input field with a button. Alright, so those are all the sections which we're going to build. But besides that, we have here a nice navbar. You can see here the Menu icon. If I click it, then the number will display it from the top side of the webpage. And the navigation items will appear with some nice fade effects. If I click the icon back then didn't albert will hide. Okay, so that's it about the projects. We will build it using a desktop force approach. I mean, it will be built on extra large screen size, but then we will make it responsive to different screen sizes. If I inspect the page and check the project on different screen sizes, you will see that it's responsive and looks good. One more thing to note, as we said, the project is built on an extra large screen size. So if you're using the relatively smaller screen size than the project, might not look good during the lectures. But you don't have to worry at the end of the day, we will make it responsive. In the meantime, you can use the responsive mode, set the width and height to 1920 pixels and 1080 pixels and follow the videos. The last thing that I want to mention is that you can download this starter and final source files. They are attached to this lecture. Let's move on. 4. Project 1 - Create HTML Markup for Landing and Define Common Styles: Alright, so we're ready to start to build our projects. I've created a new folder on the desktop called foods, in which I have another folder for the images. Let's go ahead and open this folder in VS code. The first thing that I'm going to do is to create our working files for HTML, CSS, and JavaScript. I'm going to call them index.html, style.css, script.js. Then open the index.html file and create a basic HTML document. For that, I'm going to use a built-in VS code package called an image. We need to place urine exclamation mark and hit Tab or Enter. So here we go. We have here the basic HTML tags. First of all, let's go ahead and change the title. I'm going to insert here Foods. Next, let's link CSS and JavaScript files. So I'm going to open link tag. And then we need to specify here the path of the file. We just need the name of the file, style.css. As for the JavaScript, I'm going to open script tag right above the closing body tag. And in the source attribute, we need to specify script.js. Besides that, I'm going to bring in here one more link for Font, Awesome icons. So let's go to the Google and search for Font Awesome, CDN, JS, and grab the first link from here. Then open a link tag in the head elements and paste the link as the value of the h reference attribute. Okay, So all three files are connected and now it's time to run the project to the browser. For that, I'm going to use one of the VS code package is called a live server, which allows us to run the project live to the browser and make updates and changes without refreshing the page each time. Okay, finally, I'm going to place the text editor and the browser, like so. And get started. We're going to build the project section by section. We'll create the markup for each section and then style each of them. I'm going to start with the first section. It consists of the heading and a couple of Font Awesome icons, which as you can see, are animating nicely. So let's go ahead and start to create the HTML markup. At first, let's open the div elements, which is going to be the container. Let's assign to it a class name container event. I'm going to insert your comments section one. And section one. Then open section element with a class, Section one. So as we said, this section element will include the heading and a couple of Font Awesome icons. So let's open the H1 heading tag with the class section heading. As the content. Let's insert a variety of foods. Next we need to insert your Font, Awesome icons. But first, let's open the div tag, which is going to be the wrapper of these icons. I'm going to assign to it class section one icons. So overall we will have ten different icons. So let's go ahead and create them quickly. I'm going to open, I tag with the classes FAS, FAA egg. Then let's duplicate this line of code nine times and quickly changed the class names. The second one is going to be Stroop waffle. Then we will have cheese, hot dog. The next one is going to be drumstick byte. Then we will have apple out, ice cream. Next, we will have fish, cookie and sibling. Alright, so that's it about the HTML markup of the first section. Now we have to start to write some CSS. Throughout this project, I'm going to use one of the Google phones called non-metal. So let's go to the Google Fonts website and search for Nieto. Then I'm going to grab here all the styles except Italica. So let's check them. Then. I'm going to grab the URL. For that. We need to click Import and then copy this URL here. Let's paste it in CSS file. Alright, Next I'm going to create a couple of common and default styles. So I'm going to insert your comments. Common styles. Then end of common styles. Then select every element for that. I'm going to use an asterisk. So at first, I'm going to get rid of the default margin and padding from every element. Set both of them to zero. Then I'm going to set box-sizing. Border-box. Also get rid off default on the lines from the link elements. For that we have to use text-decoration. We'll get value none. Then remove the default outline. We need to set it to none. Also, change the font family. Let's set it to new Nieto sans-serif. And finally, change the font weight. I'm going to make it 400. Alright, so as you can see, some of the common styles are applied to the elements. The next thing that I'm going to do is to set the font size. So throughout this project, I'm going to use a ramp as the measurement unit. By default, one RAM equals 16 pixels, because the font size of the HTML element is equal to 16 pixels. I'm going to convert one ran into ten pixels. And in order to do that, we have to decrease the font size of the HTML element. We need to make it 62.5 per cent. So in this case, one RAM will be equal to ten pixels. Okay? So as you can see, the elements became smaller and actually with a common and default styles. We're done. Let's go ahead and start to style section one 5. Project 1 - Style Landing Page and Create Slideshow: So I'm going to Customize the section element itself. But at first, let's insert here new comments, section one. And off Section one. Then select Section elements. So first of all, I'm going to set the width and height. Let's make with how did present. That's probably height. I'm going to make it 100 per cent of the viewport. Therefore, let's set it 200 VH. Then change background color. Let's use your color 333. Okay, so it's can see this Section one is extended to the entire page and it's Background color is changed. Next, I'm going to place the content in the center. And for that I'm going to use flexbox. We need to set display property to flex. Right now. Elements are placed horizontally in a row, and actually we don't need it. So we have to change the flex direction and Make It column. Next. In order to place the elements horizontally in the center, we have to use align items center. So the elements are placed in the center. And now I'm going to add some space between them. For that, Let's use justify content property with a value space evenly. Alright, let's sit regarding Section element. Let's move on and Customize the heading. I'm going to select it. First of all, let's set font size to 12 RAM. Also change the font weight. I'm going to make the heading bolder. Let's set it to 900. Also change the color, make it white. And I'm going to align the text in the center. After that, Let's make your words capitalized using text transform capitalize. And also I'm going to create some space between the letters using ledger spacing with the value 0.5 rent. Okay, Finally, let's create a little shadow effect. I'm going to use text shadow with a value is 0.3 RAM three times. And as the color, I'm going to add here, 000, which is the black hello. Alright, so the heading is customized and now we have to move on and take care of the icons. So let's go ahead and select them. First of all, let's increase the font size, make it 35 RAM, and then change the color. I'm going to use your color, a 7982d. Okay, so we have here our icons, they are much bigger and call it as remember, those icons should be placed in the center and we have to animate them. First. Let's assign to them position absolute. So right now I are placed on top of each other. It happens because by default, position absolute jumps out the elements from the normal flow of the page. Besides that, we need to fix the positions of the icons. I think right now would be better if we hide all the icons except one, because it will make our working process more convenient. So I'm going to comment all the icons out except the first one. Right after that. Let's fix the position of the icon. We need to place it in the center. So we have to move it a little bit up and to the left side. For that, Let's use transform property with the translate function. Actually dysfunction allows us to move the elements according to the horizontal or vertical directions. I mean, according to x-axis and y-axis. As the values. Let's Institute -50 per cent for both directions. Alright, that's it about the position of the icon. Finally, I want to add to its shadow effect. So let's use again text shadow. Institute your point to RAM or three times. Use again black color. Alright? So as can see, the icons are customized and now it's time to create the Slideshow. First of all, let's get back all the icons. So we're going to hide and display the icons using the scale function. At first, let's go ahead and hide all the icons. By default, the scale function has the value set to one. And in order to hide the elements, we need to set the scale to zero So now the icosahedron. Next I'm going to display the first icon because they Slideshow will start with the first icon. For that I'm going to assign to the first icon and additional class change. And then select the first I can using this class name. We need Section one icons. I change. To make the icon visible. We need to set the scale to one. But besides that, we need to use again the translate function because otherwise it would be overwritten and the position of the icon would change. Alright? The first icon is visible and all other I conserve, heat them. Now we have to create the Slideshow, and for that I'm going to use JavaScript. So let's go ahead and open the script.js file. To switch between the icons. We have to remove an edge class change to all the icons in order and also with some interval. The first thing that we need to do is to select all the icons. So let's go ahead and create new variable. I'm going to call the icons. That in order to select them, I'm going to use one of the methods called query selector. All we need to specify here the class name Section one icons, followed by the ion. So in general, query selector, all method returns an array-like object called note least. Its items have zero-based index numbers like array. Also, this object has a length property that we will use a bit later. So as we said, we're going to slide the icons with some integrals. I'm going to use one of the built-in methods called setInterval. It allows us to run the function over and over again with some intervals. So this method takes two arguments. The first one is going to be a callback function, which will be executed over and over again. As for the second argument is going to be the amount of time and it should be expressed in milliseconds. In our case, I'm going to set the interval as 4,000 milliseconds. Alright, as you remember, right now, the first icon has class change. We have to select this icon to remove the class change from it, and then add class to the next icon. So let's go ahead and create new variable. I'm going to call it icon. Then use query, select a method in order to select the element. Let's select this element using class change. After that, to remove class change, we had to access the classes of this icon. So I'm going to use one of the property is called class list. It gives us all the classes that the element has. We need to attach it to the icon. And now we have to use one of the methods called removed. Let's specify here the class change. So now after 4 s, the item will hide because the class change will be removed. Okay, next we need to display and hide other icons. In order for that, we have to get access to the next icon. In order to do that, I'm going to use one of the properties called next element sibling. Let's attach it to the icon. Then again, we have to access to the classes of these elements. And finally, we have to add to each class change. Actually, I want to show the entire cycle of the Slideshow and I want to make it quick. So let's change 4 s into one. So as I see, the icons are changing after each second. If I inspect the page and display the elements, you will see how class change is added and remote from each icon. Once it is removed from the last icon, then we get an error saying that cannot read the property class list of null. It happens because the last icon doesn't have any next sibling. To fix that problem, we have to do some extra work when it tracks somehow each switch of the icon. For that, I'm going to create a new variable. In this case, I'm going to declare it with a lead keyword because the value of this variable will be changed. This variable is going to be a counter and I'm going to set it to one by default. So on each execution of the function, on each change, this commentary should increase by one. Once it is greater than the length of the icons, we should set the counter back to one. And also we need to display backlit first icon. So in order to increase the value by one, we have to use the increment operator, which is expressed by two plus signs. Next, we need to create if statement. And as the condition, we have to check if I is greater than icon's dot length. So if this condition is true, then it means that one cycle of the Slideshow was over. So we need to display back the first icon and set the counter to one. In order to access the first icon, I'm going to use the node list icons. And then we have to specify the index number of the first icon, which is going to be zero. Then we need again class least than the method add. And we need to specify here the class name change. Besides that, we need to set variable IBEC to one. Okay? So if this condition is not true, that we need to run this line of code. So let's create else statements and insert here this line of code. Okay? So once the entire cycle is over, then it starts again. You can see it here in Dev Tools. Alright, we're almost done with the Slideshow. The only thing that will have to do is to add some transition effect. So let's use transition. Then. We need to specify here transform. And as the duration I'm going to add here 0.3 s. Besides that, we need to add transition down below as well. Because once the scale of the ICD-10s decreased, the next coming icon should wait 4.3 s. Therefore, we need some delay time. So let's Institute your 0.3 s. So now, as you can see, we have a much nicer effect. And the only thing that I'm going to do is to change the time and make it 4 s. Alright, that's it. We are done with the first section. Let's move on and take care of the next one. 6. Project 1 - Create and Style 3D Cards: The next section that we're going to create is going to be the card section. We will have a section heading and three different costs. They will represent some popular meals. The cards will have 3D shapes, and also they will include a couple of different elements like images, names, and buttons. Once we hover over the cards, they will move up slightly with some shadow effect. Alright, let's see about this section. Let's go ahead and start to create an HTML markup. Let's insert new comments, section two and section two. Then open section elements. I'm going to assign to it class section two. Next, I'm going to create an H1 heading element. Actually, this heading is going to be similar to the previous one. They will have the same styles. So I'm going to assign to it the same class name, section heading. As for the content, let's put here popular meals. So I'm going to grab this towels of this section heading and paste it in common styles. Alright, so as we said, we will have three different cards. I'm going to wrap them with a div element, which is going to be cards container. Next, I'm going to open another div tag, which is going to be the actual card. So it's assigned to its class card. So as I said, the card will consist of three different elements. The first one is going to be an image. So it's open image tag. Then in source attribute, Let's select the image we need here, card IMG one. And also I'm going to assign to image class called IMG. Okay, Next we will have the card name, which will be represented by the heading. Let's open h3 heading tag with a class called name. As for the content, let's insert here. Let's say fish. Finally, let's create here bottom. I'm going to assign to it class called BTN. As for the content, let's make it a border now. Alright, so here we have our first card. Also, you can notice that the heading is all over this style because we add it to the same class name, section heading. As we said, we will have three cards. So I'm going to duplicate the card twice and change the image names and also the names of the cards. So we need here img2, cake and then IMG three, lobster. Okay, so let's see about the HTML markup. Let's go ahead and customize this section. I'm going to insert new comments, section two and section two. Then select section element. So first of all, I'm going to define width and height. I'm going to set way too hard it present. For the height. I'm going to make it hundred percent of the viewport. So let's 3,200 vh. And also change the background color. I'm going to use a new color too. Alright, next, I'm going to align elements using Flexbox. I mean the elements heading and the container of the cards. So we need here display flex. As you know, it places elements side-by-side. So in this case we need to change the direction. Let's make it column. And also I'm going to create some space between the flex items using justify contents. Space between. And finally, create some space inside of this section using padding. Let's set it to ten rem at the top and bottom and zero on the left and right sides. Alright, let's see about this section element. Next, I'm going to take care of the cards. First of all, let's select the container. I'm going to place cards side-by-side in a row. For that. Again, I'm going to use flexbox. Then in order to create some space between the items, I'm going to use justify contents with a value space evenly Alright, so the cards are placed horizontally in a row, and now I'm going to customize the card itself. Let's select it. At first. I'm going to define width. Let's make it to run. And then change the background color. I'm going to use your color a 79, a to D. Right now as you can see, the images are too big. So let's go ahead and fix that. I'm going to select Image. And then let's set its width to 100%. In this case, the image will take up 100 per cent of the wave of its parent elements, which is the card. Okay, so now we have a much better result. Let's move on and continue styling the card. I'm going to create some space inside of the card using padding. Let's set it to for RAM on all four sides. Then I'm going to align elements using Flexbox. Let's set display property to flex. Also, we need to change the direction because by default, display flex aligns elements horizontal in a row. Then let's create some space between the items using justify contents. Space between. And lastly, in order to align the items in the center horizontally, Let's use the align items center. Alright, lastly, I'm going to create some shadow effect. Let's use box shadow with the values one RAM three times and with a black color. Right now, That's it regarding the card. Let's go ahead and customize its name and the button. At first, let's select card name. I'm going to increase font size. Let's make it three RAM. Also change the font weight. I'm going to make the text bold color. Let's assign to it a 900. Also transform text into uppercase and create some space between the letters using electric spacing with the value 0.5 ramp. After that, I'm going to change its color. Let's use here 111. And also create some space at the top and bottom using margin. I'm going to set margin to RAM zero. Alright, Finally, let's create a little shadow effect using text shadow. Let's interfere. 0.15 ran three times. And then again the black color. Alright, that's it about the card name. Let's move on and customize the button. Let's select called btn. First of all, I'm going to set its width to 70%. Then I'm going to change the background color. Let's use here 111, also change the color of the text. In this case, I'm going to use color or 888. And then I'm going to make the corners of the box and rounded using border-radius with value five ran. Right. After that. I'm going to take care of the text of the button. Let's change the font size, make it 1.5 RAM. Also, I'm going to increase the font weight. Let's set it to 800. Then create some space between the letters. Let's set it to point to ram. Next, I'm going to capitalize the words using text, transform capitalize, and also get rid off default border. Let's set it to none. Right? So the button looks good, but we need to add to it a couple of more styles. I'm going to create space inside of the button using padding. Let's set it to 0.5 rem at the top and bottom and zero on the left and right sides. Next I'm going to change the type of the cursor, make it pointer, and also create some shadow. In this case, I'm going to create it on the left side. For that, I'm going to insert u -0.2 RAM, then again minus point to RAM than point to ramp. And the black color. When you want to create a shadow on the left side, then you have to use the negative values. Alright, so the button is customized and now it's time to give the card 3D shape. For that, I'm going to use before and after pseudo elements. Let's go ahead and start with the left side. I'm going to use before pseudo elements. First of all, we need to define the content which is going to be empty. Then I'm going to change the height and width. I'm going to set height to 100 per cent. For the width, let's make it one RAM And then change the background color. I'm going to use your color 817824. Okay, so right now the element is not visible. And to fix that, I'm going to set its position to absolute. Besides that, we need to set the position of the card to a relative. We need that in order to position the before pseudo element according to its parent element. So now the element is visible, but we need to change its position. We need to place it on the left side of the card. So let's go ahead and define top property. Let's set it to zero. Also, we need to define left property. Let's make it minus one ran. So now the position of the element is fixed, but as you can see, we need to skew it a little bit. Let's use transform property with the skew function. In this case, we need to skew the elements vertically. So we need to use here y-axis. Let's kill the elements by 45 degrees. Alright, so the element is skewed, but still it's position is not correct. It's slightly missed by default when we use transform property than the element moves according to its center. So the origin of transformation is set to the center. But in this case, we need to change it and make it right. So now let's consider the problem is fixed. The element is positioned perfectly. And the last thing that I'm going to do is to add to it a little shadow effect. Let's use box-shadow with the values -0.1 RAM. Then again -0.1 RAM that we need to 0.1 rem and the black color. Okay, That's it about the left side. Now, I'm going to take care of the top one. And for that, Let's use after pseudo elements. Actually we need to use the same properties for the pseudo element as well, but with different values. So I'm going to duplicate this code here and then I'm going to make some changes. So we need to make the height one RAM. As for the width, it's going to be 100%. Next, let's change the background color. In this case, I'm going to use 8f83, 17. Then let's live position absolute as it is. As both the top and left properties, we need minus one RAM as the value of the top property. As for the left property is going to be zero. Alright, next comes the transform property with this Q function. In this case, we need to scale the element horizontally. Therefore, we need to use here x axis. As for the transform origin, we need to make it bottom. Also, let's leave box shadow as it is with the shape of the cards. We are done. Finally, I'm going to create a hover effect. Before that, I'm going to rotate and scale the code a little bit. So let's use the transform property. I'm going to rotate vertically according to the y-axis. Let's insert your 20 degrees. As for the skew function, I'm going to skew the elements horizontally. So we need here x axis. Let's interfere minus two degrees. Alright, now I'm going to create a hover effect. So once we hover over the card, we need to move it slightly up. We need transform. Again with the rotate and scale functions. We need here 20 degrees and then minus two degrees. And also we need to add here Translate function with the y-axis and as the value, Let's interviewer minus three ramp. Besides that, I'm going to change the shadow effects on hover. So let's use box-shadow with two ramp three times and with a black color. Okay, So once we hover over the card, then they will move up and also the shadow will change. Actually, those things happen without any smooth effect. And in order to fix that, Let's use transition. We need to specify here transform with a duration 0.5 s. And also we need a box shadow with the same duration. Alright, so the transition effect works fine, and actually we are done with this section. Let's move on and take care of the next one. 7. Project 1 - Create and Style Foods Gallery: The next section is going to be the gallery in which we will have six different food images with some nice effects. Each image will have several colored shadows. When we hover over the image, then some information will display like the name of the food, some description and two different lines. The image itself will have some blurry effect. And also the shadow of the image will extend nicely. And all those defects will happen smoothly. Alright, let's go ahead and start to create the HTML markup. As usual, let's insert new comments, section three. And of section three. That open section element assigned to each class, section three. Next minute here, the heading of this section, which will be similar to other section headings. So I'm going to copy it from the previous section and then I'm going to change the content. Let's insert here gallery. Alright, so overall we will have six calorie items. They will be represented by the link elements. And before we create them, I'm going to open div tag, which is going to be the wrapper of those links. I'm going to assign to the class gallery. Next I'm going to open the link tag, which will have class gallery link. Besides the class attribute, I'm going to use the title attribute as well. It allows us to display some text once we hover over the link, let's insert your order now. Alright, so each link element will consist of an image heading and the paragraph. Let's open the image tag and then select Gallery IMG one from the images folder. Also am going to assign to image class food IMG. Next comes h3 heading elements. Let's assign to the class food name as the contents. Let's insert your pancakes. And finally, I'm going to insert your paragraph with a class full description. And as the contents, I'm going to put here some dummy text. Okay, so here we have the first item. As we said, overall, we will have six of them. So I'm going to duplicate the link element five times and then make some changes. We need here, img2. And the name is going to be cupcakes. Then we will have AMG or three. Harmless. Then for the fourth item, I'm going to insert here hamburger. The next one is going to be Sahlman. As for the sixth item, I'm going to eat your vegetables. Alright, so that's it about the HTML markup. Now, we're ready to start writing some CSS. I'm going to create new comments, section three. And section three. Then select section elements. At first, I'm going to change the background color. Let's make it dark gray using color 333. And also I'm going to create some space inside of this section at the top and bottom of it. Using padding with the value is five, rem, and zero. Alright? Before we start to customize the gallery, I want to take care of the size of the images because right now they are too big. So let's select Image. I'm going to set with 220, 4% of the view-port off the width. As for the height, I'm going to make it 15 viewport width. I mean 15% of the viewport width. And also I'm going to use object feed cover, which will allow us to maintain the quality of the image. It won't be stretched. Alright, then select Gallery, I mean the container of the links. So overall we will have six links and I'm going to place them into rows. I'm going to do that using flexbox. We need to set display property to flex. And also in order to place images on two roles, we need to flex wrap with a value wrap So now the images are placed in two rows. Next, I'm going to place them in the center and also create some space between the images. So in order to place them in the center, we need to align items center, and to create some space between the images, we need to justify content space evenly. Finally, I'm going to create some space between the heading and the gallery. Let's use margin top with the value ten ramp. Alright, so with the layout, we are done. Let's go ahead and customize the elements of doing. Let's go ahead and start with the foot names. So the name of the foot should be played at the top-left corner of the image. So I'm going to set its position to absolute. Then we need to set the position of the link elements to relative because it is a parent element and we need to position heading according to the link. And then set the top and left properties for the food name to three ramp. I mean, both of the properties. Alright. So headings are positioned in the right way. Let's go ahead and customize them. I'm going to change the font size. Let's make it to Ram. So let's increase the font weight. I'm going to set it to 700. Then let's transform text into uppercase. Create some space between the letters using letter spacing, 0.1 RAM. And lastly, change the color, make it white. Okay, That's it about the heading. Next, I'm going to customize the paragraph. So let's go ahead and select it. First of all, I'm going to define its position as absolute. And then I'm going to define bottom and left properties. I'm going to set button property two or three, viewport width. As for the left property, I'm going to make it to random. So the paragraph is positioned. But as you can see, the layout of the gallery is messed up. I'm going to fix that. Let's go ahead and create some space between the links using margin. I'm going to make it for rem at the top and bottom and one rem on the left and right sides. Alright, so now the problem is fixed. Let's move on and add some more styles to the paragraph. Next, I'm going to define width and make it 70%. Then let's change the font size, make it 1.5 RAM, and also change the font weight. I'm going to make it a little bit lighter. Let's set it to 300. After that, let's create some space between the letters, make it 0.1 RAM. Also, I'm going to transform text into uppercase N. Finally, change the color, make it white. Alright, so with a paragraph, we are done. It is styled. And now I'm going to create two lines. One under the heading and the second one on the right side of the paragraph. I'm going to create those lines using before and after pseudo elements. At first, let's create a line on the right side of the paragraph. Let's use the before pseudo elements. First of all, we need to define the content. Let's make it empty. Then I'm going to set the position to absolute. And in order to make the line visible, let's define a width, make it a point to RAM. Also, we need to set height to 80 per cent and then change the background color, make it white. So the line is feasible, but we need to change its position. We need to place it on the right side of the paragraph. So let's set top position to, to viewport width. As for the left property, I'm going to make it 80%. Alright, let's see regarding the before pseudo elements. Now, I'm going to create a second line. Actually both lines will have the same properties. So let's go ahead and duplicate this code and then make some changes. I'm going to change the top position. Let's make it 30%. Also. We need to change the left property. Let's set it to, to run that, I'm going to change the width. Let's make it 90%. As for the height, it's going to be point to ramp. Alright? So the lines are created and actually all the elements are almost customized. The only thing that I'm going to do before we create a hover effect is to create a multilevel shadow effect. In order to do that, we just need to use box shadow property with a multiple values like so. I'm going to create the first Shadow. Let's insert your 0.3, 0.3 RAM than 0.1 RAM, and the color E9 to nine to nine. So the first shadow is created, then go ahead and create the next one. I'm going to insert here 0.5 rem, 0.5 rem 0.1 RAM, and the color A2 e946. Then the next one is going to be 0.7 rem, 0.7 rem, 0.1 RAM. And they call up to 97 CE nine. That's probably last one. Let's make it 0.9 ramp. 0.9 ran 0.1 RAM and the color e92 999. Alright, so here we have the shadows, and now we're ready to create a hover effect. By default, those elements should be hidden. So let's start with the heading. I'm going to make its width zero. And also, we need to use your overflow property with the value hidden. So the heading is hidden. Next, I'm going to hide the paragraph. In case of paragraph, I'm going to use juice opacity with value zero and also visibility hidden. So as you can see, the paragraph is hidden as well. And now I'm going to hide those two lines. I'm going to set height to zero for the vertical line. As for the horizontal line, let's set its width to zero. Alright, so all the elements are hidden, and now we can create a hover effect. I'm going to start with the lines because they should appear firstly. So let's select gallery link with hover, followed by the before pseudo element. We need here to set height to eight per cent. Let's duplicate this code. I'm going to change before and after. And also instead of height, we need width with the value nine per cent. Besides that, in order to make the effect smarter, we have to use transition. We need here height 0.5 s. And also in a transition with 0.5 s. Okay, so once we hover over the image, tangent lines will appear nicely. Next I'm going to display the heading. So let's go ahead and select gallery link with hover, followed by the food name. As remember, we decreased the size of the heading to zero. So we need to set with 200 per cent. Also in order to make the effect smoother, again, we need transition with the values with 1.5 s. And besides that, we need here some delay time because at first the lines should appear and then after that, we have to display the heading. So let's set the delay time 2.5 s. Actually, this transition effect will happen once we hover over the image. So as you see, the heading is starting to display once the lines appear. But when we mouse out than the heading immediately heights. And in order to fix that, we need another transition, which should be part of the heading itself. Let's set with 2.3 s. Okay, so now everything works fine. Let's move on and do the same for the paragraph. Let's select gallery link with hover, followed by the food description. So right now the paragraph has opacity zero and visibility hidden. And now we need opacity with the value one. Visibility visible. Also, we need here transition opacity than the duration one seconds and the delay time, but in this case 1 s. And in the exact same way we need to use the second transition. We're going to pass opacity with a duration 0.3 s. Alright, so the power of group works fine. And now we have to move on and take care of the image. As first, let's change the shadow on hover. So let's go ahead and select again gallery link with hover. Then we need food image. Actually, I'm going to copy this code from here and just change the values. We need here, 1 g twice. Then for the second shadow we need to run. Then the next one is going to be three RAM. Then for the last one, we need for RAM. Besides that, again, we have to use transition. Let's interfere all and the duration 0.5 s. Alright, so as you can see, the shadow is changing once we hover over the image. Of course that's not all we need to add a couple of more things to the image. We need to make it blurry. And for that, we have to use one of the properties called filter with the blower function. Let's use blue and the value, I'm going to place your 0.5 ramp. So as you can see, the image becomes blurry. And once we hover over it, we can make this effect much nicer if we decrease the opacity of the image. Let's make it 0.5. Alright, so now we have a much better results. And the only thing that we need to do is to increase slightly the scale of the image on hover. For that, Let's use Transform. With the scale function. I'm going to increase the scale of the image to 1.1. Alright, so we're almost done. Everything works perfectly. But we have here a tiny issue. As you can see, the vertical line is not quite visible because it ended up behind the image. So in order to fix that, we have to use the z-index property. Let's make it higher than zero, which is the default value. I'm going to make it ten. Alright, so that's it. We are done with the gallery. I think it looks really nice. We used here a couple of cool effects, so I think you'll like it. Okay, now it's time to move on and take care of the next section. 8. Project 1 - Create and Customize Footer: The next section is going to be the footer, which will be a simple one. We will have a heading paragraph, inputField with a button and some copyright text down below. Let's go ahead and start to write the HTML markup. I'm going to insert your new comments section for end of section four. Then open section element with a class, section four. So overall we will have three different parts and the footer, the first one is going to be the heading and the paragraph which are placed on the left side. Let's open div element, which is going to be the wrapper of those two elements. I'm going to assign to it class section for text. Then open the H2 heading elements with the class section for heading. And as the contents, I'm going to institute sign me up for the paragraph. It should have class section for paragraph. And as the contents, I'm going to instruct you be the first to know about new products. Alright, so that's it about the first part. The next one is going to be the formed elements, which will include the input element and the bottom. So it's open form with the class sign-up form. Then I'm going to insert your input with the type e-mail. Next, I'm going to insert your class sign-up form inputs. And also let's use placeholder attribute with a value, enter your email. Alright, that's it about the inputs next Columns button. Let's set its type to submit and also assigned to each class attribute with a value sign up form BTN. Actually, the button will be represented by the Font Awesome icon. So let's open I elements with the class names FAS, FAA, arrow, right? Okay, That's it about the form elements. Finally, I'm going to create the paragraph for the copyright text. So it's open p element with the class copyright. And then as the contents, Let's insert code and create, followed by the copyright sign. I'm going to use here HTML5, entity, ampersand, copy, semicolon, and then Insecure. All rights reserved. Alright, so with the HTML markup, we are done and we can customize this section. Let's insert new comments in the CSS file. We need to section four. Section four. Then select section elements. At first, I'm going to define width and height. Let's set with 200 per cent. As for the height, I'm going to make it 30% of the viewport. And also change the background color. Let's use here called 222. Okay, next I'm going to take care of the layout of all three parts. I'm going to use Flexbox. Let's set display property to flex. And then in order to create some space around the items I'm going to use justify content with value space around. And also besides that, I'm going to create some space at the top and bottom inside of this section. For that, Let's use padding with the values three, rem, and zero. Alright? So right now, all three parts are placed horizontally in a row, but actually we don't need that. I'm going to place the copyright paragraph at the bottom of this section. So let's take care of exposition. I'm going to assign to each position absolute. Then in order to align the paragraph according to its parent element, I'm going to set the position of the section element to a relative. And after that, let's define the bottom position of the paragraph and make it three rounds. Okay, with the layout we are done. Let's go ahead and start to customize each of the elements. I'm going to select the wrapper div elements. Let's assign to it text transform uppercase because we need both elements, I mean the heading and the paragraph to be uppercase Next I'm going to take care of the heading. So let's select it. I'm going to increase the font size. Let's make it full RAM. And also make the text bold or using font weight with a value 900. And finally change the color. I'm going to use your color H7N9, A2. So they're heading. Looks good. Let's move on and start the paragraph. Let's select it. Change the font size, make it 1.5 round. As for the color, I'm going to use 888. Alright, that's it about the first part. Let's move on and take care of the form element. Inside of the form element, we have an input and button, and I'm going to place them side-by-side. For that, I'm going to use flexbox. And also in order to center both elements, particularly, let's use align items center. So right now we have a little problem here. As you can see, the form element ended up a little bit down. And to fix that, I'm going to assign to the section elements, align items property with the value flex, start. In this case, both flex items will end up at the top of the container. Alright, let's go ahead and customize the input element. Let's select it. First of all, I'm going to define width and height. Let's set with 235 ran. As for the height, I'm going to make it five RAM. Create some space inside of the input using padding. Let's set it to one rem on all four sides and also change the border. I'm going to interfere point to ram solid color a 7982d. Okay, Next, let's take care of the text. Let's change the font size, make it 1.6 RAM. Also make the texts slightly bolder using font weight with a value of 700. Next, I'm going to create some space between the letters using letter spacing 0.1 RAM. And also change the color. Make it again a 79 a to D. Alright, that's it regarding the input elements. And before I customize the button, I'm going to change the color of the placeholder attribute. So let's select input element followed by the placeholder and assigned to it color H7N9, a to D. Alright, now it's time to take care of the button at first, let's change its position. I'm going to set its position to relative. We use here position relative because we need to use left property. And in case of static position, which is the default one, we can access this property. Let's set left property to -4.5 random. Okay, so the button is positioned and now we need to customize it. First of all, let's define the width and height. I'm going to make both of them for RAM. Then change background color, make it 333. And also change the color. You use again H7N9 a to D. Okay, So the button already looks good, but we need to add to it a couple of more styles. I'm going to get rid off default border. So let's set it to none. Then increase the font size, make it 1.8 RAM. And also change the type of the coarser, make it pointer. Alright, that's it about the form elements. Now we need to customize the last element in this section, which is the paragraph. So let's change the font size, make it 1.7 run. Also, I'm going to make phoned lighter using font-weight with the value 200. Then change the color, make it e. And also create some space between the letters. Let's make it 0.1 ran. Alright, next I'm going to create the border at the top of the paragraph. So let's use border top property with the values point 1 g, solid. And as the color, let's use 888. And also let's create some space using padding top with the value six ran. The border is created, but as you see, it's extended according to the width of the paragraph. We need the border to take up the entire width of the page. So I'm going to increase the width of the paragraph. Let's set it to hundred percent. Now the size of the border is increased, but the paragraph has ended up on the left side. And in order to fix that, Let's use text align center. Alright, so with the footer, we are done. Next, we have to take care of the navigation. So let's move on. 9. Project 1 - Create and Style Fixed Navbar: Navigation is going to be a kind of an interesting one. As you can see by default, it is hidden and the Menu icon is displayed at the top left corner of the page. It has a fixed position. Once I click it, then the number will display from the top nicely. And all the navigation items will appear with some fade effect. Also, if I hover over them, then they will change the color. If I click the menu icon back down in Alberta will hide again. Let's see what we are going to create. So let's go ahead and start with the HTML markup. I'm going to write it before the container. Let's insert new comments. Now bar. And of Navarre. Then open HTML5 nav elements with the class now par. So overall we will have five different navigation items. They will be represented by the link ions, and each of them will include a Font Awesome icon with some texts. Okay, Let's open the link elements with the class now per link. Then into here, I element with a class is FAS a home than the Font Awesome icon will be followed by the span elements. Let's insert here home. Okay, So overall we will have five navigation items. Let's go ahead and duplicate the link element four times and then change the class names and also the content of the span elements. The second one is going to be utensils. And as the content, Let's write meals. Then we will have hamburger. The item is going to be burger. Then the next one is going to be pizza slice pizza. And the last item is going to be bland or phone contact. Alright, so here we have the navigation items. The only thing that have to do is to create a div element for the Menu icon that's assigned with Class Menu. Actually this element is going to be empty. We will customize it from CSS. That said, regarding the HTML markup, Let's go ahead and start to write CSS. I'm going to insert new comments right after the common styles we need here, navbar and of Navarre. Then select enough elements. And first of all, define width and height. I'm going to set width to 100%. As for the height, let's make it 14 RAM, and also change the background color, make it black. Okay, so here we have the navbar. Actually it should be fixed. So we need to set its position to fixed and also make the top property zero. Alright, so if I scroll down the page, then the number will maintain its position as fixed. As you can see, once we scroll down then some of the elements and up on top of the navbar. And in order to fix that, I'm going to use the index property with some higher value, let's say 100. So now the problem is fixed. Let's move on and take care of the layout of the navigation items. For that, I'm going to use Flexbox. Let's set display property to flex and then center items horizontally and so vertically using justify-content center and align items, center. Alright, so the items are placed in the center. And the last thing that I want to do about the nav element is to create a little shadow effect. Let's use box shadow. That seems to point to RAM three times and as the color. Let's use black. Okay, So within that element, we are done. Let's move on and customize the link elements. Let's select now per link. First of all, I'm going to change the color. Let's make it light gray using color AAA. And also, I'm going to create some space on the left and right sides using margin with a value of 0.4 ramp. Alright, Next let's customize the I elements and also the span. I want to make them bigger. So first of all, I'm going to select Font, Awesome icon. Let's increase its font size, make it seven RAM. As for the span element, Let's change its font size. 2.5 RAM. Then I'm going to make items bolder. Let's set font weight to 900. Also, I'm going to create some space between the letters using letter spacing, the value 0.5 RAM. And then create some space at the top using margin top 0.5 round. Alright, so let's consider the navigation items look much better, but we need to change the layout. I mean, we have to place, I can end the span element on top of each other. So for that, let's use flexbox. Then. In order to place elements in the column, we need to change the direction. Let's make it column. And then place items in the center. I mean both vertically and horizontally. Use justify-content center and align items center. The navigation items look nice. Before we move on and customize the Menu icon, I want to create a little hover effect. Once we hover over the items, I want to change the color slightly. So let's select an Albert link with hover and change color, make it white. Besides that, in order to make the effect smoother, Let's use transition with the values color and 0.3 s. Alright, that's it. Right now, within navigation items we are done. Let's move on and customize the Menu icon. First of all, I'm going to define width and height. Let's set width to fall RAM. As for the height, I'm going to make it six RAM. And also change the background color, make it black. So right now the menu icon is not visible because it is placed behind the navbar. So I'm going to place it a little bit down, like the navbar menu icon should have a fixed position as well. So let's set position to fix. Then define top property, make it 15 RAM. As for the left property, I'm going to make it five ramp. Alright, so now as you can see, the menu icon is visible. Next, I'm going to take care of its shape, will change its shape using border-radius. Actually, you can define different border radius on different sides. Let's use border-radius. The first value belongs to the top left corner. I'm going to make it 30 RAM. Then the next one is for top right corner. Let's make it through to ram as well. Then we will have bottom right corner. I'm going to make it 15 RAM asphalt the bottom left corner. Let's make it 15 RAM as well. Okay, so as you can see, the shape of the menu icon is changed. Next, I'm going to add to it a little shadow effect. So let's use box-shadow. That's Institute 0.13 times with a black color. And besides that, I'm going to add here another shadow, but on the left side. So I'm going to use here 0.1 ran twice with the minus sign, then 0.1 RAM, and again the black color. And lastly, let's change the type of the cursor, make it pointer. Alright, that's it, about the Menu icon. Next I'm going to create a line which is going to be the part of the icon. And we'll create it using the before pseudo element. So let's use before. First of all, define content, make it empty. Then I'm going to set, we can hide. Let's make with 0.3 RAM. As for the height, I'm going to make it 15 ramp, then change background color, make it black. And also set the position to absolute. So the line is visible. As you can see, we have to fix its position. Let's set the top position, two -15 RAM asphalt the left position, we need to place the line in the center. The width of the line is equal to 0.3 RAM. We need to move it to the left side by 50 per cent. But also we need to take into account the width of the line in order to center it perfectly. So to do that, I'm going to use calc function, where we should calculate 50 per cent -0.15 RAM, which is the half of the width of the line. So again, in this case, the line will be perfectly centered Okay, lastly, let's add some shadow effect to the line. Use box-shadow with the values 0.1 RAM, zero, then 0.1 RAM, and the black color. Okay? So with this style we are done. Now we have to make the nap or work. And for that, I'm going to use a little bit of JavaScript. Before that, I'm going to place him now bar and the Menu icon in their default positions. I mean, when they now pore is hidden and the Menu icon is placed a little bit up. Let's change the top position of Naropa and make it -14 RAM. As for the Menu icon, we need to change its position, the top position, and make it one round. Alright, so everything is ready to make up our work. We're going to attach a click event to the Menu icon. So let's go to the JavaScript file and select menu using querySelector method. Next we need to attach to it add event listener. It takes two arguments. The first one is the type of the event. In this case we need clique. As for the second argument is going to be the callback function, which will be executed once we click the element. Now we need to select it now pore and the Menu icon, actually we can do that separately, but would it be better if we assigned to both elements the same class, and then select both of them simultaneously. So let's assign to them class target. Now, in order to select in Napa and the Menu icon, I'm going to use the query selector all method. Then inside the parenthesis as the class name, I'm going to specify targets. So we're going to add some new styles to both elements once we click the icon and then get rid of those styles on the next click. For that, we need to look through the node list which is returned by the query selector all method. We have to add to each elements a new class using toggle method. After that, we will define new styles using this class from CSS. So in order to look through the node list, I'm going to use one of the array helper methods called for each. Actually forEach method takes one argument, which is a callback function. And this function will be executed for each item in the node list. So let's insert here an arrow function. This callback function itself takes one argument, which is the current item in the list. Throughout the loop, I'm going to call it item. So now as we said, we need to add to both elements a new class using the toggle method. For that, let's use one of the properties called class list. We need to attach it to the item. It gives us all the classes that the element has. And also it allows us to access different methods in order to manipulate the classes of the element. In this case, we need to use a toggle method, which allows us to add class to the element if it doesn't have it, and remove class if the element does have it. Okay, now we have to pass here the class name, let's call it change. That's it about JavaScript. Now we have to write some CSS. But before that, I'm going to show that both elements are getting a class change onClick. So if I inspect the page and display the elements, and then click the icon, you will see that both elements get classes. If I click again, then they will be removed. Okay, now we have to define new styles using class change. Let's select the menu with change. So once we click the icon, we need to move it down. Let's change its top position, make it 15 RAM. So if I click the icon, then it will move down. And the next week it will move up again. Let's make this effect smoother. Transition. With a value is top and 0.4 s. Now it's can see we have a much better result. Next I'm going to display the navbar. So let's select it using class change. I'm going to define top position. Let's make it zero. And also use transition for smooth effect The values top and 0.4 s. So if we click the icon than the novel will display smoothly, and then it will hide on the next click. In order to make this effect a little bit nicer, I'm going to add some delay time to the Menu icon. Let's add here 0.2 s. Now the icon is moving with some delay, but that's not what we want. We don't need the delay time on the next clique. So I'm going to use another transition, but with class change and without any delay time. Okay, now we have a better result, but still it's not what we want. We need delay time within now port as well. So let's go ahead and add a new transition with a value is top 0.4 s and 0.2 s, which is the delay time. Alright? Now as you can see, everything works perfectly. The only thing that had to do is to display navigation items with some fade effect. First of all, we need to hide all the icons. So let's set opacity to zero. Then we need to display items onclick, but with different delay time. So we need to select the number link with class change. Let's set opacity to one. And after that, we need to define transition property for each navigation item with a different delay time. Let's go ahead and start with the first item. We need. Again change. Then, now put link followed by the nth child selector as the value. Let's interview one. It means that we have selected the first Nobel link. So as we said, we need here transition with opacity 0.4 s. And as the delay time, let's insert your 0.5 s. Overall we have five items. So let's duplicate this code four times and change the values. For the second item we need 0.6 s. Then the next one is going to be 0.7 s. For the fourth item, I'm going to pass here 0.8 s. And for the last item, Let's make delay time 0.9 s. So if I click the icon, then the navigation items will appear nicely with some fade effect. Actually, we are almost done. We have here tiny issues. If I hover over the items, then we will no longer have a smooth hover effect. And also when we close the novel items height without transition. The reason for the first issue is that the old transition of Navarre link is overwritten. So let's go ahead and add a transition, I mean, color to all the items down below. Let's make the duration 0.3 s. As for the second issue, we need to add opacity to the Navajo link by default. Let's make the duration points 2 s. Alright, so now everything works perfectly. And finally, we are done within now where actually we have finished building this project. The only thing that have to do is to make it responsive to different screen sizes. 10. Project 1 - Make Project Responsive: So as we said at the beginning of this project, it is built on an extra large screen size. I'm in the screen size with 1920 pixels width and ten ADB, those of height. Now we're going to make it responsive on different screen sizes. We have to create a couple of different break points. And we'll make the project responsive using CSS media queries. I've already prepared the break points on which we have to make some changes, so I'm not going to waste time finding them. Okay, Let's go ahead and inspect the page. And then switch to the responsive mode. So as you can see, the width and height are set to 1920 pixels and ten ADP. Okay, so the first breakpoint on which we need to make some changes is going to be 1,400 pixels. So we have to create a CSS media query with a max width of 1,400 pixels. But at first, I'm going to insert new comments, responsive and unresponsive. Then create CSS media query and specify the max width as 1,400 pixels. So the breakpoint, I'm going to decrease the font size of the HTML element. Let's make it 50 per cent. It will decrease the sizes of the elements where we have used RAM as the measurement unit. Alright, so the first section looks good. We don't need to do anything here. As for the second section where we have the carts, I'm going to increase the space at the bottom inside of this section. But in order to do that, at first, we need to set the height to our row. So let's select section to set height to auto, because otherwise padding at the bottom won't be applied. So we need here padding, ten rem at the top, than zero, than 12 RAM at the bottom, and then again zero. Next we need to create some space between the heading and the cards. So let's select cards container and assigned to it margin top with the value ten ran. Alright, that's it regarding Section two. Let's move on and customize the next section, which is the gallery. Right now, each gallery link has width and height defined in viewport width. It makes them smaller when we decrease the width of the browser window. So I'm going to change viewport width in RAM. Let's select gallery link and then define width and height. I'm going to set width to four to ram. As for the height, let's make it 25 rem. And besides that, we have to define the width and height for the images as well. We need to set both of them to 100%. Okay, So we have changed the width and height. I mean the measurement unit. One more thing that I want to do here is to create a little margin around buildings. Because once we make the browser smaller than the images will get too close to each other. And in order to avoid it, Let's set the margin to five ran. Alright, actually with this breakpoint, we are done. All these sections look good. And now we have to move on and find the next breakpoint, which is going to be thousand pixels. So let's go ahead and create new CSS media query with a max-width thousand pixels. On the breakpoint, I'm going to change the size of this section headings. Let's select this element and set font size to nine RAM. Besides that, we need to use your margin on the left and right sides because otherwise headings will wrap later and it won't be nice. So let's set margin to zero at the top and bottom and five rem, on the left and right sides. Alright, so the heading is smaller. Now next I'm going to make the icon smaller as well. So let's go ahead and select them and set their font size to 25 rem. Alright, that's it about the first section. Let's move on and customize the second one. I'm going to wrap the cards and place them on different lines. So let's go ahead and select cards. Container And assigned to it one of the flex properties, I mean flex wrap with a value rab. Next, I'm going to select card itself because I want to create some space around each card. Let's use margin and set it to five rem. Okay, so that's it. Cards look good. And the only thing that I want to do on the breakpoint is to increase slightly the height of the footer. So let's select section four and assigned to its height with the value through to ramp. Right? So with thousand pixels we are done. Let's move on and take care of the next breakpoint, which actually is going to be 900 pixels. So let's go ahead and create new CSS media. Then specify max-width as 900 pixels. On the breakpoint, I'm going to take here of the null where all the other sections look good. So let's go ahead and select now bar link. I'm going to set margin to RAM. Then. So like the I element, because I want to decrease slightly. So the font size. Let's set it to forum. And also let's select span element. I'm in the text values and set font size to run. Alright, that's it now, but looks good. And we have to move on and find the next breakpoint, which I think is going to be 700 pixels. So let's create new CSS media and specify max-width as 700 pieces. So on the breakpoint, I'm going to decrease the size of this section heading. Let's go ahead and select section heading. Set font size to seven RAM. And besides that, I'm going to increase the gain margin on left and right sides. So it's assigned to zero and tan run. Okay, Next let's take care of the icons. I'm going to decrease their sizes as well. So let's select them and set their font size to 20 ramp. Alright, Before we move on to the next section, I'm going to move the menu icon to the left side eye a little bit. So let's select menu and define its left position. Make it to run. Alright, So the icon looks good and actually all the other sections look nice except the footer. So let's go ahead and take care of it. First of all, I'm going to increase the height. Section four, set height to four to run. Next, I'm going to place the elements in the column on top of each other. For that, we have to change the flex direction. Let's make it column. Then we need to place flex items at the top inside of the container. Use here justify contents flex start. And also we need to center them horizontally using align items center. So as you can see, the elements are placed in a column vertically, but we need to create some space between those texts and the input field. So let's select section for texts and define margin bottom with the value eight Ran. Alright, that's it on the break point. Now we have to customize our project on the last breakpoint, which is going to be 550 pixels. So let's go ahead and create new CSS media and specify a width as 550 pixels. Let's go ahead and decrease once again the font size of the HTML elements. I'm going to make it 40 per cent. Next, we need to decrease the space between the navigation items. So let's select now by link and set margin to zero and 0.7 ramp. Alright, actually, we are almost done. But I see here a little issue. You can notice that the menu icon ends up behind the gallery links. These might be a problem on other breakpoints as well. So let's go ahead and fix that. I'm going to assign to it a z-index property by default. Let's make it 100. Alright, so the problem is fixed. And finally, we have finished working on our project. I think it looks good on different screen sizes, so we can say that it is responsive. Okay, so I hope that this project was interesting. You enjoyed it and learned some new stuff. Now we have to move on and start to build the next project. 11. Project 2 - Project Preview: Alright, so now it's time to start to build our second project. I call it creative design, because throughout this project, we will use some nice and cool effects. Before we start to write the code. Let's go ahead and describe the project. It will consist of a couple of different sections. So let's go through each of them. Right now you're looking at the first section, which consists of a couple of different parts. We have here four different navigation items. They are aligned vertically and once we hover over them, then they will start to place horizontally and also they will get the background. Next we have here a nice-looking heading. Down below you can see the logo of the website. And also we have here a floating background which looks like the waves. And I think it looks pretty nice. Alright, Next we have carts of the customers. Each car includes some Font, Awesome icons. Also, we had images of the customers and the ratings. The cards have a nice hover effect. Next comes the team section. It includes the cards as well, but those cards are different, represent the team members. And also they include some stories about the members which we can display by clicking this button. Right. After that we have a contact section. It includes the image and a couple of input fields. They are placed in a 3D environment and also they have a nice hover effect. Down below we have a simple footer with some copyright text. Okay, so that's it about these sections of the project. The navigation items allow us to navigate to the proper sections. If I click them, then we will go to the relevant sections smoothly. Besides that, we have here a fixed button at the bottom right corner of the page. If I click it, then it will scroll up to page two, the first section. Alright, so that's it about the project. It's going to be responsive to all different screen sizes. If I inspect the page, switch to the responsive mode and check the project, then you will see that it looks good on different screen sizes. Alright, so we're ready to start to build this project. You can download the starter and the final source files. They are attached to this lecture 12. Project 2 - Create HTML Markup for Landing and Define Common Styles: Alright, so we're ready to start to build our projects. I've created a new folder on the desktop called creative design, in which I have another folder for the images. Let's go ahead and open this folder in VS code and create our working files for HTML, CSS, and JavaScript. I'm going to call them index.html, style.css and script.js. Then open index.html file and create a basic HTML document. For that, I'm going to use m it, Let's insert here an exclamation mark and then hit Tab or Enter. Alright, so here we have basic HTML tags. First of all, I'm going to change the title. Let's insert your creative design. After that. Let's link CSS and JavaScript files. I'm going to open link tag and specify the path of the CSS file. As for the JavaScript, I'm going to open script tag right above the closing body tag. And then we have to specify path of the file in the source attribute. Besides that, I'm going to bring in one more link for the Font Awesome icons. So let's go to Google, search for Font Awesome, CDN, JES. Then grab the first link, open the link tag in the head elements and paste the copied link here. Okay, Finally, let's run the project to the browser. For that, I'm going to use one of the VS code package is called a live server. It allows us to run the project live to the browser and also make updates and changed without refreshing the page. Okay, Let's go ahead and place the editor and the browser. Like so. And get started. We're going to build the project section by section. We'll create the HTML markup for each section and then style of them. So let's go ahead and create the HTML markup for the first section. First of all, I'm going to open a div tag, which is going to be the container. Then open section element with a class section one. So the first section will include a couple of different parts. We will have a navbar than the heading followed by the logo. And also we'll have this floating background. Let's go ahead and create the navbar. I'm going to open HTML5 nav element with the class now for that interfere link element with the class now per link. And as the first item, Let's insert your design. So overall we will have four nav items. Let's duplicate this line of code three times and then change the contents. The second one is going to be customers. Then we will have team and content. Okay, so that's it about now for next, I'm going to insert a div tag, which is going to be the floating background. I'm going to assign to each cluster floating PG. After that, I'm going to create a heading. So it's open H1 heading tag with a class section one heading. And as the content that's right here, creative design. And finally, let's create a logo which is going to be the Font Awesome icon. First of all, let's open div tag with the class logo. It's going to be the wrapper of the icon. And then insert your eye element with a class is FAS. I have a Bezier curve. Alright, that's it. Regarding this section, one of the elements are prepared. And now we have to start to write CSS. At first, I'm going to create some common and default styles. Actually, throughout this project, we're going to use two different Google Fonts. So we need to bring in the link. Let's go to the Google Fonts website. Then I'm going to search for font called monotone. Besides that, we need bellow type text. Actually, I'm going to select here a couple of styles. Let's select all these styles except Italian. Then grab the link from here and paste it in CSS file. Alright, so as we said, we're going to create some common styles. Therefore, I'm going to select every element using asterisk. First of all, let's get rid of default, margin and padding from every element. Let's set both of them to zero. Then I'm going to set box-sizing border-box. Also get rid off default underlying from the link elements using text decoration. None. Next one is going to be list-style-type. None. It will get rid off the default bullets from the LI elements. I mean the list items. After that, I'm going to remove default outline from every element. So let's set outline to none. Next, I'm going to define the font-family. Let's use here bellow ton, texts, cursive. And lastly, let's set font weight to 400. Okay, so as you can see, all the styles are applied. So I'll just project, I'm going to use RAM as the measurement unit. Right now, one RAM is equal to 16 pixels because by default the font size of the HTML element equals 16 pixels. I'm going to convert one RAM into ten pixels because I think it will be more convenient and simple to use. So in order to do that, we have to decrease the font size of the HTML and make it 62.5 per cent. So as you can see, the elements became smaller and now 1 g equals ten pixels 13. Project 2 - Create Waves Effect using Floating Background: Alright, so finally we can start styling the first section. Before we do that, I'm going to add some comments because I forgot it. Let's insert comments in the HTML file. We need here, section one, end of section one. Then in the CSS file, I'm going to insert here common styles and of common styles. And then we need to section one and of section one. Okay, let's go ahead and select section elements. First of all, I'm going to define width and height. Let's set with 200 per cent. As for the height, I'm going to make it 100% of the viewport. Then I'm going to set background to white. Actually, by default the background is white, but anyway, let's define it. Okay, now I'm going to take care of the floating background and to demonstrate how it works. At first, I'm going to make it smaller and show you how it works and then after that it will increase its size. So let's go ahead and select div elements, the class floating background. First, let's define width and height. I'm going to make both of them 70 RAM. Then change background color. I'm going to use RGBA value. Let's insert your 50231255 and then the opacity 0.8. Okay, so here we have a background. Next, I'm going to place it in the center. Let's set the position to absolute. That in order to position the element according to its parent element, I'm going to set position relative for the section element. After that, we need to define the top and left properties. Let's set up to 15%. As for the left property, in order to center the element perfectly, I'm going to use the calc function. We need to subtract half of the width of the elements to 50 per cent. In this case, the element will be centered horizontally. So we need here calc and the calculation is going to be 50 per cent -35 ramp. Okay, So right now That's it about the first background. Next, we need to create a second one. And I'm going to do that using the before pseudo element. So let's go ahead and select the floating PG followed by the before pseudo elements. First of all, let's define content, make it empty. Then I'm going to define width and height. Let's make both of them 100%. Also change the background color. I'm going to use the same color but with different opacity. So we need RGBA 50231255 and the opacity 0.1. After that, I'm going to set position to absolute. And then we need to define top and left positions. I'm going to make both of them zero. Right now the element is not visible because it is placed behind the first background. And in order to prove that, we can just change the left position, Let's make it, let's say 20%. So now you can see it clearly. Now the before, so the element I'm in the second background is visible. Okay, let's get back here zero. Next, we need to change the shape of those elements. We need to make them around it using border-radius, but we will use different values for each element. So for the main background, I'm going to set border radius to 45%. As for the second element, Let's make border-radius 40%. Okay, so now everything is ready. We just need to animate both elements. Then I'm going to use CSS keyframes. It allows us to create some CSS rules and then apply them to the elements using animation property. Let's create CSS keyframes. We need to add sign, then the keyword keyframes, followed by the name of the animation. I'm going to call it rotate. We're going to define two different steps, the starting point and the ending point. I mean 0% and 100 per cent. And we need to rotate the element by 360 degrees. So at 0%, I mean, at the starting point, we need to transform with the rotate function and with the value zero. As for the 100%, as the ending point. We need to transform, rotate 360 degrees. So during the animation, the element will rotate once by 360 degrees. Alright, so to apply this style to the backgrounds, we have to use animation property for both elements. At first, we need to define the name of the animation, which is rotate. Then we have to define the duration. It's going to be thirty-seconds. And also, we need to make the animation infinite. So let's insert your infinite. So as you can see, the elements are rotating and we have a nice animation effect. Now we have to change the size and the position of those backgrounds. By the way, we will use viewport width as the measurement unit because it will allow us to make the element responsive to different screen sizes. To demonstrate why we're going to use viewport width, Let's change RAM, make it viewport width, and also decrease the size. Let's make it, Let's say 40 viewport width. And also change here, 35 ramming to 20 viewport width. So if I make the window smaller than the background, will change their sizes accordingly. Alright? Actually, we need to increase the width and height. Let's make both of them. 150 viewport width. Also change 20 into 75 viewport width. Besides that, we need to fix the position. Let's set top position to -125 viewport width. Okay? So the background is placed correctly. We have here just one problem. We don't need this scroll bar down here. So in order to fix that, I'm going to assign to body element overflow x hidden. Alright, let's sit regarding floating background. It looks pretty much nice and modern, so I hope you like it. Now we have to take care of the rest of the elements. I mean, now for heading and the logo 14. Project 2 - Customize Landing Page: Let's go ahead and start with the now bar. We have four different navigation items, and I'm going to place them horizontally in a row, but each item will be aligned vertically. Let's go ahead and select navbar. Right now the navbar is placed behind the floating background. So in order to make it visible, I'm going to use the z-index property. But before that we need to define the position because otherwise the z-index property won't work. So let's set position to relative. And then use the index with the value that is going to be higher than zero. Let's make it 20. Okay, so then, now four is feasible and I'm going to change its position. Let's place it a little bit down. So I'm going to set top position to four ramp. Next, I'm going to create some space between the navigation items and also align them using Flexbox. So let's go ahead and set the display property to flex. And then in order to create space between the items, I'm going to just justify content property with the value spaced evenly. Alright, that's it about the navbar. Let's go ahead and customize in Alba link. Let's select it. And first of all, increased font size make it to point to RAM. Also, I'm going to make the links bolder than create some space between the letters. Make it point to RAM. And change the color. Let's set color to white. Okay, So the items look nice. As remember from the finished project, the item should be a line vertically, and once we hover over them, then they should place back horizontally. And also they should get a background color, right? In order to place them vertically, I'm going to decrease the width of the nanopore link. And besides that, I'm going to use one of the properties called Word Wrap with the value break word. So let's set width to 1.5 RAM. And then use word wrap with the value break word. Alright, that's it about the Napal link. Now it's time to create a hover effect. Once we hover over the item, we need to increase the width and also change the background color. So let's go ahead and select noble link with hover. Then set with 215 RAM. As for the background color, I'm going to use RGBA value. I mean, the white color. And the opacity points to. So once we hover over the items, then they will play it horizontally and also they will get a new background color. As you can see, the items are not aligned in the center of the box. And also we need a transition to get this smooth effect. So first of all, let's align them in the center. Using text-align center. We need two different transitions, one on hover and the second one for the link itself. So let's use transition with the values all 2.5 s. And also we need to transition all 0.5 s. This second transition will allow us to align the items vertically a little bit faster. All right, so everything works fine. We have here a nice hover effect. Actually, you may notice here that we're getting a scroll bar on the right side. But that's not a problem. It will be fixed once we proceed and add other section to the project. Okay, next I'm going to style a heading element. So let's go ahead and select it. At first. Let's increase its font size, make it eight RAM than change the font family. In this case, I'm going to use phoned called monotone corrosive. Next, I'm going to take care of the position of the heading. We have to place it in the center. For that I'm going to use position absolute than we need top position. Let's set it to 18 viewport width. And also I'm going to define a left position with value 50%. Right now the heading is not centered. We need to move it to the left side by 50 per cent of its width. And for that, we need to use transform property with Translate function. In this case, we need to translate with x-direction. And as the value I'm going to insert here, -50 per cent. Now, the element is perfectly centered. Okay, after that, Let's create some shadow effect. I'm going to use text shadow. We need 0.33 times and the color 888. Next I'm going to change the color. Let's make it white. Also. I'm going to set background color to white as well. And then increase the width of the element. Let's make it 85 rem. Okay, so now the heading looks much better. We need to center it inside of the box. And for that, Let's use text-align center. Also creates some space inside of the box. I'm going to set padding to 0.8 rem at the top and bottom for the left and right sides, Let's make it 1.6 RAM. And also I'm going to make corners of the box slightly rounded using border-radius with value 0.8 round. The last thing that I'm going to do is to decrease slightly the opacity. Let's make it 0.9. Alright, so with the heading we are done. Let's move on and customize the last item in this section, which is the logo. First of all, let's take care of its position. I'm going to place it down below in the center of the page. Let's use again the same technique that set position to absolute. Then define top position, make it 70%. As for the left property, we need to set it to 50%. And then we need to transform with the Translate X function. Let's insert here -2%. So the logo is positioned, and now let's go ahead and customize it. Let's select I elements and increase its font size, make it 15 RAM. Then I'm going to change the color. Let's use here RGBA value 50,231,255.8. And also I'm going to use text shadow. In this case, I'm going to use multi-level text shadow. So first instinct to your 0.1 RAM, 0.1 rem point to ram. And they called or D, d, D S for the second shadow. Let's make it on the left side. We need here negative values, -0.1 RAM, -0.1 RAM, then point to RAM. And the same call. Alright, that's it. The logo is customized and actually with the first section, we are done. Let's move on and take care of the next section. 15. Project 2 - Create and Customize Customers Section: The next section is going to be the customer section. It will consist of the heading and three different cards. Each of the cards we'll have a couple of different elements. I mean, the quotes, then the paragraph followed by these tours and the image of the customer with its name. Alright, let's go ahead and start to create the HTML markup. Let's insert new comments, section two and section two. Then open section element with a class section too. I'm going to create H1 heading elements with the class section heading and with the content. Customers. Then open div element, which will be the wrapper of the cards I'm going to assign to the class customers wrapper. Then we need another div tag, which is going to be the card itself that's assigned to your class customer. Okay, So as we said, we will have here a couple of different elements. The first one is going to be the quotes, which will be represented by the Font Awesome icon. So it's open. I element with a class is FAS, FAA, quote left. Next we need a paragraph with the class customer texts. And then let's instead to use some dummy text. After that, I'm going to create a customer rating. We will have five stars. Four of them will be filled. As for the last one, only it's half part will be filled. So at first, I'm going to open div tag, which is going to be the wrapper of the rating that's assigned to it. Class customer rating than open I elements and assigned with classes FAS, a star. I'm going to duplicate it four times. Then change class name for the last element. We need here, f k star, half out. Okay, That's it about the rating. Next I'm going to insert here and image. Let's select image from the images folder we need here costumer IMG one, and also assign class attribute to the image with the value customer IMG. After that, Let's open H4 heading tag with a class customer name. And insert here the name of the customer. Let's say Jane Lee. Alright, that's it about the first card. Overall, we will have three of them. So let's go ahead and duplicate the card twice and then make some changes. So here, for the fifth star, we need class a star because it will be filled as well, like the four other stars. Then change the name of the image we need here, img2, and also change the name of the customer. That's the Institute, Bob Smith. As far as the third card, the fifth star will be empty. So I'm going to change here the class name instead of FAS, we need here FAR. Then f a star, then changed the name of the image. We need here, three, and also as the name of the customer, let's Institute and brown. Alright, so all three cards are created and now we have to customize this section. Let's create a new comments, section two and section two. Then select section elements. And first of all, define width and height. I'm going to set with 200 per cent. As for the height, let's make it 100% of the viewport. Before I proceed to start this section element, Let's go ahead and decrease the size of the images because right now they are two bigger. So let's go ahead and select customer IMG. I'm going to set within height both of them to ten ramp. And also I'm going to use here object feed cover in order to maintain the quality of the image. Okay, After that, let's align elements inside of this section is in flux books. I'm going to set the display property to flex. Then we need to place items in the column, so we need to change the direction. Let's make a column. And then in order to create some space around the flex items, I'm going to use justify content, space around. Alright, that's it. Section on, it's customized. Next I'm going to take care of the heading element. So let's select it with the class section heading. First of all, I'm going to increase the font size. Let's make it ten RAM Also change the font weight. I'm going to make it bold. Then I want to transform text into uppercase N. Finally change the color, make it 999. So next we need to place the heading in the center. And for that I'm going to use text-align center. Also, let's decrease the opacity, make it 0.1. And lastly, add to the heading some shadow effect using text shadow with the values to RAM, to run for RAM and the color AAA. Alright, so the heading is styled. I think it looks quite nice. So let's go ahead and take care of the cards. First of all, I'm going to select the wrapper div element, which has a className, costumers wrapper. So I'm going to place the cards horizontally in a row. And for that, Let's use flexbox. Then in order to create some space between the flex items, Let's use justify content. We devalue spaced evenly. And then in order to align items center, Let's use and then items center. Okay, so the elements are aligned and now we need to start the car itself. Let's select it. At first defining the width, make it 35 RAM. Then I'm going to set height to 50 RAM. And also change the background color, make it e. Okay, next I'm going to align the elements inside of the card using Flexbox. So let's use display flex. Then we need to place elements in a column. So let's change the direction, make it column. And then after that, Let's centered the elements horizontally using align items center. Alright, besides that, I'm going to make the corners of the card rounded. Use border-radius with a value of 0.5 RAM. Also, I'm going to create some space inside of the card using padding. Let's set it to two RAM on all four sides. And finally use box shadow. I'm going to create multi-level shadow. Let's insert here one RAM, one RAM than to RAM. And the color or D, d, D. And also create a shadow on the left side. We need here minus one room, then again minus one rem to RAM and color E. Alright, so with the cards, we are almost done. We just need to align them in a different way. And then we'll customize the elements inside of the card. So I'm going to change the position of the first and third cards. I will place the first card a little bit down. And for that, use, again, flux books. I'm going to select the first card. So we need here costumer, followed by the pseudo-class called first-child. It will select the first card. And then in order to place a little bit down, we need align self with value flex end. It will place the card at the bottom of the container. So right now nothing is changed because we need to define the height of the wrapper. So let's assign to it height with the value 70%. So now the first card is placed a little bit down. Let's go ahead and move the third card as well. Actually, I'm going to duplicate this code and then change first-child, last-child. And also instead of flux, and we need to flex, start. Alright, so the cards are aligned. Let's go ahead and start to customize the items inside of the card. Let's start with the quotes. I'm going to select it, but it's class FA, quote left. Let's increase the font size, make it for RAM, and also change the color. I'm going to use here color f080f. Alright, next I'm going to take care of the paragraph. Let's increase its font size, make it 1.8 RAM. Then I'm going to create some space at the top and bottom using margin. Let's set it to 2.5 rem and zero. And also I'm going to justify the text using text-align in justifying. Okay, before I move on and style the ratings, I'm going to create a little indentation. So I'm going to select first letter of the paragraph. Let's select paragraph itself and then attached to it first letter, which is the pseudo elements. Then defined margin on the left side. Make it one ran. Okay, That's it about the paragraph. Let's move on and start the ratings. Select elements, increase the font size, make it to run. As for the color, Let's use again f080f. Okay, so the ratings look nice and we have to move on to the image. Let's create some space at the top and bottom of the image and also make it rounded. We need margin with values to run and zero. Then in order to make the image rounded, we need border-radius with value 50 per cent. Okay, That's silly about the images. Finally, we have to customize the name of the customer. So let's select this element. Increase the font size, make it to Ram, and also make the font slightly bolder using font-weight 700. Alright, so that's it. We are almost done with this section. The only thing that I want to do is to create a little hover effect. Once we hover over the cards, I want to change the shadow. So let's select card with hover. Then define box-shadow. The following values we need here to run twice, then three rem, and we call it d d t. Then we need minus two REM. Again minus two run three rem and the color II. Besides that, Let's use transition with the values box shadow and the duration 0.5 s. Alright, so we have here a nice hover effects. And actually with this section we are done. Now we can move on and take care of the next one. 16. Project 2 - Create and Style Team Section: In the next section we will have again cards. This section is going to be about the team. It will consist of the heading and three cards representing the team members. So each curve will include the image of the team member. Then we will have a full name with the position of the team member, followed by these skills. And also we'll have a button at the bottom of the car. Besides that, you can see here another button at the top right corner of the car. And if I click it, then this line will rotate and some information will display nicely. Okay, so that's it about this section. Let's go ahead and start to create the HTML markup. I'm going to insert your new comments, section three. And section three. Then open section element with the class section three and institute H1 heading tag. I'm going to assign to the same class that we used for the previous section heading. Because both of them will have the same styles. So let's assign to each section heading the content. I'm going to insert your team. Okay? Next we have to create cards. So first of all, open a div tag, which is going to be the wrapper. I'm going to assign to a class team wrapper. Then open another div, which is going to be the card itself. Let's assign to it class team member. The card will consist of a couple of different elements. The person one is going to be the image. So let's open image element and select team member one dot JPG. Also I'm going to assign to a class team member IMG. Alright, next I'm going to open the H2 heading tag, which will include the full name and the position of the member. So I'm going to assign a class team member name. Let's insert your Nick Smith. Then I'm going to open span tag and insert here the position of the team member. Let's write designer. After that comes skills. I'm going to create a list. Let's assign to a class team members skills. So overall we will have five list items. So let's create the first one. It's going to be Photoshop. Let's write here the abbreviation P, S, then duplicate LI element four times and change the content. The second one is going to be Figma. Then we will have HTML5, CSS3, and then Ai, which stands for Adobe Illustrator. All right, Next I'm going to create a button for projects. It's going to be the link element. Let's assign to the class projects btn and as the content right here, projects. Okay, now I'm going to take care of the story of the team member. At first, I'm going to create a button. So let's open div tag with a class story btn. Besides that, I'm going to use another attribute called title. It will pop up some texts once we hover over the button. So let's insert my story. Next, we need another div tag, which is going to be the line assigned to each cluster story btn line. And leave this div element empty. Okay, and so this part will consist of two different elements, will have a heading and the paragraph. Let's create a div element with class story. It's going to be the wrapper. Then open H4 hiding elements with a class story heading and the contents about me. After that we need paragraph with the class Tory paragraph. And then it's up to you, some dummy text. Alright, so the first card is ready, as we said, overall, we will have three of them. So I'm going to duplicate it twice and then make some changes. I'm going to change the name of the image. It's going to be team member too. Then change the full name we need here. Let's say Bob Brown. As for the skills, Let's insert here a, e After Effects, then PR, which stands for Premiere Pro. Then let's leave HTML and CSS as they are for the last item, Let's insert here, let's say Inkscape. Okay, That's it about the second team member. Let's make some changes. For the third one, we need here, team member three than the name John Doe? Next, I'm going to change the position we need here. Developer. As for the skills, Let's insert your JavaScript. Then React js. The next one is going to be no JS than MongoDB. And for the last item, Let's insert Python. Okay, So HTML markup is ready, and now we can start to customize this section. Let's go ahead and create new comments. Section three. And section three. Then define width and height. I'm going to set width to 100%. As for the height, let's make it 100% of the viewport. After that, I'm going to align the heading and the rapper using flexbox. We need to set display to flex. Then. We have to place flex items vertically in a colon so we need to change the direction. Let's make it column. And then after that, in order to create some space between the items, we need, justify contents with the value space between. And finally, create some space at the top and bottom inside of this section. Let's use padding. Let's set it to five RAM and zero. Alright, let's see about this section elements. Next we will have a heading which is already styled. And before we move on to the next element, I'm going to grab the styles from the previous section and paste them into common styles. We will make the code cleaner and understandable. Okay, let's go ahead and select team wrapper. I'm going to align cards horizontally in a row. So let's use Flexbox. Then. I'm going to create some space between the cards using justify content space evenly. And also, I'm going to place cards in the center vertically using align items center. Besides that, I'm going to define the height of the rapper as well because we're going to align cards like it was in the previous section. So let's set height to 70%. Okay? After that, Let's select the card itself. I mean, a team member. First, let's define this width, make it 35 RAM, and then change the background color. I'm going to use your color F, F, F, E, E. Okay, next I'm going to create the space inside of the card. So let's use padding with the following values. We need one run, then one RAM. Then make the padding to rem at the bottom. Then again, use one run. Besides that, Let's use box shadow. I'm going to use multi-level box shadow. So let's insert your 1RM, then again, one RAM than to ram, and they call it t, t, t. As for the second shadow, It's going to be placed on the left side. So let's use your negative values minus one RAM, then again minus one RAM to RAM and the color E. Alright? So before we proceed, I think would be better if we hide the story for awhile. It will make our working process more convenient. So let's select story and assigned to display none. Okay? So the story is hidden. And now I'm going to style each of the elements of the car. Let's go ahead and start with the image. I'm going to define its width. Let's make it 100 per cent. And also, I'm going to make the corners of the image slightly rounded using border-radius with value 0.5 ramp. Okay, next I'm going to customize the name of the member. So let's select it. First. Let's increase the font size, make it 2.3 RAM. Then I'm going to make phoned bolder using font-weight 700. Also change the color. I'm going to use your color 796717. And also create some space at the top using margin top with a value to run. Okay, so the name looks good. Let's move on. And customers the position of the member. Let's select name followed by the span. And then change the font size, make it 1.7 rem. Alright, let's move on and take care of the skills. I'm going to place list items horizontally in a row. So at first, select the UL elements. I'm going to use again flexbox. We need to set the display property to flex. It will place the flex items in a row Then, in order to create some space between the items, use justify content with a value space between. Besides that, I'm going to create some space at the top and bottom. So let's use margin, set it to one rem at the top than zero, than to ram at the bottom. And then again zero. Alright, so the list items are aligned and now I'm going to style them. Let's select LI element, change the font size, make it to 1.5 RAM, and then change the color. I'm going to use your color 5050, then again 50. Okay, let's go ahead and move on to the bottom. Let's select it. First of all, I'm going to change the background color. Let's use here F, a b348. Then change the color of the text, make it white. Also, I'm going to create some space inside of the button. Let's use padding and set it to 0.5 rem at the top and bottom, and then 1.5 rem on the left and right sides. Besides that, I'm going to make the button rounded using border-radius with value five rem. So as you can see the button all or D looks good. Let's go ahead and increase the font size. Make it 1.5 RAM. And also I'm going to create some space between the letters using letter spacing point to wrap. Okay, So that's it regarding the first part of the card. Next, I'm going to customize the button, which will be placed at the top right corner of the card. So let's go ahead and select story btn. And first of all, define its width and height. I'm going to set both of them to fall ran, and then change the background color, make it too. So here we have the button. First of all, we need to fix its position. So let's set its position to absolute. Then, in order to align it according to the parent element, we need to define the position relative for the card. And then define the top and the right properties. I'm going to set both of them to minus one rep. Okay? So the button is positioned in the right way. Let's make it rounded. Use border-radius. We devalue five rounds. Okay, So right now, That's it about the button. Now I'm going to take care of the line. So let's go ahead and select it. Let's define its width and height. Make with 100%. As for the height, I'm going to set it to 0.1 RAM. And also change the background color and make it white. So right now the line is not visible because it is placed at the top of the bottom. So we need to fix its position. Actually, I'm going to place it in the center of the button. And for that, Let's use Flexbox. So now the line is visible and the next thing that I want to do is to create a little space inside of the button. Let's use padding with the value 0.5 RAM. And also change the type of the coarser, make it pointer. Alright, so with a button, we're finally done. Now, I'm going to take care of these tori, which right now is hidden. So at first let's make it visible. I'm going to get rid off display none from here. So as you can see now, it's visible and we have to customize it. Let's define its width and height. I'm going to make both of them hundred percent. And then change the background color. Let's use your RGBA value. Let's insert here 2536969, and then the opacity 0.9. Next I'm going to take care of its position. It should be extended to the entire card. So let's set position to absolute. And then make left and top properties, both of them zero. After that, let's align the elements inside of this story using flexbox. I'm going to place them in the center. So let's set display property to flex. Then we need to change the direction, make it column. And then after that, in order to place the flex items in the center, both horizontally and vertically, I'm going to use justify-content center and align items center. Okay, lastly, let's create some space inside of the story. Let's use padding and set it to Ram Alright, with this Tory, I mean, with the wrapper, we are done. Let's go ahead and customize the heading and the paragraph. Let's select this tori heading and increase its font size, make it a full RAM. Then I'm going to make the font folder using font-weight 700. Change the color and make it white. And also, I'm going to create some space at the bottom using margin bottom, we devalue to run. Okay, after that, Let's select paragraph. Increase the font size, make it 1.8 gram. Then I'm going to change the color. Let's make it e. Also, I'm going to justify the text using text-align, justify. And then create some space between the letters using letter spacing 0.1 ramp. Alright, so the paragraph is customized as well. The only thing that I'm going to do is to create a little indentation. And for that, I'm going to use text. Indent property would devalue to run. Okay, that said regarding the story, now we have to make it work. But before that we have here a tiny issue. The button is placed behind this tori. So in order to fix that, I'm going to use the z-index property. We have to set it to some higher value than zero, let's say 50. Alright, so we are ready to make this button work. So then I'm going to use JavaScript. At first. Let's hide the stories for that. I'm going to use Transform with the scale function. In order to make the element hidden, we have to set the scale to zero. Okay, so as you can see, the storage or hidden, Let's go to the JavaScript file and first of all, selected buttons. For that, I'm going to use query selector, all method. We have to specify here the class name, story, BTN. Actually query selector all method returns the node list, which is an array-like objects. Each item has its index number and also the list itself as a length property. Okay, so we have to look through these buttons and attached to each of them and event listener with the click event. In order to loop through the list, I'm going to use one of the array helper methods call for each. It allows us to execute a function for each list item separately. So let's go ahead and use forEach. It takes one parameter which is going to be the callback function. And this function will be executed for each list item. This callback function itself takes one parameter, which is going to be the current item from the list, I mean the button. So let's insert your btn. And next we need to attach an event listener to the button. Let's specify here the type of the event which is going to be clique. And besides that event listener excepts the second parameter, which is the arrow function, I mean the callback function. And it's going to be executed once we quickly element. Okay, now let's go ahead and test if click event works, I'm going to run to the console. Let's say clicked. So if I inspect the page and switch to the Console tab and then click the button, we will get clicked in the console. So it means that everything works fine and now we have to make the story work. I mean, we have to display it unclick and also we need to rotate the button. So let me explain what we're going to do. We will create a new class and CSS, and we will define styles with this class. Then we'll add this className to the story and to the button itself. We will do that using the toggle method because we need to display the story on the first click and hide it on the next one. So as we said for that, we have to use a method called toggle. So let's go ahead and add a new class to the bottom. We need btn. And now we have to use one of the properties called class list. It gives us all the classes that the woman has. And also it allows us to access the different methods like toggle, add, and remove. We need class list followed by the toggle method. Inside of the parenthesis, we have to specify the class name. Let's call it change. So now if I display elements and fine story, BTN And then click it. You will see that it gets the class change onclick. And then on the next layer in is removed. Okay, now we can rotate the button onclick. Let's go to the CSS file and we have to select story btn with class change. Then use Transform with the rotate function. I'm going to rotate elements by 405 degrees. Then use transition with transform and with the duration 0.5 s. So if I click the button, then it will rotate nicely. Now, in the same way we need to display the story. Let's go back to the JavaScript file and add plus change to this story as well. Actually this tori is the sibling of the button. So I'm going to use one of the properties called next element sibling. We need btn followed by the next element sibling. Than again, we need to use class list followed by the toggle method. And as the class name, we need to insert your change. Okay, let's go to the CSS file and select story with change. Then use transform. In order to make the story visible, I'm going to increase scale back to one. And also use transition with the values all and 0.5 s. Alright, now if I click the button, then the story will display. So it works fine, but that's not what we want is considered. The scale is increasing from the center. But in our case, we need to increase it from the top right corner of the card. In order to achieve that, we have to change the transform origin property. By default, it is set to center and in our case it's going to be top right. Okay, so now it comes from the top right corner, but still, it's not what we want. In order to make the effect much nicer. I'm going to manipulate with border-radius. By default, I'm going to set the border-radius to 50 RAM. It belongs to the top left corner. Then we need zero for the top right corner. And then 50 ran for bottom right corner and for bottom left corner as well. Also, I'm going to set border radius to zero with Class change. Okay, so now everything works perfectly and before we finish this section, I'm going to do a couple of more things. I'm going to align cars differently. I'm going to place the first card at the top of the rapper. As for the third card, I'm going to place it at the bottom of the wrapper. So let's go ahead and select the first card using one of these pseudo-classes called first-child. In order to place the card at the top of the wrapper, Let's use a line self with the value flex start. Then let's duplicate this code. I'm going to change first-child, last-child. And also instead of flex start, we need to flex. And so as you can see, the cards are aligned. Then lastly, I'm going to create a little hover effect. Actually, I'm going to decrease opacity by default. Let's set it to 0.7. Then increase eight on hover. So let's select team member with hover. Set opacity to one and then use transition with the values opacity 0.5 s. Okay, so finally, we are done. We have finished working on this section. So let's move on and take care of the next one. 17. Project 2 - Create and Style Contact Section and Footer: The next section is going to be the contact section. Let's take a look at the finished project. So as you can see that the conduct section consists of three different parts. We have an image on the left side than a couple of input fields on the right side. And down below we have a little footer with some copyright texts. The first two parts, I'm in the image and input fields are placed in a 3D environment and they have a nice hover effect. Actually, I want to mention here one thing, while we were working on the project, I've noticed that sometimes for some reason the entire page goes to the left side, and it happens in Google Chrome. So the solution that I have thought of was to assign overflow hidden to the container instead of the body. Besides that, I'm going to define the width. Let's make it 100%. All right, that's it. Let's go ahead and start to create the HTML markup. I'm going to insert your new comments section for end of section four. Then open section element with a class section for this section element will consist of a couple of different parts. The first part that I'm going to create is heading, which will be similar to the previous section headings. So let's open H1 heading element with a class section heading. And as the content, let's insert your contact. Next. I'm going to take care of the form. But first of all, let's create a div tag which is going to be the container of the form. Let's use here class foam container. Then insert an image. I'm going to select Form IMG dot PNG from the images folder. And also let's assign to the image element class form IMG. Okay? After that, I'm going to create the form itself. Let's assign to it class contact form. So the formula consists of four different elements. We will have two input fields than the text area and also the submit button. So let's create an input element with type text. And also, I'm going to use your placeholder attribute with the value of your name. Then I'm going to duplicate this line of code. Change type attribute when it here e-mail. As for the placeholder, I'm going to insert here your email. Next comes text area. I'm going to assign to it a placeholder attribute with the value your message. Okay? After that, I'm going to create a submit button, and I'm going to do that using input elements, but with type submit. And also we need here value, which is going to be sent. Okay, so the last element that we need to create is the footer. I'm in the paragraph. Let's insert it outside of the form element with the class copyright. And then insert you some texts like copyright, followed by the copyright sign, which is going to be the HTML5 entity. We need here, ampersand, copy, semicolon, then code and create. And also all rights reserved. Alright, that's it. Everything is prepared to start, to start this section. Let's go ahead and insert new comments in CSS file. We need Section four. Then end of section four. Then select section elements and define its width and height. I'm going to set width to 100%. As for the height, let's make it 130% of the viewport. Okay. After that, I'm going to align the section heading, the form container and the footer using flexbox, we need display flex. Then we need to place elements vertically in a column. So I'm going to change direction. Let's make it call. Also. In order to create some space around the flex items, Let's use justify content space around. And then in order to place elements horizontally in the center, Let's use align items center. Okay, that's it about this section element. Let's move on and customize the phone container. At first, let's define this width and height. Let's make width Eight per cent. As for the height, I'm going to set it to 40%. And also change the background color. Let's use your color or E5, E9, F, F. Okay, now we need to place the image and those input fields side-by-side. And for that, I'm going to use again flux books. We need display flex. Then in order to place the elements in the center vertically, Let's use the align items center. And then create some space between the items using justify content space evenly. Alright, lastly, let's create a little shadow and make the container slightly rounded. So I'm going to use box-shadow. It's going to be the multilevel shadow. So let's insert here 0.3 RAM twice, then point for RAM and the color CCC. As for the second shadow, I'm going to make it on the left side. So we need to use negative values, -0.1 gram twice than zero point for RAM and the same color. And also use border-radius with the value 0.5. Ramp. Alright, now we can customize the image. So let's go ahead and select it. And let's first define its width. I'm going to make it 55 rem. Next I'm going to change the background color. In this case, let's use RGBA value. We need here 50231255 and the opacity 0.8. And also create some space inside of the elements using padding. Let's make it five rem on all four sides. Okay, let's move on and add a couple of more styles to the image. I'm going to decrease its opacity. Let's make it 0.8, also create some shadow effect. It's going to be on the left side. So we need here minus three RAM than three RAM for RAM and the color AAA. And also create little border-radius. Let's set it to 0.5 round. Alright, let's sit regarding the image now, I'm going to customize a form element. Let's select it and define its width. I'm going to make 45 RAM. Now, then change the background color, make it white. Okay, next, I'm going to align elements inside of the form. And for that, let's ease again Flexbox. Set display to flex, and then change direction, make it column in order to align elements vertically. So it's considered the elements are placed vertically in a column. Let's go ahead and add a couple of more styles to the form. I'm going to create space inside of the element using padding. Let's make it three RAM. Then set border radius 2.5 RAM. And also I'm going to create shadow. The values three RAM twice, and then for RAM with the color AAA. Alright, that's it about the form element. Let's move on and customize the input fields. Actually, we have here two inputs and the text area and also the submit button, which is represented by the input element. All of those elements will have a couple of common styles. So let's go ahead and select input and also the text area. First of all, I'm going to define margin and padding. We need to create space around the elements and also inside of them. So let's set the margin to one RAM. As for the padding, I'm going to set it to one rem as well. Next, I'm going to change the font size, make it 1.3 RAM. Also, I'm going to create some space between the letters. Let's set it to 0.1 RAM. Then get rid of default border. I'm going to set it to none. I'm going to make the corners rounded. Let's set border-radius to run. And lastly, I'm going to create box shadow. In this case we need shadow from the inner side. So I'm going to insert your inset. The value is 0.1, rem, 0.1 RAM, then point to RAM and the color di, di, di. And also I'm going to create the same shadow on the left side. So it seems to me to your inset -0.1 RAM, -0.1 RAM than 0.2 rem, and the same color. Alright, that's it about the common styles. Now I want to customize the text area The button separately. Let's start with a text area. As you know, we can change the size of the text area manually, but then it will mess up the layout. So I want to limit its width and height. So let's go ahead and select text area. I'm going to define max height and also min-height. Let's set max height to 15 RAM. As for the mean height, I'm going to set it to ten RAM. Besides that, I'm going to define max-width and min-width. So let's set a max width to 100%. As for the min-width, let's make it 70%. So now it works much better. Let's move on and start the submit button. Let's select it using the type attribute. So in this case I'm going to select Contact Form followed by the input elements. And in square brackets we have to specify type as Submit. Let's change the background color. Let's use here RGBA, 50231255 and 0.8 also change the color, make it white. Now the button looks much better. Let's go ahead and add to it some more styles. I'm going to make the font bolder. So let's set font-weight to Boulder. Also create some space between the letters. Make it 0.5 rem. And finally, change the type of the coarser, make it point. Alright, so the button is customized and before we continue, I'm going to add to it a little hover effect. So let's grab this selector from here. And to it hover. I'm going to change the background color. Let's make it 327ff. Then use transition with background color and with a duration 0.5 s. Alright, so the formula is customized. And before we move on and start the paragraph down below, I'm going to create some 3D effects. First of all, in order to create a 3D environment, we need to use one of the properties called perspective. We need to assign it to the parent element, which is the foam container. So let's set perspective 200 ran. In general, a prospective property defines how far the element is away from the user. Now, we need to rotate both elements. I'm in the image and the form. So I'm going to use Transform. With rotate function. We need to rotate elements vertically according to the y-axis. Let's Institute 20 degrees. Then we need the same transform rotate for the form. But opposite direction, we need -20 degrees. Alright, so as you can see, the elements are rotated and the only thing that we have to do is to create a hover effect. I'm going to move the elements a little bit up once we hover over them. And also, I'm going to change the shadow. So let's go ahead and select Form IMG with hover. Then use Transform. We need here Translate function with y-direction. So in order to move the element up, we have to insert your negative value, let's say minus two ramp. And also we need again rotate y with 20 degrees. Next I'm going to change the box shadow. That's Institute or minus five RAM than five RAM. Ram. And the color AAA. Also, let's use transition with the value is 0.5 s. Next, we need the same hover effect with the form element. So let's select Contact form with hover. Then I'm going to grab those styles from here. We need here to change 20 degrees into -20 degrees. And also instead of minus five RAM, we need five ran. Also, let's use transition with the values 0 and 0.5 s. Alright, so everything looks pretty nice. And the only thing that we have to do is to customize this paragraph here. So let's select it with the class name copyright. Then increase the font size, make it to Ram. Change letter spacing. Make it point to RAM. Also, I'm going to set color to 444 and create space at the top using margin top with the value five ramp. Alright, so that's it about the contact section. We are done with it and actually we have already created all the sections of this project. Now the next thing that I'm going to do is to make the NEP or work. And also I'm going to create a button which will allow us to scroll up smoothly 18. Project 2 - Create Scroll up Button and Make Navbar Work: Alright, let's go ahead and start with the navigation. We have here four different navigation items and their proper sections. So once I click the navigation items, then we should navigate to the relevant section smoothly. In order to do that, we have to connect nav links to these sections using h reference and ID attributes. The values of those attributes should match. So let's go ahead and assign to all nofollow links h reference attributes. The first one is going to be home. Then we will have customers. The next one will be team as body. Last one is going to be contact. After that, we have to assign to all four section elements, id attributes with the same values. So let's assign to the first section, insert your home. Then for the second section, it's going to be customers. Next we will have team. And lastly, contact. Okay, so now if I click the navigation items, then we will navigate to the proper section. But right now without any smooth effect. In order to fix that, we have to use one of the properties called scroll behavior, and we have to assign it to the HTML element. The value is going to be smooth. Now if we click the nav links, but we'll navigate smoothly. Alright, let's sit about the navigation now. As I promised, we're going to create a fixed button, which will allow us to scroll up to the first section. I mean home. At first, let's create a button in the HTML file. It's going to be the link element. Let's assign to it class, scroll up BTN. Next I'm going to insert here the Font Awesome icon. Let's assign to the classes FAS, FAA, arrow up. Then select it in CSS file. First of all, let's define width and height. I'm going to make both of them five rem. Then change the background color. I'm going to use here RGBA value. That seems to Tier 50231255 and the opacity 0.8. So the button is going to be fixed. It should be placed at the bottom right corner. So let's set position to fixed and then defined bottom and right properties both of them as five ran. Again. So here we have the button which has a fixed position. Let's add to it a couple of more styles. I'm going to make it rounded. Let's say border-radius to 50%. That increased font size. Let's set it to 1.6 RAM. Also change the color, make it white. Lastly, I'm going to place the icon in the center. So let's use flexbox. We need display flex, justify content center and align items center. Alright, so the button is customized and before I make it work, Let's add to it a little hover effect. Let's select button with hover. Once we hover over the button, I'm going to change its background color slightly. So let's use your color three-two e7ff, and then use transition with background color and with the duration 0.5 s. Alright, so everything is ready. Now, we just need to make this button work. And for that we have to specify the h reference attribute. We need to insert your home. Now if I scroll down and then click the button, then it will scroll up back to the first section. Alright, so that's it. We have finished building our project. The only thing that we need to do is to make it responsive to different screen sizes. 19. Project 2 - Make Project Responsive: Alright, so as you know, this project is built on the extra large screen size. I'm in. This coincides with 1920 pixels of width and 1080 pixels of height. Now we have to make it responsive to different screen sizes. Let's go ahead and inspect the page and switch to the responsive mode. So I have all already prepared different breakpoints in which we need to make some changes. So I'm not going to waste time on finding them. The first breakpoint on which I'm going to make some changes is going to be 1,400 pixels. As you see, the project needs some changes. So let's go ahead and insert new comments, responsive and unresponsive. Then create a new CSS media query and specify max-width as 1,400 pixels. So the first thing that I'm going to do is to move the floating background a little bit down. So let's go ahead and select it and change its top position. I'm going to make it -120 viewport width. Next, let's take care of the heading. So let's go ahead and select it. At first. I'm going to decrease the font size. Let's make it six RAM. Also change its position. Let's set top 225 viewport width. And also I'm going to change its width. Let's make it seven to run. Alright, so as you can see, section heading is looking good. Next, I'm going to decrease the font size of the navigation items slightly. So let's go ahead and select now by link and set its font size to run. Okay, That's it about the navbar. Let's move on and take care of the logo, which right now is to bigger. And also I'm going to move it a little bit down. So let's select Logo. Set its top position to 75 per cent. After that, I'm going to select the Font Awesome icon. Let's decrease its font size. Make it turn around. Okay, so that's it about the first section. Next, I'm going to take care of the second section. At first, let's customize the heading. I mean, all section headings. Let's select them. I'm going to decrease the font size, make it eight RAM. Also change margin bottom, make it turn around. Okay? So the heading looks good right now, each section has the height defined in viewport height. And I'm going to change it and make the height. Although in this case, this section will take up the height that is required to display the content. Alright, next, I'm going to take care of the cards. I want to place them on different lines. And also I'm going to create some space around each card. So first of all, let's select wrapper. I mean customers wrapper. In order to place the cards on different lines, we have to use flex wrap property and we need to set it to wrap. After that, Let's select cord itself. We need customer and define margin as five rem at the top and bottom and ten RAM on the left and right sides. Okay, that's it about the second section. Let's move on and do the same for the third one. Let's select Section three and said hi to auto. Then we need to select a rapper, I mean team wrapper and set flex wrap to wrap. Lastly, select the card itself, I mean team member and define margin as five rem at the top and bottom and trying to ramp on the left and right sides. Okay, lastly, I'm going to take care of the contact section. Let's increase the size of the background. Select Form container and set its height to 60%. Next, I'm going to hide the image at all. So let's select Form IMG Assigned to display what the value, none. So it's can see the image is hidden. Besides that, I think we no longer need to rotate the form itself. So let's select Contact Form. Then use transform property with Translate function. We need to set it to zero. And finally, let's change the hover effect. Right now the form moves up by two ramp and I'm going to change it and make it one. So let's select Contact form with hover. Then grab this line of code and instead of zero, Let's insert here minus one run. Finally, let's create some space at the bottom of the paragraph. Right now it has a margin top with the value five rem. I'm going to add to it margin at the bottom as well. So let's select Paragraph and defined margin with the following values. We need five rem at the top than zero on the right side for RAM at the bottom and zero on the left side. Alright, that's it. I think the project looks good on that breakpoint. So let's move on and find the next one, which I think is going to be 1,150 pixels. So let's go ahead and create new CSS media and specify a max-width as 1,150 pixels. At first, Let's move the floating background down. So let's select it and setup positioned to -110 viewport width. After that. As you can see, we need to customize the heading element. So let's select it. I'm going to set its font size to five RAM. Then change the top position, make it 30. Report. As for the width, I'm going to decrease H.263 round. Alright, lastly, let's decrease the size of the logo slightly. Let's select Font Awesome icon, and set font size to nine ramp. Alright, so as you can see, the first section looks good and actually all other sections look good as well. So I'm going to take care of the next breakpoint. The next one is going to be 950 pixels. So let's create new CSS media and specify here at the max width as 950 pixels. On those breakpoints. I'm going to take care of the first section again. So let's select floating background and again change its position. I'm going to move it. This will be down. So let's set top to -100 viewport width. And also take you off the heading. I'm going to change its position. Let's set top two for viewport width. Right? The only thing that I'm going to do on the break point is to increase space between the navigation items. So let's select now power and use justify content property with the values pace around. Okay, so that's it on the breakpoint. Let's move on and find the next one. I think it's going to be 750 pixels. So again, I'm going to create new CSS media query with the max-width 750 pixels. The first thing that I'm going to do on the break point is to decrease the font size of the HTML element. Let's set it to 50%. Actually, it will affect all the elements. So as you can see, the sizes of the elements are decreased. Next I'm going to move again the floating background a little bit down. So let's select it and set top position. In this case, two minus nine to viewport width. After that, I'm going to move the heading a little bit down as well. So let's select it. We find top property, make it 48 viewport width. And finally, I'm going to decrease space at the bottom of this section heading. Let's set margin bottom to five ran. Alright, so that's it. On a breakpoint, all these sections look good. And now we have to move on and make some changes on the last breakpoint, which is going to be 550 pixels Okay, let's create new CSS media and specify the max-width as 550 pixels. Let's decrease again the font size of the HTML element. In this case, I'm going to set it to 45%. After that, let's take care of the floating background and the heading as well. I'm going to change the top position. Let's make it -70 viewport width. Then select Section one heading. I'm going to change its top position. Let's make it 65. Viewport width. Also change the width, make it 42 RAM, and then decrease the font size, make it 3.5 Ran. Okay, so the first section looks nice. Next I'm going to decrease the font size of the section headings. So let's select them and set the font size to six RAM. After that, I'm going to customize the cards. As you can see, we need to increase the width of the cards. But actually each card all already has enough width. And the problem here is the margin on the left and right sides. So let's select customer. I'm going to define margin as five rem at the top and bottom and zero on the left and right sides. Let's do the same for team member as well. Let's set margin to five rem and zero. Alright, that's it about the second and the third sections. Cards look good. Let's move on and customize the fourth section. I made the contact section. At first, I'm going to change the height and set it to overall. Next, I'm going to hide the background. So let's select Form container. I'm going to set background color to transparent. And also get rid of box shadow. Let's set it to none. Alright, so it's considered background is hidden. Next, let's take care of the form itself. I'm going to decrease the box shadow. Let's select Contact Form and set box shadow to 1 g twice than to run the color AAA. Next, I'm going to change the box shadow on hover as well. Let's duplicate this code here at hover to contact form and change the values. Let's use here to RAM twice. Then three Ran. Okay, That's it about the form element. Lastly, I'm going to customize the paragraph and also I want to move the scroll button to the corner. So at first let's select paragraph with the class copyright. I'm going to decrease the font size slightly. Let's make it 1.8 RAM. Then set margin to five rem. And also use text align center. For the button. I'm going to set both positions. I'm in bottom and right to, to run. Alright, That's it. All these sections look good and we have finished working on it. I hope you enjoyed it and learned something new and interesting stuff. Let's move on. 20. Project 3 - Project Preview: Alright, so it's time to build our next project, which is going to be the clone of one of the most popular and commonly used websites called Paypal, will create the user interface of the different pages. I'm in the main page, login and sign up pages. Of course it won't be the exact clone with the full functionality. As I said, we will build just a UI with HTML, CSS, and JavaScript. Paypal looks different in different countries. The user interface is frequently changing from time to time. So do not worry if this is not the exact clone of the current UI. Alright, so before we jump right into writing the code, at first, let's describe what the project looks like. So as I said, we'll build three different pages, main login and sign up. We'll start with the main page. It will consist of a couple of different sections. The first section is going to be the banner with navigation. We have here several navigation items. If I hover over them, then the drop-down menu will display. It will switch once we hover over another navigation item. Also, we will have here two different buttons for login and sign up. If I click them, then we will navigate to the proper page. So the banner will be followed by the second section. It will include three different parts with Font, Awesome icons, some text elements and buttons. Then we will have this blue section with some different paragraphs. Next, we will build this little section here with an image and three different steps. Down below, we will have a button to sign up, followed by the footer. Alright, so let's see about the main page. Let's have a look at the login page. It will be quite similar to the original login page. We will have here two input fields with buttons. That's probably sign-up page. It will consist of two parts. On the left side, we will have several images of the customers. As for the right side, it will include two different options. Whether we want to create a personal or business account. Alright, so that's it about the project. As usual, we'll make it responsive to different screen sizes. If I inspect the page and switch to the responsive mode, you will see that it's responsive. One thing to note here, on smaller screen sizes, we will no longer have the drop-downs. They will transform to the menu like this. Okay, So that's it. We are ready to start to build the project. So let's move on. 21. Project 3 - Create and Customize Landing : Alright, so once we described our next project, now we can start to build it. I've created a new folder on the desktop called Business Agency, in which I have another folder for the images. Let's go ahead and open this folder in VS Code and create our working files for HTML, index or HTML. Then for CSS, Let's call it style.css and script.js. Then open the index.html file and create a basic HTML document. For that, as usual, I'm going to use one or two views code package is called emmet. We have to insert here an exclamation mark and then hit Tab or Enter. Here we go. We have here the basic HTML tags. First of all, I'm going to change the title. Let's insert a year business agency and then link the CSS and JavaScript files. Let's open link tag and specify the part of the file. That's probably JavaScript. I'm going to open script tag right above the closing body tag. And then let's specify the part of the file in the source attribute. So all three files are connected. Next, I want to bring in one more link. Throughout the project, I'm going to use the Font Awesome icons. So let's go ahead and search for Font Awesome, CDN, js. Then grab the link from here, open the link tag in the head elements and paste the link as the value of the h reference attributes. Alright, so now we can run the project to the browser for that. As you already guessed, I'm going to use one of the VS code package is called a live server. It allows us to run the project life for the browser and make the changes without refreshing the page. Alright, lastly, let's place the browser and text editor, like so. And get started. So we're going to build the project section by section. We'll create the HTML markup for each section and then we will customize it using CSS. The first part that we're going to build is going to be the landing. Let's open the gift tag, which is going to be the container. Then institute new comments for the section one. And then open section element with a class section one. So the first section will include the banner, which itself will consist of the heading, paragraph and a button. So let's open div tag with the class banner. Then inside that element, I'm going to open H1 heading elements with a class band we're heading. As remember, the heading will have the CSS animation. It will consist of four different text elements and they will be represented by the span elements. So I'm going to insert year span with a class heading one. And with the content business ideas. Let's duplicate this code three times and change the class names and also the content. The second one is going to be consulting. Then we'll have digital marketing. And the last one is going to be strategy. Alright, so that's it about the heading. Next, we need to create the paragraph. So it's open p elements with the class banner paragraph, and then interfere some dummy text. Finally, we need to create a button, so it's open button tag with the class banner btn. And then insert your content discover. Now. Alright, so the HTML markup is created for the first section, and now we have to start to write some CSS. First of all, I'm going to create some common and reset styles. Let's insert new comments, common styles. Of common styles. Then select every element using an asterisk. So first of all, I'm going to get rid off default margin and padding from every element. So let's set both of them to zero Then I'm going to set box-sizing border-box. Let's get rid off default outline. Let's set it to none. Next, I'm going to get rid of default underlined from the link elements. So let's use text decoration with the value none. And finally, I'm going to remove default bullets from the list elements. Let's use list-style-type, none. Okay, so as you can see, all common styles are applied to the elements. Next, I'm going to take care of the fonts. Throughout the project, we will use a couple of different fonts. Some of them will be Google fonts, but besides that, we will use other forms as well. Let's go ahead and visit the Google Fonts website. And then search for bellow dA2. I'm going to select all the different styles here. Next, I'm going to search for Oswald. Let's select all these styles as well. Then I'm going to grab the link and paste it in the head. So the Google fonts are linked. But besides that, I'm going to use other phones called made Saul maize, which I think is pretty nice. This phone is used in a couple of places in the project. I mean, for instance, the logo of the webpage. I've already installed this font. It is attached to this lecture. So you can go ahead and download it and install. Alright, the last thing that I'm going to do here, I mean the styles of every element is to define the font-family. By default, I'm going to set font family to buy Lu Da two courses. So as you can see, the font-family is changed. Throughout the project. We are going to use RAM as the measurement units. Right now, 1 g equals 16 pixels because by default, font size of the HTML element is equal to 16 pixels. I want to convert one ran into ten pixels. And for that we have to decrease the font size of the HTML elements. Let's set it to 62.5 per cent. Okay, so as you can see, all the elements became smaller. And now one RAM is equal to ten peaks. Let's go ahead and take care of the first section. I'm going to insert your new comments, section one. And section one. Then select the section element. First of all, let's define width and height. I'm going to set width to 100%. As for the height, let's make it 100% of the viewport. Besides that, I'm going to set the image as the full-screen background. So let's specify here the URL of the image. So we have Images folder and we need to select Dark BG dot jpeg. Also, let's insert here no repeats. Besides that, I'm going to set the background size to cover. So as you can see, this section element has a full-screen background image. So that's it about this section element. Let's move on and take care of the banner. First of all, I'm going to define its position and place it in the center of the page. So let's select banner and define its width, make it 100%. Then I'm going to set its position to absolute. Then in order to position it according to its parent elements, I'm going to set position relative for this section element. And then define top property, make it 20%. As for the left, I'm going to set it to 50 per cent. Now, for the perfect centering, we have to move the element to the left side by 50 per cent. So let's use Transform, then translate with x-direction, and we have to place here -50%. And finally, let's align text in the center using text-align center. Alright, so let's consider the banner is centered and now we have to customize each element. I made the heading paragraph and button. Right now, heading includes four different span elements. Eventually we're going to create nice animations with those span elements. But now we just need to customize the elements. So I'm going to comment this panel elements and leave just one of them. Then select the heading and create some space at the bottom. Using margin-bottom. For RAM. Also, I'm going to define the height of the heading. Let's set it to 20 ramp. After that, Let's select this span element itself. So first of all, I'm going to define the font-family. In this case, let's use font called Oswald san-serif that increase the font size, make it 12 RAM. And also, I'm going to define font weight as 400. Okay, Let's add a couple of more styles. The span elements, I'm going to transform text into uppercase. Also change the color and make it white. And besides that, I'm going to use little shadow effect. Let's use text. Shadow with a value is 0.3 rounds twice than 0.6 RAM. And as the color, I'm going to use RGBA value with black color and with the opacity 0.5. Alright, so let's see about the heading right now. Let's move on and take care of the paragraph. I'm going to select final paragraph. First of all, let's define a font size, make it a full rank. Then change the font weight. I'm going to make it 400. Also transform text into uppercase. Then change the color, make it white. And also I'm going to set background color to the RGBA value. Let's use here black color and the opacity 0.6. Okay, Let's move on and add a couple of more style to the paragraph. As far as I'm going to decrease the width. Let's make it 30%. Next, I'm going to create some space at the bottom. And also we need to center the paragraph for that. Let's use margin. I'm going to set it to zero at the top. Then we need aldol on the right and left sides. And for RAM at the bottom. After that, I'm going to create some space at the top and bottom inside of the paragraph using padding. Padding to one rem and zero, and also create some shadow effect. Let's use box-shadow with the values one ran twice than five RAM. And use again RGBA value with a black color and with the opacity 0.5. Alright, so the paragraph is customized. And next we have to take here of the bottom. Let's select it. First of all, let's define width and height. I'm going to set with 23 to run. As for the height, let's make it six RAM. Then change the background color. I'm going to use here linear gradient function. It will consist of two different colors. And I want the direction of the transition of the colors to be, to write. As for the colors, Let's insert here the first one, it's going to be 90 e0e. For the second one, I'm going to interrupt you 71010, and then change the color of the text, make it white. So here we have the button. Let's move on and add some more styles to it. I'm going to increase the font size. Let's make it to run and also transform text into uppercase. Then I'm going to make the button rounded using border-radius. Let's set it to three brand and also change the default border. I'm going to set border 2.1 ramp solid. And as the color, let's use 800505. Okay, After that, I'm going to create some shadow effects. I want to create shadow for the button and for the text as well. So let's use box-shadow are the values one run, then to run three RAM and the RGBA value with the black color and with the opacity 0.5. Next I'm going to create text shadow. Let's set the values 2.6 RAM than 0.3, 0.2 RAM. And use again RGBA with a black color and with the opacity 0.4. Finally, let's set the cursor to point. Alright, so the button is styled and it looks pretty nice. Now we have to add the animation and some effects to the banner elements. So let's move on. 22. Project 3 - Add Animations to Landing: Alright, so we have customized the landing page, and now we have to move on and add some animations to the banner elements. Let's go ahead and start with the heading. As you know, it consists of four different span elements. Right now three of them are commanded out and hidden. So first of all, let's make them visible. So here we see all four headings. Next, we have to place them on top of each other. And for that we need to set their position to absolute. So now the headings are placed on top of each other, but we need to place them in the center. For that, Let's use flexbox. First of all, I'm going to set width to 100%. And then we need display flex and justify content center. Alright, so that's it. The headings are positioned and now we have to move on and start to work on the CSS animations. So let me explain what we're going to do. We will move the headings close to the user with the translate the function in the 3D environment. And also we will hide them. This will be the default state of the heading. After that, we'll display the headings in order with some intervals. So first of all, let's create a 3D environment. For that, we have to use one of the properties called perspective. It shows us how far the element is away from the user. I'm going to assign it to the heading elements. So let's set perspective to 50 ramp. After that, let's move the headings and also high. Then let's use Transform with Translate Z function. I'm going to use here eight RAM. And then in order to hide headings, Let's use opacity zero. And besides that, in order to make the effect look nicer, I'm going to increase the space between the letters. Let's set that spacing to three ramp. Alright, so the headings are hidden, but right now we have here a tiny issue. This scroll bar appeared here down below. So in order to fix that, I'm going to use overflow hidden and we have to assign it to the heading element. So as you can see, we no longer have here the scroll bar. Now it's time to create the CSS animations. And for that I'm going to use CSS keyframes. We need to add sign followed by the keyword keyframes. And then we have to set the name of the keyframes. Let's call it animate heading. So we'll have a couple of steps. Let's take a look at the finished project. The first step, from 0% to 3%, the headings will be hidden. They will have the exact same properties that we assigned to them by default. I'm in those three properties. After that, from 3% to 25 per cent, we will display it back the heading to its default position. In the default position, I'm in the position when the heading is visible. So let's go ahead and define the first step. Zero per cent. We need here Transform, Translate Z eight RAM than opacity to zero. Egn lateral spacing, three rem. Next we need three per cent. So at three per cent, we need Transform Translate Z with zero. Then we have to make the element visible. Let's set opacity to one and also decrease lateral spacing. Make it 1.5 rent. After that from 3% to 25%, the heading will be visible. And then from 25 per cent to 28 per cent. During this 3%, it will hide again. We need here 25%. Let's grab those three values and paste them here. As for the 28%, we need to make some changes. We need to translate z function with a tram, then opacity zero and lateral spacing three ramp. And finally, from 28% to 100 per cent, the heading will be hidden. So at 100 per cent, we need Transform Translate Z, a tram, opacity zero, and letter spacing three ramp. So we will add this cycle to all the headings, but with different delay times. Therefore, they will display in height in order. Again, all the headings will perform the cycle, I mean hiding than displaying. And then again hiding. But they will do that with different delay times. Alright, so it's time to execute this animation. We need to select all headings separately and assigned to them animation properties. Let's start with the first heading. Let's assign to it animation, followed by the name of the animation, which is animate heading. Then we need the duration 12 s. Then the delay time is going to be 3 s for the first heading. And also we need to run the animation infinitely. So let's add here infinite. Okay? Let's duplicate this code three times and change the class names. And also the amount of delay time. We need heading 2.6 s. Then for the third heading, we need 9 s. For the fault hiring, we need 12 s. So as you can see, we have here a pretty cool animation effect. Alright, so that's it about the heading elements. Next, I'm going to create animations for the paragraph and the bottom, and also will create a nice and cool hover effect with the button. So once we reload the page, I'm going to display the paragraph and the button with some fake defects in order. So again, we have to define the CSS keyframes, and we have to execute those CSS rules with animation properties. Let's go ahead and start with a paragraph. First of all, I'm going to hide the paragraph by default. Let's set opacity zero and visibility hidden. So as you can see, the paragraph is hidden and now we have to create the CSS keyframes. Let's call it fade animation. Actually, we will use this animation for both elements. I'm in the paragraph and Boston as well. So overall, we will have two different steps. The starting 0.0 per cent and the ending 0.100%. The only thing that we need to do is to make the element hidden at zero per cent and make it visible at hundred per cent. So we need opacity zero and visibility hidden at 0%. As for the 100%, we need opacity one and visibility visible. So the keyframes are ready. Now we have to execute this code using the animation property. So let's assign it to the paragraph with the values fade animation 1 s duration, and then we need delayed time, 1.5 s. So now as you can see, the animation works. The paragraph appears with a fade effect. But we have here one problem. Once the animation is over, then the paragraph heights again. It gets, again, it's default styles. I mean opacity to zero and visibility hidden. We don't need that. We need the paragraph to maintain the styles that are defined on the second step. I mean, this tells that the 100%, in order to achieve that, we have to add here another value, which is the value of the animation film mode property, and it is called forwards. So now if I reload the page, then everything will work perfectly. Okay. So that's it about the paragraph. Let's do the same for the button as well. As we said, we need the same animation, so we don't need to define the keyframes over again. We just need to assign to the Bateson and animation property. But before that, let's hide the button. We need opacity zero and visibility hidden. And then use animation. With the following values. We need fade animation than the duration 1 s as the delay time. I'm going to use 2 s. And then we need again forwards. Alright, so now everything works fine and we have here nice animation effects. Alright, next I'm going to create a nice hover effect for the button. Let's take a look at the finished project. Once we hover over the button, then it will shine. This shining effect will be created with a pseudo element, will create these little white elements, and we will move on hover. So let's go ahead and select button with a before pseudo elements. First of all, as defined content, make it empty. Then I'm going to set width and height, both of them 200 per cent. As for the background, I'm going to use linear gradient function. So the direction of the transition of the colors will be from left to right. And I'm going to use three different colors. The first one is going to be transparent. Then we will have the white color. And the third one is going to be again transparent. So right now the element is not visible because we have to define the position. Let's set position to absolute. Then. In order to position it according to its parent element, which is the button, we have to define the position of the button as relative. Then use Top position, make it zero. As far the left property, I'm going to set it to -100%. Okay, so here we have the before pseudo elements. Before we make it work, I'm going to skew it a little bit horizontally. So let's use the transform with the skew x function. And as the value, Let's set it to 30 degrees. Alright, so everything is ready to create a hover effect. I'm going to move the before pseudo element to the right side on hover. So let's select button with hover, followed by the before pseudo element. And then set left property to 100 per cent. Besides that, we need to transition. We've values left end, 0.5 s. Okay? So everything works perfectly. The only thing that we need to do is to hide this element by default. For that, Let's use overflow hidden. Alright, so that's it. With the first section we are done. Now, I'm going to move on and create the napa 23. Project 3 - Create and Customize Navbar: Alright, so now we have to start to work on the navbar. Let's go ahead and take a look at the finished project. So here we have the Napa with a logo and the Menu icon. If I click it, then the navigation will appear with a couple of navigation items. They will have a little hover effect. We will change the color of the items on Harvard. Besides that, the Menu icon will transform into this arrow here. If I click it, then to nap or will close. Now Paul will have the animation as well. If we reload the page, by default, it will be hidden and then it will appear from the top. Alright, let's go ahead and start to create the HTML markup. I'm going to place the navbar outside of the container. So let's insert your comments, navbar and of Navarre. Then open HTML5 nav elements with the class nav bar. So the number will consist of a logo and the navigation items. Let's go ahead and create a logo. I'm going to open div tag. The logo is going to be the text code and create. The only thing that I'm going to do is to use a different style for three letters. So I'm going to wrap them using span elements. At first, let's insert a link tag. And then we need text code and create. I'm going to wrap the first letter with span elements. Then insert ODE. Then again, I'm going to wrap letter a and then wrap letter C with span. Next, let's open a div tag, which will include the navigation items. Let's assign to the class nav list. Then open link tag with the class nav link and with the content. So overall we will have five different navigation items. Let's duplicate link elements four times and then change the content. The second one is going to be about then we will have pricing. Next one is going to be blog. That's probably last one. Let's insert here contact. Alright, so that's it about the Napa. The other thing that I'm going to do is to create a menu icon. Let's insert new comments for menu. Then open div tag with the class menu. The menu icon will consist of three different lines. I'm going to create them using developments that's assigned to each class's line, which is going to be the common class name. And also we need here line one. Let's duplicate this line of code twice and change the class names. We need line two, line three. Alright, so that's it about the HTML markup. Now we have to start to start the novel. Let's go ahead and insert new comments in CSS file. Navbar then. And of navbar. Then select nav elements. I'm going to define width and height. Let's set with 200%. As for the height, I'm going to make it eight RAM, and also change the background color. Let's use here RGBA value with black color and with the opacity 0.9. Okay? So the number will have a fixed position. It will be placed at the top of the page. So let's set position to fixed. And also I'm going to set top position to zero. So now the navbar is hidden because it ended up behind the banner. In order to fix that, I'm going to use z-index property that's assigned to it some higher value than zero, let's say ten. Next, let's create some space inside of the navbar using padding. Let's set it to three rem on all four sides. Okay, So right now That's it about the navbar. Let's move on and customize the logo. First of all, I'm going to take care of its position. Let's select it and set its position to absolute. Then I'm going to define top and left properties. I'm going to set top position to 1.5 RAM. As for the left property, let's set it to four ran. Okay, next, I'm going to style the logo. So let's select link elements Then define font-family. In this case, I'm going to use font called may seoul maze. San-serif. Then increase the font size, make it 2.5 RAM. Change the color. I'm going to use you call or E. And also, let's create some space between the letters. Use ledger spacing with the value 0.1 ran. Alright, so now the logo looks much better, but as you can see, we have to customize those three letters. So let's go ahead and select span element. Let's define font-family. I'm going to use, again made soulmates san-serif. Than increase the font size. I'm going to make it 3.5 RAM. Also, let's make the phone bolder. Use font-weight, would devalue bold. Then I'm going to change the color. Let's use you call nine E 0, E 09. Alright, so that's syllable, the logo. Let's move on and customize the Menu icon. Before we do that, I'm going to hide the navigation items for awhile. So let's go ahead and select novelist assigned to display none. So as you can see, the navigation items are hidden. Let's move on and customize the Menu icon, which right now is not visible because we have here just a empty div elements. So let's go ahead and insert new comments for the menu. Then select the wrapper div elements with the class menu. First of all, I'm going to define width and height and also the background color. So let's set width and height, both of them to fall RAM. As for the background color, I'm going to use here, a temporary background color. Let's make it ie. Right now, the menu icon is not quite visible because it ended up behind the napa. I'm going to fix that using the z-index property. But as you know, in order to use the z-index property at first, we need to define the position for the element. The Menu icon should have a fixed position. So let's set its position to fix. And then define the index property. I'm going to assign to it some higher value, let's say hundred. Alright, so here we have the menu icon. We need to place it at the top right corner of the page. So let's go ahead and define top and right properties. And I'm going to set the position to, to ram. As for the right position, Let's make it four ramp. Alright, so the Menu icon is positioned. Now I'm going to take care of the lines. First. Let's get rid of this temporary background. And then select the line. Let's define its width and height. I'm going to set width to 100%. As for the height, let's make it point to ramp. And also use background color E. E. Now the lines are visible, but as you can see, we have to create some space between them and separate. I'm going to do that using Flexbox. So let's set display to flex. Then in order to place the lines vertically in a column, we need to change the direction. Let's make it column. In order to create some space between the items we need, justify content space evenly. And also, I want to change the type of the coarser once we hover over the menu. So let's assign to menu cursor pointer. Alright, so as you can see, the lines are separated. Next, I'm going to change the sizes of the first and third lines as they are smaller than the second line. So let's select line one. Set its width to 50 per cent. Then I'm going to duplicate this code, change line one into line three. And besides the width, I'm going to add here, margin-left auto, it will allow us to place the line to the right side. Alright, so that's it about the Menu icon. It's customized and position. And now I'm going to take care of the navigation items. Let's take a look at the finished project. So by default, the navigation items are hidden. Once we click the menu icon, then the number will expand to the entire page and the navigation items will appear with a fade effect. First of all, I'm going to customize the navigation items. We will make them look like so. And then we will program the Menu icon. So at first, let's expand an airport to the entire page. Right now it has a height set to eight RAM and I'm going to change it and make hundred viewport height. Alright, now it's time to customize the navigation items right now they are hidden. So let's get rid off display none. The first thing that I'm going to do is to position the items. I'm going to place them in the center. So let's set position to absolute. Then I'm going to define top property. Let's make it 25 per cent. The left position is going to be 50 per cent. And then in order to center the items, as you know, we have to use Transform with translate x function. And we have to move the elements by -50%. Alright, so the list is positioned. Now I'm going to align the navigation items vertically in a column. Let's use display flex. Then I'm going to place the items vertically in a column. Let's change the direction, make it column. And also, we need to align the items in the center using align items center. Alright, so that's it about the list. Now, I'm going to customize the navigation items. Let's select link elements. First of all, let's change the font family. I'm going to use here font made. So maize, san-serif. Then increase the font size, make it for RAM. Also, create some space between the letters using letter spacing 0.3 RAM and to change the color, make it white. So now as you can see, the navigation items look much better. Next, I'm going to create some space between them. Let's use margin and set it to two rem at the top and bottom and zero on the left and right sides. Alright, that's it. The navigation items are styled and now I'm going to create a hover effect. I want to change the color of the items on hover. So let's select nav link with hover and change the color. You see your color 99. And also we need to use transition for smooth effect. Let's assign to the color and the duration 0.4 s. Okay? So the hover effect works fine. And now we have to make the napa work 24. Project 3 - Make Navbar Work: Alright, once we customize in now pourer, now we have to make it work. First of all, I'm going to hide the navbar by default, I mean, to decrease the height of it. Then once we click the menu icon, it should expand. Besides that, we need to transform those lines into an arrow. First of all, let's hide the navigation items. I'm going to use opacity zero and visibility hidden. Next, I'm going to decrease the height of the nanopore and give it the default shape. Let's set height to a gram. Okay, so now it's time to program the Menu icon for that, I'm going to use JavaScript. Once we click the icon, the navbar should expand to the entire page and the navigation items should display. So let's go to the JavaScript file and let's first select the menu icon. I'm going to insert new comments. Now far off now bar, and then create a new variable, I'm going to call it menu. Let's select the menu icon using querySelector method. We have to specify here the class name menu. Besides that, I'm going to select it now port as well. So let's create another variable, call it now bar and select number using again querySelector method. Let's insert your class now. Okay, so now it's time to attach an event listener to the Menu icon. Let's specify here the click event and also pass an arrow function, which will be executed once we click the icon. So let me explain what we're going to do. We will add a new class called change to the navbar. Using this class, we will create new styles and CSS, which will be applied to the navbar onclick. Then on the next click, the class change will be removed, and therefore the new styles will be removed as well. We will manage this using a toggle method. In general, the toggle method adds a new class to the element if it doesn't have it, and removes the class if the element does have it. So in order to add a new class to the element, I'm going to use one of the properties called class list. It gives us all the classes that the element has. And also it allows us to access different methods like add, remove, and toggle. So let's attach class list to number and then use toggle method. Let's specify here the class name change. Alright, so that's it about JavaScript. Let's go ahead and write CSS. So we need to expand the napa onclick. Therefore, we need here now with class change. And then we have to specify the height. Let's make it 100 viewport height. And besides that, I'm going to use transition. Let's assigned to hide the duration 0.5 s. Okay, so now if I click the menu icon, then the navbar will expand and it will close on the next click. Alright, so next I'm going to display the navigation items. Let's use this technique. We need change. Not least. In this case, we need space here because not least is the child of the navbar. So let's set opacity to one, and then we need visibility visible. Besides that, I'm going to use transition with the values 0.7. S is the duration. And besides that, I'm going to use little delay time. So let's insert here 0.5 s. So if I click the icon, then the navigation items will display that on the next week, they will hide. But in this case without any fade effect. In order to fix that, we need again transition, but in this case for the nub least only. So let's specify here all the duration 0.2 s. Alright, so now everything works fine. And next we have to take care of the menu icon. As remember, we have to transform it into the arrow unclick. The first line should move down to the right side and then rotate. We don't have to touch the second line at all. As for the third line, we need to rotate it. Let's start with the first-line. At first I'm going to create the arrow and then we will make the icon work. Let's use Transform with the translate function. So in order to move the elements to the right side, I'm going to pass the year 100% as the value of the X-direction. As for the y direction, Let's set it to one rent So the line has moved down to the right side, right now both lines, I'm in the first and third lines are placed on top of each other. And now I'm going to rotate the first-line by -35 degrees. So we need to rotate function as the value. Let's pause here -35 degrees. So as you can see, the line is rotated but it's not placed correctly. The line is rotated from its center because as you know, the origin of the transformation is set to center by default. In this case, I'm going to change it and make, right? So finally, the first-line is played correctly. Let's move on and take care of the third line. We need to move it up and rotate. So we need to transform. Then translate function with y-direction. Let's insert here minus one RAM. And also we need to rotate function with the value 45 degrees. Like the first line, we need to change the origin of the transformation. Let's set it to, right? So now we have here the perfect arrow. Alright, now it's time to make the menu I can work. We need all of these things to happen. Once we click the icon, I'm going to use again class change. We have to add it to the Menu icon using the toggle method. So let's go to the JavaScript file and density U menu dot class list, dot toggle. And the class name change. After that, we have to select the first and third lines using class change. Let's grab those two lines and insert them here. Then select the third line and do the same. So as you can see, once we click the icon, then the lines transform into an arrow. The only thing that we have to do is to make this effect smoother. And for that, Let's use transition with transform and the duration 0.3 s. Okay, so everything works fine. We have here a nice and cool effect. Before we move on to the next part of our project, I'm going to do one more thing. I'm going to move the entire nail bar up and hide it. Then once we reload the page, I want it to appear smoothly from the top of the page, like it's in the finished project. So first of all, I'm going to hide the null part. I mean, I'm going to move it up. Let's set top position to minus eight RAM. Then we need to create CSS keyframes. I'm going to call it animate navbar. So overall we will have two different steps. We will move down then Albert from 0% to 100%. So at zero per cent, we need to use the default position. Let's set top two minus eight RAM. As for the 100%, we need top with zero. Okay, So the keyframes are ready. Let's use the animation property. We have to specify here the name of the keyframes animate navbar than the duration of the animation 1 s. And also I'm going to use a little delay time. Let's make it 0.5 s. If I reload the page than the navbar will move down smoothly. But eventually it will hide again. We have to maintain the position which we specified at 100%. In order to do that, we have to use one of the values of the animation film mode property called forwards. So now as you can see, everything works perfectly and we have finished working on the napa. Let's move on antique here of the next part of our project 25. Project 3 - Create and Style About Us Section: Alright, so we have finished working on the nav bar, and now it's time to move on and take care of the second section of our project, which is going to be the About Us section. Let's take a look at the finished projects and recall what this section looks like. So as you can see, we have here three different parts. On the left side of this action. There is placed the heading with a line. Then we have here the video with costume play, pause control. And down below we have a paragraph with some dummy text. Again, Let's go ahead and start to create the HTML markup. I'm going to insert new comments section too. And off section to then open section tag with a class section two. So as we said, this section will consist of a couple of different parts. The first one is going to be the heading. So let's open H1 heading element with the class section heading. And with the content about us. Then we will have the line which is going to be placed on the left side of the heading. Let's open div tag with a class section heading line. Okay, After that, Let's Institute the video. I'm going to open a div tag, which is going to be the wrapper of the video. Let's assign to the class video wrapper. Then let's insert the HTML five video tag with a class video. Then we have to specify the part of the video. It's placed in the Images folder. Let's select About Us video. So in general, you can create the controls from HTML using the attribute called controls. But in this case, I'm going to create the custom controls, which then will be programmed with JavaScript. So I think it will be more interesting. Let's open a div tag, which is going to be the wrapper of the controls. It will include the duration bar of the video and the Play button. So let's open another div tag. It's going to be the wrapper of the bar. Let's assign to it class video about wrapper. And then institute a new div elements, which will be the bar itself. Alright, so next we need to create the buttons. I'm in the play pause buttons. There will be created using the Font Awesome icons. That first let's open a div tag, which is going to be the wrapper. Let's assign to the class buttons. Then insert here a button tag in which I'm going to pass the Font Awesome icon. By default, I'm going to insert here just the Play button. We will switch it into the pause button later on using JavaScript. So let's assign to Ireland class is FAR FAA play circle. Alright, let's see about the video. The only thing that we need to do is to create the paragraph. So it's open P tag with the class section two paragraph. Inside the paragraph, we will have the text and also to Font Awesome icons for the quotes. Let's open the I tag with a class is FAS, a quote left. Then I'm going to institute some dummy text. And finally, let's pass here the second Font Awesome icon. We need classes, FIS, a quote, right? Alright, So the markup is created right now. It looks really messy, so we need to take care of it. The first thing that I'm going to do is to decrease the size of the video because right now it's too big. Let's insert new comments in CSS file for section two. Then select the video wrapper and defined width and height. I'm going to set with 200 ramp. As for the height, let's make it 50 ramp. Then select the video itself and define its width and height as 100%. And besides that, I'm going to use object feet cover. So as you can see now the size of the video is smaller and we can start to customize this section. So let's go ahead and select the section element. First of all, I'm going to define width and height of this section. Let's set with 200 per cent. As for the height, I'm going to make it 100% of the viewport. And also, let's define the background color. I'm going to make it dark gray. Let's use color to 22020. Okay, Next, I'm going to align the elements using Flexbox. Let's set display to flex. It will align elements horizontally. Then I'm going to place them in the center vertically. So use align items center And also creates some space on the left and right sides using padding. Let's set it to zero and tan ramp. Alright, that's it. Regarding the section element, Let's move on and customize the heading elements. Let's select section heading. First of all, I'm going to set font-family. Let's make it bold Sans-serif. That increase the font size. Make it turn around. And also change font-weight, make it lighter. Let's set it to 300 and change color, D. D. So as you can see, the heading is styled, but it doesn't look quite good right now because there is not enough space. I'm going to take care of the alignment of the video and the paragraph. I'm going to set the position to absolute for the video wrapper. Then we need position relative for this section element because it's the parent element. And we have to position the video wrapper according to the section. And then after that, define the top and right properties. I'm going to set top property to fibrin. As for the right position, Let's make it 15 ramp. Okay. So the video is positioned. Now I'm going to take care of the paragraph. Let's go ahead and select this element. Let's set width 200 ran. Then I'm going to set the position to absolute. Then defined bottom and right properties. I'm going to set bottom position to eight, ran as for the right position, Let's make it 15 ramp. So the paragraph is position as well. And now the heading looks good. Let's move on and customize the line that will be placed on the right side of the heading. So let's select section heading line. I'm going to define its width and height, set with 215 RAM. As for the height, I'm going to make it a point to ramp. And also change the background color, make it di, di, di. Okay, so here we have the line, as you can see, we have to create some space between the heading and the line. So let's use margin-right. I'm going to assign it to the heading element. Let's set it to for rent. Alright, so now we have a better result. Next, I'm going to add a shadow effect to the video wrapper. Let's use box-shadow with the values three, run three times. And then the RGBA value with a black color and with the opacity 0.7. Besides that, let's decrease the opacity of the video. Let's make it 0.3. Alright, so that's it about the video for now. It's time to move on and customize the video controls. First of all, I'm going to take care of their position. Let's select the wrapper div elements. At first defines which make it 100%. Then set position to absolute, and then defined bottom property, make it zero. Besides that, I'm going to change the background color. Let's use again RGBA value with a black color and with the opacity to 0.7. Okay, so the wrapper of the controls is customized. Next, let's take care of the button. And then after that, we will customize the video duration bar. Let's select the rapid development and create some space inside of it. I'm going to create space using padding. Let's set it to two rem at the top and then one RAM. Three times. After that, I'm going to stop the pattern itself. I'm going to get rid of default, background and border. Let's set both of them to none. And also change the type of the coarser, make it pointer. Right after that, Let's customize the icon itself. I'm going to increase its font size. Let's make it 2.8 RAM and then change the color. Make it white. Okay, so the button is customized, it looks good. And now I'm going to take care of the video bar. Let's select the video about wrapper, which is going to be a kind of background of the video bar. So I'm going to define its width. Let's make it 100 per cent. Then set height two 0.7 run and then change the background color, making black. After that, I'm going to take care of its position. Let's set position to absolute. And then we find top and left properties. I'm going to set both of them to zero. Alright, that's it about the background. Now, I'm going to style the bar itself. Let's set its height to 100%. So by default, the width of the video bar will be zero, and then we will make it work using JavaScript. But right now I'm going to give it some width, let's say 20 per cent. And also change the background color. Make it D3, 0819. Alright, so the video bar is customized. Before we make it work, I'm going to start at first paragraph down below. So let's set font size to RAM and also change the color. Use your color D, D, D. Next I'm going to create the borders at the top and bottom. So let's use border top, set it to 0.3, run double, and the color AAA. Then I'm going to duplicate this line of code. Let's change top into bottom. After that, I'm going to create space inside of the paragraph using padding. Let's set it to two RAM on all four sides. Alright, after that, I'm going to align the quotes and the text using Flexbox. I want to place them vertically in the center. So let's set display to flex. Then I'm going to use flex direction. Let's make it column. In order to center elements vertically and horizontally, we need to use justify-content center and align items center. So as you can see, the elements are aligned. Next, I'm going to justify the text of the paragraph. So let's use texts align with the value justify. And also let's create a little shadow effect using text shadow with values one ran twice than to run. And the RGBA value with the black color and with the opacity 0.7. Alright, so now it's time to take care of the codes. I'm going to place the first one on the left side. As for the second one is going to be placed on the right side. So let's select left quote. In order to place it on the left side, we have to use align self with a value flex start. Besides that, I'm going to add here font size five rem, and also creates some space at the bottom. Let's set the margin bottom to, to run. Alright, let's go ahead and take care of the second element. I mean, write code. In this case, we need to align self to be flex and then increase the font size, make it five ran. So the quotes are customized and the paragraph overall looks good. Lastly, I'm going to decrease the line height slightly. So let's set it to 1.5. Alright, so will the paragraph we're done. It's customized. And now I'm going to take care of the video. I mean, I'm going to make it work using JavaScript. 26. Project 3 - Make Custom Video Controls Work: Alright, so we have customized the About Us section and now I'm going to make the video work. This part will be created with the help of JavaScript. Before that, I'm going to do a couple of things in CSS. I want to move the controls a little bit down, and also I'm going to hide it partially. Once we hover over the video than the controls will appear. In order to move the controls, I'm going to use Transform with Translate function. In this case, we need y-direction. So as I said, I'm going to hide the controls partially. So we don't need to move the element by 100%. In order to achieve that, I'm going to use the calc function. I'm going to subtract point for RAM to 100%. So in this case, little part will be visible of the controls. So let's consider the controls are placed down and in order to hide them, I'm going to use overflow hidden. Alright, so the controls are hidden. Next, I'm going to display them once we hover over the video. So let's select Video wrapper with hover, followed by the controls. And I'm going to set transform translate y to zero. Also, let's use transition. We need to transform 0.4 s. Okay? So the hover effect works fine. Next, I'm going to make the controls work. Let's go to the JavaScript file. First of all, let's entity your new comments section to video. Then end of section two video. Then I'm going to create a couple of different variables to select several elements. The first one is going to be the video. So let's create a new variable and select video using query selector method. The next one is going to be button. So let's create a new variable, btn and select Hi Elements. Let's select it using querySelector method. And also I'm going to select a video bar. We will take care of it a bit later. But anyway, let's select it as well. Let's create a new variable, I'm going to call it bar, and then select elements using again query selector method. Alright, so all needed elements are selected. Next I'm going to create a function in which we will program whether to play the video or pause. And we will execute this function once we click the buttons. So let's create a new function. I'm going to call it play pose. So when we click the Play button, we have to switch it to the pause button. And also we need to play the video. In order to play the video, we can use one of the built-in methods called Play. So we need video dot play. Now to see the results, we have to call this function, but we have to call it once we click the icon. So I'm going to attach an event listener to the button with a click event. Also, we need to pass here the arrow function, which will be executed once we click the button. So now we have to call the function playbooks. So if we click the button, then the video will play. Right now the button is not changing. So let's go ahead and take care of that. As you know, the button is represented by a Font Awesome icon. So once we click it, we have to change the class name so that it would transform into the pause button. I'm going to change the class name of the button using one of the properties called the class name. We need btn dot class name. And we have to pass here the classes FAR, FAA, Pose, circle. Now if I click the button, it will switch to the pause button and the video will play. But then on the next click, nothing will happen. So once we click the Pause button, we have to pause the video. And also we have to switch the button back to the plate. So we need to use an if else statement in which we have to define if the video is paused or not, then we have to set the class names of the icons accordingly in order to check if the video is paused or not, I'm going to use one of the properties called post. So we need video dot post as the condition. So if it is true, it means that the video is not playing and the play icon is displayed. So we need to play the video and switch the icon to the pause button. We have to institute those lines. If this condition is false, then it means that the video is playing. So we have to pose it and we had to switch the icon to the play. But let's create an else statement Then copy those two lines and paste them in the else statement. So instead of the method play, we need pose. And also we have to change the class name instead of posts, we need clay. Now if I click the Play button, then the video will start to play and the button will change. And then on the next click, the video will pause and the icon will switch back to the Play button. So everything works fine so far. Next, I'm going to change the opacity of the video depending on whether it's playing or not. If it is post, then we will keep the opacity as it is. But if it is playing, then we will increase it. Right now the opacity is set to 0.3. So we have to increase it in the if statements because here we are saying that we have to play the video, video dot style dot opacity equal to, let's say 0.7. And then we need to make the opacity 0.3 in the else statement because we're going to pause the video. So I'm going to grab this line of code. Let's paste it here and change the opacity. We need 0.3. So as you can see, everything was fine. The only thing that we have to do is to make the effect smoother using transition. Let's use transition with opacity 0.3 s. Alright, so now we have a much better result. Now, it's time to take care of the video bar. Right now, it has some fixed width. So at first, let's set it to zero. So we have to increase the width of the video bar according to the update of the video duration. I'm going to use one of the DOM events called time update. This event occurs once the video or audio is playing. So let's attach to the video and event listener with a time update. Events. Also pass here, the arrow function. On every update of the time of the video. This function will be executed. Alright, so now we have to define the width of the video bar. For that, I'm going to use two different properties. They are current, time and duration. At first, I'm going to show you them in the console. Let's run through the console. Video dots, current time, and video dots duration. Let's inspect the page and switch to the console tab. So once I click the Play button, then we'll get the current played amount of the time and also the duration of the video. In order to define the width of the video bar, we have to divide the current time of the video by the duration. And we have to express this amount in percentage value. So let's create a new variable, I'm going to call it bar. Width is going to be equal to video doubts, current time divided by video dot duration. Now, we have to multiply this amount 200 and express it in percentage. The result of this calculation will be the width of the bar. So let's insert your bar dot style dot width equal to bar width multiplied by 100, followed by the percentage sign. Okay, so now if we play the video, then the video bar will start to load. So everything works fine right now the loading effect doesn't look quite smooth. We need to use transition. So let's Institute here width than the duration 0.2 s. And also I'm going to make transition linear. Okay? So now we have a better results. Actually we're almost done with this section. We just need to add a couple of things to the video. Once it is played. I mean, once it is ended, I want to change the icon back to the play button. And also I'm going to decrease the opacity in order to figure out whether the video is ended or not, I'm going to use one of the properties called ended cell. Let's create an if statement where we have to check if the video has ended or not. So as the condition we need here, video dot Android. So if this condition is true, we have to change the icon. We need btn dot class name. It's going to be FAR a play circle. And also we have to decrease the opacity. We need video dot style dot opacity, 0.3. So if I play the video and wait until it is, and you will see that the icon is changed and also the opacity is decreased. Alright, so finally, we have finished working on the second section. Let's move on to the next one. 27. Project 3 - Create and Customize Pricing Cards Section: Okay, So we have finished working on the second section, which was an About Us section. And now we have to move on and start to build the next one. The next section is going to be the pricing section. Let's recall what this section looks like. So we have here a heading and for different pricing cards with different pricing offers were able to drag them with a mouse, will create this effect using one of the JavaScript plugins called swipe or the JS. First of all, I wanted to create and customize the cards. And then we will use the plugin and make them work. Let's go ahead and start to create the HTML markup. I'm going to insert new comments, section three. And section three. Then open section element with the class section three. So as we said, this section will consist of the heading and for pricing cars. The heading with its line will be similar to the heading that we created in the previous section. And also it will be similar to the next sections heading. So I'm going to open the H1 heading tag and let's assign to it a similar class name, section heading. As for the content, I'm going to pass your pricing than open a div tag with the class section heading line. So as you can see, the heading all already has some styles. Alright, let's move on and create the cards. Let's open a div tag, which is going to be the wrapper of the cards. I'm going to assign it to class pricing card wrapper. Then we need another div tag for the call itself. So each car will consist of a front side and backside. Let's open the div tag, which is going to be the front side that's assigned to the cluster pricing card front. The front side will consist of a couple of different elements. Will have two headings for the name of the author and the price. Then they will be followed by the list in which you will have some offer items with Font, Awesome icons. And lastly, we will have a button. As for the back side, we'll have just a single link element. Alright, let's go ahead and insert here all these elements. I'm going to start with the headings. Let's open H1 heading, tag, Class pricing card heading. This is going to be the common class name, but besides that, I'm going to add to it another class for some individuals tiling. The first column is going to be about a free offer. So it's assigned to it a class heading free. Okay, Next we need another heading element for the price that's open. H3 heading tag with the class pricing card, price. And the price, I'm going to insert you zero. That's syllable the headings. Let's move on and create the list. I'm going to open UL tag with the class pricing card list. And also I'm going to use another class for the individual styling. Let's insert your least free. Then open LI tag. I'm in the list item. So each list item will consist of a Font Awesome icon, and some texts. Let's open I tag with a class is FAS, FA, check. It's going to be the check mark. Then open span tag. Actually, I'm not going to specify here different items. Let's just insert pricing card item. You can feel free and use different items, but I'm not going to waste time on that. So in the first card we will have five list items. Let's duplicate the LI element four times. The only thing that I'm going to do is to change the Font Awesome icons for the last three items, the first two icons will be checkmarks. As for the last three icons, they will be accessed. So we need FIS f a times. Alright, so the last element on the front side is going to be a button that's assigned to the cluster pricing card, btn. And also we need here another class for individual styles, btn free. And as the contents I'm going to insert here choose plan. Okay, so that's it about the front side. Let's move on and take you off the backside. Let's open div tag with a class pricing card back. And also we need here another class back free. Let's insert you link elements with the content order now. Okay? So here we have the first card. Overall, we will have four cards, so I'm going to duplicate the code three times. Then we need to make some changes So the second card is going to be basic. Then I'm going to change the class of the heading is going to be heading basic than we need here. Different price, let's say $299. Also change the class of the list elements we need here, at least basic. As for the Font Awesome icons. In this case, the first four items is going to be checkmarks. As for the last one, it should be x. Also, let's change the class of the button. We need here, btn basic. And then we need you back basic. Alright, let's see about the second card. Let's move on to the third card is going to be standard. Also change the class of the heading. We need heading standard. Price is going to be $699. Then change the class of the UL elements. We need at least standard. So in this case we will have all items with a checkmark icon. Next, I'm going to change the classes for the button and for the backside. We need standards in both cases. Okay, let's move on to the last chord. It's going to be premium. Change the class of the heading. We need heading premium also changed the pricing. We need here $999. Then we need here at least premium. So in the case of premium offer, we will have six items. So let's duplicate LI element wants. Make all icons check marks. Next, let's change the classes of the Bateson and backside. We need premium. Alright, so that's it regarding the HTML markup, all the elements are created and now we're ready to start styling. Let's insert new comments in the CSS file for Section three. Then select a section elements. First of all, define within height and I'm going to set width to 100%. As for the height, it's going to be hundred percent of the viewport. And also change the background color. So I'm going to use color 0, 3o7oe. Okay, next I'm going to align the elements horizontally in a row using Flexbox. Let's set display to flex. And also place the elements in the center vertically. For that we need to align items center. And lastly, I'm going to create some space on the left side inside of this section, let's use padding left with the value Tan ramp. Okay, so as we already said, we don't have to touch the heading and the line. They are all of these tabs. The only thing that I'm going to do is to grab the CSS code of both elements and put it into the common styles. Okay, Next I'm going to select the courts wrapper. I'm going to place the cards side-by-side horizontally. At first, let's define the width of the wrapper. I'm going to make it 100%. Then set display to flex and also create space between the cards using justify content space evenly. Alright, so as you can see, the cards are aligned and now I'm going to start to style them. Let's select the card and define its width and height. I'm going to set width to 28 RAM. As fairly high, it's going to be 45 RAM. And also change the background color. I'm going to use here color 181, B1. Alright, so now the cards are all already visible quite well. Next I'm going to make them rounded, and also I want to add them a shadow effect. So let's set the radius to one RAM. And then use box-shadow with values to RAM, twice than six RAM. And as the color, Let's use RGBA with a black color and with the opacity 0.7. Okay, so that's it about the card. Next, I'm going to take care of the front side. So let's select it and define it within height. I'm going to make both of them 100% Next I'm going to align the elements using again Flexbox. Let's set display to flex. That in order to place the items vertically in a column, we need flex direction to be column. Then I'm going to place them in the center horizontally. For that, Let's use align items center, and finally create some space between them using justify content. Space between. Okay, so that's it about the front side. Next I'm going to take here of the heading. I'm in the first heading element of the car. Let's select it. First of all, let's define its font size, make it to run. Then I'm going to make the font lighter. Let's set font way to 300. And also change the color, make it white. Okay, next I'm going to define the width and height of the heading. And also I'm going to change the position of the texts lightly. So let's set with 200 per cent. As for the height, let's make it five Ram. Next, I want to place the text vertically in the central using Flexbox. So I'm going to set display to flex and then align items center. Lastly, let's create some space on the left side of the text using padding. Padding left. Let's set it to run. Okay, so now it's time to add the background color to the heading elements. As you remember, they have different background colors. I have assigned individual class name to them. So let's go ahead and select them separately and define the background colors. I'm going to start with a heading three. So the background color will have some gradient. Let's use linear gradient. The direction of the transition is going to be from left to right. As for the callers, let's use here 087285. And also we need ODA five, D3. The first heading has the background color. But right now we have here a tiny issue. At the top-left and top-right corners. We no longer have the border radius. So let's go ahead and fix that. I'm going to use border-radius. Let's use up to you the following values. We need 1 g twice, I mean, one RAM as the value of the top-left, top-right corners. As for the rest of the values, that should be zero. Alright, so now the problem is fixed. Let's move on and change the background colors for the rest of the headings. I'm going to duplicate this code three times and then make some changes. The second heading is going to be basic. And as the colors, Let's use 946809. Then the next one is going to be bd, be AOE. Then we will have standard. As for the colors that are going to be a 1014. Then we will have a0 to a3. Be freebie. For the last heading is going to be premium with the following colors. 0748 and then three be286. Alright? So all heading elements have the proper background colors. And actually with the first headings, we are done. Let's move on and take care of the price. Let's select pricing card price. First of all, I'm going to define the font-family. Let's use your phone calls made so maize san-serif than increase the font size, make it seven RAM. Make the font lighter. Let's set it to 300. And then change the color, make it white. Alright, so the price looks nice. Next we have to take care of the list items 28. Project 3 - Make Pricing Cards Work using Swiper: Alright, let's move on and customize the rest of the elements of the card. Next we have the list, which consists of the Font, Awesome icons, and some text values. First of all, let's select the island and increase its font size, make it 1.8. Run. Next, let's take here of the span elements. Let's select them. I'm going to define font size, make it 1.8 RAM. Then set the font-weight to 300. And also create some space between the letters. Make it 0.1 rem. Alright. So now I'm going to create the same space between the icons and the text elements. For that, let's define the width of the I elements. I'm going to make it three ramp. Okay, so now it's time to change the colors of the list items. As a guess, I'm going to define a different color for each list. Right now, each list element has the individual class name. So let's go ahead and select list items separately. We need at least three, followed by the LI element. In this case, we will change the color for both elements. I'm in the Font Awesome icon, and also the span element. Let's set color to zero, d Phi d three. Let's duplicate this code three times and then change the class names and the callers. So we need least basic. And the color is going to be BD BA II. Then we will have list standard. And the color is going to be a0 to a3. Be freebie. Finally, we need at least premium with the color 3286. Alright, so the list items look nice. The only thing that I'm going to do is to increase space between them slightly. So let's select LI elements and set margin bottom 2.5 ramp. Okay, so that's it regarding the list, they look good. And now we have to move on to the next element, which is going to be a Batson. So let's select it. First of all, I'm going to define its width and height. Let's set with 218 RAM. As for the height, let's make it five RAM. Then create some space at the bottom using margin bottom with the value three Ran. Okay, let's move on and add some other styles to the button. Let's make it rounded using border-radius with a value of three RAM. Also am going to get rid of default border. Let's set it to none. Then increase the font size of the text. Let's make it a 1.6 RAM, and also make it uppercase. Alright, So the buttons look nice. Now, like other elements, we have to define different background colors for the buttons. They have the individual class names as well. So let's go ahead and select them separately. I'm going to start with a BTN free. Let's set the color to zero, DA five, D3. The background color of the first button is changed. Actually, we need to change the color of the text. And also I'm going to add to it a little shadow effect. Let's set color to white. Then use text shadow with a value of 0.3. Run twice than we need 0.6 RAM. And the RGBA value with the black color and with the opacity 0.5. Okay, so now we have a much better result. Let's go ahead and change the background colors for the rest of the buttons. I'm going to duplicate this code three times and then change the class names and the colors. The second button is going to be btn basic. Actually, we need the same colors which we used for the list. So I'm going to grab them from here. The next button is going to be standard. Let's copy the color. And the last one is going to be btn premium with these color. Alright, so that said regarding the buttons and actually with the front side of the card, we are done. Next, I'm going to customize the backside. And after that we will use the JavaScript plugin called swipe or dot js. First of all, I'm going to rotate the card by 180 degrees Display the back side of the card. So we need rotate with y-direction and as the value as infinity here, 180 degrees. Next, I'm going to select the backside. First of all, let's define this position. I'm going to set it to absolute. Then define top and left properties. I'm going to set both of them to zero. Then in order to expand the backside to the entire card, we have to set width and height, both of them 200 per cent. And then use some temporary background color. Let's set it to white. So here we have the backside. I'm going to place the content in the center using Flexbox. As you know, we need to use display flex, followed by the justify-content center and align items center. So as you can see, the link element is displayed in the opposite direction. So we need to rotate it. Let's use Transform, Rotate Y as the value less Institute 180 degrees. And besides that, I'm going to make the backside rounded. We need border-radius with value one ran. Alright, so now it's time to customize the link element. But before we do that, I'm going to change the background colors. All four cards should have the different background colors. They will be similar to the background color that we used for the first heading elements of the card. So let's select bug-free and then go ahead and grab the background color from the heading element. Let's duplicate this code three times. We need to change the class names. The second one is going to be back basic. Then again, go up and grab the background color. Next, we will have standard. And finally, we need to back premium. And also I'm going to get rid of the temporary white background color. Okay, So it can see all the back sides of the cards have different background color. Finally, I'm going to start the link elements. Let's select it. I'm going to increase its font size. Let's make it 2.5 rhyme. And also set the color to white. Alright, so the cards are customized. I mean both sides, front and back. And now it's time to use the Java plugin called swipe or the JS. Before that, I'm going to rotate back the cards. So let's get rid off transform with Rotate function from here. Let's go ahead and visit the website. I'm going to search for swipe or dot js. So this is the website of this plugin. Let's go ahead and click the demos. So here we can check out different demo versions of this slider. On the left side of the webpage, we have a sidebar where you can find lots of different versions of this slider. I'm not going to waste time on that. You can feel free and try them out. I'm going to use slider called 3D cover flow effect. So here it is. In order to use this slider, there are a couple of different ways. You can either download the source files and link them to the project, or we can simply use the CDN links. Let's go to the first page. I mean, get started. So here we have the CDN links for CSS and JavaScript. You can find here two versions of the plugin. The first one is irregular. As for the second one, it's the minimized version. I'm going to grab the first links. So we have to paste the CSS link in the head elements. As for the JavaScript link is going to be placed down below. Alright, Next, let's go back to demos and Click the source code here. We will navigate to a GitHub page where you can find the source code for HTML, CSS, and JavaScript. Let's take a look at the HTML code. So we have here a swipe per container and swipe a rapper, followed by this Wipro slides. Those swipe or slides will be our pricing cards. Then this y per container is going to be created. As for the swipe or wrapper, It's going to be our pricing card wrapper. So let's go ahead and assign to the pricing cards wrapper a new class, swipe or wrapper. Then create a new div elements outside of the swipe, a wrapper. We need className swipe per container. Let's wrap up with this element, the entire content. Besides that, we had to assign to each pricing card the class name, swipe slide. So as you can see, everything is messed up here because behind the scenes and other code is working from the plug-in. What we will fix those things in a minute. Right now the cards are too big. The width and height are no longer apply to them accordingly. In order to fix that, I'm going to add to both values. Important. So now the problem is fixed. Next, I'm going to grab the JavaScript code from the GitHub page. Let's go to the script.js file and insert your new comments. Section three pricing cards. Section three pricing cards and paste here. The JavaScript code. Actually, we don't need the pagination, so let's get rid of these property from you. So now, as you can see, everything works good. Before we finish working on this section, I want to do a couple of things. As you can see, we have here an object called the overflow effect. There are some different properties here. One of them is rotate. Right now it's set to 50 and I'm going to increase a. Let's make it seven. So now I think we have a better result. The last thing that I'm going to do is to create some space inside of the wrapper. So let's go ahead and set padding to five rem. Alright, so that's it. Finally, we have finished working on this section. Let's move on. 29. Project 3 - Create and Style Contact Section: Alright, so step-by-step, we are moving forward and now it's time to create one of the last sections of this project, which is called contexts. Let's take a look at the finished project. So the contact section consists of a couple of different parts. We have a heading on the left side. As for the right side, you can see here some contact details and a couple of input fields with a submit button. Let's go ahead and start to create the HTML markup. As usual, let's insert new comments for Section four. Then open section tag, Class Name section. For next, I'm going to create the heading and the line. So let's open H1 heading tag with the class section heading. And with the content contact. Next we need the line. So let's open div tag with a class section heading line. Okay, next I'm going to open the div tag, which is going to be the wrapper of the content. The content on the right side of this section, I'm going to call it contact wrapper. So this element will include three different parts, but we'll have the contact details, heading and the form itself. Let's open another div tag for the contact details. So this element will include phone numbers, addresses, and emails with Font, Awesome icons. Let's open a div tag with the class phone. So we will have here a Font Awesome icon heading into paragraphs. Let's open I element with a class is a s, a mobile Alt. Then I'm going to open h3 heading tag with the content phone. Then create paragraph with some dummy phone number. And then create another paragraph again with some domino. After that, we will have addresses. So let's open div tag with a class address. Then we need Font Awesome icon. So it's open I element with the classes FAS, a map, marker, ALT. Next, we need h3 heading tag with the content address. And finally, create two paragraphs with two different dummy addresses. Okay, so the next part is going to be an email that's open div tag with the class email. Then again we need IS elements with the class is FAR FA, envelope than the heading is going to be email. And finally, let's institute two paragraphs with two different e-mail addresses. The first one is going to be supported@gmail.com. And then let's call this second email address sales@gmail.com. Alright, so that's it about the contact details. Next I'm going to create a heading. Let's open H1 heading tag with a content. Get in touch. And now we have to create the last part of the contract section, which is going to be deformed. Let's open form tag with the class contact form. So I'm going to insert you to input elements, text area, and the submit button. Let's open input tag with type text with the placeholder attribute. Let's insert your name. Then duplicate this line of code, change the type. It's going to be e-mail. As for the value of the placeholder attribute, it's going to be your e-mail. Next we need the text area, which will have the placeholder attribute, would value your message. Finally, we need Submit button. It's going to be created using input. Element. Type is going to be submit. And also we need to value sent message. Alright, so here we have the HTML markup, the heading and the line are all already styled. As for the rest of the elements, they look really ugly. So let's go ahead and take care of that. I'm going to insert new comments in the CSS file, section four. And off section four. Then select this section elements and define its width, height, and also the background color. The width is going to be 100 per cent. Then we need height to be 100% of the viewport as probably background color. Let's use your color 171718. It's going to be the dark gray. Okay, next thing I'm going to align the elements horizontally in a row, and also I want to place them in the center vertically. For that. As usual, I'm going to use Flexbox. Let's set display to flex Then we need to align items center. And also I'm going to create some space instead of this section on the left and right sides, Let's use padding with a value of zero and turn around. Okay, let's move on and take care of the contact rapper. It consists of three parts. We have contact details, heading, and form. I'm going to align them using Flexbox. So let's select wrapper div element. I'm in contact rapper. First of all, I'm going to set width to 80 per cent. Then use flexbox. We need display flex. Then we need to place the elements vertically in columns so we need to change the direction was making column. And then use align items center. Okay, so right now all three parts are aligned. Next, I'm going to take care of each of them. Let's start with the contact details, like the wrapper. So I'm going to place all three parts horizontally in a row. So let's set display to flex and then create some space at the bottom using margin bottom eight Ran. Actually, we don't have here the icon for the address. Let's check the code. So as you can see, we have to get rid off the dash from here. Alright, so after that, I'm going to separate the wrappers of the details. So let's select div elements. Set its width to 25 RAM. Then I'm going to place the text in the center and also create this space around the elements using margin. Let's set it to for rent. Okay, so each div element consists of a Font Awesome icon heading, empty paragraphs. Let's go ahead and customize them. I'm going to start with the icons. Let's select I elements. Increase its font size, make it five RAM, and then change the color, make it 781010. The icons are styled. Next I'm going to customize the headings. Let's select h3 heading elements. First of all, I'm going to change the font-family. Let's use here made soul maze san-serif than increase the font size, make it 2.5 RAM. Also, I'm going to create some space at the top and bottom of the herring. Let's set margin to RAM and zero and also change the color. I'm going to use your color ccc. Alright, that's it about headings. Let's move on and take care of the paragraphs. Let's select p elements. I'm going to define the font size. Let's make it 1.6 RAM, and then change the color. In this case, I'm going to use color or AAAA. Okay, so as you can see with the contact details, we are done. Now it's time to start the heading. And then the form itself. Let's select H1 heading elements. I'm going to increase the font size. Let's make it full RAM. Then change the color. Let's use here call or CCC. Then I'm going to transform text into uppercase. And finally creates some space at the bottom. Use margin bottom with value three ramp. Alright? So as you can see, the heading is styled and now we have to move on and take care of the form. So let's select Contact Form. First. I'm going to set its width to seven to RAM. Then I'm going to align elements using Flexbox. Let's set display to flex and change the direction. Make it call them. Okay, So the input fields are placed vertically in a column. As you know, we have here two input fields, a text area. They will have some common styles. So let's go ahead and select both input and text area. So first of all, I'm going to create some space inside of the fields. Let's set padding to 1.5 ran, then change the background color. I'm going to make it dark gray using for four. Then change the color of the text. Let's make it e. Also, I'm going to get rid of default border. Let's set it to none. And then create some space at the bottom is in margin bottom to run. So now the elements look much better and we have to take care of the fonts. Let's set font family to Oswald san-serif. Then I'm going to increase the font size. Let's set it to 1.8 RAM. Also, make the font lighter. Let's set font weight to 300 and increased space between the letters. Let's set it to 0.1 ramp. Alright, so the inputs and text area, or a style, they look good. We have used some common styles for inputs and text area, but we need a couple of other styles for the text area and Submit button. As you know, you can change the width and height of the text area manually from the bottom right corner. If we do that, then it will mess up the layout. So we need to limit the width and height of the text area somehow. For that, I'm going to use properties like max-width, max height, and a mean height. So let's select text area. I'm going to set maximum width to 100%. Then let's define maximum height, set it to 15 RAM. As for the minimum height, I'm going to set it to 5.5 ramp. So now as you can see, we can increase the size of the text area just a little bit. Alright, so the last element that we have to customize is the submit button. So let's take care of that. And I'm going to select Submit button using type attribute we need here Submit. Let's change the background color. I'm going to use your color 781010, then transform text into uppercase and also change the type of the course are making a pointer. So the submit button is styled, it looks nice. And lastly, I'm going to create a little hover effect. I want to change the background color of the button slightly on hover. So let's select submit button with hover. Change background color. Let's use your color 50303. And then use transition with the background color. And with duration 0.3 s. Alright, so that's it. The contact section is created and style. So let's move on. 30. Project 3 - Create and Style Footer: Alright, so we have almost finished building our projects. It's time to create the last part, which is going to be the footer. It will be a simple one. We will have the navigation items on the left side. As for the right side, we will place here the paragraph with some copyright texts. Besides that, we will make those links work. If I click them, we will navigate to the proper section smoothly. Okay, let's go ahead and start to create the HTML markup. I'm going to institute new comments. Footer and a footer. Then open HTML5 footer element with a class footer. So the photo will consist of two different parts. We will have the footer, navigation and the paragraph. So let's create div elements with the class footer nav than Institute link elements with the content home. So overall we will have four different links. Let's duplicate it three times and change the content. The second one is going to be about us than we will have pricing. And the last one is going to be contact. That's it about the first part. Let's open a p tag with a class copyright, and then insert you some copyright text. We need here HTML5 entity, I mean the copyright sign, followed by code and create. All rights reserved. Alright, so that's it about the HTML markup. Let's go ahead and customize the footer. I'm going to create new comments in the CSS file for footer. Then select the footer and define its width and height. I'm going to set width to 100%. For the height. Let's make it 12 around. And also change the background color. I'm going to use your color to 0 to one to two. Next I'm going to align the elements using Flexbox. Let's set display to flex. Then I'm going to create some space between the flex items we need justify content space between. Then in order to place the items in the center, vertically align items center. And also I'm going to create some space on the left and right sides. Let's use padding with the value 0.10 ramp. Alright, so the elements are aligned and now we have to style them. Let's start with a footer nav links. I'm going to change the font family. Let's make it made so maize san-serif. Than increase the font size, make it to Ram and change the color. I'm going to use here color C, C, C. As you can see, we need to create some space between the link elements. So let's use margin, right, with a value of three rem. And also increase the space between the letters. Use letter spacing, 0.1 ramp. Okay, So the link elements or style, before we move on to the paragraph, I'm going to create a little hover effect. I'm going to change the color on hover. So let's select link elements with a hover. Then change the color I'm going to use here color age six to three to three. And also use transition with the values color 0.3 s. Alright, so that's it about the nav items. Let's move on to the paragraph. I'm going to increase its font size. Let's set it to two RAM. And also change the color. Make it d, d, d. Okay, so that's it. The footer is customized. And before we finish, I'm going to make those nav items work. Once we click them, We have to navigate to the proper section. In order to achieve that, we have to connect the sections to the links. We will do that using the h reference and ID attributes. As you know, H link element has an H reference attribute. We have to assign to each section element and ID attribute. And then the values of both attributes should match. So let's insert a new home. Then About Us pricing and contact. After that, let's assign to each section elements and ID attribute with the proper values. The first section should have id with the value home than the second one is going to be about us. Next, we will have pricing. As for the last section, it's going to be content. So now if I click the links, will navigate to the property section, but without any smooth effect. In order to fix that, we have to use one of these CSS properties called scroll behavior. We have to assign it to the HTML element and we have to set it to smooth. So now the problem is fixed. And finally, we are done. The project is finished. All these sections are created and customized. And now we have to move to the last part. I mean, we have to make a project responsive to different screen sizes. So let's move on. 31. Project 3 - Make Project Responsive: Alright, so we have finished building our projects. And as I said now it's time to make it responsive to different screen sizes. As usual, we have built this project with the desktop. First approach is built for extra-large screen size. Screen size with 90, 20 pixels of width and 1080 pixels of height. And now we have to make it responsive to smaller screen sizes. Let's inspect the page and switch to the responsive mode. So as you can see, the width and height are set to 1,920.10, 80 pixels. So we need to find the breakpoints on which the project needs some changes and adjustments. I've already prepared the breakpoints, so I'm not going to waste time on finding them. So the first breakpoint on which we need to make some changes is going to be 1,800 pixels. Because as you see, the second section doesn't look good. So let's go ahead and create a CSS media query. Before that, I'm going to insert new comments, responsive, unresponsive. Then create the CSS media query. I'm going to specify who the max-width as 1,800 pixels. So on the breakpoint, I'm going to decrease the width of the video wrapper and the paragraph. And also I'm going to change slightly their positions. So let's select Video wrapper. I'm going to set its width to run. Then the height is going to be 45 brand. As for the right position, Let's make it ten ramp. So that's it about the video wrapper. Let's move on to the paragraph. Let's select it. I'm going to define its width. Let's make it 90 RAM. And then change the right position, make it tan ramp. Okay, so the second section looks good. The only thing that I'm going to do is to create a little space on the right side of the line in the food section. As you know, the lines have the common class name, section heading line. So in order to select the line of the foot section, we have to use the combination of these electrodes like so. At first we need to specify here the section three and section heading line. Let's set margin on the right side 23 ramp. Alright, so with this break point, we're done because all other sections look good. The next breakpoint is going to be 1,650 pixels. So let's go ahead and create a new CSS media query and specify who the max-width. So on the breakpoint, we have to take care of again, the second section. But before that I'm going to decrease the font size of the HTML element. It will make the elements smaller. I'm in the elements that are measured in RAM. So let's set the font size to 57 per cent. So the elements became smaller. Now I'm going to take care of the second section. Let's grab this code from here and paste it down below. So the width of the video wrapper, which is going to be 85 ran, then change the value of height. Let's make it four to ram. As for the right position, I'm going to make it five ran. Then change the width for the paragraph, make it 85 RAM than we need, right position. Make it five rem. And also I'm going to add here, bought some property with the value ten ran. Alright, so that's it about this breakpoint. The next one is going to be 1,500 pixels. On the breakpoint, I'm just going to hide the heading lines. So let's create a new CSS media query and specify the max-width as 1,500 pixels. Then select the heading lines and assigned to it. Display none. Alright, so the lines are hidden. Let's move on and find the next breakpoint. So the next breakpoint is going to be 1,400 pixels. So as you can see, we have a lot of things to do because the project is almost messed up on such a smaller screen size. Let's create a new CSS media query The max-width, 1,400 pixels. First of all, I'm going to decrease again the font size of the HTML element. Let's set it to 45 per cent. So as you can see, we already have a much better result. Manipulating the font size of the HTML element is really a powerful thing when you try to make the project responsive. Next, I'm going to decrease the font size of the banner heading. So we need to select the span element. Let's set its font size to turn around. Okay, After that, I'm going to take care of the paragraph. We need to increase the width of it. Let's select B9 or paragraph. Increase its width, 45 RAM, and then change the font size, make it a 3D ramp. The paragraph looks good. Now I'm going to take care of the rest of the sections. From this break point, I want to change the layout a little bit. Right now beheadings a place on the left side, and I'm going to place them at the top of the sections in the center. In order to achieve that, Let's select all three sections. Section to section three and section four, and change the direction of the flux layout. I'm going to make it call them. Alright, so now the headings are placed at the top of this section. Let's move on and customize the second section. I'm going to increase its height. Let's set it to 120 viewport height. Then I'm going to place the video and the paragraph in the center of the page. Let's select Video wrapper and defines two position, make it 20 per cent. Then we need left position. I'm going to make it 50%. And in order to center the element perfectly, we need transform translate with the x-direction. And as the value I'm going to institute or -50 per cent. And also decrease likely the width of the video wrapper. Let's make it a two ramp. Okay, let's move on and do the same for the paragraph. Let's select it. In this case, I'm going to define just the left position. Let's make it 50 per cent. Then again, we need to transform, translate with the x-direction and with a value of -50%. Then lastly, change the width, make it 80 RAM. Alright, so that's it about the second section. Let's move on to the next section. I'm going to set the height of the third section to oral and also define the padding. I'm going to set it to five rem at the top, then zero on the right side. Then we need ten ramp at the bottom and zero on the left side. Next, I'm going to create some space at the bottom of the heading. In order to select the heading of the third section specifically, we need to select that first section three, followed by this section heading. Let's define March important with value seven ramp. Okay, Finally, let's increase the width of the swipe per container to 100%. Let's select it and set width to 100%. Okay, so with the third section we're done. Let's move on and customize the contact section. I'm going to set its height to auto as well. Then defined padding, I'm going to set it to five rem at the top and bottom and zero on the left and right sides. Alright, so that's it regarding 1,400 pixels or these sections look good. Let's move on and find the next breakpoint. I think it's going to be 900 pixels. So let's create a new CSS media query and specify the max width as 900 pixels. So the first thing that I'm going to do is to decrease the font size of the HTML elements. Let's set it to 40%. Then. I'm going to decrease the font size of the banner heading. Let's select this path element and its font size to eight run. So I think we have a large space between the heading and the paragraph. And also it would be better if we move down the banner slightly. So at first let's select banner and change its top position. I'm going to make a 25% And then I'm going to decrease the height of the banner heading. Let's set it to 15 run. So now the binary looks much better. Also, we don't need to touch the second, third, and fourth sections. Let's move on to the footer. Let's select it and we find padding. I'm going to decrease the space on the left and right sides. Let's set padding to 0.5 ran. Then select the link elements and change its font size. I'm going to make it 1.8 Ran. Alright, so let's see about this breakpoint of these sections. Look good. Let's move on and find the next one. The next breakpoint is going to be 700 pixels. Let's go ahead and create a new CSS media query with the max-width 700 pixels. At first, I'm going to decrease the font size of the HTML elements. Right now it's set to 40%, so it's decrease it and make it 35 per cent. So the elements became smaller. Actually, the first section looks good. Let's move on to the second one. I think we need to decrease the height of this section. Let's make it 100 viewport height. The second section, it looks good. So we don't need to touch the pricing section. As for the content section, I'm going to decrease likely the space between the contact details. So let's select div elements and specify margin with values three rem at the top and bottom and two rem on the left and right sides. Alright, Finally, let's take care of the footer. I'm going to place the navigation items and the paragraph vertically on top of each other. So let's change the direction. I'm going to make it column. Next, I'm going to place them in the center vertically. For that, Let's use justify-content center. And lastly, create some space underneath the links. Let's select footer nav and assigned to it margin bottom with value to run. Alright, the full term looks good and actually on the break point, we're done. Now it's time to make our project look good on the last breakpoint, which is going to be 500 pixels. So let's go ahead and create a new CSS media query and specify the max width as 500 pixels. So again, at first, I'm going to decrease the font size of the HTML elements. Let's set it to 30%. Actually, before we customize the first section, I'm going to get rid of the whitespace that we have on the right side of the page. It is caused by the second and conduct sections. So let's select Video wrapper and set its width to 60 RAM. Then select Paragraph, set its width to six dram as well. The second section looks good. Let's take care of the contact section. I'm going to select a div elements. I mean the div of the contact details. Let's set its width to 18 RAM. Also change the margin. I'm going to set it to three rem at the top and bottom and one rem on the left and right sides. And also decrease the width of the contact form. Let's set it to 60 run. Alright, so the contact section looks good as well. And finally, we have to take care of the first section. Let's select banner heading, span. I'm going to decrease its font size. Let's make it 4.5 RAM. And also I'm going to decrease the space between the letters. Let's make it to run. Actually. As you know, the span elements in a heading change the letter spacing during the animation. So we need to decrease it in the CSS keyframes as well. Otherwise, you can see that some of these span elements are broken on two lines and they don't look good. I'm going to copy the entire CSS keyframes. Let's paste them here and change the amounts of letter spacing we need to run. And then one RAM instead of 1.5 g. So now everything works really nice and actually we are done. The project is responsive to different screen sizes. So we have finished working on that. Hopefully it was interesting and you enjoyed it. Now have to move on and start to build the next project. 32. Project 4 - Project Preview: Alright, so it's time to start to build our next project, which is going to be one of the biggest and the interesting ones. We're going to create something like the APL e-commerce website. Before we start to write the code as usual, let's go ahead and describe the project. It will consist of a couple of different sections. We will start with the landing. It will include several parts. We will have here a logo and the navigation with hover effects. Then we will build these nice box here with controllers. We can move the box using these controllers in a 3D environment. We will manage this using CSS and JavaScript. Also, we will have here some texts elements and these nice parts, which as you can see it has nice hover effect. Besides that, lending will have the animated background images. They will change with Fade Effects. Alright, so the next section includes the heading and the images of the iPhone 12s. If we hover over the image, then it will change with a nice hover effect. Besides that, we have here two buttons, and once we hover over them, some links will these play? After that comes the section about MacBook Air. Once we scroll down, then MacBook will open the logo and the loading progress bar will appear. And then Mark Wu will turn on, will create all of those things using just CSS and JavaScript. Okay, let's move on to the next section where you can find the Apple Watches. In this section, you can choose your favorite cases and also the bands using those controllers. Okay, Next we will have a section about airports followed by the footer, where we will have the icons and the copyright text. And actually those icons are connected to the proper sections. If I click them, then we will navigate to the relevant section. Besides that, the navigation is working as well. If I click the navigation items, then we will navigate to the proper section. Alright, so that's it about this project. Of course, we will make it responsive to different screen sizes. Now it's time to start to build a project. So let's move on. 33. Project 4 - Create and Customize Landing Page: Alright, let's go ahead and start to build a project. I've created a new folder on the desktop called a pool e-commerce, in which I have another folder for the images. Let's go ahead and open this folder in Visual Studio Code and then create our working files. I'm going to call them index.html, style.css and script.js. Then open the index.html file and prepare the basic HTML document. For that, I'm going to use one of the VS code package is called Ahmed. We need to place here an exclamation mark and hit Tab or Enter. Okay, so here we have all basic HTML tags. First of all, I'm going to change the title. Let's see, institute April e-commerce. And then after that, let's link CSS and JavaScript files. I'm going to open link tag. And then we need to specify the path of the file in the h reference attribute. As for the JavaScript file, Let's open script tag right above the closing body tag. And then in the source attribute, let's specify the path of the file. Besides that, I'm going to bring in one more link because throughout the project I'm going to use Font Awesome icons. So let's go ahead and search for Font Awesome, CDN, js. Then grab the link, open the link tag in the head elements, and paste the link as the value of the h reference attribute. Alright, Finally, I'm going to run the project to the browser using a live server. It allows us to run the project life to the browser and make the changes without refreshing the page each time. Before we move on, let's place the browser and the text editor, like so. And get started. As usual, we're going to build the project section by section. The first section includes a couple of different parts, like the slideshow of the background images, also the cube. I'm in this box. Those parts will be kind of complex. So first of all, I'm going to take care of the rest of the parts. And after that, we will create them as well. Let's go ahead and start to create the HTML markup. I'm going to open the div tag, which is going to be the container. Then insert your new comments, section one and section one. And then open section tag with the class section one. So I'm going to start with a logo. Let's insert your new Comments, logo and logo. So I'm going to create logo using the link and the Font Awesome icon. So let's open a tag with the class logo and then insert your eye elements with the classes FAB, FA apple. Okay, so here we have the logo. Let's go ahead and create the navigation. Let's institute new comments, navbar. And off now pore. Then I'm going to open HTML5 nav elements with the class navbar. And then insert here the first navigation item, open link tag with the class now per link. And as the contents, Let's insert your iPhone 12. So overall we will have four different navigation items. Therefore, I'm going to duplicate this line of code three times. And then change the content. I'm going to insert your MacBook Air. Then the next one is going to be Watch AirPods. Okay, That's it about the navigation. Next, I'm going to create banner. I mean the text elements and the bottom. So let's create new comments, banner and of banner. Then open div tag with the class section one banner. The banner will include four different elements. I mean the heading paragraph, span element and the bottom. So it's open H1 heading tag. And we're going to insert here HTML5 entity, which is going to be the left arrow. So we need ampersand, then hash sign 8592, semicolon, followed by best gift. Next I'm going to open p tag, the paragraph with the following text. Creativity is just connecting things Next comes span elements. Let's insert here the author of these words, Steve Jobs. And finally Create button with type button and with the content by now. Okay, so that's it about the mark-up right now. As we said, we will take care of this slideshow and the box a little bit later. It's time to start writing some CSS. First of all, I'm going to create some common and reset styles. Actually, throughout this project, we're going to use one of the Google fonts. So let's go ahead and bring in the link. Let's visit the Google Fonts website. Then search for the phones called exons. I'm going to select all these tiles except Italica. So let's select them and then import the URL. From here. We have to paste this URL into the CSS file. Okay, after that, Let's create comments, common styles. And of common styles. Then select every element using an asterisk. So first of all, I'm going to get rid of default margin and padding from every element. So let's go ahead and set both of them to zero. Then I'm going to make box-sizing border-box. Then gets rid off default bullets from the list element using list-style-type none. Also, we don't need default outline. Let's set it to none. Next, I'm going to get rid of default underlying from the link elements using text decoration none. And finally, let's set font family to work sounds. Sans-serif. So as you can see, all common styles are applied to all the elements throughout this project. Like the other ones, I'm going to use the RAM as the measurement unit. Right now, one RAM equals to 16 pixels because the font size of the HTML element equals 16 pixels. I want to convert 1 g into ten pixels. And for that, we have to decrease the font size of the HTML element. Let's set it to 62.5%. Alright? So as you can see, all the elements became smaller and now 1 g is equal to tan peaks. Next, I'm going to create a couple of CSS variables for the colors because we're going to use several colors frequently in I think would be better if we use CSS variables. In general, CSS variables can have a global or local scope. In this case, we need global variables because they can be accessed through the entire document. As for the local variables, they can be used only inside the selector. To create variables with a global scope, we need to declare it inside the root selector. The root selector matches the documents root element. After that, we need to specify the names of the variables and the values. The names of the variables should have double hyphen signs. I'm going to call the first variable primary color. And as the value, let's use here six, e, d e six. Next, I'm going to create a white color. And the third one is going to be black color. Alright, so that's it about the common styles. Let's go ahead and start to customize this section element. Insert your new comments, section one. And section one. At first, let's define its width and height. I'm going to set with 200 per cent. As for the height, let's make it 100% of the viewport. Then I'm going to change the background color. In this case, we will be using a temporary background color, but then we will create the slideshow. So now I'm going to use one of the variables. And in order to do that, we have to use a function called var, which stands for variable. Then we have to specify the name of the variable inside the parenthesis. Let's use here primary color. Alright? So as you can see, the background color is changed. After that, I'm going to align the elements using Flexbox. So let's set display to flex. Then I'm going to place the elements in the center vertically. For that, we need to use align items center. And in order to create space between the elements, Let's set justify content To spaced evenly. So as you can see, the elements are placed in the center horizontally. The last thing that I want to do regarding this section element is to change its shape a little bit. Let's take a look at the finished version of the project. As you can see, the part of this section is cut off at the bottom right corner. In order to achieve that, we have to use one of the properties called clip-path with polygon function. To choose the shape and get the proper values. We can visit one of the websites. Let's search for clip-path CSS. Then visit the first link. So here's the website, or you can choose any shape you want and grab the proper values from here. In our case, I'm going to use a pentagon because here we have five different points and we can define different shapes with the help of them. So in our case, we need the shape like this one. We need to cut off the bottom right corner. Then grab the code from here and assign it to the section element. Alright, so it's considered the shape is changed. And actually with this section element, we are done. Let's move on and customize the logo. I'm going to insert new comments for logo. Then select Logo. First of all, I'm going to take care of the position of the logo. It's going to be placed at the top left corner of the page. So let's go ahead and set its position to absolute. Then in order to define its position according to its parent element, I need to assign to this section element position relative. And then define top and left properties. I'm going to set both of them to three rounds. Okay, so it's considered a logo is positioned. Next, I'm going to customize the icon itself. So let's select I elements. First, let's increase the font size, make it ten ran, and then change the color. I'm going to use your RGBA value with the black color and with the opacity 0.8. Okay, That's it about the logo. Let's go ahead and take care of the Navbar. Let's insert new comments for the navbar. Now bar is going to be placed at the top right corner. Let's select it and set its position to absolute. Then I'm going to define top and right positions. Let's set top property to three RAM. As for the right position, Let's make it 10%. Okay, So the navbar is positioned, it is placed at the top right corner. Let's go ahead and customize the link, select an upper link and increase its font size, make it to Ram. Next, I'm going to create space between the navigation items using margin. In general, the link element is an inline elements and therefore margin won't be applied to. So we need to make links in line block elements. Let's set display to inline-block. So when the element is an inline-block level, you can assign to it with height, margin and padding. And they will still behave like an inline element. I mean, they won't take up the entire width inside of the container and they won't be placed in different lines. Let's set margin to zero at the top and bottom and three rem on the left and right sides. Okay, After that, Let's change the color of the links. And also I'm going to create a hover effect. I'm going to increase the size of the elements on hover. So first of all, let's change the color. I'm going to use here, variable black color. Then select now per link with hover. So in order to increase the size of the elements, Let's use Transform with the scale function because if we increase the font size, it will push other items and it will break the layout. So let's set scale to 1.5 and also use transition for smooth effect. We need here transform. And as the duration, let's insert a 0.5 s. All right, That's it about the Napa. Let's move on and customize the banner. Let's insert your new comments for the banner Then select banner with the class section one banner. So I'm going to align elements vertically and also place them in the center. For that, I'm going to use flexbox. Actually, we will use this technique frequently throughout this project. And in order to avoid using the same properties and values over and over again, I'm going to create a new class and common styles. Let's call it center and assigned to it display flex. Then justify content center for horizontal centering and also align items center for the vertical centering. Then assign this class to do banner in the HTML document. So the only thing that we need to do is to change the direction because we need to place elements vertically in a column. So we need to set the flex direction to column. So let's consider the elements are aligned. Let's move on and customize each of them. I'm going to start with a heading. Let's select it. First of all, I'm going to increase the font size. Let's make it 13 RAM than make the font lighter. Set font weight to 300. Also transform text into uppercase and create some space between the letters using letter spacing. 0.5 rem. Okay, let's see about the heading. Let's move on and customize the paragraph. Let's change the font size, make it for RAM. Also, I'm going to set the font-weight to 400, then create space between the letters, make it 0.1 RAM. And lastly, I'm going to create some space at the top and bottom using margin. Let's set it to six rem at the top, zero on the right side, forearm at the bottom, and zero on the left side. Okay, so let's consider the paragraph is styled as well. And after that I'm going to customize this span element. Let's select it. I'm going to increase the font size. Let's make it three RAM, and then create some space at the bottom of the element. Let's set the margin bottom to five Rhyme. Alright, so the only element which we're going to customize is this button here. So let's go ahead and select it. First of all, I'm going to create some space inside of the button using padding. Let's set it to two rem at the top and bottom and forum on the left and right sides. Next, I'm going to increase the font size, make it to Ram. Also change the background color. Let's use here black color. Then I'm going to change the color of the text. Let's use your primary color. And then change the font weight, make it 400. Okay, let's go ahead and add a couple of more styles to the bottom. Next, I'm going to create some space between the letters. Let's set it to 0.1 RAM. Also, I'm going to get rid of default border. Let's set it to none. Then make the corners of the Bateson slightly rounded using border-radius with the value 0.5 RAM. And finally change the type of the cursor, make it point to. So now we need to change the shape of the pattern. If we take a look at the finished project, you will see that it has a different shape. And its shape changes. Once we hover over the button, I'm going to use again a clip path property. But I'm not going to create the shape manually because it may take too long. I have already prepared they needed values. Let's just copy and paste them. Here. I will attach this file to this lecture so you can easily find those values. So as you can see, the shape is changed. Now we need to create a hover effect. Let's select the button would hover. Then grab again the values from here. And finally use transition. We need here clip-path and the duration 0.5 s. Okay? So as you can see, we have here a nice hover effect and with a banner, we are done. Now, let's take care of this slideshow 34. Project 4 - Create Background Images Slideshow: Alright, so some of the parts of the landing page are done. Now we have to take care of this slideshow of the background image. Most of the slideshow I'm in, the functionality will be created using JavaScript. In the HTML document will create just a single div element that will represent the slideshow. So let's go ahead and insert new comments. Slideshow and off slideshow. And create a div element with a class slideshow. Okay, That's it about the HTML. Let's move on and go to the JavaScript file. It's institute the comments as well, slideshow and off slideshow. So overall we will create five developments and we will define for each development background image. We could do this using HTML and CSS. I mean, we could create five different developments. And then we could assign to each of them background image from CSS. But we will do the same more conveniently and dynamically with JavaScript. Alright, let's go ahead and create a function. I'm going to call it slideshow deeds. So as we said, we will create five div elements. And for that I'm going to use for-loop. We will loop through 1-5. And on each iteration we will create a div element using one of the dome method called create element. So let's create for loop. Then we need here counter I, which is going to be equal to one. Then as the condition we need I less than or equal to five. And finally, I plus, plus. After that, I'm going to create a new variable. Let's call it div. So as we said, we're going to use one of the dome methods called create element. So let's use it and then specify the tag name in the parenthesis. We need deep. Okay, that's it about creating a new elements. Now we have to assign to the newly created elements a proper background image. For that, Let's use the style property. We need to assign it to the div. And then it should be followed by the property name background image. We need to write it in camel case. So now we need to define the path of the image. If we check our images folder, then you will find here another folder called slideshow, in which we have five different background images. As you see, the only difference between the names is those numbers here. So we need to set all of those background images to the newly created div elements dynamically. We need your URL, then the folder name images. Next we have another folder, slideshow. And then we need to specify the name of the image, which is going to be Section one, B, g. And instead of the number, we have to pass the variable i, followed by the extinction JPG. So on the first iteration, I will be equal to one and the first background image will be used. Then on the second iteration, the second image will be used, and so on. For loop will continue working until all five images are used. Alright? So in order to add newly created div elements, to do wrapper div element which we created in the HTML document, we have to use another dome method called a parent-child. First of all, we need to select wrapper. Let's use query select method and specify here the class name slideshow. Then attached to it method called append child and as the arguments into your D. Alright, so in order to execute this function, we need to call it. So if we inspect the page and check the Elements tab, you will find that we have here five different developments. And each of them has background image property with the proper image. Okay, so everything works fine so far. Now, we need to make this slideshow work. Right now, the background images are not visible. So first of all, let's take care of that and write some CSS. Actually, I see here that I'm missing the ending comments for the banner for some reason. And also we don't need here this ending common style comment. So let's go ahead and fix those things. Then insert your new comments for the slideshow. And then select wrapper div elements. First of all, I'm going to define the width and height. Let's make both of them hundred percent And then set its position to absolute. Also, we need to define top and left properties. Both of them should be equal to zero. Right now, images still are not visible because they don't have width and height. So let's go ahead and select DB itself and set its width and height, both of them 200 per cent. Okay, So now one of the images is displayed. The rest of them are placed down here, but they are not visible. We need to place all the images on top of each other. And for that, Let's use position absolute. Besides that, I'm going to use a couple of background properties. The first one is going to be background size. We need to set it to cover. Then as the position of the background, I'm going to use Center. And also we need here background repeat with value, no repeat. Okay, So now we have here one problem. The content of the landing page ended up behind the images and it's not feasible. So in order to fix that, Let's use z-index property with a lower value than zero. So let's make it minus one. Alright, so now the problem is fixed and we have to move on and make this slideshow work. So we will hide all the images by default, and then we will display them using opacity. We will use a new class in CSS, where we will define opacity with the value one. And we'll add this new class to the developments in order from JavaScript. So let's go ahead and hide all the div elements using opacity zero. So as you can see, images are hidden. Next, I'm going to display the first image by default. For that, we will use the above-mentioned new class. So in order to assign to the first development class, which will be called change, we need here a little conditional statement. So when I is equal to one, then it means that it is the first iteration. The first div element is creating. This is the moment when we need to assign to each class change. So for that we need here AND operator. And then we need to add to the development class change. For that, I'm going to use one of the properties called class list, which gives us all the classes that the element has. And also it allows us to get access on a couple of different methods. One of them is at. So let's specify here the class change. So if we check again the Elements tab, you will find that the first element has a class change. Now, in order to display the image, we need to go to the CSS file, select the div element with a class change. And we need to set opacity to one. Okay, so as you can see that the first background image is visible. And now finally, we have to make this slideshow work. So we have to remove and add class change to the div elements in order with some intervals. And we need to make it infinite. So let's go to the JavaScript file and select all the div elements. I'm going to create new variable, let's call it d, dz. And then in order to select all the div elements, I'm going to use query selector, all method. We have to specify here, class slideshow, followed by the tag name D. Okay, next I'm going to create a new function called slideshow, in which we have to use one of the built-in methods called set interval, allows us to execute the function over and over again with some intervals. This method takes two arguments. The first one is the callback function, which will be executed with intervals. As for the second argument is going to be the interval itself. And it should be expressed in milliseconds. So let's insert your arrow function. And as the amount of time of the integral, let's insert 1,000 milliseconds. Eventually we will change and increase it. So now we need to select the development which has the class change. Then we need to remove the class from this element and add it to the next div element. So let's create a new variable. I'm going to call it div, and then select development using querySelector method. We have to specify here the glass slide show followed by the class change. So once the div element with class change is selected, then we need to remove class from this element. So we need again class list property. But in this case with the method called remove, let's specify here the class change. And finally, we have to add it to the next div elements. For that, I'm going to use one of the properties called next element sibling We need to attach it to the div elements. Then again, we have to use class least property and we need to add class change. So in order to execute this code, we need to call the function slideshow. Alright, so as you can see, after each second, the background image is changing. Once all five images are shown up, then we get an error and this slide shows stops working. It happens because once we reach the last element, then the JavaScript engine cannot find another sibling. It doesn't exist. So once we reached the last background image, we need to start over this slide show from the first background image. So let's go ahead and do that. We need to create a new variable which is going to be the counter. In this case, I'm going to use, Let's declaration because its value will be changing. Let's call this variable a and by default make it equal to one. So we need to increase the counter by one. And once it is greater than the length of the div elements, it means that we need to start this slideshow with the first image again. And we have to make a equal to one again. So in order to increase a by one, we need to use the increment operator, which is expressed by double plus signs. Then we need to create IF statements in which we need to compare if a is less than two the length of the div elements. So if it is true, then it means that there are remained other developments. So we have to run this line of code. If it is false, then it means that we no longer have another sibling. And we have to start slideshow with the first image. So we need Q else statement where we have to access the first development and we have to add to it class change. And also we need to make a equal to one. So in order to select first div elements, we need devs followed by the index number zero. Then we need again class list property with the method add. And we have to specify your class change. Besides that, we need to make a equal to one. So now you can see the slideshow is running infinitely without any errors. And we need to create some fade effect for that. Let's use transition. Let's assign to the opacity and the duration of 1 s. So now everything works perfectly. The only thing that I'm going to do is to increase the amount of the interval. Let's make it 20 s instead of one. And also increased duration of the transition. Make it 5 s. Okay, so that's it. This slideshow is created, it works fine. So let's move on. 35. Project 4 - Create and Customize Cube: Alright, so once we are done with this slideshow now we have to move on and take care of the last part of the landing page, which is going to beat this iPhone box. I'm going to call it the cube. Actually in real math it is called cuboid, but for simplicity, I'm going to call it just the cubed. So as you can see, it has a 3D shape. By default, it is rotating. Down below. We have controllers. Once we hover over them, then cube will stop. And then we can rotate it using those controllers on different sides. Let's sit what we're going to do. All of those things will be created using pure CSS and JavaScript. First of all, let's go ahead and create an HTML markup. We have to write it before the banner because it is going to be placed on the left side of the lending. First of all, let's go ahead and create new comments, cube and off cube. Then open the elements, which is going to be the wrapper. So I'm going to assign to it class cube wrapper. Next we need another div, which is going to be the cube itself. After that, I'm going to create another div element, which is going to be the front side. And it will include an image of the iPhone 12. So let's insert your image and select iPhone dot PNG from the images folder. Next, we need to create a backside. So let's open another div tag with the class back side. On the backside we will have an icon of the apple. So let's insert your eye element with a class is FAB, FA, apple. Alright, so that's it about the markup of the cube. We will take care of the controls a little bit later because right now I'm going to style the cube. Let's go ahead and insert your new comments. Cube and of cube. Then select the cube and define its width and height. I'm going to set width to throw to ram. As for the height, I'm going to make it 55 ramp. And also I'm going to assign to it a temporary background color. Let's make it red. So here we have the red background. Right now the image is too big, so let's go ahead and take care of it. I'm going to select that first front side and set its width and height, both of them 200 per cent. And then create some space inside of the front side using padding. Let's make it 2.5 rem on all four sides. After that, I'm going to select image. Let's define its width and height. I'm going to set both of them 200 per cent. And then also I'm going to use object feet with the value contained. Okay, so now the image became smaller and we see here the red background of the cube. Next I'm going to take care of the front side. So let's go ahead and change its background color. Let's use your color F E. Next, I'm going to create a 3D environment in order to see better how the cube is going to be built. In order to create a 3D environment, we have to use one of the properties called prospective, and we have to assign it to the cube wrapper. So let's select it and then use perspective with the value 100 ramp. In general, the property perspective defines how far the element is away from the user. Now we have to move with the front side in a 3D environment. And for that, we need the space for the front side as well. And for that we have to use one of the properties called transform style with the value preserve 3D. We have to assign it to the cube. After that, it will share the 3D environment to its child elements. Alright, after that, we have to move the front side and a little bit to the front. So for that, I'm going to use Transform where they translate the function and as the value, Let's entity or five ran. Right now, nothing is visible here, we just have a white background. So in order to see clearly what's going on, I'm going to rotate the cube. Let's rotate it according to the y-axis. And as the value, let's insert, let's say 72 degrees. Right? Now you can see clearly the front side of the cube in 3D space. Let's go ahead and take care of the backside. I'm going to set its width and height, both of them 200 per cent. Also change the background color. Use here color F, E. And then again, we need to move the backside like the front side. In this case, we need to translate z function with the value minus five rounds So here we have the backside, but its position is not correct. We need to fix that. And for that, Let's set positions of both sides to absolute. Actually, as you can see, most of the properties and values are the same for both sides. So we can add here backside. Then we can select the front side separately. Let's assign 2D padding and transform properties. As for the backside, Let's leave you just transform property. Okay, so now both sides look good. In order to see it better, I'm going to inspect the page and use Elements tab. Let's select cube. Then down below, focus the value of Rotate function. And then using upper arrow, Let's change the value. So it's can see the cube is rotating and both sides look good. Okay, Before I move on to the other sides, I'm going to customize the April icon on the backside. First of all, let's take care of it. The position of the icon. I'm going to place it in the center of the backside. So let's go ahead and use the class center. Actually, let's change the value of the rotate function in order to see the icon. Well, let's make it 140 degrees. Okay, Let's go ahead and style the icon. Let's select it. At first. Let's increase the font size, make it 12 rhyme. Then change the color. In this case, I'm going to use primary color. Besides that, Let's use text shadow. I'm going to create a multilevel shadow. The first one is going to be 0.1 rem twice, then point to RAM. And the color AAA. As for the second shadow, It's going to be left shadow. So let's insert here -0.1 gram twice, then points to RAM with the same color. So the icon is styled, but as you can see, we have to rotate it by 180 degrees. So let's use Transform with the rotate y function and as the value, let's insert your 180 degrees. That's it about the backside. Now we have to take care of the other sides. Next, I'm going to take care of the top and bottom sides and we will create them using before and after pseudo elements. First of all, I'm going to rotate the cube in a different way in order to display both sides. So let's change, rotate y into, rotate x as positive value. Let's insert here 91 degrees. So right now the bottom side is close to us. And I'm going to take you off the top side, will create it using the before pseudo element. So let's select front side with it before pseudo elements. First of all, let's define content, make it empty. Then I'm going to set, we can hide that set width to 100%. As for the height, I'm going to make it turn around. And also change the background color. Make it F E. Right now the element is not visible. We have to define its position. So let's set its position to absolute. Then after that, define top and left properties, Let's make both of them zero. Alright? As you can see, still the element is not visible. It happens because the 3D environment is not shared for the before pseudo element. And in order to fix that, we have to use again transform style preserve 3D, and we have to assign it to the parent element. Then down below, rotate the elements according to x-axis by -90 degrees. Now the element is visible, but it's not placed quite correctly because it is rotated according to the center. It is a default origin of the transformation. So we have to change it and make it top. We need to transform origin the value top. Alright, so that's it about the top side. Let's move on and take care of the bottom one. Actually, most of the properties and values will be the same for both sides. So I'm going to add here after pseudo elements Then select it before pseudo elements separately. Grab those four properties and paste them here. Then I'm going to duplicate this code. Change before, into after. Then we need bottom instead of top. Next, let's get rid of the minus sign from here. As probably transform origin is going to be bottom. Okay? So if we rotate the cube, then you will see that top and bottom sides are ready. Let's move on and take care of the left and right sides. I'm going to create them using before and after pseudo elements of the backside. So let's rotate again the cube according to the y-axis. With the value -91 degrees. We will create those sides. Similarly, let's start with the left side. I'm going to create it using the before pseudo element. So let's select backside with before pseudo element as the content. I'm going to insert your iPhone. Then define width and height. I'm going to set the width to turn around. As for the height, let's make it 100%. Then change background color, make it F. So right now the left side is not visible because again, we need to use positions and the rotate function. So let's set position to absolute. Then define top and left properties. I'm going to set both of them to zero. And after that, we need to transform with rotate y function with the value -90 degrees. So now the element is visible, but as you can see, again, we have to change the origin of the transformation. Let's set it to left. Okay, so now the element is positioned, and now we have to take care of its contents. I'm going to text iphone. First of all, let's rotate again the cube. Let's get rid of the minus sign from here. And then go ahead and customize the text. I'm going to place it in the center. For that, Let's use flexbox. We need display flex. And for perfect centering, we have to use justify content center, followed by the align items center. After that, let's increase the font size, make it to Ram. Also, I'm going to make the font weight 300, little bit lighter. And as the color, let's use your color EC 1919. Alright, that's it about the left side. Now in the same way, we have to create the right side, which is going to be similar to the left one. So I'm going to add here after pseudo elements. Then select before pseudo elements separately. And grab those four lines from here. After that, select after pseudo elements and insert you the following properties and values we need top zero, then write zero. Then we need to transform rotate y with 90 degrees. And lastly we need to transform origin the value, right? Okay, so that's it about the cube. All sides are prepared. If I rotate it according to both directions, then you will see that all sites are created. Now, I'm going to get rid of the red background color from the cube. Let's remove it. And besides that, I'm going to create a box-shadow in order to display the edges of these sides. So at first, create a shadow for the front and back sides. It's going to be multilevel shadow. First of all, we need here inset is going to be inner shadow with the values 0.1 RAM three times, and the color D, D, D. Then copy this value, paste it here. And insert minus sign, where the first two values. We need the same shadow for before and after pseudo elements as well. So let's grab this code and paste for them. Okay? If we rotate again the cube, you will see that everything looks good. Right? Next I'm going to customize the controls and also make the cube work 36. Project 4 - Create and Customize Cube Controllers: Alright, once we created the end customers, the cube, now I'm going to take care of the controls. Let's go ahead and create an HTML markup. The controls will be a part of the cube wrapper, so we need to insert it inside of it. Let's create your comments, controls of controls. Then open the div elements with the class controls. So overall, we will have six different controls. They will be represented by the Font Awesome icons, and they will be wrapped with the link elements. So let's go ahead and open link tag. Then institute IS element with a class is FAS, a arrow up. Besides that, I'm going to add to it another class. Actually, we will rotate the cube according to the x-direction with this icon. So I'm going to insert your top X control. So as we said, we will have six arrows. So let's duplicate the link element five times and then change the class names. The second one is going to be a arrow down than we need here, bottom X control. The next one is going to be arrow left. Left. Why control than we need you? Arrow right and right? Why control? The next one should be narrowed down. Top Z control. And for the last one we need arrow up bottom Z control. Okay, so here we have our controls. Let's go ahead and customize them. I'm going to insert here new comments, controls and of controls. Then select wrapper div elements. So first of all, I'm going to take care of the position of the controls. Let's set its position to absolute. Actually, the controls should be positioned according to the parent element, which in this case is a cube wrapper. You may think that we need a position relative for the wrapper, but because of that, it is a flex item. As remember the section element has display flex, then we no longer need position relative for the cube wrapper because you can show us will be positioned according to the cube wrapper. So let's define bottom and left positions. I'm going to set bottom to -15 RAM. As for the left, it's going to be 50%. And then in order to send to the elements, we need to move eight to the left side by -50 per cent. So we need here transform, translate X with the value -50 per cent. So the wrapper of the controls is positioned correctly. Let's move on and customize it. I'm going to define it within height. Let's set both of them to ten RAM and also change the background color. In this case, I'm going to use RGBA value with the black color and with the opacity 0.9. After that, I'm going to make the background around it and also create the border. So we need here border-radius with a value of 50 per cent. And then create border with the values one RAM, solid. And as the color, I'm going to use again, RGBA value, black color and the opacity 0.8. Alright, let's sit about the wrapper. Actually, we need some space between the cube and the controls. So let's go ahead and move the cube up. I'm going to assign to each position relative. And then set top position to minus two RAM. So in case of the position relative, the element will move up by two ramp from its current position. Okay, let's go ahead and customize the arrows. First of all, I'm going to take care of their positions. Let's select the link element and then set position to absolute. Next, I'm going to define the position for each arrow separately. So let's go ahead and start with the first link elements. I'm going to select it using nth child selector. We need to specify here one for the first link element. So this arrow is going to be placed in the center at the top of the wrapper. So let's set top position to zero. And then we need again left position 50%. And then transform translate x -50%. Okay, So the first arrow is positioned, but as you can see right now, it's not quite visible. So let's go ahead and fix that problem. I'm going to select I elements. Let's increase its font size, make it 1.5 RAM. Then change the color. You see your primary color. And besides that, I'm going to decrease the opacity. Let's make it 0.5. Okay, now, as you can see, it looks much better. Let's go ahead and position the second arrow. It's going to be placed in the center, but at the bottom of the wrapper. So let's duplicate this code here. Change one into two. And also we need here bottom position with the value zero. Okay, let's move on and position the third arrow. It's going to be placed in the center, but on the left side of the wrapper. So let's select third link element and then define tough position. Make it 50 per cent. The left position is going to be zero. And then in order to send to the elements, we need again transform. But in this case we need to translate function according to Y direction with the value -50%. The next arrow will be placed in the center as well, but on the right side. So let's go ahead and duplicate this code. It's going to be fourth link elements. And we need to hear right position with the value zero. Okay? So as you can see, four arrows or position, there are left, just two of them. Let's move on and select the fifth arrow. Actually, it's going to be placed in the middle of those two arrows. So we need here top and the right positions, both of them ten per cent. Then we need to transform. But in this case, I'm going to use the rotate function. I'm going to rotate the element by 45 degrees. Okay? So we need to position the last icon. Let's duplicate this code here. It's going to be the sixth item. Instead of top and right, we need here Boltzmann left. So as you can see, all six arrows are ready, they are positioned. The only thing that we need to do is to create a little hover effect. I'm going to increase the opacity of the icons back to one. So let's select controls. A hover, followed by the I elements. Let's set the opacity to one. Then use transition with the values opacity 0.5 s. Okay, let's see, the controls are customized and now we have to make them work. So let's move on. 37. Project 4 - Make Cube Work: Alright, so everything is ready to start to program the cube and the controls. First of all, I'm going to make the cube rotating automatically, and then we'll program the controls. Right now, the cube is rotated with y direction by 91 degrees. So I'm going to comment this line out. Next. Let's go to the JavaScript file and insert new comments for the cube. Then select the cube. I'm going to create a new variable. Let's select the cube using querySelector method. We need to specify here the class name q. So we will rotate the cube according to the y-axis by one degree. And we will rotate it with very little intervals. I mean, just hundred milliseconds. So I'm going to create a new function. Let's call it play pose. Let's create a new variable and assigned to it and arrow function. Now, we need to use a method called set interval. As you know, it takes two arguments. The first one is a callback function, which will be executed with some intervals. As for the second one is the amount of the interval itself. So as we said, the interval is going to be 100 milliseconds. Alright, now we have to rotate the cube according to the y-axis. So we need to use the style property. Let's attach it to the cube and it's going to be followed by transport. Now we have to specify the value of the rotate function. As we said, we need to rotate the cube by one degree after each interval. In order to do that, at first, I'm going to create a new variable. Let's call it y, and by default, set it to zero. Next, we need to pass here, rotate y function. So after each interval we need to increase the value by one. So we need here dollar sign. Then we need the variable y. And in order to increase it by one, we have to use here the increment operator, which is expressed by double plus signs. It's going to be followed by degrees. Okay? Now let's call the function. So as you can see, the cube is rotating. If we inspect the page and check the cube in the elements tab, you will see that after each hundred milliseconds, the value of the rotate function increases by one. Right now, the rotation effect doesn't look quite good because we need to use transition. So let's insert your transform and the duration 0.5 s. Alright, so now we have a much better effect. Next I'm going to take care of the controls. Actually, we will use a similar technique. We will rotate the cube in different directions. But in this case, we'll do that once we click the controls, Let's go ahead and attach to each arrow the event listener with the click event. Let's start with the top control. We need to attach a click event to the link elements. In the previous video, we added additional classes to the I elements and actually would be better if we assign those classes to build link elements. Because again, we need to select link elements and not the icon. So let's assign those classes to be lean elements. Quickly. I'm going to cut them out and paste them as the values of the class attributes. Alright, after that, Let's select the first link elements. I'm going to use again, query selector method. And then specify here the class top X control and the paranthesis. Next, I'm going to attach to it event listener With click event. And also we have to pass here the arrow function, which will be executed once we click the icon. So once we click the top control, we need to rotate the cube with x-direction. So I'm going to grab this line of code from here. Then change y into x. Here. We don't need plus plus sign because we are going to increase the value by one, but by 20 degrees. So we can write here either x equals x plus 20. In this case, the value will increase by 20 on each click. Or we can simply write here Plus equals sign. Those expressions are the same. Okay? Besides that, we need to create a new variable. Let's call it x and set it to zero. Actually, before we program all controls, I'm going to pause this function for a while in order to see the results better. So if we click the top control than the cube will rotate with x-direction by 20 degrees. Okay, let's go ahead and do the same for bottom control. Let's duplicate this code. Change the top into the bottom. And also instead of the plus sign we need here minus, because we need to rotate the cube in the opposite direction. Okay, so everything works fine. Let's move on and program the left control. Let's duplicate this code once again. We need here left y. Also change the direction. We need y-axis. Now, if I click the left control than the cube will rotate. But we have here a little issue if we click the left arrow and then if we click the top control, at first the cube will get its default position and then it will rotate. We don't need that. We need to maintain the previous position of the cube. And in order to do that, we need to define all three directions no matter which direction we are changing. So we need to add here rotate y. Let's insert your y degrees. Then we need to rotate Z. With Z degrees. Actually, we need to create a variable for the z-direction. So let's create it and set it to zero. Okay, let's add the rotate function here as well. We need rotate x and then rotate z. Okay? So now if we check, you will see that everything works perfectly. Alright. Let's go ahead and take care of the rest of the controls. Let's duplicate this code and change left to right. And also instead of the minus sign here, plus. Alright, so the right control works fine. Let's move on and program those two arrows. Let's duplicate this code once again. So we need here top Z. So in this case we need to rotate the cube z direction. So I'm going to live here just y. As for the rotate Z function, we need here, z minus equals 20. Okay? So this control works good. Let's move on and take care of the last one. Let's duplicate this code here. Then change top to bottom. And also instead of the minus sign, Let's insert here plus. Alright, so all the controls worked perfectly. We are almost done with the cube. We just need to add to it a couple of more things. Let's get rid off comment from here. As you see, transform property has just the rotate y function here. So we need to add here other directions as well. Otherwise it won't work properly. So we need here rotate x and then rotate Z. Alright, so now everything works fine. The only thing that I'm going to do is to stop the cube from rotating. Once we hover over the controls. For that, we need to create a new variable which will have the Boolean value. Let's set it to true. And then we need to create an if-else statement inside the function. As a condition, I'm going to insert your pool. So if it is true, then we have to run this function. So let's grab this code and paste it here. And then if it is false, we need an else statement in which we have to stop executing this function using the clear interval method. So in order to clear the interval at first, we need to store it into the variable, and then we have to pass this variable into the clear integral function. So let's go ahead and create a new variable. We need to declare it without any value. Then store, sell integral function into this variable. And finally, pass it into the clear integral function in the else statement. So right now everything works fine. Cube is rotating. But if we change the value of the boot variable and assign to it false by default, then the cube will stop rotating. Okay, let's get back here too. Now we need to use the mouse over event. Let's go ahead and select controls. I'm going to use again querySelector method. Let's specify here the class controls and then adhere event listener with mouse over event. So once we mouse over the controls, then we have to stop rotating. Therefore, we have to set Boolean true, false. And also we need to call again the function in order to clear the interval and stop rotating. So now if I hover over the controls, the cube will stop rotating. But once we mouse out that it won't continue rotating, so we need to fix that. Let's duplicate this code and change the event. We need mouse out. And also instead of false, we need you to. Okay, so now everything works perfectly. The only thing that I'm going to do is to change the value of the y-variable. Let's make it 20, because once we reload the page, I want the cube to be slightly rotated at the starting point. And besides that, we need to change this value from CSS by default. So let's get rid of the comment from here and add here rotate x and the rotate Z functions. We need to set both of them to zero. As for the rotate y, it's going to be 20 degrees. Okay? So that's it. Everything works perfectly. And actually we have finished working on the cube. Let's move on and take you off the next section. 38. Project 4 - Create and Customize iPhones Section: Alright, once we are done with the first section, now it's time to move on and create the next one. Let's take a look at the finished version of the project. This section is going to be a relatively simple one. We will have a couple of elements like heading. Then the images which change on hover with some fade effect. And those two buttons also with the hover effect. Okay, So that's it we are going to create. Let's go ahead and start to create an HTML markup. I'm going to insert new comments, section two and section two. And then open section element with a class section two. Next we will have heading. And actually I'm going to separate all parts of this section again with comments. So let's insert a huge section two heading of section two heading. And then open H1 tag with a class section two heading with the content iPhone 12. Okay, Next we will have the images. Let's insert again new comments, section two images. Then end of section to images. And open div tag, which is going to be the wrapper I'm going to assign to the class iPhones. So I'm going to insert you to defer image elements. Let's open the first one and select the image. We have folder called images. Then inside that folder, we have another folder called iPhones, where we need to select iPhones one, Im2 dot PNG. Also I'm going to assign to the image element class attribute with a value iPhone IMG one. Let's duplicate image element and change the name of the image. We need here, iPhones to IMG. And also I'm going to change the class name. We need here, img2. Okay, That's it about the images. Next, we need to create the last part of this section. I mean the buttons. So let's create new comments. Section two buttons, then end of section two buttons. Then open div tag, which is going to be the wrapper. I'm going to assign to it class iPhone BTS. So we will have two different buttons and they will be presented by the link elements. So let's open a tag with the class iPhone btn. Besides that, we need span element for each button. They will be displayed once we hover over the buttons as the content, let's insert. You'll learn more than duplicate elements and change the contents of the span element. We need here shop. Okay, so that's it about the HTML markup. Let's move on and start to write some CSS. Let's insert your new comments for section two. First of all, I'm going to define width and height. Let's select a section two elements and set width to 100%. As for the height, I'm going to make it 120% of the viewport. Besides that, let's create some space at the top and bottom inside of this section using padding. Let's set it to 10% of the viewport at the top and bottom and zero on the left and right sides. So the height of this section is 120% of the viewport. But the constant itself takes up 100 viewport height. A padding at the top and bottom gives us space between the sections. Because the box-sizing property is set to border-box in common styles. Right after that, I'm going to align the elements using Flexbox. So let's set display to flex. Then we need to align elements vertically in a column so we need to change the direction of the flux. Let's make it a Column. Next, I'm going to align items in the center horizontally using align items center. Lastly, in order to create some space around the flex items, Let's use justify contents with the value space around. Okay, that's it about this section element. Let's move on and customize the heading. Let's institute new comments. Section two heading. Of section two heading. Then select the heading elements and increase the font size, make it ten RAM. Then I'm going to make the font lighter using font-weight. Let's make it 200. And also, let's set the color of the text To black. Alright, that's it about the heading right now, let's move on and take care of the images. Let's insert new comments. Section two images. Then, and off section two images. And select the wrapper div elements, which has the class iPhones. I'm going to define width and height. Let's set height to 60% of the viewport. That's for the width. I'm going to make it 50% of the viewport. We need 50 viewport width. Okay, Next I'm going to select the image itself. And we need to define width and height. In this case, I'm going to inherit both values. So we need to inherit for width and height. And also I'm going to use object contains. Now the sizes of the images are smaller. And next I'm going to place them on top of each other. For that, Let's use position absolute. Okay, for now that's it about the images. Let's move on and customize the buttons. I'm going to insert new comments. Section two buttons. And of section two buttons. Then select the wrapper div elements. So I'm going to align. But since using flexbox, so we need here display flex. After that, I'm going to customize the button itself. So let's select it. But before that, let's go ahead and hide span elements for awhile. Let's select them and set display property to none. And then start to customize the buttons. First of all, I'm going to set width and height, both of them to six RAM. Then change the background. I'm going to use your linear gradient. First of all, let's define the direction of the transition. I'm going to make it to right. Then use the first color. In this case, I'm going to use RGB value. Let's insert your 5013 times. And also I'm going to insert an additional value, 60%, which means that the transition of the callers will begin after 60% of the first color. Next, I'm going to insert the second color. Use again RGB value. Let's insert here a two to three times. Next, let's create some space between the buttons and also make them rounded. Use margin. I'm going to set it to zero at the top and bottom, and then three rem on the left and right sides. As for the border-radius, let's set it to 50%. Okay, right now That's it about the buttons. Next, I'm going to create those frames inside of the buttons using the after pseudo elements. So let's select iPhone btn, followed by the after pseudo elements. First of all, we need to define content. Let's make it empty. Then I'm going to define the width and height. Let's set both of them to 50%. Also, I'm going to set display to block in order to make the elements feasible. And lastly, create border with the value is 0.1 RAM solid. And as the color, Let's use six E D a, E6. So here we have the frames, but as you can see, we need to fix their positions. They should be placed in the center of the buttons. And also I'm going to make them slightly rounded. So first of all, let's use border-radius with value one RAM. In order to center the frames inside of the buttons, we need to use Flexbox. As you know, we have all already created a cluster center with some flexbox properties. So I'm going to assign to both buttons, class center. Alright, that's it about the after pseudo element. Now I'm going to take care of this panel elements. By default, they should be hidden and we need to display them once we hover over the buttons. Before we create the hover effect, at first, I'm going to customize the span elements. So let's make them visible and get rid off display none from here. So as you can see, once the span elements are visible, they have messed up the layout. So first of all, we need to take care of their positions. I'm going to place them at the top of the buttons. So let's set their position to absolute than in order to position span elements according to their parent element, which is the button, we need to assign position relative to the button And then after that, I'm going to set the top position. Let's make it minus three ramp. Alright, so this pan elements are positioned. Next, I'm going to customize them. Let's change the font size, make it to 1.6 RAM. Also, I'm going to set font weight to 400. Then transform text into uppercase. Also create some space between the letters. Let's make it 0.1 run. And then change the color. I'm going to use here primary color. Now the elements or customized. But as you see, we have here a tiny issue. The first span element is broken on two different lines. And in order to fix that, Let's define a width with a value max content. So in this case, as the name of this value suggests, the element will take up the width that is required to display the content of the element. Alright, so the span elements are customized and now we have to create a hover effect. First of all, I'm going to hide those span elements by default. And for that, I will use transform property with the scale function. In order to hide the elements, we need to set the scale to zero. So the element is hidden. Next, let's select a button with hover, followed by the span element. So in order to make the animal visible, we need to set the scale to one. And also let's use transition with the value is transform 0.5 s. Alright? So once we hover over the buttons, the span elements will appear nicely. So most of this section is done, but we have to do a couple of more things. We need to add background to the heading and the images. And also we need to create another whole row effect for the images. Let's go ahead and start with the background of the heading is going to be created using before pseudo element. So let's go ahead and select it. First of all, we need to define the content. Let's make it empty. And then define width and height. I'm going to make the width of the background 130%. For the height, let's make it 30 viewport width. Besides that, we need background with linear gradient function. I'm going to insert your two colors. The first one is going to be the primary color. For the second one is going to be white color. So right now the element is not visible. We need to define its position. So let's set it to absolute. Besides that, we need to position relative for the heading because it is a parent element and we need to position background according to the parent element. So here we have the background. Next I am going to define the top and left properties. Let's set both of them to zero. Besides that, we need to skew the element with x direction. So let's use Transform, then the function called skew X. And as the value I'm going to insert here -50 degrees. So now the background looks much better, but still we need to add to it a couple of more styles. Right now. It is skewed according to center, because as you know by default the origin of the transformation is center. In this case, we need to change it and make a left top. So let's go ahead and set transform origin to left top. So the background is positioned correctly. But we have here a tiny issue. They hadn't ended up behind the background. And in order to fix that, Let's use the z-index property. I'm going to set it to lower value than zero. So let's make it minus one. And besides that, I'm going to make the corners of the background around using border-radius with the value one rep. Alright, let's see about the background. Before we move on to the images, I want to increase the space between the heading and the images. So it's assigned to it, margin bottom with the value five ran. Right? So now we can take care of the images. First of all, I'm going to create the background. I'm going to use again linear gradient with two different colors. The first one is going to be primary color. As for the second one, it should be white color. And then use border-radius with value 0.5 rant. Okay, so here we have the background and the only thing that we need to do is to create a hover effect. By default, I'm going to hide the second image and display it on hover. So let's go ahead and hide this second image. Let's select it and set opacity to zero. Now we need to create a hover effect. Let's select wrapper iPhones with hover, followed by the first image. Let's set opacity to zero. Then I'm going to duplicate this code. We need here G2 and the opacity one. And finally, use transition with the values opacity 3 s. So now if we hover over the images, you will see that everything works perfectly. With this second section, we are done. Let's move on and take care of the next one. 39. Project 4 - Create and Style MacBook Section - Part 1: Alright, so once we are done with the second section now it's time to move on and start to work on the next section, which is going to be the MacBook section. First of all, let's take a look at it finished projects and see what this section looks like. So once we scroll down the page than the MacBook will open, the logo and the progress bar will appear. After that, the magma will turn on and some contents will display. So let's see what we are going to create. Let's go ahead and start with the HTML markup. I'm going to insert new comments for Section three. Then open section elements with the class section three. This section element will consist of two main parts. We will have the heading and the contents, which itself will include a couple of different parts. So let's insert your new comments for Section three heading. Then open H1 heading tag with the class section three heading. And as the content, let's insert your MacBook Air. Next we need to create the content. So let's insert new comments. Section three content of Section three content. Then open div tag with a class section three content. In this part, we will have images. I'm in the images of the top and bottom parts of the MacBook. Initially it was one image and I have separated it into two parts to create a MacBook opening effect. Let's insert new comments. Section three images. Than end of Section three images. I'm going to open image tag and then specify here the part of the image. We have Images folder. Then we need to select MacBook folder and the image MacBook screen dot PNG. Besides that, Let's use class attribute with a value MacBook IMG one. Let's duplicate this line of code and change the image name we need here multiple keyboard, lot PNG as public class name. It's going to be MacBook img2. Okay, next I'm going to create your logo and the loading progress bar. So let's institute new comments. Section three loading. Then end of Section three loading. Then institute div tag with a class loading wrapper. Next, I'm going to create another div tag. With a class loading. It will consist of two different elements. The first one is going to be the logo. I'm in the Font, Awesome icon, that's open. I element with a class is FAB, FA, apple. As for the second element is going to be div, which will be the progress bar. Alright, after that, I'm going to create the last part of the content is going to be Section three info. Let's insert your comments. So I'm going to open div tag, which is going to be the wrapper. Let's assign to its class MacBook info. Inside of that element, we will have three different elements. I mean the heading paragraph and the bottom. Let's open H2 heading tag with a class MacBook Info heading as the content. Let's insert here light speed. Next, I'm going to open P tag with a class MacBook price as the content. Let's insert here starting at $999. After that, we need to create button. Let's assign to it class MacBook, btn, and then interfere by now. Alright, so the HTML markup is created and now we have to write some CSS. Let's go ahead and insert your new comments for Section three. Then I'm going to select section elements. And first of all, let's define we can hide, I'm going to set both of them 200 per cent, and also change the background color. Let's set it to black. Okay, Next, I'm going to align elements in the center using Flexbox. Let's use cluster center, which we have prepared in the common styles and assign it to the section element. Besides that, we have to change the direction in order to align elements vertically in a column. So let's set the flex direction to call them. Lastly, I'm going to create a little space at the top and bottom inside of this section. Let's use padding. Set it to 15 RAM at the top and bottom and zero on the left and right sides. Alright, that's it about this section element. Let's move on and customize the heading, which right now is not visible because the background is black. So let's insert your new comments, section three heading. End of Section three heading. Then select this section element. First of all, I'm going to increase the font size. Let's make it ten RAM. Then I'm going to make the font lighter. Let's set font weight 200. Also change the color. I'm going to use your color primary. And finally, let's create some space at the bottom using margin bottom 15 run. Alright, let's see about the heading. Next. I'm going to take care of the content. Let's take a look at the finished project. So at first I'm going to customize the MacBook like so without any opening and loading effects, we will add the background image to the loading wrapper. And also we will customize the MacBook info. First of all, I'm going to decrease likely the size of the MacBook images. Let's insert your new comments for section contents. Then I'm going to select Section three content and set its width to 80 per cent. Next, I'm going to institute new comments for the images. We need Section three images of Section three images. So in this case, I want the image to inherit the width from the parent element. So let's Institute with inherit. So now as you can see, the MacBook is smaller. Next, I'm going to align elements of the content using Flexbox. Let's add a class center to the content and also change the direction, make it color. Besides that, I'm going to use your property called perspective, because eventually we will create some 3D effects. I mean, we will open Mac book in a 3D environment. I'm going to set perspective 2000 ran. Alright. Next I'm going to add the background to the loading wrapper, but before that, we need to feed it to the screen. So let's insert new comments for Section three, loading. Then select wrapper and set its position to absolute. Then in order to position it according to its parent element, let's set the position to relative for this section contents. Next, I'm going to set the width and height of the wrapper. Let's set width to 60%. As for the height, let's make it 85%. I chose those values manually in order to fit the loading wrapper to the screen of the MacBook, I use for your percentage values in order to make the background image responsive to different screen sizes. Let's set an image as the background. First of all, I'm going to use linear gradient. Let's insert here RGBA value. I mean the white color and set opacity to 0.4. Then use here the same color. After that, I'm going to define the path of the image. We have images folder than another folder, MacBook, and then select MacBook one desktop dot PNG. Besides that, I'm going to define the position center. And also we need here, no repeat. Okay, so here we have the background image, but right now it's not fit to the screen because we have some content down below. I'm going to place it in the center. So let's institute new comments. We need sections we info than end of Section three info and select MacBook info. I'm going to set its position to absolute. So now let's consider we have a much better results, but still we need to hide this little part of the background image. And also we need to move it slightly up in order to hide the bottom part of the image. I'm going to place it behind the screen. And for that, let's use the z-index property. I'm going to set it to lower value than zero. Let's make it minus one. Next, I'm going to move the image a little bit up using the top position. In general, when you use position absolute, top and left positions are set to zero by default. But in this case the loading wrapper is a flex item. It is centered using Flexbox and so the position is changed and the top is no longer equal to zero. So let's go ahead and set the position top to 6%. It will move the elements a little bit up. Alright, let's see, the background is positioned correctly. Next, I'm going to customize the MacBook info 40. Project 4 - Create and Style MacBook Section - Part 2: Alright, so now we have to style them MacBook info, but before that I'm going to hide the logo for awhile. So let's select loading and assigned to display none. Okay, next I'm going to take care of the MacBook info. I'm going to define width. Let's set it to seven to run. And also I'm going to place elements in the center using text-align center. Alright, next, let's go ahead and style the heading. Let's select MacBook Info heading. First of all, I'm going to increase the font size. Let's make it six RAM. Then I'm going to make the font a little bit lighter. So let's set font way to 400 and also change the color. In this case, I'm going to use primary column. So the heading, it looks good, but I think it's not quite visible. So I'm going to increase the opacity of the linear gradient colors slightly. Right now they are 0.4. So let's increase them and make them 0.6. Okay, now I think it's better. Let's move on to the paragraph. Let's select MacBook price. Then increase the font size, make it 2.5 rem. Also, I'm going to make the font lighter. Let's set font weight to 200. And besides that, I'm going to create some space at the top and bottom using margin. Let's set it to three rem at the top and bottom and zero on the left and right sides. Alright, that's it about the paragraph. Let's move on and customize it button. I'm going to select MacBook BTN. Let's set the width to 25 RAM. Then I'm going to define height. Let's make it five rem. Next, I'm going to change the background. Let's use background image and then linear gradient function with two different colors. The first one is going to be D, D, D. I'm in the light gray. As for the second one is going to be the white color. Next I'm going to get rid off default border. Let's set border to none. Also, I'm going to make the corners of the button rounding using border-radius. We value 0.5 rem. Besides that, Let's use box-shadow. I'm going to use multi-level box-shadow. The first one is going to be 0.1 round three times. And the white color. As for the second one, it's going to be the same shadow but on the left side. So we need here -0.1 room twice, then 0.1 RAM, and the same white color. Okay, So it's considered button looks much better, but I'm going to add to it a couple of more styles. So let's define font size, make it 1.5 RAM. Then I'm going to set font-weight to 500. Also create some space between the letters. Let's make it point to RAM. Also change the color of the text. Let's use here primary color. And then finally, change the type of the coarser, make it point. Alright, let's see about the MacBook info. It is customized and now I'm going to take care of the loading part. Right now the Apple icon is hidden, so let's make it visible. I'm going to get rid of display none from here. Then set width and height, both of them 200 per cent. Next I'm going to take care of its position. Let's set position to absolute. And then define top and left properties. I'm going to set both of them to zero. Besides that, Let's change the background color. I'm going to make it black. So it's can see we need to hide in MacBook info. I'm going to do that using opacity. Let's set it to zero. Alright, let's move on and customize the logo. Select the Font Awesome icon. Let's increase its font size, make it ten RAM. And also change the color. Let's make it white. So here we have the logo, but we need to fix its position. I'm going to place the logo and also the progress bar in the center. For that, I'm going to add a cluster center to the loading. And also we need to change the direction. Let's make it column because we need to place the elements vertically. Nicole. Okay, let's take care of the progress bar. Right now it is not visible because we just have here the empty div element. So let's go ahead and select it. And first of all, Define its width and height. I'm going to set with 222 RAM. As for the height, let's make it 0.3 RAM. And also change the background color, make it 888. So now the progress bar is feasible, but it is placed too close to the logo. Let's go ahead and fix that using margin. I'm going to set margin bottom to ramp. Alright, so the only thing that I'm going to do with a progress bar is to make it rounded. So let's use border radius with the value of five rem. Alright, that's it about the progress bar, as you remember eventually, when we scroll down the page and the MacBook opens, the progress bar should feel we will create this effect using the after pseudo elements. So let's select it. First of all, define the content. We need to make it empty. Next I'm going to set position to absolute. Then in order to position the element according to its parent, let's assign to the progress bar position relative. And then add some more styles to the after pseudo elements. I'm going to define top and left properties. Let's set both of them to zero. Next, I'm going to define the width and I'm going to make it 50 per cent for awhile. Eventually, it will be zero and it will increase once we scroll down and the progress bar will appear. After that, Let's set high 200 per cent and also change the background color. Make it white. So everything is ready. And now we have to add some effects to the MacBook. Let's go to the Java file and insert your new comments, section three. And section three. So we need to create effects and display them once we scroll down the page to the section three. So we will use a scroll events. And besides that, I'm going to add a new class. It is Section three content. And then using that new class, we will define different CSS styles. First of all, let's select Section three contents. I'm going to create new variable and then select these elements using querySelector method. We need to specify here the class name, section three content. After that, I'm going to attach to the window object event listener with scroll event. Actually window is the global object. Let's specify here they scroll events and also pass here the arrow function, which will be executed once we scroll down the page. After that, we need to create IF statements in which we have to define whether we scroll down to this section three contents are not in the condition of the if statement. We will use a couple of different properties. At a glance. It might look a little bit difficult, but I will try to explain it. So the first property that I'm going to use is called page Y offset. We need to attach it to the window object. This property returns the pixels. The current document has been scrolled from the top edge of the window. In other words, it is the length of the part of the webpage that was scrolled up. Next, we need to use another property, which is called an inner height. This property returns the height of the viewport of the window. And we need to add this property to the page offset. So this expression will give us the total distance from the top edge of the webpage. I mean, the part which was scrolled up plus the height of the viewport. We need to compare this distance to the position of this section three content in order to figure out whether we scroll down to the needed part of the webpage or not. So we need here greater than or equal sign. And now we need to use another property which is called offset top. But in this case, we need here offset top of the section three contents. So this property gives us the position of the elements in pixels. I mean, it measures the distance from the top edge of the webpage. So if this condition is true, then it means that we scroll down to this section three content. But actually, that's not quite enough because I want to start effects when we scroll down and reach to the half of the section three content. And in order to define that point, I'm going to use another property called offset height. It gives us the height of the element in pixels. And we need to divide it by two Okay, So if this condition is true, then it means that we need to display the effects. Before that I'm going to test if this works fine. So I'm going to run through the console, scrawled. Let's inspect the page and switch to the console tab. So once we scroll down and reach the half of this section for content, then we will get scrawled in the console. Alright, everything works fine. Now we need to add a new class to the section three content. Let's use here one of the properties called class list. As you know, it gives us all the classes that the element has. And also it allows us to get access to the different methods like add, remove, toggle we need here at. And I'm going to specify here the class name change. Alright, that's it about the JavaScript. Let's go back to CSS. So we need to do a couple of things. First of all, I'm going to hide the loading wrapper. So let's assign to it opacity zero. Next we need to close the MacBook. For that, I'm going to rotate the first image, which is the screen. So let's select the first image and then use Transform, Rotate. We need to rotate it according to the x-axis. As the value, I'm going to insert your -80 degrees. So as you can see, the image is rotated, but of course that's not what we want. As you know, by default, the element is transformed from its center. But in our case, we need to transform it from the bottom. So let's go ahead and change the origin of the transformation. Make it Watson. Okay, so now the MacBook is partially closed and we have to open it once we scroll down. And that's the moment when we have to use class change. Let's select MacBook IMG one. Next, we need to transform, rotate x, and we have to set it to zero. Besides that, lets us transition with transform and with the duration 3 s. So if I scroll down and reach the section three content than the MacBook open. Okay, so that's it about the first effect. Now we have to display the logo and the progress bar. Let's use again class change, followed by the loading rapper. Right now it's opacity is zero and we have to set it to one. Next, we need to use transition with the values opacity than the duration 1 s. And besides that, we need to hear a little delay time because at first the MacBook should open and we have to wait for it. So let's add here 2 s. Okay, so once we scroll down, then the MacBook will open. And after that, the logo and the progress bar will display. Right now the progress bar doesn't work. The half of its width is field. So let's go ahead and take care of that. I'm going to make its width zero. Then use again class change, followed by the after pseudo elements. So once the progress bar appears, then we have to increase the width of the after pseudo element. Let's set it to 100% and then use transition. We need to deal with than duration one seconds. And again we need some delay time. Let's set it to 3 s. So now if I scroll down, you will see that everything works perfectly. Alright. After that, we need to hide the logo and the progress bar and display the MacBook info. So let's use again change. Then. Select loading and set opacity to zero. Use again transition 1 s and then the delay time 5 s. Okay, so once we scroll down, then the logo and the progress bar will hide. The background image will display. After that, we need to display MacBook info. So let's use again change. With MacBook info. We need to set opacity to one. And again, we have to use transition opacity 1 s and the delay time 6 s. Okay? So it's can see everything works perfectly and we're almost done with this section. The only thing that I'm going to do is to change the shape of the background of this section using the clip path property. Actually, I have already prepared the values, so I'm going to copy them from that text file and I will attach it to this lecture. So you can either download it and copy the values are just right in manually. Alright, so finally we're done with this section. Hopefully it was interesting because we have created a couple of nice and cool effects. Let's go ahead and take care of the next section. 41. Project 4 - Create and Style Watches Section: Alright, so have finished working on the MacBooks section, and now it's time to take care of the next section, which is going to be the Apple Watch section. Let's take a look at the finished project. So here we have the Apple watches. I mean, the customer can try different case and bands using those controls in order to choose the favorite combination will create these effects using CSS and JavaScript. First of all, we need to start with the HTML markup. So let's go ahead and insert your new comments for Section four. That open section element with a class section four. Next, we need to create a div tag, which is going to be the wrapper of the watches. I'm in the bands and cases. But before that, let's insert new comments. Section for watches and off section for watches. And then open div tag with a class watches. This element will include two different parts, I mean the bands and cases. Let's insert new comments for watch bands. Then open div tag, which will wrap the images of the bands. So I'm going to assign to it class watch pants. Then open the image tag and select the image. We need folder images. Then another folder watches. And we have to select watch band one JPG. Besides that, I'm going to assign to the image element class attribute with a value watch band, IMG. So overall we will have nine different images. I'm going to duplicate this line of code eight times and then quickly change the image names. We need numbers from two through nine. Okay, That's it about the band's. Next, we need to watch cases. So let's insert your new comments. Watch cases then and of watch cases. Then I'm going to grab this entire code from here, paste it, and first let's change the class. I mean, when to change bands into cases than we need case instead of banned everywhere. And also, I'm going to change the extension. We need PNG instead of JPG. Alright, let's see about the bands and cases. Next, I'm going to create the controls. We will have four different controls. So let's insert your new comments. Watch controls than n of Watch controls. Next I'm going to open the link tag with the class watch control. Actually it's going to be the common class name. But besides that, we need individual class watch, top control. And then inside the link element, I'm going to pass Font Awesome icon with the class is FAS, FAA, angle up. So overall we will have four different controls. I'm going to duplicate link element three times and then we need to change the classes. So the second one is going to be watch, right control. As for the Font Awesome icon is going to be angled right. Then we need watch bottom control, angled down. And lastly, watch left control. As for the icon is going to be angled left. Okay, Finally, we need to create bottom. Let's insert again new commons, watch Batson and of watch button. And then Create button elements with the class watch, btn and with the content by now. Alright, that's it about the HTML markup. Let's move on and start to customize this section. At first we will style it and then we will make it work using JavaScript. So let's go ahead and insert your new comments section for end of section four. Then select section elements and define the height of this section. I'm going to make it 140% of the viewport. Besides that, I'm going to create space at the top and bottom inside of this section using padding. Let's set it to 20 viewport height at the top and bottom and then zero on the left and right sides Before we move on, I'm going to decrease the size of the images. I mean both bands and cases. So let's insert new comments section for watches than end of section four watches. Besides that, I'm going to insert here another comments for watch pants. Then select watch band, IMG. I'm going to define the width and height. Let's set both of them to 35 RAM. And also I'm going to use object fit contain. Next when it is same for watch cases as well. So I'm going to duplicate this code here and then change bands into cases. And also instead of watch band, IMG, let's just watch case IMG. Alright, so as you can see, the images became smaller and now we have to take care of the alignment of them. I'm going to use flexbox. So we need to add a class center to the section elements, also to watches and then bends and cases. Next, we need to change the flex direction for section elements and the cases as well. Let's select watch cases and set the flex direction to column. So right now the bends are placed horizontally. As for the cases they're placed vertically, but still the layout is messed up. Now we have to manipulate the positions. I'm going to assign two div elements, position absolute, I mean, wrappers of bands and cases. And I'm going to use one of these CSS combinators called Child selector, which selects the direct child elements, in this case direct div elements. Let's set position to absolute. Next, we need position relative for the parent elements I'm in watches. So let's select it and set position to relative. And besides that, I'm going to define width and height. Let's set both of them to 100%. Okay, So now the images are aligned nicely and we just need to hide some of them because as you see we have here a scroll bar and also some of the cases are placed in the MacBooks section. So in order to fix that, we need to use overflow hidden. Alright, let's sit about the watches now. I'm going to take care of the controls. Let's insert your new comments for the Watch controls. First of all, I'm going to take care of their positions. As you know, they are direct children of the section element. So I'm going to position them according to this section. Let's select the watch control and assigned to it position absolute. Then we need position relative for this section element. Now, I'm going to define positions for each control separately. Let's go ahead and start with the top one. First, let's define top and left positions. I'm going to set top 222 viewport height as probably left position. I'm going to make it 50 per cent. And besides that, we need to send to the control vertically. And for that, we need to move it. I mean, you need to use here translate x function with the value -50%. So here we have the top control. Right now, it is really small and hard to see, so I'm going to style it. Let's define its width and height. I'm going to set both of them to for RAM. Then change the background color. Let's use your RGBA value. Let's insert here 22013 times and then the opacity 0.4, and then make them rounded using border-radius. Let's set it to five rem. Next, I'm going to place the icon in the center. And for that, let's use the class center. I'm going to assign it to all the elements. After that, Let's customize the icon itself. So let's select elements. First of all, I'm going to increase its font size. Let's make it three RAM, and then change the color. Let's make it primary. Okay, so the control is styled. I'm going to move on and position the second control. I mean the right control. Define top position as 50 per cent. Then I'm going to set right position to, to run Besides that, we need to send to the control vertically. So we need here Transform, Translate, Y -50%. Okay, next comes the bottom control. Let's select it. I'm going to define left position. Let's make it 50%. Then we need bottom. I'm going to set it to 20 viewport height. And again, we need to transform with Translate function. In this case, we need x-direction with a value -50 per cent. Alright, so let's consider the bottom control is positioned. Actually. We have here the button which ended up behind the control. And we will take care of that a bit later. Before that, let's position the last control, which is the left one. So let's select it and define top and left properties. I'm going to set top position to 50 per cent. As for the left property, I'm going to make it to Ram. And besides that, we need again transform with Translate function, in this case with y axis and with the same value -50 per cent. Okay, let's see about the controls. Let's go ahead and take care of the button. Let's insert new comments for the watch button. Then select the button and defines position. I'm going to set it to absolute. And besides that, we need to define bottom and right positions. I'm going to set bottom property to 30 viewport height. As for the right position, Let's set it to 25 per cent. So the button is positioned, and now I'm going to make it look good. First of all, let's define within height, I'm going to set width to 13 RAM. As for the height, let's make it five RAM. Then change the background color. I'm going to set it to black. And besides that, we need to change the color of the text. Let's make it primary. Okay, after that, I'm going to change the default border. Let's use here border with values 0.1 room. I'm going to make it dashed and also change the color, make it white. Next, let's make the button rounded using border-radius with a value for Ran. Okay, So button looks good. Let's add to it a couple of more cells. I'm going to take care of the text. Let's change its font size, make it 1.6 RAM. Also, I'm going to make the font lighter. Let's set won't wait 200. And lastly, change the type of the coarser, make it point. Alright, so that's it. The entire section is customized and now how to make it work? 42. Project 4 - Make Watches Section Work: Alright, once we have customized the watch section now we have to make it work. We have here four different controls. And once we click them, then the image is will move and you will be able to choose your favorite case and band. So we will create those things using JavaScript. Let's go to the script.js file and insert new comments section for end of section for first of all, I'm going to select all the needed elements. I'm in bands, cases and all for different controls. Let's create a new variable. I'm going to call it watch bands. Then select element using querySelector method. We need to specify here class watch bands. Let's duplicate this line of code and change bands into cases. After that, I'm going to select controls. Let's start with the top control. Create new variable and call it watch top control. Let's select it using again query selector method. I'm going to specify here the class name, watch tab control. Let's go ahead and duplicate this line of code three times and change the names and the class names we need here, right? Then the next one is going to be bottom. And finally, we need left. So all the elements are prepared, as you know, controls are created using the link elements. And once we click them, then we will navigate to the top of the page by default. And actually we have the same problem with the cube controls as well. If we click them, we will navigate to the top of the page. Let's select all those controls. I'm going to write this code at the top. Let's insert your new comments, CommonJS than n of common JS. Then I'm going to select all controls using querySelector all method. First, let's specify here the class name. Watch control, than we need controls of the cube when to separate those classes using coma. And finally integer a. So in order to fix that problem, we have to look through the node list which is returned by the query selector all method. It is an array-like object. Then we have to attach a click event to the controls and use one of the methods called prevent default. So in order to look through the list, I'm going to use one of the array helper methods called for each. It takes one argument, which is the callback function. This callback function itself will have one argument. It's going to be the current control in the list. And next, we have to attach to the control event listener with click events. Also we need here callback function. I'm going to pass here an event object. And then we have to attach to the event object method called prevent default. Now if I click the controls, they will do nothing and we won't navigate to the top of the page. Alright? So once we click the controls, we have to move the wrapper elements. I mean watch bands and watch cases. And we'll do that using margin. So the width and height of each image or equal to 35 rem. And in order to move one image and fit it to the band, we have to move the entire element by seven to ramp. So in order to control the distance, I mean the movement of the elements, I'm going to create two different variables. One for the vertical direction, I mean for the cases, and the second one for the horizontal direction for the bands. So let's call the variable x is why it's for the vertical direction. I'm going to set it to zero. And then we need x is x with a value of zero as well. So those values will increase or decrease by seven to ram according to the direction. I'm going to start with the top control. Once we click it, we should move watch cases to the top. So let's go ahead and attach to the control event listener. We have to pass here click event and the arrow function. So now we have to move the elements using margin top. It means that we have to decrease the value of margin top by seven to RAM. And we have to do that on each click So we need here watch case is followed by the style attribute. And then we have to use margin top as the value. I'm going to subtract seven to RAM to the current value of the y-axis. So we need here x is y equal to x is y -70. Run. Or we can simply write this expression like so. X is y minus equals 70. Run, right? If I click the top control than the cases will change. But right now without any small defect. So in order to fix that, I'm going to use transition. We need margin top 1 s. So now we have a much better effect. Okay, So we need the same for the rest of the controls. Let's duplicate this code. The next control is going to be the bottom one. And also instead of minus equals, we need here plus equals. Next, we will have the right control. So let's duplicate this code. In this case, we have to move watch pants. So let's change watch cases into watch bands. Then instead of margin top, we need margin right? Also in the case of bands, we have to change the direction we need here, x axis. Let's duplicate this code. Change right into left. And also we need here minus sign. Okay? Like the watch cases, we need to transition for watch bands as well. So let's select watch bands assigned to transition. The values margin, right? 1 s. So now if we test them all for, controls will work fine. As you can see, bands in case some moving smoothly. But once we reach the last image, I mean in both directions than the element will continue moving infinitely. So we don't need that. Once we reach the last image, we had to hide the control. For that, I'm going to create a new function. Let's call it height control. So we need to check if we reach the last image or not. It will happen. Wants the value of the y axis or x axis become 280 RAM depending on the direction. I mean, sometimes we will need 280 RAM or sometime it's -280 RAM. In order to prove that we need this amount, I'm going to run y-axis to the console. So on each click, the value will decrease by 70 RAM. And once we reach the last image, then the value will be equal to -280 ramp. So we have to hide the control wants the value of the y-axis will be equal to -280 RAM. Let's create if statement where we have to check if x is y is equal to -280 RAM. In order to hide the control, I'm going to create a new class and CSS, where we will define some CSS styles to hide the elements. I'm going to call this class hide control, and then assigned to it opacity zero and visibility hidden. So if this condition It's true, we need to add that newly created class to the control. So we need watch top control, followed by the class list property. Next, we need to use one of the methods called Add. And we have to specify the class name inside of the parenthesis. And if the condition is false, then we have to display the control back. So we need to remove class high control. Let's use l statements. Then I'm going to copy this line of code. We need to change, add into removed. Right? Lastly, let's call this function onclick. So if we click the top control and then reach the last image, it will hide. We need the same for the rest of the controls. Let's go ahead and duplicate if statements. Then gets rid of the minus sign and also change the top into the bottom. Next, we will have the right control. In this case, we need x axis. And also we need to change the control. We need here, right. Next comes left control. Let's add here the minus sign. And also instead of a right control, That's entity here, left control. So the only thing that we need to do is to call this function down below for every control. Now, if I test and click all the controls, you will see that everything works fine. Okay, that's it. We have finished working on that section. Let's move on and take care of the next one. 43. Project 4 - Create and Style AirPods Section: Alright, so we have finished working on the watch section and now we have to move on and take year of the next section, which is going to be the airports, is going to be a kind of simple but nice section. We will have here the heading with two different images and also with two different buttons. Let's go ahead and as usual, start with the HTML markup. Let's insert new comments. Section five of Section five. Then open section elements with the class. Section five. Next, I'm going to insert a guy in New comments for this section five contents. Then open div tag with a class airports. This element will include the entire content of this section. So we will have here a heading, images, and buttons. Let's create new comments for the heading. We need Section five heading of Section five heading. And then open H1 heading tag with a class section five heading with the content, airports. Okay, after that, we will have the images. So let's create new comments for Section five. Images. Then open image tag and select Image folder images. Then another folder, airports, and then select airports, one PNG. Let's duplicate this line of code and change the name of the image we need here, airports to PNG. Alright, Finally, I'm going to institute the buttons. Let's create new comments. Section five buttons. Then end of Section five buttons. I'm going to open div tag, which is going to be the wrapper of the buttons. Let's assign to the class name airports Watson's. And then Open button tag with the class airports btn. And with the content, learn more. Let's duplicate the button and change the content. I'm going to insert here by. Okay, So the HTML markup is prepared, all the elements are created and now I'm going to customize this section using CSS. Let's go ahead and insert new comments for Section five. Then select the section element and define its width and height. I'm going to set with 200%. As for the height, let's make it 100% of the viewport. Okay, next I'm going to take care of the wrapper div elements. I mean the content wrapper. Let's Institute your new comments. Section five content of Section five content. And then select div elements with the class airports. First of all, I'm going to define width and height. Let's set with two 90%. As for the height, I'm going to make it 80%. And then I'm going to align the elements horizontally in a row. For that, Let's set display to flex. Right. After that, I'm going to take care of the alignment of the elements. Let's start with the heading. I'm going to place it in the center horizontally. Let's insert new comments for the heading. We need Section five, heading. Of Section five heading. Then select heading elements and set it's position to absolute. Okay, in order to position according to its parent elements, we have all our deep down that lots of times we need to assign to the parent element position relative. After that, let's define the top and left positions. I'm going to set top to zero. As for the left, let's make it 50 per cent. Then in order to center the elements perfectly, we need to move it to the left side. So we need to transform, then translate function with x direction. And we have to pass here -50 per cent Okay, so the heading is positioned next. I'm going to take care of the Batson's, which right now are placed on the right side of this section. I'm going to place them in the center. So let's create new comments for Section five buttons. Then select the wrapper div elements, which has the class name airports buttons. First of all, I'm going to take care of their positions. Let's set position to absolute. And then I'm going to place buttons perfectly in the center for that, I'm going to set top and left properties, both of them to 50 per cent. Then we need transform, translate and we have to specify both directions. We have to set them to -50%. Alright, so the elements are aligned and now we can go ahead and style them. Let's go back to the heading elements. I'm going to increase its font size. Let's set it to 15 ramp. Then make the font lighter. I'm going to set font-weight to 300. Then change the color. Let's use here white color. And lastly, I'm going to create some shadow effect. Let's use text shadow with the values 0.1, 0.1, RAM non-zero, and the cold or 999. Okay, so they're having a style. Let's move on and take care of the images. I'm going to create new comments, section five images of Section five images. And then select image elements. I'm going to decrease their size. Let's set with 250 per cent. Then make height 100%. And also use object feet, contain. The image is becoming smaller. And now as you can see, they are not placed perfectly in the center of this section. In order to fix that, I'm going to use the class center. Let's assign it to the section element. Alright, so now we have a better result. The only thing that I want to do regarding the images is to change the background color of the second image. First of all, I'm going to assign to eat a class. Let's call it airports img2. Then select it and change the background color. In this case, I'm going to use the primary column. Okay, That's it about the images. Let's move on and take care of the buttons. I'm going to create some space at the top of the buttons. So let's use here margin top with a value of five rem. Then select the button itself. First of all, I'm going to take care of the width and height. I'm going to set width to 15 RAM. For the height. Let's make it for RAM. And also change the background color. Use your primary color. Right next, I'm going to create some space between the buttons. And also I'm going to get rid of the default border. So let's create space using margin. I'm going to set it to zero at the top and bottom and two rem on the left and right sides. And also set the border to none. Alright, let's go ahead and add a couple of more styles to the buttons. I'm going to make them rounded. Let's set border radius 2.5 rem. Also change the color of the content. Make it white. And finally, change the type of the coarser, make it pointer. Okay, So right now the first button over D looks good. As for the second one, we need to change its background color, and also the color of the text. So in order to select the second button, I'm going to use one of the pseudo-class is called a lost child. Then change the background color, make it white as the color of the text. I'm going to make it primary. In this case, the common background color and the color of the text will be overwritten. Okay, so that's it. Everything looks good. And with this section, we are done. Let's move on and take care of the next one. 44. Project 4 -Create and Customize Footer: So it's time to create the last part of our projects, which is going to be the footer. It will be a simple filter, will have five different icons relevant to the five different sections. And they will allow us to navigate to the proper sections. Besides that will have a paragraph with some copyright text. Okay, so let's go ahead and start to create the HTML markup. I'm going to insert new comments for section six. Then open section tag with a class name, section six. So inside that section element, we will have two different parts. The first one is going to be the development, which will wrap all the icons. Let's assign to each class section six icons. So overall we will have five different icons and they will be represented using link elements. So I'm going to open link tag with the class. I can link. The icon itself will be an image. So let's pause here image tag, and then select proper image. We need images folder, then icons, and we have to select Home icon dot PNG. Alright, so as we said, overall, we will have five different icons. Let's duplicate link elements four times and change the names of the images. The second one is going to be iPhone. Then we will have MacBook than watch. And the last image is going to be AirPods. Okay, Finally, let's go ahead and create the paragraph. It will have class copyright. Then I'm going to insert to use some text copyright than insecure HTML5 entity. Emily copyright sign, we need ampersand copy. Semicolon is going to be followed by code and create. All rights reserved. Alright, that's it about the HTML markup. Let's go ahead and customize this section. I'm going to insert your new comments, section six. Of section six. Then select the section elements and define its width and height. I'm going to set width 200 per cent. As for the height, let's make it 40% of the viewport. Okay, let's move on and style the elements. Actually, we won't have many styles in this section. Let's decrease the size of the images. Select them and set with two tan RAM. Then I'm going to increase the space between the icons. I can link and use margin with the values 0.5 rem. Okay? So right now the elements are placed on the left side of this action and we need to place them in the center. So let's go ahead and assign the class center to the section elements. Alright, now I'm going to customize the paragraph. First of all, let's take care of its position. Let's select it and set its position to absolute. Then we need to define the position for this section elements because it's the parent. So let's set position to relative. And after that, let's define the bottom position for the paragraph. Let's set it to five ramp. Okay, So the paragraph is positioned. And finally, let's go ahead and style it. I'm going to increase the font size. Let's make it 1.5 RAM, and then create some space between the letters. Let's set letter spacing to 0.1 ramp. Alright, so all the elements are styled. And now as I said, I'm going to make those icons work. Once we click them, We have to navigate to the proper section. For that, we need to add to each section element id. And then we need to connect h reference attributes of the link elements to these IDs. So let's assign to the atria for us attributes, proper section names. We need to pass your section names from Section one through Section five. Then go ahead and assign to each section elements id, attribute with the same values. Let's start with the first section. Then I'm going to grab this code and paste it for each section elements and also change the section names. We need to section five. Okay, so now if I click the icon spoon, navigate to the proper section. But that's not what we want. We want to navigate with some smooth effect. In order to do that, we have to use one of these CSS properties called scroll behavior with the value smooth. And actually we have to assign it to the HTML element. Okay, So now as you can see, everything works fine. Once we click the I because we navigate to the relevant sections with small defect. Actually, before we move on, I'm going to do the same for the navigation items as well. We have here four different links and we have to specify the proper sections, starting with section two through the section five. So let's pass here the section names. So once we click the navigation items, then we will navigate to the relevant sections. Okay, So we're almost done. But I'm going to do a couple of more things here. As you can see, the finished project has the Apple icon in the title bar. So let's add it to our working project as well. We need to open link tag in the head element. Then we have to pass your shortcut icon. And then we have to specify the path of the file. It's going to be home icon, which is placed in the icon's folder. Okay, so now we have the logo in the title bar. The last thing that I'm going to do is to prevent the default actions of those two link elements in the iPhones section. Because once we click them, we navigate to the top of the page. In order to do that, we just need to add their class names here in the query selector. All method need to pass your iPhone btn. Alright, so now the problem is fixed and actually the entire project is created. The only thing that we need to do is to make it responsive to different screen sizes. 45. Project 4 - Make Project Responsive: Alright, once we finished building our project, now it's time to move on and make it responsive to different screen sizes. As you know, the project is built on an extra large screen size. We use the desktop first approach, and now we have to make it responsive to different breakpoints. Let's inspect the page and switch to the responsive mode. So right now the width and height are set for extra large screen size. I have all already prepared the breakpoints in which I'm going to make some changes. So I'm not going to waste time finding them. In general, there are no strict rules about breakpoints. Some of the developers set break points according to the popular devices. But it's better to set the break points on every website individually in order to make it look good on every different device. Okay, let's go ahead and set the first breakpoint. I think we need to make some changes once the screen size is less than 1,500 pixels. So let's go ahead and create a CSS media query. But first I'm going to insert your new comments, responsive and offer responsive. Then create a CSS media query and specify the max width as 1,500 pixels. On the breakpoint, I'm going to decrease the font size of the HTML elements. It will decrease the sizes of the elements that are measured in RAM. So let's set this font size to 45%. So as you can see, all the sections look good. And now we have to find the next breakpoint, which I think is going to be 1,100 pixels. So let's go ahead and create a new CSS media with the max-width 1,100 pixels. At first, I'm going to decrease the font size of the HTML element and let's make it 40%. Next, I'm going to make those navigation items bolder because they are not quite visible. So let's select it now per link and set font weight to 700. Okay, after that, I'm going to decrease the size of the heading on the banner and also we need to make the paragraph smaller. So let's go ahead and start with the heading. Let's select it and set its font size to eight RAM. As for the paragraph, I'm going to make its font size three ramp. Okay, so that's it about the first section. The only thing that I'm going to do on the breakpoint is to move the button of the watches section to the right side. So let's select watch btn and set its right position to 25%. Alright, so that's it regarding this breakpoint, all other sections look good. Let's move on and take care of the next one, which is going to be 900 pixels. So let's go ahead and create again a new CSS media query and specify the max width as 900 pixels. So on the breakpoints, I'm going to increase the size of the MacBook. So we need to select Section three contents. And I'm going to set width to 90%. Next, we need to increase the size of the loading wrapper because as you can see, it's not fit quite well. So let's select loading wrapper and set its width to 70%. Okay, lastly, I'm going to decrease the size of the logo. Let's select the Font Awesome icon and set its font size to six ramp. Okay, that's it about this section. The only thing that I'm going to do on the breakpoint is a decrease the size of the heading in the airport section. So let's go ahead and select Section five heading and set its font size to 12. Run. Okay, So with 900 pixels, we are done. Let's move on and find the next breakpoint. It's going to be 700 pixels. So let's go ahead and create a new CSS media and specify the max width as 700 pixels. On that breakpoint, I'm going to hide the cube controls at all. Let's use display none. So as you can see, the controls are hidden and now we need to move the cube a little bit down. So let's select it. I'm going to move it using top position. Right now it's set to minus two r1. And I'm going to make it 3D ramp. Next. I'm going to decrease the size of the logo and also I'm going to change its position. So I'm going to move it to the corner. So let's set top position to zero. As for the left one, I'm going to make it to ramp. Besides that, I'm going to select element and let's set its font size to eight Ran. Okay, That's it about the logo. Next, I'm going to change the layout of the banner and the cube. I'm going to place the queue behind the banner. For that, I'm going to set the position of the banner as absolute. So it's considered the cube ended up behind the banner. Right now the text of the battery not quite readable. And in order to fix that, I'm going to decrease the opacity of the cube wrapper. So let's go ahead and select it and set opacity to 0.7. So now we have a much better result. Next, I'm going to hide this arrow here. As you remember, it is an HTML5 entity, is the part of the heading elements. And in order to select it, I'm going to use one of these pseudo elements called the first letter. So first let's select H1 heading elements, followed by the first letter. In order to hide the element, I'm going to use visibility hidden and opacity zero. Okay? So the arrow is hidden, but now the heading element is not placed in the center. We have to move it slightly to the left side. For that, Let's use positions. Let's select H1 heading elements. And at first I'm going to set its position to relative and then set left property to minus five ramp. So in this case, we will move the element from its current position. Okay, so now it looks much better. Before we move on to the next section, I'm going to take care of the button of the banner ads. Remember once we hover over, the button will change its shape. We no longer need that because the cube is placed behind the banner. So once we hover over the button and we need to maintain its default shape, Let's select button with hover. Then go up and find the clip path property with its values. I'm going to copy it and then paste it down here. Okay, That's it about the first section. Let's move on to the second one. I'm going to increase the size of the iPhones. I mean the wrapper div element. So let's select it and define its height and width. I'm going to set height to 70 viewport height. As for the width, it's going to be 70 viewport width. Okay, that's it about this section. Next comes the MacBook section, which looks good. As for the watch section, I'm going to move the button to the right side. So let's select it and set its right position to 15%. Okay, So the watch section looks good. Let's move on and take care of the airports. I'm going to hide the first image at. All, right, now the first image doesn't have any class name. So let's go ahead and assigned to class with a value airports, IMG one. Then select it and make it hidden using display none. As for the second image, I'm going to increase its width and make it 100 per cent. So let's select the second image and set its width to 100 per cent. So as you can see, this code doesn't work Because initially, when we defined the width of the images, we still like to them using the parent elements class name, followed by the tag name. And actually it has a higher precedence. So we need to add here the class of the parent element, AirPods. Alright, now the problem is fixed and the width of the image became 100%. Next, I'm going to change the background color of the first button and make it white. Let's select button. Change its background color, make it white. As for the color itself, I'm going to use here primary color. So it's considered background and the color changed. Besides that, I'm going to add a little shadow effect to the buttons. So let's use box-shadow and institute 0.1 RAM three times. And as the color, I'm going to use the D. Okay, That's it about the airport section. The last thing that I'm going to do on the breakpoint is to take care of the icons and the footer. We need to decrease the space between them. So let's go ahead and select I can link and use margin. I'm going to set it to zero at the top and bottom and two RAM on the right and left sides. Alright, that's it. About this breakpoint of the sections. Look good. Let's move on and take care of the next one, which is going to be 550 pixels. So let's go ahead and create new CSS media query with the max-width 550 pixels. So the first thing that we have to do is to decrease the space between the navigation items. So let's select Number Link and set margin to zero at the top and bottom and 1.5 RAM on the left and right sides. So the first section looks good. Let's move on to the next one. I'm going to decrease the font size of the heading. So let's select Section two heading and satisfied size to eight Ran. Okay, let's move on to next section. Let's decrease the font size of this section heading as well. Let's select Section three heading. Set its font size to eight. Run. After that, I'm going to decrease the font size of the MacBook Info heading. And also I'm going to decrease the size of the button. So let's go ahead and select MacBook Info heading and set its font size to fibrin. Next, select the MacBook button and define its width and height. I'm going to set width to 15 RAM. As for the height, let's make it three RAM. And also decrease the font size. Make it 1.3 ramp. Okay, That's it about the MacBook section. Let's move on to the next section. It looks good. So we have to move on to the airport section. As you can see, the buttons are placed on top of each other. We need to separate them. So let's select a rapper, airports buttons and define its width, make it 50 RAM. And then in order to place the content in the center, we need text-align center. Okay, so that's it about the airports section. The last thing that we need to do on that breakpoint is to decrease the size of the icons and the footer. So let's still locked icon link followed by the image. And set width to eight RAM. Alright, so that's it. We're done with this breakpoint. Now we have to move on and take care of the last breakpoint, which is going to be 450 pixels. So let's create new CSS media query and specify the max width as 450 pixels. First of all, I'm going to decrease the font size of the HTML elements. Let's set it to 35 per cent. Now, I'm going to take care of the logo and nav bar. I want to place them vertically on top of each other, and also I want to place them in the center. So let's go ahead and select Logo And define its positions. I'm going to set top position to ten RAM than we need left position, 50 per cent. And in order to center the element horizontally, Let's use transform translate with x-direction. And that value, I'm going to pass the year -50 per cent. So the logo is positioned correctly. Next, let's take care of enough bar. I'm going to set its lag position to 50 per cent. Then again, we need to transform, translate X with -50 per cent. So the number is placed in the center, but we need to define its width because the alignment of the navigation items is messed up. I want to now bar to take up the maximum available with. So let's set with two mux content. Okay, That's it about the navigation. As you can see, we have here the whitespace on the right side of the webpage. And actually it is caused by the MacBook info. Right now it has a large width and we have to decrease it. So let's select MacBook info and set width to 40 ramp. Okay, so now the problem is fixed. Let's go back to the first section. We need to place the paragraph in the center. So let's select p elements and assigned to it text-align center. So that's it about the first section. Let's move on to the second one. I'm going to increase the width of the wrapper of the images. So let's select iPhones and set its width to 75 viewport width. So now it looks better. Let's move on and decrease the font size of the heading of the third section. Let's select it and set the font size to six ramp. Besides that, I'm going to change the sizes of the heading and the paragraph of the MacBook info. Let's start with the heading. I'm going to set its font size to three RAM than silicon MacBook price. Define font size, make it to Ram. And also, I'm going to make the font slightly bolder. Right now the font weight is set to 200 and I'm going to make it 300. Okay, That's it about the MacBook section. Next, we need to take care of the watches. Let's move again to button to the right side, select watch BTN, and set right position to 5%. Okay? Lastly, I'm going to decrease the width of the icons and the footer. So let's select icon link followed by the image. And define width. Make it six Ran. Okay, so that's it about our project. It responsive to different screen sizes. And actually we are done with it. Hope you liked these projects because we use lots of interesting and cool stuff. So let's move on to the next project. 46. Project 5 - Project Preview: Alright, so it's time to build our next project, which is going to be the clone of one of the most popular and commonly used websites called Paypal, will create the user interface of the different pages. I'm in the main page, login and sign up pages. Of course it won't be the exact clone with the full functionality. As I said, we will build just a UI with HTML, CSS, and JavaScript. Paypal looks different in different countries. The user interface is frequently changing from time to time. So do not worry if this is not the exact clone of the current UI. Alright, so before we jump right into writing the code, at first, let's describe what the project looks like. So as I said, we'll build three different pages, main login and sign up. We'll start with the main page. It will consist of a couple of different sections. The first section is going to be the banner with navigation. We have here several navigation items. If I hover over them, then the drop-down menu will display. It will switch once we hover over another navigation item. Also, we will have here two different buttons for login and sign up. If I click them, then we will navigate to the proper page. So the banner will be followed by the second section. It will include three different parts with Font, Awesome icons, some text elements and buttons. Then we will have this blue section with some different paragraphs. Next, we will build this little section here with an image and three different steps. Down below, we will have a button to sign up, followed by the footer. Alright, so let's see about the main page. Let's have a look at the login page. It will be quite similar to the original login page. We will have here two input fields with buttons. That's probably sign-up page. It will consist of two parts. On the left side, we will have several images of the customers. As for the right side, it will include two different options. Whether we want to create a personal or business account. Alright, so that's it about the project. As usual, we'll make it responsive to different screen sizes. If I inspect the page and switch to the responsive mode, you will see that it's responsive. One thing to note here, on smaller screen sizes, we will no longer have the drop-downs. They will transform to the menu like this. Okay, So that's it. We are ready to start to build the project. So let's move on. 47. Project 5 - Create and Customize Landing Page: Alright, I think we're ready to start. I have created a new folder on the desktop called portfolio website, in which I have another folder for the images. Let's go ahead and open this project in VS code and create our working files. So overall we will have three different files for HTML, CSS, and JavaScript. Let's create them. After that, I'm going to open index.html file and insert a basic HTML document. For that, Let's use Emirates. We need to place an exclamation mark and then hit Enter or tab. Let's change the title. I'm going to insert your portfolio website. Then I'm going to link CSS and JavaScript file to the HTML. Specify here the path of the series is file. Then I'm going to open script tag right above the closing body tag. And let's insert here part of the JavaScript file in the source attribute. Besides that, we need to bring in a couple of links. Throughout the project, we are going to use Font, Awesome icons, and also one of the Google fonts. So let's go ahead and search for Font Awesome, CDN js. Then go to the first link and select here CSS. Then grab the link. Next, I'm going to open a link tag in the head elements. Then paste here the URL. After that, I'm going to go to the Google Fonts website. So throughout the project, I'm going to use font called geost. Then select you all different styles except the Italica. Grab the link, and paste it in the head. Okay, Finally, let's run the project to the browser. For that I'm going to use one of the VS code package is called Live Server. It allows us to run the project life to the browser and make changes and updates without refreshing the page each time. So I recommend to use this package. Alright, the last thing that I'm going to do is to place the editor and the browser, like so. And then get started. We will build the project section by section. At first we will create the HTML markup and then we'll customize this section using CSS. Let's go ahead and start with the lending page. Let's open developments, which is going to be the container. Actually, I want to use comments to define the start and end of each section. So this is going to be the first section. Then we need here N of Section one that opens section element with a class. Section one. As we said, the first section is going to be the landing page. We will have here, headings, image, and the button. Let's open H1 heading element with a class section one heading with the text web developer. Next we will have an image. I'm going to select Image, the name John Smith dot JPG from the images folder. Then as the value of the alt attribute, I'm going to pass here, John Smith. And also we need class attribute, value person, IMG. So the image is followed by another heading in which we will have the full name of the person. So let's open h3 heading element with the class person name and institute John Smith. And finally, we need a button which will be represented by the link element. Let's assign to it. Class with value is section one, btn. And also insert you text projects. Alright, so the HTML markup is created for the first section. Now it's time to start to write some CSS. Let's open style.css file and add first, create some reset and common styles. Before then I'm going to insert your comments, reset and common styles. And then n of reset and common styles Next, I'm going to select every element using an asterisk. So I'm going to get rid of default margin and padding. Let's set both of them to zero. Next, I'm going to remove default outline with outline none. Also, let's set box-sizing border-box. Next, I'm going to get rid of default styles for the link and also list elements. Let's use text decoration none. And list style type, none. After that, Let's set the font family to Joseph sans-serif, which is the Google Fonts. And finally, I'm going to set font weight to 400. Alright, so let's can see the rosette and common styles are applied. As usual. I'm going to use a RAM as the measurement units right now, one RAM equals to 16 pixels because the font size of HTML is equal to 16 pixels by default, I want to convert one RAM into ten pixels. And for that, we need to decrease the font size of HTML. Let's set it to 62.5 per cent. So as you can see, the font sizes of the elements have decreased. Let's go ahead and start to customize this section elements. I'm going to insert your comments, section one. And then end of section one. Then select section elements. First of all, I'm going to define width and height. Let's set width to 100 per cent. As for the height, I'm going to set it to 100% of the viewport. So we need 100 vh. Then I'm going to set image as the full-screen background. So first let's use linear gradient. I'm going to use your RGBA value with white color and with opacity point to. Next, we need again RGBA with white color and with the opacity 0.3. After that, let's define the URL of the image. We need here the path of the image. The image name is going to be bg dot JPG. Url is going to be followed by center and no repeat. Okay, Finally, let's set the size of the background to cover. So as you can see, this section has the full-screen background. Next, I'm going to place those elements in the center of the page. For that, Let's use flexbox. We need display flex. Then I'm going to change the direction because we need to place the elements in the column. So we need flex direction column. Then in order to send to the flex items inside the container, we need justify content center and align items center. Right? So that's it about this section element. Let's go ahead and customize the individual elements. I'm going to start with the first heading. Let's select it. Increase the font size. I'm going to make it six RAM. Also change font-weight, make it 700. Then I'm going to set the color of the text to white. And also change the background color. I'm going to use here call or E for 1c6f. The heading looks good, but we need to add to it some more styles. I'm going to create some space inside of the elements using padding. Let's make padding zero at the top and bottom. And three ran on the left and right sides. And also I'm going to create some space at the bottom of the elements using margin bottom Five ran. Next, I'm going to transform the text into uppercase. And also I'm going to create some space between the letters. So we need text transform uppercase letter spacing with a value of one rep. After that, Let's create a border at the bottom of the heading and also create some shadow effect. Let's set for the bottom 2.3 RAM, solid and the white color. And then define text shadow with the values points to Ram Point to RAM than one RAM. And the color 555. All right, the last thing that I'm going to do with the heading is to skew it a little bit. For that, Let's use Transform or this Q function. I'm going to skew the elements by minus ten degrees. Okay, So we're heading, we're done. Let's move on to the image. Let's select it. First of all, defined width and height. I'm going to set both of them to 25 RAM. That in order to maintain the quality of the image, we need object feed cover. And also in order to make its shape circle, Let's use border-radius, the value 50%. Okay? Next I'm going to create a border. Let's set its size 2.7 run than the style is going to be dotted, and the color will be E for one, C6, f. Also change the background color. I'm going to use RGBA value with white color and with the opacity 0.7. And then create some space using padding, make it 0.5 RAM. And lastly, decrease the opacity slightly. Let's make it 0.9. Alright, that's it about the image. Next I'm going to customize and other heading elements. So let's select it, increase its font size, make it to ramp. Then change the color, make it white. And also change the background color. Use again color E4 one, c, six. Next, I'm going to create some space at the top of the heading and also inside of it. Use margin and set it to five rem at the top and bottom and zero on the left and right sides. As for the padding, I'm going to set it to 0.5 rem at the top and the bottom, and three rem on the left and right sides. After that, let's create some space between the letters using letter spacing 0.3 RAM. And also I'm going to skew the heading slightly like the first heading. Use Transform skew with the value minus ten degrees. Alright, so with the second heading, we're done and now it's time to customize the last element of this section, which is going to be the button. Let's go ahead and select this element. First of all, let's change the font size, make it 1.7 run, and also set font-weight to 700. Next I'm going to change the color. Let's make it 333 and set background color to white. After that, Let's create border. The value is 0.3 ran solid and we call her 333. Also, I want to create some space inside of the button using padding. Let's set it to 0.5 rem at the top and bottom, and one rem on the right and left sides. Then transform text into uppercase and create some space between the letters. Let's make it 0.3 round. Alright, so with the first section, we're done. It looks good. And now we have to move on and take care of the next part, which is going to be the navbar 48. Project 5 - Create and Style Navigation: First of all, I'm going to create and style it and then we'll make the navbar work later on. Let's go ahead and create the HTML markup. I'm going to insert your new comments navbar. Then n of not work. Then let's open HTML5 nav elements with the class now apart. So overall we will have for navigation items, they will be represented as the links. So it's open link element with the class number link with the text home. Let's go ahead and duplicate link element three times and change the content. The second item is going to be about. Then we will have portfolio. Finally, we need to contact. Alright, so right now the number is placed at the end of the page. So it's not quite feasible. I need some space at the bottom of the nanopore to show you things clearly. So I'm going to use a couple of B are tags. Let's use Emmet. We need to be our than asterisk and 50. So now here we have some space. So that's said about HTML. Let's go ahead and start to write the CSS. Let's go ahead and insert new comments. Navbar and then n of nobler than select nav elements. First of all, I'm going to define the width and height. Let's set width to 100 per cent. As for the height, let's make it for RAM. And also change background color. Let's use here called or E for one, C, F. Okay, next I'm going to position the navigation items in the sense of the Napa. And for that I'm going to use flexbox. Actually, we have already used this technique and we're going to use it a couple of times throughout the project. And in order to avoid to write it over and over again, I'm going to create a new class in common styles. Let's call it center. And then insert here, display flex, justify contents center, and align items center. Then in order to apply those tiles, we need to assign class center to the elements. We use those tiles with Section one. So let's go ahead and assign to it a cluster center. Then get rid of these styles from here. And then assign class center to the nav element as well. Alright? So as you can see, nothing is changed for the lending. As for the nav bar, the items are placed in the center. Right now, the last thing regarding the Napa is to create a little shadow effect. So let's use box shadow with the values point to Ram. Point to RAM than 0.5 RAM. And the color 555. Okay, That's it about the navbar nav element. Let's customize link elements. So first of all, I'm going to change the font size. Let's make it 1.7 rem. Also, I'm going to set the font-weight to 600 and then change the color of the text, make it 333. Okay, next we need some space between the items. Let's create that space using margin. I'm going to set margin zero at the top and the bottom. And then three RAM on the right and left sides. Besides that, Let's create space between the letters. Let's use letter spacing with value 0.3 RAM and also transform text into uppercase. Alright, so the last thing that I'm going to do regarding navbar is to create a hover effect. Let's take a look at the finished project. So once we hover over the items, they change their color. And also the line is displayed underneath the item. This line is going to be created using before pseudo elements. So let's go ahead and select the link element with before pseudo elements. First of all, let's define content. I'm going to make it empty. Then I'm going to set width to 130%. Also, define height, make it points to RAM and change background color. Let's make it white. So right now the element is not visible. And in order to fix that, Let's set position to absolute. Then we need to position relative for the upper link because I'm going to position the line according to the parent element, which is a nap or link. The lines are visible, but they are not placed in the right way. I'm going to define right and bottom positions. So I'm going to set the right position to -15% because the width of the line is equal to 130%. And when it displays the items will be placed in the center. As for the bottom position, Let's set it to -0.3 rounds. Alright, so everything is ready to create a hover effect. By default, I'm going to hide the lines. So let's go ahead and make their width zero. Then select the number link with hover, followed by the before pseudo element and set the width to 130%. Also, let's use transition. We need here width and 0.2 s. Okay? So as you can see, hover effect works fine. And lastly, I'm going to change the color of the items on hover. So let's go ahead and select now Berlin with hover. Then change color, make it white. And also use transition with the values color and 0.2 s. Alright, so everything works perfectly. The novel is customized, and now it's time to move on to the next section. 49. Project 5 - Create and Customize Progress Bars: The next section is going to be the About Me section. It will consist of a heading, a couple of progress bars that show different skills of the developer and several social media icons with some services. Let's go ahead and start to create the HTML markup. Let's insert new comments, section two and section two. That open section element class section too. So inside the section element will have three main parts. The first one is going to be the heading. Let's open H1 heading government with the class section two heading and insert here about me. Next we will have progress bars. So I'm going to open a div element, which is going to be the wrapper, sign to it class progress bars, wrapper. So overall, we will have seven progress bars. Let's go ahead and create the first one, and then we will duplicate it six times. So assigned to the development progress bar. Then insert your paragraph with the class progress text. We will have here different technologies. The first one is going to be HTML, then open span element, which will include the number of the percentage. Let's write here 97, followed by the percentage sign. And finally, we need div element for progress. Present. The first progress bar is created. Let's duplicate it six times and then change the content. So the second one is going to be CSS with 89%. Then we will have JavaScript 85 per cent. Then next one is going to be Sass, 87%. Then React js 80 per cent, NodeJS with 70%. And finally, we will have Mongo DB with 50 per cent. Okay? So we have here heading and progress bars. Next, we need to create the third part of the second section. It's going to be Services. So let's open developments with the cluster services. So overall we will have four different services. Let's create the first one, open development with the class service. It will include two different elements. The first one is going to be Font, Awesome icon. So open I element with the classes, FAR, a light bulb. Then we need H2 heading element with the class service heading. Let's insert here created. The first service is ready. Let's duplicate it three times, change the class names and the headings. Second one is going to be FASFA cut problem solving. Then we will have FAS, a taco meter out, and the heading is going to be fast. And for the last service, I'm going to use hi econ classes, FAS, a rocket. And as the heading, Let's insert here dynamic. Alright, so the HTML markup is ready. Next we have to move on and customize those elements. Let's go ahead and insert new comments. Section two and section two. Then select section elements. And first of all, defined width and height. I'm going to set both of them. 200%. Also creates some space using padding. I'm going to set padding to 15 RAM at the top than zero on the right side. Ten ran at the bottom and zero on the left side. Also, I'm going to set background color to white. By default, it's white. But anyway, I'm going to define it. Alright, next I'm going to center elements horizontally. Let's use flexbox. In this case, we don't need cluster center because we're not going to use all the styles from this class. So we need display flex, then we have to change flex direction. Let's make it column. Then place elements in the center horizontally using align items center Alright, let's see the About section element. Let's move on and customize the heading. Select Section two heading. Let's increase its font size, make it five RAM. Also change the color we need here. 333. Then transform text into uppercase and create some space between letters using letter spacing, the value 0.5 rem. Next we need some space at the bottom of the heading. Also, I'm going to add a border bottom and some shadow to it. So let's set margin bottom to 15 ramp. Then create border at the bottom with values 0.3 RAM solid, and the color 333. And also use text shadow with the values point to ram, point to ram 0.5 rem and the color 555. Alright, so that's it about heading element. Let's move on and customized progress bars. I'm going to select wrapper, which has the class name progress bars wrapper. And create some space at the bottom using margin, bottom value Tan around. Next I'm going to select the progress bar itself. First of all, let's define width and height. I'm going to set width to 60 RAM. As for the height, let's make it three RAM. And also change the background color. Use your C. C, C. Okay. Now we have two separate progress bars, so we need some space between them. Let's create space using margin. I'm going to set it to 1.5, ran as a top and bottom and zero on the left and right sides. Also, I'm going to make the corners slightly rounded. Use border-radius with the value 0.3 RAN. Finally, use box-shadow with values point to ram, point to ram, one RAM and the color 555. Okay, That's it about the progress bar. Let's move on and customize the text. So select Paragraph and set its position to absolute. Also, we need to position relative for the parent element. Then set left property to one run. After that, I'm going to increase the font size. Let's make it 1.5 rem, and also make the text white. Alright, after that, I'm going to customize span elements. I mean those numbers. So let's go ahead and select it. First of all, I'm going to create some space on the left and right sides using margin. Let's set it to zero as it top and bottom. 0.5 rem on the left and right sides. That increased font size, make it 1.8 Ran. And also change font weight. I'm going to set it to 700. Alright, so with the text we are done. Let's move on and style progress percent div elements. Right now I'm going to set percentage manually. I mean, all the progress bars will have the same percentage, but eventually we will change it with JavaScript. So let's select progress present. Set its width to nine per cent. That's probably height. Let's make it 100%. Then I'm going to change the background color. Let's use your color, E4, e1, see six F. And also make the corners rounded using border-radius with the value 0.3 rat. Alright, so let's see the bar, the progress bars. Let's move on to the third part of this section, which is going to be the services. Let's select rapid development. First of all, define width and height. I'm going to set width to 100%. As for the height, let's make it 30% of the viewport. Next, I'm going to place services horizontally in a row with some space. And for that I'm going to use Flexbox. Let's use here display flex. That in order to create space. I mean even space between the items. Let's use justify content space evenly. Then for vertical centering, use align items center. Alright, so with the wrapper we are done. Let's go ahead and customize service itself. I'm going to place elements in the center. So let's use text align center. Okay, let's move on and customize Font Awesome icons. So first of all, I'm going to increase the font size. Let's make it ten RAM. Then change the color. Use your ate, ate, ate. Also create space at the bottom. Use margin-bottom to run. And then create some shadow effect. Use text. Shadow with a value is 0.11, 0.1, 0.5 rem, and the color 555. Alright, let's see about the Font, Awesome icons. After that, we need to take care of the headings. So let's select service H2, increased font size, make it to Ram. Change color. Make it white. Also, I'm going to change the background color. I'm going to use color or 777. And then define width, make it 25 ran. Next, I'm going to create some space between the letters using letter spacing with the value 0.3 RAM. Also going to skew the heading slightly. So let's use Transform skew with a value of minus ten degrees. Finally, I'm going to create some shadow using box shadow with the values point to ram, points to run 0.5 RAM, and we call her 555. Alright, so the services are styled. We're almost done with this section. The only thing that I'm going to do is to change the positions of the first and last service is slightly. I'm going to move them up. Let's select those elements using first-child, last-child pseudo-classes. I'm going to select both of them simultaneously. Then use align self, flex, start. Okay, so finally, we are done with this second section. It is customized. Looks good, and now we have to move on to the next section. 50. Project 5 - Create and Customize Projects Section: The next section is going to be the project section. It consists of a heading and a couple of different projects. If we hover over them, then some details will display with nice transition effects. We have here also a button, go to video. It includes the link of the proper video on our YouTube channel. Alright, let's go ahead and as usual, start to create the HTML markup. Let's insert your new comments. Section three. Then end of Section three. Then open section element with class section three. In this section we will have two main parts. The first one is going to be the heading. As for the second part, it's going to be the project. Let's open H1 heading elements with the class, section three heading with the text, my projects. Next I'm going to open a div element, which is going to be the wrapper of the projects. You should have class projects wrapper. So overall we will have nine similar projects. I'm going to create the first one and then we will duplicate it eight times. So let's open a div tag with a class project. Each project will have three different parts. The first one is going to be the project texts, in which we will have two different headings. The first one is going to be the project name. Let's open H2 heading element with a class project name and insert you architect website. The next heading elements will show the technologies which are used to create a project. So I'm going to open H4 heading elements with the class project technologies. Let's insert your HTML, CSS, and JavaScript. Alright, let's sit about the first part. Next, we have an image, open image elements. Let's specify here the path of the image. We need. Project one dot JPG from the images folder. And also I'm going to assign to image class attribute with value project IMG. As for the third part, it's going to be a button which will be represented as the link. So let's assign to it class project link. Besides that, I'm going to use the target attribute with a value underscore blank. It will allow us to open the link in a new tab. Finally, let's insert here the text go to video. Okay, so the first project is ready. I'm going to duplicate it eight times and then make some changes. The first thing that I'm going to do is to insert the link of the video. Actually, I have prepared those links in a text file. So I'm going to grab them and insert them here. Actually, you can include those links or not. It's up to you. The second project is going to be budget up, created by React js. Then we need here project to JPEG. And also insert you the link. Okay, the next one is going to be White House, which is created based on HTML, CSS, and JavaScript. So let's leave them here as they are. Then change the image name. We need to project three dot JPG and insert here YouTube link. Okay, Next we have Task Manager with React js. Also we need here project four. And then the link. The next project is going to be the road with HTML, CSS, and JavaScript. Then we need project five. And also the link. Next we have food recipe up. It's created using React js. We need here to project six. And the link. Next we have slideshow. It's created based on HTML, CSS, and JavaScript Change the image name, we need project seven and then Institute the link. Next project is going to be hamburger menu. It's created using HTML, CSS, and JavaScript. Also, let's change the image name. We need project eight and instituted the link. And the last project is going to be CSS Grid menu, created again with HTML, CSS and JavaScript. And the image name is going to be Project Night. Also paste here the last link. Alright, so the HTML markup is prepared and now we have to start to write some CSS. Let's insert new comments. Section three. Then end of Section three. Then select section elements. Define its width and height. I'm going to set both of them 200 per cent. Also, I'm going to create some space inside of this section using padding. Let's set it to ten rem at the top and the bottom and make it zero on the right and left sides. And also change the background color. I'm going to use here color E, F. Next, I'm going to place the content in the center of this section. For that, Let's use flexbox. We need display facts. Then I'm going to change the direction. You see your flex direction column. And finally, use align items center. Alright, so the content is placed in the center, and now I'm going to customize the heading. Actually it's going to be similar to the heading of the previous section. So instead of writing the same styles over and over again, I'm going to assign to both headings, the same class names, and the styles will be applied to both of them at the same time. So let's use the class section heading and also change the class in CSS file as well. And then place those tiles in common stats. So as you can see, the heading of the third section is styled. Let's move on to the projects. I'm going to select wrapper div tag. Let's define width, make it 80%. So I'm going to place projects in the center of the wrapper. And for that, I want to use flexbox. And actually instead of writing this towels here, let's just use the cluster center, which we have prepared previously. And besides that, I'm going to use flex wrap with the value wrap. So as you can see, the projects are placed side-by-side nicely. Let's go ahead and customize the project itself. First of all, I'm going to place the content of the project in the center for that, we need to use again, flux books. We can either assigned to each project cluster center or we can define again, this tells here. In this case, let's use flexbox properties here in CSS because assigning cluster each project will take more time. So we need display flex, then flex direction, column. We need justify content center and align items center. Next I'm going to create some space between the projects. Let's do that using margin. I'm going to set it to one RAM. Also as defined background color. Make it white. And finally, use box shadow with the values 0.3, 0.3 RAM than 0.5 rem. And we call those 777. Alright, that's it about the project right now. Let's move on and customize the elements of the project. And then we will create a hover effect. I'm going to select project texts. Let's assign to a text-align center And also I need lateral spacing for all it's including elements. Let's make it 0.1 ran. After that, Let's select the project name. Change its font size, make it three round. Then I'm going to set font weight to 700. Also define the color, make it 333. And finally, I'm going to make project names capitalize using text transform. Capitalize. The heading looks good. Let's move on and customize the technologies that's selected. I'm going to change the font size. Let's make it 1.8 RAM, and then set color to E4, e1. See six F. Okay, next I'm going to decrease the width of the image that's selected and make its width for dram. Okay, so finally, we need to customize link. So let's go ahead and select it. At first. Let's define font size, make it to run. Then change font-weight, make it 500. I'm going to set called a2, a3, a3, a3. And also creates space between the letters. Let's make it 0.1 ran. After that, I'm going to create a border. Let's assign truth values point, we ran solid and the color E4, e1, see six F. Then I'm going to create some space inside of the link using padding. Let's make it zero at the top and the bottom and one rem on the right and left sides. And finally, set background color to white. Alright, so all the elements are customized and now we have to create a hover effect. Let's go ahead and start with a project text. I'm going to define this position. Let's make it absolute. Then we need position relative for the project, which is the parent element. And then set a top property to minus ten ramp. So as you can see, the position of the project tax is changed. Let's select the project with the hover, followed by the project texts. Let's say top position to five RAM. And then use transition with a value is top 0.3 s. Okay? So once we hover over the projects than the project tax will move from top to bottom. Now I want to do the same for the link element. Let's change its position. I'm going to set it to absolute. Then we need the bottom position minus five RAM. After that, I'm going to select projects with hover, followed by the project link. So on hover, I'm going to set button to fibrin. And also I'm going to use transition with values partisan 0.37. Alright, so now if I hover over the project standard link element will move as well. After that, I'm going to decrease the opacity of the image. Let's go ahead and select the project would hover followed by the project image. So I'm going to set opacity to 0.2. Also, let's use transition with the values opacity 0.3 s. So now the effect looks better. And next I'm going to hide the content by default. For that, let's assign overflow hidden to project. Now the content is hidden by default. And once we hover over the projects, they will display. We have here a tiny issue. The project texts ends up behind the image and we're not able to select it. So I'm going to use Z index with a value, let's say ten. Okay? So now the problem is fixed. The next thing that I want to do is to add some delay time to the project texts and also the link. Once we hover over the project first, I want to decrease the opacity of the image and then display the content. But once we mouse out, then we no longer need a delay. Therefore, we need to use transition with the hover pseudo-class. Let's use your top with a duration 0.3 s. And then it is specified the delay time 0.3 s. Next we need to transition with bottom and with duration 0.3 s and the delay time 0.3 s as well. Alright, so now we have a much better effect. The last thing that I want to do with this section is to create a shadow effect on hover. So let's select project with hauler and set box shadow to one run. Then a one rem, and then again one RAM with the color 777. And lastly, let's use transition with the values box shadow, 0.5 s. Okay? So the shadow effect works fine. And actually we are done with this section. Now we have to move on and create the content section 51. Project 5 - Create and Style Contact Section: The contact section is going to be a simple one. We will have a heading and a couple of input fields with this submit button. Let's go ahead and start to create the HTML markup. Let's insert new comments. Section four, then n of section four. And open section element with a class section fork. So overall we will have two different parts. The first one is going to be the heading. So it's open H1 heading elements. I'm going to assign to the heading two different classes. The first one is going to be the common class name section heading. As for the second one is going to be the individual class section for heading as the text. Let's insert here, contact me. Okay, so that's it about the heading. The second part of this section is going to be the formed elements. Let's open it with the class contact form. So the form element will include two inputs, text area and the submit button. Let's open input element with the type text. And where the placeholder attribute, which will have value name that I'm going to duplicate this element. Change the type. I'm going to use your email, and then change the value of the placeholder attribute. Let's make it email. Next we will have text area. I'm going to assign to it placeholder attribute with a value message. And finally, we need a submit button which is going to be created using the input elements. In this case, the type is going to be submit. Then we need value submit. And also I'm going to use your class contact for BTN. Okay, So the HTML markup is prepared. As you can see, the heading has some styles, but it doesn't look quite good right now. We will fix that in a minute. Let's go ahead and insert new comments in the CSS file section for end of section four. Then select section elements. And first of all, define width and height. I'm going to set width 200 per cent. For the height. Let's make it 70% of the viewport. And also change the background color. Make it 333. Okay, next I'm going to place the content in the center. And for that, Let's use flexbox. We need display flex, flex direction column. Next, I'm going to center the content horizontally. For that use, align items center. And finally, in order to create some space between the flex items, Let's use justify content space evenly. Alright, so that's it about this section element. Let's go ahead and take care of the heading. Right now. It has some default styles from this section heading class. And I'm going to change its color. So let's select section for heading and make color white. Then gets rid off box shadow. I'm going to set it to none and also change the color of the border using border color property. Let's make it white. Okay, so the heading is customized and now we have to move on to the form elements. Let's go ahead and select it and define width. I'm going to set it to 50 rem. Next I'm going to place the items vertically in a column, and also I'm going to place them in the center. So we need to use flexbox. And in this case, let's assign to the form element class center. And then change flex direction, make it a column. The input fields and the buttons are aligned, and now I'm going to style them. Let's select inputs and text area together. Then define width, make it 100%. Then create some space inside of the fields using padding. Let's make it 0.5 rem on all four sides. And besides that, I'm going to create space at the top and the bottom of the fields using margin, let's set it to 0.5 rem at the top and bottom and zero on the right and left sides. Next, I'm going to change the background color. Let's use your color E F. Also change font size, make it 1.5 g. Then create border with the values point to run solid. And the color E4, e1, C6, F. And finally, change the color of the text, make it 555. Alright, next, I'm going to customize the text area. As you know, you can increase or decrease its width and height manually. And actually we don't need it because it will break the layout. So let's select text area. First of all, let's define this height, make it ten ramp. And then I'm going to define max height and a max width. Let's set max high to 15 RAM. As for the max-width, let's make it 100%. Okay, so that's it about the text area. The last element that I'm going to style is the submit button. So let's go ahead and select it. We need here to select that first contact form, followed by the contact form BTN. Let's change background color. You see your color. If for 1c6f, then change the color of the text, make it white. Also, I'm going to transform text into uppercase. Then create some space between the letters. Let's make it one RAM. And finally change the type of the coarser, make it pointer. So all the elements are styled and with the content section we are done. Next, we have to move on and customize the last section of the project, which is going to be the footer 52. Project 5 - Create and Style Footer: Actually, before we move on to the footer, I want to decrease the space between the heading and input fields because I think it's too big. So let's set margin bottom to five Ran. Okay, Now it's better. So the footer is going to be a simple one like the contact section, where we'll have a couple of social media icons and the copyright text. Let's go ahead and start to create the HTML markup. Insert your new comments section five. Section five. Then open HTML5 footer element with the class section five. We will have two different parts. The first one is going to be the social media icons. Let's open div element with a class social media. Overall, we will have four different icons. Let's open link element with a class social media link. And insert your Font Awesome icon. The classes will be FAB, a, GitHub, square. Then duplicate link element three times and change the class names. The second one is going to be f a b, f a YouTube. Then we will have f a b, f a Facebook square. And finally, the last one is going to be Instagram square root. Okay, That's it about the first part. Next, I'm going to create a paragraph which will include some copyright text. Let's assign to the class copyright and insert new copyright, followed by the copyright sign. It's going to be the HTML5 entity. We need ampersand, copy, semicolon, then write code and create. All rights reserved. Alright, so with HTML markup, we're done. Let's go ahead and customize this section. Let's insert here new comments, section five. And all section five. Then select the footer elements and define width and height. Width is going to be 100%. As for the height, I'm going to set it to 30% of the view. Then finally, change the background color. It's going to be 222. Okay, Next I'm going to place the content in the center using Flexbox. So let's assign to the footer element class center and then change flex direction column. With a footer element. We're done. Let's move on and customize the social media icons. Let's go ahead and select the wrapper div elements, which has class social media and set margin at the bottom to five round. Next I'm going to select the link elements. So I'm going to create space on the left and right sides of the links using margin. Let's set it to zero at the top and the bottom and two rem on the right and left sides. Besides that, I'm going to create some space inside of the link using padding. Let's set it to 0.7. Rem on all four sides. Also change background color. I'm going to use here color E for 1c6f. And finally, let's use border-radius with value 0.5 g. Okay, let's move on and style the icons, select elements. Let's increase the font size, make it three run, and also change the color, make it white. So as you can see right now, link elements do not look quite good. By default, they are inline elements and we have to make them inline block. So now they look much better. Okay, so with the social media icons, we are done. And finally, we have to customize the copyright text. Let's go ahead and select a paragraph. Let's change the color, make it a. Then I'm going to increase font size, make it to Ram. Create some space between the letters using letter spacing points to RAM. Also, I'm going to make the font lighter. Let's set font weight to the 300. And finally, aligned text in the center. Alright, so with the footer, we are done and actually all these sections are styled. Now we're ready to add some functionality to our website using JavaScript 53. Project 5 - Make Navbar and Progress Bars Work using JavaScript: Okay, so the first thing that I'm going to do is to make the navbar fixed monthly scroll down and reach to it. So we're going to create a new class and CSS, I'm going to call it sticky. Let's define the position, make it fixed. And also set top property to zero. So we will add this cluster number once we scroll down and reach eight. Let's open script.js file and first of all, select enough elements. Create new variable, call it now bar and select nav element using query selector method. So again, once we scroll down and reach the number, we need to assign to it a new class sticky. So we need to use a scroll events. We have to attach to the global window object method called event listener, which will take two arguments. The first one is going to be event scroll. As for the second one is going to be the callback function, which will be executed once the scroll event is fired. So now I'm going to use two different properties. They are called page offset and offset top. So I'm going to run through the console, both of them, and show you how they actually work. Let's run to the console window dot page, offset and the offset top. Let's inspect the page. Switch to the Console tab, start to scroll. So the first property, I mean page Y offset, returns the distance in pixels that have been scrolled up vertically as well. The second property, it shows the distance from the top edge of the page to the element, in this case the Naropa. Once those values are equal, then it means that now has reached the top edge of the page. And in order to prove that, I'm going to use an if statement, Let's Institute the condition window dot page Y offset is greater than or equal to. Now bar dot offset top. And then run to the console some text, Let's say sticky. Once we start to scroll down and enrich the navbar, then we will get sticky in the constant. So if this condition is true, then we have to add to the navbar class sticky. And if it is false, then we have to remove it. So let's get rid of a console log and insert here. Now Upwork dot class list. Actually class list property stores of the classes that the element has. Next, we need a method called add, and I have to specify clustered sticky in the parenthesis. As for the else statement, as we said, we need to remove sticky from the navbar. We need now bar dot class list, dot remove. And then the class is sticky. So if we scroll down, then the number will become sticky. But we have here a couple of issues. It ends up behind the elements. And also if we scroll up, then the number will still be sticky at the top of the page. So to fix that, we have to store now bar offset into the variable. So let's create new variable and call it now more offset top, assigned to it now, not offset top. Also, pass the variable here. So we're doing that because we will compare the page offset to the initial position of the navbar. Also, we need to define Z index for now. First of all, let's set position to absolute. And then you use Z index with some higher value, let's say 300. Okay, So the navbar works fine. Next I'm going to make the navbar links highlighted when we reach to the proper section. But that at first Let's select all these sections and also all the navbar links. Let's create a new variable and colleagues sections. I'm going to select all the sections using query selector all method. We have to specify here the tag name section. Next, let's select now Bar Links. I'm going to use again query selector all method. Let's specify here the class name. Now bar link. We will create a new class in CSS called Change, in which we will define the same styles that we used on hover. So let's go ahead and insert here. Plus change followed by the Navajo link. As you see, we don't use here the space. Let's set color to white. Next, I'm going to select again change with Navarre link, followed by the before pseudo element. Set width to 130%. Alright, after that, we have to look through these sections and check if we reach the proper section. So we have to attach two sections for each array helper method. Let's pass a callback function with a parameter section, which is going to be the current section throughout the loop. So now we have to check if we scrolled down to the proper section. So we need each statement with a following condition. Window. Page Y offset greater than or equal to section offset top. Actually I want to highlight now Berlin ink a little bit earlier once we scroll down. So I'm going to subtract ten pixels to the offset property. So if this condition is true, then we need to highlight the navbar link. And in order to do that, we have to add to the callback function a new parameter I, which is going to be the index. And now we have to add two novel links, the class change. We need now Bar Links. Then we have to specify the index number in the square brackets. Next, it should be followed by the class list property with ADD method. And we have to specify class change in the parenthesis. So if we scroll down that the number of links will be highlighted. But as you can see, we have here a little problem once we continue to scroll down than the previous sections are highlighted and actually we don't need that. In order to fix that issue, we have to loop through the novel links and remove class change from all of them. Then we need to add class change to the needed link. So we have to attach to novel links for each array helper method. Then pass here callback function with the parameter which is going to be current item throughout the loop. So as we said, we have to remove class change from navbar links. So we need now bar link, node class list, dot remove, class change. Okay? Now the problem is fixed and our links are highlighted correctly. Alright, so there is one more thing regarding navbar. When we click the number of links, then we should go to the proper section with smooth scrolling effect. In order to do that at first, we need to assign to the HTML element property called scroll behavior with the value smooth. Next, we need to assign to each section elements and ID attribute. I'm going to use the multi cursor. Again, we need ID attribute, and each of them should have the proper value. I'm in this section name we need at section one, section two, section three, and section four. After that, we need to assign to the h reference attributes of the navbar links the proper values. Those values should match the values of the attributes. Therefore, we need here section one, section two, section three, and section four. And finally, I'm going to assign to the h reference attribute of the projects bottom section three, because when we click the projects button, we should navigate to the projects section. If I click the knob or link, then we will navigate to the different sections. Also, if I click the projects button, then we will go to the project section. Actually we have here a little issue. If I click the social media icons and the footer, then we will navigate to the top of the page with smooth scroll. Actually we don't need it. So I'm going to insert none as the value of h reference attributes. So now the problem is fixed and actually within Alberta we are done. Next, I'm going to take care of the progress bars. So we need to feel progress bars once they appear on the page. And in order to manage it, again, we need the help of page Y, offset and offset top properties First I'm going to select progress bars wrapper. Let's create a new variable. I'm going to call it progress. And then select progress bars wrapper using querySelector method. Let's specify here the class name progress bars wrapper. Next we need an if statement in which we need the following condition. Window dot page Y offset plus window dot inner height. So this sum should be greater than or equal to offset top of the progress. We used here window dot inner height, and we added it to the window, the page offset. So the window, the inner height returns the height of the window, height of the content that is visible on the page. If this condition is true, then it means that progress bars start to appear and we have to fill them according to their percentage values. I'm going to create an array where we will store those percentage values. Let's create new variable and call it progress bar presents. Let's pass here the following values. We need 90, 780-985-8780, then 70.50. Then I'm going to set the width of the progress person div elements to zero. Right now it equals to 90%. So I'm going to select progress, present developments. Then I'm going to look through them and define their width from this array. So let's select progress present using querySelector all method. That's institute class name progress present. It should be followed by the forEach method. Let's pass your callback function, which will take two parameters. The first one is going to be the current item of the list. Let's call it elements, I mean EL. And also we need index in order to define proper width from the array for each element. So as the block of code, we have to insert here element dot style, dot width. Then open back ticks. Grab the values from progress bar presents array. We have to indicate index number in square brackets as i, followed by the present. So as you can see, the progress bars are filled according to the percentage values. Let's go ahead and add a transition effect to them. Here's transition with the values width. Then we need duration 0.5 s. Then the delay time 0.5 s. And also use one of the transition timing functions called ease in, out. So now the progress bars are feeling with a nice transition effect. The last thing that I want to do is to display those percentage values from JavaScript dynamically. Right now they are hard-coded values in HTML document. So we need to get access to this span elements for that at first, get access to the paragraph. So we need to write here elements dot previous elements sibling. Once we have access to the paragraph, then we have to find its child elements, which is the span. So we need to use property called first element child. And we need to change its content using text. Content property. It should be equal to progress bar presents with the index number i. In order to see clearly that we display person's GI values from JavaScript, Let's remove them from index dot HTML file. Alright, so as you can see, everything was perfectly and with progress bars, we are done. Before I move on and start to make the project responsive, I need to do a couple of things in JavaScript. So all those things, I mean, this entire block of code here runs. Once we scroll the page. Actually, I want to run this code once by default before we scroll. In order to avoid some unexpected and strange behavior of the webpage. For that, I'm going to create a function, let's call it main F, and then grab this entire block of code and paste it here. So I'm going to call this function twice. At first, Let's call it outside of this scroll events on a global scope. And the second time it should be called inside of a scroll event. I mean inside the callback function. Okay? So because of that, the entire JavaScript code is working based on properties like page offset and offset top. Then we could face some problems when we change the size of the window. So we need to reload the page. Once we resize the window, I'm going to use resize event. Let's attach event listener to the global window object. Then specify the event type. It's going to be resized. Also, we need here a callback function. So in order to reload the page, we need window dot location, dot reload. So if I change the size of the window, then the page will revolt. Okay, so that's it about JavaScript. Now it's time to move on to the last part of our project. I'm going to make the project responsive to different screen sizes. 54. Project 5 - Make Project Responsive: Actually, before we start to write the code, I'm going to pause the last code that we have written in JavaScript because we will need to resize the window lots of times. Next, I'm going to inspect the page and switch to the responsive mode. As we said at the beginning of this tutorial, we built this project on large screen size with a width of 1920 pixels and a height of 1080 pixels. I have already prepared the breakpoints on which we need to make the changes, so I won't waste time on that here. So the first breakpoint on which we need to make some changes is going to be 1,200 pixels. So let's insert new comments, responsive and unresponsive. Then I'm going to create CSS media query, where we have to specify the max width. As I said, it's going to be 1,200 pixels. We have to customize the second section. I'm going to place services on two lines. So let's go ahead and select them. I mean, the wrapper div element. Let's set height to oral. And also I'm going to set flex wrap to wrap. Besides that, let's select service itself and refine margin. I'm going to set it to three rem at the top and bottom and two RAM on the right and left sides. The second section looks good. Let's move on and customize the contact section. The only thing that I'm going to do is to change the height of this section. Let's make it 80 viewport height. So I think that's it on the breakpoint. The next one is going to be 800 pixels. So let's go ahead and create new CSS media query. Specify the max width as 800 pixels. On this breakpoint, I'm going to decrease the size of the heading on the landing page. And also I'm going to decrease the width of the progress bars. So let's go ahead and select Section one heading. Set font size two for RAM. Then select progress bar and make its width 50 run. So all other sections look good and we have to move on to the next breakpoint. The next breakpoint is going to be 600 pixels. So let's go ahead and create new CSS media query and specify max-width. Make it 600 pixels. Let's go ahead and decrease the size of the heading on the lending. Select Section one heading and set its font size to three ramp. Then we need to customize the navbar. So let's select Number Link defined margin. I'm going to set it to zero at the top and bottom and two rem on the left and right sides. Also change the font size, make it 1.5 ran. Southern Alberta. Looks good. Let's move on to the section to select it and set padding on all four sides to turn around. I'm going to select Section two heading. That's decreased. Margin at the bottom. Make it to turn around. And then I'm going to decrease the width of progress bar. Let's make it 45 rem. Next I'm going to set the width of the project image 200 per cent. Also decrease the width of the form elements. Set width to 40 RAM. And finally, I'm going to decrease the width of the copyright text. Let's make it 70%. Alright, so everything looks good on the breakpoint. Let's move on and start to work on the next one, which is going to be 500 pixels. Actually, on the breakpoint, I'm going to decrease the font size of the HTML right now equals to 62.5 per cent. And I'm going to make it 55 per cent. Okay, so we don't need to do anything else on 500 pixels. Let's move on to the next breakpoint, which is going to be the last one. Let's create new CSS media and set max width to 450 pixels. I'm going to decrease again the font size of the HTML. Let's make it 45%. Then decrease the size of this section one heading. I'm going to make it 2.5 RAM. After that, I'm going to decrease the space between the navbar links. Let's select now bro link and set margin to zero at the top and bottom and 1.5 rem on the right and left sides. Okay, next let's align heading of this second section vCenter. Use text align center, and also decrease the width of the progress bar. Make it for to run. Alright, so I think we are done because everything looks nice. So we can say that our project is responsive to different sites. We have finished working on our project. Finally, I'm going to get rid of those comments from here. Alright, so the project is finished. Hopefully, it was interesting and helpful and you'll learn some new stuff. Now we can go on and build the next project. 55. Project 6 - Project Preview: Alright, so it's time to start to create our next project. It's going to be about something like classic cars. In this video, I'm going to go through the project and show you what it is about. The project consists of a couple of sections. The first section is a simple one. We have here just the heading and the image of the car. Next we have a section called popular course, which includes three different cards of the popular course. Cards have a little hover effect. After that comes to video gallery. We have here two rows of the videos. By default they are not playing, but once we hover over them, they will start to play. Alright, so after the video gallery, we will have an image gallery is going to be an interesting section. As you can see, we have here two different shelves with three images on each of them. The images have some nice hover effects. In this section, you will learn about how to create 3D elements using CSS. Next comes the contact section with a couple of input fields and the submit button. And down below we have the paragraph with some copyright text. Okay, so those are all five sections of this project. Besides that, you see here the fixed menu icon. If I click it, then the lines will transform into an x. The number will display. This actions will rotate nicely in the 3D environment. If I click the different navigation links, then we will navigate to the proper sections with a smooth effect. Right? So that's the project which we are going to be building throughout this section. Besides that, the project is responsive to different screen sizes. If I inspect the page, switch to the responsive mode and check the project, you will find that it's responsive and looks good on different screen sizes. Okay, Like the previous projects, I want to remind you one thing, the project is built using a desktop first approach. It is built for extra large screen size. Screen size with 1920 pixels width and 1080 pixels of height. So if you're using a relatively smaller screen size and the project might not look good during the lectures. But you don't have to worry at the end of the day, we'll make it responsive. In the meantime, you can use the responsive mode, specify the width and height of the extra large screen size, and follow the project 56. Project 6 - Create HTML Markup for Landing and Define Common Styles: Alright, so once we are ready to start to build the projects, I'm going to begin with creating the HTML markup of the navigation and all five sections. I mean, just this section elements will manage to make the money work. And then we will customize this section themselves. Let's go ahead and open our working folder in VS Code. As you see we have here just a folder for the images. Let's create three different files for HTML, CSS, and JavaScript. I'm going to call them index.html, style.css and script.js. Then go to the index.html file and first of all, create a basic HTML document. For that, I'm going to use one of the packages called Emmet, which is a built-in package in VS code. I'm going to place here an exclamation mark. And after hitting Enter or tab, it will generate the basic HTML tags. Let's go ahead and change the title. I'm going to insert here classic cars. Next, I'm going to link the CSS and JavaScript files. So let's open link tag and specify here the path of the file style.css. As far as the JavaScript file, I'm going to open a script tag right above the closing body tag. And then I'm going to specify the path of the file and the source attribute. Alright, let's go ahead and open the project in the browser. For that, I'm going to use one of the VS code packages called a live server. It allows us to run the project life to the browser and also make updates and changes without refreshing the page each time. So I will come in to install and use this package. Okay, Finally, let's plays the editor and the browser, like so. And get started. As we said, we're going to create the navigation and all five sections. Let's start with the menu icon. I'm going to insert your comments menu and then end of menu. Then open div tag, which will have two different classes. The first one is going to be menu. Asphalt is second-class name. I'm going to insert your target. We will use this class and the JavaScript file. So the Menu icon will consist of two different lines. Let's open div tag with two classes, menu line, which is going to be the common class name. And then when my new line one for individual styling, let's duplicate this line of code and change the class name. We need here menu line too. Okay, So right now the menu icon is not visible because we have here just the empty div elements. Let's move on and create the navbar. Let's insert your comments. Navbar. Then end of navbar. Then open HTML5 nav element with classes navbar, and then use again class targets. So overall we will have five different navigation items. Let's open link tag with the class nav bar link. Then insert Q home. I'm going to duplicate link element four times and then change the content. The second item is going to be popular cars. Then we will have video gallery, then Image Gallery. As far as the last item, it's going to be contact. Alright, so that's it about the number we have here, the navigation items. Let's move on and create the sections. Let's insert here again comments section one, then end of section one. So each section will have its wrapper. So it's open div tag with the class wrapper. And then interferes section element with a class is section one and then target. Okay, So overall we will have five different sections. Let's go ahead and duplicate this code four times. And then change the numbers. Accordingly. We need to change the numbers of the comments and also the class names Alright, let's see about the market right now. Let's move on and start to write some CSS. First of all, I'm going to create a couple of common and default styles. Let's interview comments, common styles then, and of common styles. Next, we need to select every element. And for that, I'm going to use an asterisk. Then give it some styles. First of all, let's get rid of default, margin and padding. I'm going to set both of them to zero. Then let's remove default outline from every element using outline none. Also, I'm going to set box-sizing border-box. Next, let's get rid off default underline from the link elements using text-decoration none. And also get rid of default styles from the list elements using the list-style-type none. Alright, after that, I'm going to define a font family for every element of this project, we will use two different Google fonts. So let's go to the Google Fonts website. Then I'm going to search for special elite. Select this single style here. Next, let's go ahead and search for Josephine Sans. I'm going to select here a couple of styles. Font weights 400-700. Grab the link and paste it in the head element. Alright, after that, I'm going to define font-family. By default. I'm going to set the font family to special elite, coercive and also define font weight. Let's make it 400. Alright, so let's can see the common and default styles are applied to the elements. Throughout this project, we're going to use RAM as the measurement unit. Right now, one ramp equals 16 pixels, because by default the font size of the HTML element is equal to 16 pixels. I'm going to convert one ran into ten pixels. And for that, we have to decrease the font size of the HTML element, make it 62.5 per cent. Okay, So as you can see, the size of the elements has decreased. Next, I'm going to change the background color of the body elements. So let's go ahead and select this element and make it's background color, light gray using color ccc. Alright, so right now, that's it regarding the common styles. Next, we need to take care of the menu icon. And in now for as well 57. Project 6 - Create and Make Navigation Work: Alright, so at first we are going to make the menu work. I mean, once we click the menu icon, we have to display the navbar and also rotate these sections. Once we manage that, then we will style the entire project and make it look good. Let's go ahead and insert the comments here. We need menu. Then and off menu. I'm going to make the menu icon visible. So let's go ahead and select it and set its width and height, both of them to fall RAM. And also use hear some temporary background color, let's say red. Next, let's take care of its position. I'm going to make it fixed. And also let's set top and left properties, both of them to run. Alright, so the Menu icon is positioned. Next, let's take care of the knocker. I'm going to insert here the new comments, now four, then n of Navarre. So then now Korea is going to be placed on the left side of the page and it should be fixed. So let's go ahead and select it. At first, I'm going to define its width. Let's make it 15 viewport width. In this case now, but we will take up 15% of the width of the viewport. Height. I'm going to make it 100% of the viewport. So let's set it to be h And also change the background color, make it white. After that, I'm going to make its position fixed. And also, let's set top and left properties, both of them to zero. So as you can see, once we made the navbar fixed than the Menu icon has ended up behind it. It happened because the navbar is placed after the Menu icon in the HTML document, and therefore it has a higher precedence. Let's go ahead and fix that problem using the Z index property. I'm going to set it to a higher value than zero, let's say ten. Now the menu icon is visible, but we have to change its position when the number is displayed than the Menu icon should be placed on the right side of it. So let's make its left position. 15, viewport width. Okay, next I'm going to place the navigation items, particularly in a column. And for that, Let's use flexbox. We need display flex. And then we have to change the flex direction and make it column because display flex aligns elements in a row. Finally, let's create some space inside of the knocker using padding. I'm going to set the padding to full rem at the top than zero on the right side, zero at the bottom, and full rem on the left side. As you remember, we set box-sizing, border-box, and the common styles. So that's why the size of the navbar is not increased. When you use box-sizing border-box with padding. That it moves the elements inside of the box and doesn't increase the size of the box. Alright, let's move on and take care of these sections. I'm going to insert here the new comments, section styles. And then end of common section styles. Then select the wrapper of this section. Right now, I'm going to assign to it with property with the value hundred percent. Actually, you may be wondering why do we need this element at all? Basically, we will use it to create a 3D environment for the sections. Alright, let's go ahead and select this section element. First of all, I'm going to define its width and height. I want to set its width to A25 viewport width, because right now we have the nav bar on the left side and its width is equal to 15 viewport width. I want to place them side-by-side. As for the height, let's make it hundred percent of the viewport. And also change the background color. I'm going to use here called or E F, E, F, E F. Okay, so now this sections ended up behind the Napa. And in order to fix that, we need to change their position. Let's set it to relative. Then I'm going to set left property to 15 viewport width. Now the problem is fixed. Next, let's separate sections using margin I'm going to use margin bottom with the value three ramp. So as you can see that these sections are separated and now it starts to rotate them and create a 3D environment. At first, let's use transform property with the rotate function. Actually, we need here rotate y. Because we need to rotate the element according to the vertical direction, I mean y-axis. So right now this section so rotated, but we don't see here any 3D effect. So in order to create a 3D environment, we need to use one of these CSS properties called perspective. We have to assign it to the parent element, which is a wrapper. Let's set it to 50 ramp. So in general, the perspective property defines how far the element is away from the user and eventually creates the 3D environment. Now we have a much better result, but actually that's not what we want. Right now. These sections are rotated according to the center because by default the origin of the transformation is set to center. Actually, we need to change it and make it left. So in this case, the elements are rotated according to the left side. And that's why the sections and the novel are placed side-by-side. Alright, let's go ahead and increase the width of these sections. Make it hundred per cent. And also create some shadow effect. Use your box shadow with the value is 0.5 rem. Then again, 0.5 rem, one RAM, and the color AAA. Before we start to make the money work, I want to do here one more thing. As you can see, the shadow is overlaid to the navbar. And in order to fix that, I'm going to use again z-index property with a value ten. In this case, the number will have higher precedence and the shadow will be ended up behind it. Alright? So this is the situation after the click, the menu icon. By default, we need to hide the navbar and rotate these sections back to the normal position. Let's go ahead and hide the number that's assigned to it. Left -15 viewport width. Then change the position of the menu icon we need here left with a value of two rem. Next, we need to change the position of this section. Let's set that to zero. And also comment this line out. So we are ready to program the Menu icon. But before that, I'm going to do one more thing. I'm going to create some space on the right side inside of the body element. For that, Let's use padding, right? With a value of three ramp. Alright? So the styles which we have just changed should be applied to the elements once we click the menu icon. And also they should be removed once we click these sections themselves. So I'm going to create those styles with a new class called change. Then we will add this class to be elements and remove it using JavaScript. Let's go ahead and start with the menu icon. We need to select a menu with the class change. As you can see here, we didn't use space between those classes because we need to add this class to the menu itself. Let's set left position to 15 viewport width. Next, we need to change the position of the navbar. So let's select now bert with change and set left position to zero. As for the sections, we need to change their positions and also we need to rotate them. So let's select section with a class change. Then set left property to 15 viewport width and use here Transform, Rotate function. Alright, so everything is ready. Let's go to the JavaScript file and select the menu icon. For that, I'm going to use query selector method. We need to specify here the class of the menu. Then we need to attach to it event listener. This method takes two arguments. The first one is click. The second one is going to be the callback function, which will be executed once we click the element. So once we click the icon, we need to add class change to the menu network. And these sections, remember, all of those elements have the common class target. So we will select them using class target and add class change I'm going to use here query selector all method. And we have to specify here the class target. Actually query selector all method returns and array-like object called node list. We need to look through this list and add to each list item class change. In order to look through the node list, I'm going to use one of the array helper methods called for H. It takes one parameter which is going to be the callback function. This function will be executed for each item in the list. The callback function will take one argument and it's going to be the current item from the list during the loop. Now we need to add to the item class change. And for that, I'm going to use one of the methods called toggle. In the case of the toggle method, we add class to the element if it doesn't exist, and remove it if it exists. So on the first click, the element will get the class change and the next one, it will be removed. So we need to use item followed by the property called class list, which stores all the classes that the element has. Next, when you toggle method. And we have to specify the class change inside of the parenthesis. So now if I click the menu icon, then everything will work fine. In order to make this effect nicer, Let's use transition. For the Menu icon. We need to transition with values left, 0.5 s. Next, we need the same transition for the navbar as well. Asphalt the section. We need to transition where the value is left, 0.5 s, and then transform with this same duration. Okay, so now we have a much better and smoother effect. Alright, so with the Menu icon, we're done. Now we have to close the menu. Once we click the sections, we will use a similar technique. At first, Let's select all this action wrappers and attached to them event listeners. We need again query selector all method. Then pass here the class name wrapper. In order to attach event listener to each wrapper, at first we have to look through them because query selector, all method returns a node list. Let's use again for each method. Then pass your callback function with the argument item. Next, we need to attach event listener to the item with the click event and with another callback function. So now we need to remove the class change from all three elements. Actually, I'm going to go ahead and grab this code from here and then change toggling to remove. So now if I click the menu icon and then click the selection menu will clause. So everything works perfectly and with the menu we are done. Next, I'm going to make those links work. I mean, once we click them, We should navigate to the proper sections. For that, we have to do a couple of things. At first, let's increase the size of the links that select. Now Berlin, set its font size to 1.5 RAM. And also I'm going to separate links using margin. Let's set it to two rem at the top and bottom and zero on the left and right sides. Alright, next let's go to the index.html file and assign to each section element id attribute. So in order to navigate to the proper sections, the values of the id and h reference attributes should match. So let's go ahead and assign to them this similar values using a multi cursor. For the first item, I'm going to pass your home. Then for the second item, we need popular cars. Next comes video gallery. Then we will have Image Gallery. And finally, we need content. Now, if I click the links, then we will navigate to the proper section. At a glance, it's hard to notice. But if you look at this scroll bar, then you will see that we are navigating to the relevant sections. In order to make this effect smoother, we can use one of these CSS properties called scroll behavior. And we have to attach it to the HTML element with the value small. So now as you can see, we are navigating between different sections smoothly 58. Project 6 - Style and Make Hamburger Menu Work: Alright, so once we managed to make the navigation work, now it's time to style the Menu icon and also the navigation items. Let's take a look at the finished project. As you can see them anywhere. You can consist of two lines. Once we click it, they rotate and transform into the x. So that's what we're going to do right now. We have here just a red box. Let's go ahead and select lines with common class menu line. At first, let's define width and height. I'm going to set width to how to present. As for the height, let's make it a point to ramp. Also change the background color. Make it white. Then I'm going to create some space at the top and bottom of the lines using margin. Let's set it to 0.3 rem and zero. And then create some shadow effect using box shadow with the value is 0.1, 0.1 RAM than 0.3 ramp. And the color too. Okay, so here we have the lines. Next, I'm going to align those lines. And for that, I want to use Flexbox. Let's set the display property to flex. Also change the direction. Let's make a column that in order to place the lines in the center of the menu, Let's use justify content center and align items center. Okay, so as you can see, the lines are aligned and actually it's time to get rid of this red background and also change the type of the course will pointer. So as we said, we're going to rotate those lines in order to make it X. And this should happen once we click the icon, add forest, let's transform the lives and to x, Let's select. The first line is in class menu line one. Actually we will transform the lines into the cross and then we will rotate the menu itself. So let's use Transform with the rotate function. I'm going to rotate the first-line by 270 degrees. Let's duplicate this code. Change the class name. As for the value, I'm going to rotate this second line by 360 degrees. So right now we don't have here the perfect cross. And in order to fix that, Let's move the lines a little bit. I'm going to do that using the translate function, which actually allows us to move the element both vertically and horizontally according to the x and y-axis. So in case of the first line, we need to translate X with the value minus point for RAM. As for the second line, we need Translate Y with a value minus point for RAM. So now we have here the perfect x. And lastly, we need to rotate the Menu icon itself. So let's use again transform, where they rotate function as the value. Let's pass here 45 degrees. Alright, so finally, we have transformed the lines into x. But this should happen once we click the icon. For that, again, I'm going to use class change, which is added to the element onClick using JavaScript. Let's add class changed to both lines. In this case, we have space between the classes because the lines are the children of the menu. Finally, let's grab this line of code and paste it down. If I click the icon, then we will get an x. Alright, in order to make this effect smoother, Let's use transition with transform and 0.5 s. As for the menu, we already have here the transition, but where the left property. So I'm going to change it and make it all. Alright, so with the menu, we're done. Let's go ahead and customize those links. We have all the selected. Now by link. Let's add here a couple of styles. We need font weight with a value of 600. Also change the color, make it 777. Then I'm going to create some space between the letters using lateral spacing, 0.3 RAM, then transform text into uppercase. So as you can see, the links are customized. And lastly, I'm going to create a little hover effect. I'm going to change the color on hover. So let's go ahead and select, now will link with a hover, change color, make it 111. And also use transition for smooth effect with the value is color and the duration point. Alright, so within navigation, we are done and now it's time to customize the sections 59. Project 6 - Create and Customize Landing Page: I'm going to start with the first section. Let's take a look at the finished project. As you can see, the first section is going to be a quite a simple one. We will have a dark background and two different elements, the heading and the image. So let's go ahead and create the HTML markup. Right now, we have here the wrapper and just the empty section element. So let's insert your H1 heading element. It should have two different classes. The first one is going to be section heading as Paul. The second one is going to be Section one heading as the content. Let's insert here classic cars. Next I'm going to insert here the image. Let's select the image from the images folder is going to be Section one. Also let's adhere class attribute value is section one image. So that's it about the HTML markup. Let's go to the style.css file and insert new comments, section one. And section one. Actually, all five sections will have the similar headings. On the first one we'll have some additional individual styles. So I think instead of writing the same styles over and over again would be better if we create some common styles. Let's use class, section heading and adhere couple of styles. I'm going to increase the font size. Let's make it ten RAM. Then make the font-weight bolder. Also change the color, make it white. Then I'm going to add some space at the bottom of the elements using margin bottom. Ten ramp. Also create some space between the letters using letter spacing. One ramp. Let's align text in the center. And finally use text shadow with a value is 0.3, 0.3 around 0.5 ramp caller 555. Alright, after that, I'm going to align those two elements and also take care of the background. So let's go ahead and select the section element with the class section one. To align the elements in the center of this section, I'm going to use again flux books. Actually we need to use similar properties and values that we used in case of the menu. So in order to avoid writing the same Flexbox styles here, I'm going to create a new class and the common styles, let's call it center and assigned to it display flex than justify-content center and align items center. Then I'm going to add this class to the menu. And section one as well. Also get rid of those three lines. Come here and leave just flex direction column. Besides that, we need to flex direction column for section one as well. Alright, so the elements are aligned and now I'm going to take care of the background. Let's specify here the URL. I'm going to select BG section one dot JPG from the images folder. Besides that, Let's add here center and I'll repeat. And also define the background size. Make it cover that sit regarding background and actually this section element. Let's go ahead and add a couple of stars to be heading that's selected. Let's use here section one. Section one heading. I used here section one. And if I missed it, Dan, this task wouldn't be applied because we all already created common styles for section headings. In this case, some of the defined styles will be overwritten. So let's add here margin bottom with a value of three RAM. Then transform text into uppercase. And also use text shadow with the values one RAM, three times. And the black color. Actually, I'm going to add here to additional shadows, which eventually will create a multilevel shadow effect. So let's adhere to run three times. And the color 111. Then I'm going to add three rem, again three times with a color to two. So as you can see, we have here nice shadow effect. Finally, I'm going to define the width of the image that's selected and set its width to seven per cent. I used to hear the percentage value because it will make the image responsive to different screen sizes. Alright, so let's see regarding the first section, let's go ahead and move on to the next one. 60. Project 6 - Create and Customize Popular Cars Section: The next section is going to be popular cars. Let's go ahead and take a look at the finished project. So in this section we will have a heading and three different cards. Each card will consist of image, car, name, price, and the button. Let's go ahead and create the HTML markup. I'm going to start with a heading. Let's open H1 heading elements with the class section heading and with the content. Popular cars. Let's insert here div, which is going to be the wrapper of the cards. Next I'm going to create the card itself. So let's open div tag with the class card. I'm going to insert you a couple of elements. The first one is going to be H2 heading element with the class Car name as the content. I'm going to put here just carbonate. Next we will have an image. Let's select car one dot JPEG from the images folder. And also I'm going to assign to the image element class called IMG. Next we will have h3 heading element, which is going to be the price of the car. Let's put here 200,000. And finally, I'm going to institute button with the type button with a class called btn. Also lets you see more. Alright, so this is our first card. Overall, we will have three of them. So let's go ahead and duplicate it twice and then make some changes. The second image is going to be called to JPG. Also change the price. Then we will have car three. And the price is going to be $150,000. Alright, so that's it regarding HTML markup. Let's go ahead and style this second section. Let's insert here a new comments, section two and section two. Then select the section element. Actually, I'm going to align the elements using Flexbox, but before that, let's place the cards side-by-side. For that, I'm going to assign to the carts wrapper class center, which we have already defined previously. After that, Let's make this section element flex container using display flex. Then we need to change the direction. Let's set it to column. And finally, let's create some space around the flex items using justify content with the values pace around. Alright, that's said about this section elements. Let's move on and customize the cop. I'm going to set its width to 50 ramp. Actually, before we add other styles to the car, let's define the width of the image. Let's select it and make its width 100%. In this case, image will take up 100% of the width of its parent element, which is the COD. Okay, let's move on and add some more styles to the card. I'm going to create some space on the left and right sides using margin with a value of 0.3 ramp. Also change the background color, make it white. Then I'm going to set padding to one RAM on all four sides. And lastly, let's create some shadow using box-shadow with the values 0.6 RAM three times, and then the color BBB. Next, I'm going to create a hover effect. I want to change the shadow on hover. So let's go ahead and select the card with the hover. Then defined box shadow, where the values 0.8 RAM three times and the color BBB. And also let's use transition. We need here box shadow, where the duration 0.5 s. Okay, so that's it regarding the card, Let's move on and customize the heading elements, which is the current name Let's select it and change the font size, make it to RAM. Then I'm going to set font weight to 600. Also transform text into uppercase. Then change the color and make it white. Right now, the heading is no longer visible because it has a white color. I'm going to place it a little bit down. So let's go ahead and set its position to absolute. Then in order to position it according to its parent element, which is the card, we need to set this position to relative. Then define top and left properties for the heading. I'm going to make both of them to run. And also in order to be the car name always at the top of the image, I'm going to use z-index property with a relatively higher value, let's say ten. Alright, so now the heading is visible. Next, I'm going to create a hover effect. I want to increase the opacity of the image on hover. At first, let's set it to, let's say 0.8. Then select card with a hover. It's going to be followed by the car image. And then set opacity to one. Also, I'm going to use transition with the values opacity and 0.5 s. Alright? So the hover effect works fine. Let's move on and customize the price. Let's select this element and at first, change the font size, make it 1.8 RAM. Then I'm going to set color to 777. And also creates some space at the top and the bottom using margin with values point fibrin and zero. Okay, so the last element that we need to style is going to be the button. Let's select it. At first. I'm going to set its width to 100%. Then change the background color, make it white. Also, I'm going to set font size to 1.7 rem. Then create some space between the letters. Let's make it 0.3 rounds and then transform text into uppercase. Okay, So button looks good, but we need to add a couple of more styles to it. Let's get rid of the default border. Using border none. Then I'm going to create some space at the top of the button using margin, top, one rank. Next, let's create some space inside of the button using padding. I'm going to set it to 0.5 rem and then change the color, make it white. Finally, I'm going to create some shadow effects. At first, let's use text shadow, where the value is 0.1, 0.1 ramp, then point, we ran black color. And after that, I'm going to use box shadow with the values 0.1, 0.1 run, then point fibrin and the color be BB. And lastly, let's change the title of the course or make it point. Alright, so with the button we are done. And actually, that's it about this section. It is styled and looks nice. Let's go ahead and move on to the next section. 61. Project 6 - Create and Style Video Gallery: The next section is going to be the video gallery. We have here a section heading and six different videos. By default they are post and once we hover over them, then they will play. Alright, let's go ahead and as usual, create the HTML markup. I'm going to start with the section heading. Let's open H1 heading element with a class section heading. And as the contemplates, insert here video gallery. Next, let's open the developments. It's going to be the wrapper of the videos. Overall, we will have two of those wrappers and each of them will include three videos. Let's open video tag with a class video and specify the path of the file. We have video called car, video one in the Images folder. Besides that, I'm going to use two different attributes. The first one is going to be muted. It will mute the sound of the video. As for the second one, it's going to be the loop. It allows us to play the video infinitely. And besides that, we can use another attribute called controls. Let's also define the width of the video. Make it 500 pixels. So here we have a video with controls. As you see this sound is Mildred, and also it is playing over and over again because of the attribute a little bit. Okay, actually, I'm going to get rid of controls. I'm not going to use them. Let's just use hear, muted and loop. We will have three videos in this wrapper. Let's duplicate it twice and change the video names. We need here, 2.3. Then I'm going to duplicate the wrapper itself and change again the video names. We need here, 45.6. Alright, so the HTML markup is ready right now. Everything is messed up here because the videos are high-quality and they are too big. Let's go ahead and customize this section. Let's insert your new comments, section three. And section three. Before we start to customize this section, at first, Let's decrease the size of the videos. Let's go ahead and select them and set the width to 25%. Okay, So now the videos are smaller and you can customize the section element. Let's select it. I'm going to make it flex container using display flags. Then we need to change the direction. Let's make it column. Also. I'm going to create some space around the flex items. Let's use justify content space around. And also change the background color, make it dark gray using to two. That's it regarding this section element. Next, I'm going to align the videos that I want to use again, Flexbox. So let's go to the HTML file and assign to the videos wrapper class center. Alright, so as you can see at the videos are aligned, but we need to add a couple of styles to them. First of all, let's create some space on the left and right sides of the videos using margin with the values zero. And to run, then I'm going to make the corners of the videos rounded using border-radius with the value 0.5 rem. Also, let's decrease the opacity slightly. Let's make it 0.8. And lastly, I'm going to create a little shadow effect using box shadow with the values 0.3, 0.3 rem. Next one is going to be 0.5 RAM and the color 111. Alright, so we're almost done. We just need to create hover effects. And also we need to play the videos on hover. For that, we will use a little bit of JavaScript. At first, Let's increase the opacity and change the shadow on hover. Let's select the video with the hover pseudo-class that increase the opacity, make it one. And also change the box shadow. I'm going to insert the values like 0.5, 0.5 RAM than one RAM, and the color one, one-to-one. And also use transition. The value is all 0.5 s. Alright, so as you can see, the hover effects work fine, and now it's time to play the videos on hover. Let's go ahead and go to the JavaScript file. And at first, select all the videos. I'm going to create a new variable, let's call it the videos, and then select all the videos using query selector all method. We need to specify here the class video. So in order to play the videos on hover, we need to use mouse over and mouse out events. And also the method's called Play and pulse. Before that, we need to look through the videos and attached to them event listener. So I'm going to use one of the array helper methods called for-each. It should take one parameter. It's going to be the callback function. We need to pass an argument which is going to be the current video during the loop. Then we need to attach to the video event listener. Let's insert your mouse over event. And also pass here the callback function, which should be executed once we hover over the video. Now, in order to play the video, we need to use one of the HTML5 video APIs methods called play. So now if I hover over the video, it will play. But once we mouse out, it will keep playing. Actually, we don't need that. We need to pause the video once we miles out. So we need to use another event called miles out. Let's attach to the video event listener with the event miles out. And then use a method called pulse. Okay, so now everything works fine. And actually with this section we're done. Let's go ahead and move on to the next one. 62. Project 6 - Create and Style Image Gallery: Alright, so it's time to create the next section, which is going to be the image gallery. This gallery is going to be a kind of different and interesting. One. We will have two shelves, each of them with three different pictures of the cars. In this section, you will learn about how to create 3D elements using CSS. Let's go ahead and create the HTML markup. I'm going to start with the section heading. Let's open H1 heading element with the class section heading with the content image gallery. Next, I'm going to open a div tag, which is going to be the wrapper of the gallery. It's assigned to the class gallery. So overall we will have two rappers, like it wasn't the previous section. Each of them will encode the shelf and three images. So let's go ahead and open a div tag, which is going to be the shelf I'm going to assign to the class gallery shelf. It should be the empty element. So the shell is going to be followed by the images. Let's open image tag and specify here the part of the image. We need. Gallery car one dot JPG from the images folder. And also I'm going to assign the image element class attribute with a value gallery IMG one. Let's duplicate it twice and change the image names and also the class names. We need to add three. Next, I'm going to duplicate the gallery itself. And then I'm going to change again names of the images. As for the class names, we need to leave them as they are. Alright, that's it regarding the HTML markup, Let's go ahead and start to customize this section. At first, I'm going to place the images side-by-side in a row. For that, Let's use flexbox. I'm going to assign to both galleries class. Alright, let's go ahead and insert new comments in CSS file. It's going to be section for them. And off section four. Then select section element. I'm going to make it flex container using display flex. Also, I'm going to place the elements in the column. So let's go ahead and change the flex direction column. And also I'm going to create some space between the items using justify content space between. Next thing that I want to do is to decrease the size of the images because they are too big right now. So let's go ahead and select them and set with two 15%. Now, it's much better. Let's move on and select Gallery. I want to create some space at the top and bottom. Let's do that using margin. I'm going to set it to ten rem at the top and bottom and zero on the left and right sides. Alright, so now it's time to create the shelf and I think would be better if we hide the images for awhile. So let's Use your display. None. Then select the shelf. First of all, I'm going to define its width and height. Let's set with 280 per cent. As for the height, I'm going to make it 3D ramp. Then define background color. I'm going to use here RGBA value. Let's insert here 38126199 and the opacity 0.8. And finally, in order to place the shelf in the center of this section, let's use margin, the value R0. Alright, so this is the front part of the shelf. As for the rest of the part, we will create it using a before pseudo element. So let's go ahead and select Gallery shelf with before pseudo element. First of all, let's make the column empty. Then I'm going to set its position to absolute. And in order to position this element according to its parent, which is the gallery shelf, we need to assign to the parent position relative. After that, let's add a couple of stars to do before pseudo element, I'm going to define its width and height. Let's make the width hundred per cent. As for the height, I'm going to set it to ten ramp. And also change the background color. I'm going to use here color with the RGBA value. Let's insert here 34152248 and the opacity 0.7. Alright? So right now it's not positioned correctly. I'm going to move it up So let's define the top position. Actually, we need to place it at the top of the front part. Its height is equal to ten ramp. So we need here top property with the value minus ten rep. Right? After that, we need to rotate before pseudo element horizontally according to the x-axis. So I'm going to use Transform property with rotate x function. And I'm going to put here 20 degrees. So the element is rotated, but that's not what we want. The problem is that by default, element is rotated according to its center. I mean that the origin of the transformation is centered and we need to change it and make it button. So let's use transform origin and make it bought. Now the problem is fixed and the element is rotated correctly. The only thing that had to do is to create a 3D environment and make those shelves look like the real ones. In order to create a 3D environment, as you already know, we have to use a property called perspective. Let's set it to ten run. Alright, so as you can see, now we have a much better result with a shouts. We're almost done. The only thing that I want to do is to create a shadow effect. So let's go ahead and use box shadow with a values one ran, one ramp, fibrin and the color for four. Alright, so finally, with the shelf, we are done. Let's go ahead and display the images back. Let's get rid of display none. As you can see right now, the layout is messed up, so let's take care of that. I'm going to set position to absolute. So now the images are placed behind each other. At first, Let's move them up and place them on the shelves. I'm going to define bottom position where the value is six RAM. Then I'm going to select each image separately and define the left position. Let's go ahead and start with the gallery IMG one. I'm going to set its left position to 50 per cent. Then let's go ahead and duplicate this code twice. Let's change the class name. We need calorie img2. As far as the lead position, we're going to use here 30%. As for the third image, Let's make its left position seven per cent. So now we see all the images, but they are not positioned quite correctly. In order to fix that, I'm going to move them to the left side. And for that, Let's use Transform with the Translate X function, which most of the elements horizontally. I'm going to put here -50 per cent. And besides that, I want to rotate the image is horizontally, I mean, according to the x-axis. So let's use Rotate X with the value 0.5 degree. Besides that, Let's create a little shadow effects and also make the images rounded. Let's use box shadow with devalues point to round. Then I'm going to use a negative value point to RAM in order to change the direction of the shadow. Next, one is going to be 0.5 ran as the color. Let's use 888. And also, let's make the image is rounded using border-radius with a value of 0.5 ran. Alright, so the last thing that we have to do is to create a hover effect. Once we hover over the images, we need to rotate them back to the normal position. And also we need to change the shadow. So let's go ahead and select gallery image with the hover pseudo-class than use Transform. Actually, we have to use here Translate function again because if we miss it, then the position of the images will change. So we need to translate x with -50%. Then we need to rotate x function the value zero. Besides that, Let's use box shadow with the values 0.2, 0.3 RAM, and the color 888. That in order to make the effect smoother, Let's use transition values all and 0.3 s. So we have here a hover effect. But actually it doesn't look quite good because the images are rotating from the center and we need to rotate them from the bottom. So again, we have to change, transform origin, make it borrow. Alright, so now the problem is fixed and we have here a nice hollow. Or actually before we finish this section, I have noticed that we need some space at the top and bottom of this section because the heading is not positioned nicely. And besides that, I think we need space for the other sections as well. So I'm going to go to the comments, section styles, and assign to the section element. Padding. Value is fibrin and zero. Okay, now we have a much better results. And actually with the image gallery, we're done. Let's move on and start to work on the next section, which is going to be the last one 63. Project 6 - Create and Customize Contact Section and Footer: Alright, so it's time to create a fifth section, which is going to be the contact section. We will finish building the project with this section. And after that, we'll make it responsive to different screen sizes. Let's take a look at the finished project. So this section is going to be a simple one. We will have full-screen background image with a section heading, form element, and a little copyright text. Let's go ahead and create an HTML markup. Let's insert here and H1 heading element with a class section heading. And where the content contact us. Next we need form elements with the class contact form. So the form will consist of four different elements. We will have two inputs for full name and email. Then we will have text area and the submit button. So let's interfere input element with a class for inputs. And also with the placeholder attribute, which will have the value your full name. Then I'm going to duplicate this line of code. Let's change here, type, make an email, and also as the value of the placeholder attribute. Let's insert your email. Next, we need text area with a class of form inputs. And also use again placeholder attribute with a value enter message. Finally, let's create button, which is going to be represented using input element that's assigned to the cluster form BTN as the type I'm going to use submit. And also we need value submit. Alright, that's it about the form elements. Next, we need to create a paragraph with the class copyright. Let's insert here some copyright text. I'm going to use here. The copyright sign with HTML5 entity. It should be ampersand copy, semicolon. Then I'm going to insert your code and create all rights reserved. Alright, so that's it about the markup. Everything is ready to start to customize this section. Let's go ahead and insert new comments in CSS file. We need Section five and off section F5. Then select this section elements. So the first thing that I want to do is to add the image as the full-screen background. First of all, let's use linear gradient. We need here RGBA value, where the black color and with the opacity 0.6. Next, we need the similar color. But with opacity 0.8. Alright, after that, let's define the URL path of the image. It's going to be BG Section five dot JPG. Also, let's insert your center and no repeat. And finally, I'm going to define the size of the background. Let's make it cover. So here we have an image. Next, I want to align the elements using Flexbox. Let's make the section element flex container using display flex. Then we need to align elements in a column vertically. So let's change the direction, make it column. Then create some space around the elements using justify content space around. And finally, I'm going to place the items in the center using align items, center. Alright, so the elements are aligned and now I'm going to move on and customize the formed elements. Let's go ahead and select it. First of all, I'm going to define its width and height. Let's set with 260 RAM. As for the height, I'm going to make it 45 rem. Next, I'm going to change the background color. Let's use your RGBA with the white color with the opacity point. To. Finally, I'm going to create the border with values to ram solid. And then use again RGBA value with the white color. And with the opacity 0.8 Next I'm going to align the elements inside of the form for that, Let's use again Flexbox. In this case, I'm going to make the form flex container using display flex. Then again, change the direction. I'm going to place the elements in a column vertically. Next, I'm going to place elements in the center vertically. Use justify-content center. And finally, create some space inside of the form element using padding with a value of five rem on all four sides. Alright, that's it about the form element. Now have to customize the inputs text area and the Bateson. At first I'm going to select the input elements and the text area because they will have some common styles. So let's select both elements. First of all, let's define width and height. Let's set with 200 per cent. For the height. I'm going to make it for ramp. After that, let's create some space at the top and bottom using margin. Let's set it to Ram and zero. And also I'm going to make the background color of the input elements and the tax area transparent. Alright, let's move on and add a couple of more styles to those elements. Let's create some space inside of them using padding. The value 0.5 RAM on all four sides. Then change the border. I'm going to assign 2.1 run solid and the white color. Next I'm going to change the font size. Let's make it 1.5 RAM. Then create some space between the letters using letter spacing 0.1 RAM. And finally change the color, make it white. Alright, so the inputs and the text area or style. And before we move on and style the button, I'm going to add a couple of more styles to the text area. Right now. It has just width and height, which may cause the problem in the layout because we can manually change the size of the text area. So we need to define the max width and height. So let's select text area and define max-width. Make it 100 per cent. As for the minimum height, I'm going to make it eight run. Alright, so now the problem with the text area is fixed. But we have here another issue. The height of the input elements decreased and happen because now the text area became larger and it pushed the rest of the elements. So in order to avoid this kind of thing, we can use one of the flex item properties called flex shrink and we have to make it zero. Alright? Next thing that I want to do is to change the background color for the inputs and the text area once we focus them. So let's select inputs and the text area with a common class name for a put, which should be followed by defocus pseudo-class. Let's change the background color. I'm going to use RGBA with the white color and with the opacity 0.5. Also we need transition with background color and the duration 0.5 s. Okay, so finally, we can customize the button. Let's go ahead and select it. We need to use at first the class of the form element because otherwise some of these styles won't be applied to the button. As you know, the button is created using the input element, and we all probably have some styles for the April down. Let's change the background color. I'm going to use RGBA, where the white color and with the opacity 0.8. Then let's change the font weight, make it 600. So let's create some space between the letters using letter spacing 0.3 ramp. Then change the color, make it 444. And also change the type of the cursor. Make it point. Alright, so with the button, we are done. And now we have to take care of the last element, which is the paragraph. So let's go ahead and select it. First of all, let's increase its font size, make it to run. Also change the font weight. I'm going to make it 300. Then let's make it color white. And also align the text set. Alright, so the paragraph is customized and actually we are almost done with this section and with a project itself. Before we move on and make the project responsive, I want to do one more pig. The contact section is the last section of the project and I want to get rid of space at the bottom. So let's go ahead and assign to it a margin bottom with a value of zero. Alright, so finally we are done. The project is built successfully and now we have to move to the last step and make the project responsive to different screen sizes. 64. Project 6 - Make Project Responsive: Alright, so before we start to create CSS media queries on different breakpoints and make the project responsive. Let's take a look at the finished project once again. So if I inspect the page, then switch to the responsive mode and check the projects are on different screen sizes. Then you will find that it looks good and ads responsive. Alright, so we need to achieve this result. Let's go ahead and inspect the page. So as you know, the project is built on extra large screen size. I'm in the screen size with 1920 pixels width and 1080 pixels height. I have already prepared different break points on which we need to make some changes, so I'm not going to waste time on finding them. The first breakpoint is going to be 1,500 pixels. As you can see on the breakpoint, we need to take care of the navbar. And also some of these sections need some changes. Let's go ahead and insert new comments. Responsive and off responsive. Actually, before I write here any code, let's split the window of the VS code into two parts. And display style.css file on both sides. I think it will make our work-in-process and more convenient because we'll find current styles quickly and then create a new CSS media query. I'm going to specify here the max-width. Let's make it 1,500 pixels. The first thing that we need to do is to increase the navbar. I mean the width of the Navbar. Let's go ahead and select it. Let's set its width to 20, viewport width. And also I'm going to decrease the padding slightly. Let's make it to RAM than 00.2 ramp. So the width of the novel is increased, but now the menu icon is hidden. And also, once we close enough or it is partially visible. So we need to change the left position. Let's make it -20 viewport width. And also we need to change the position of the menu icon on click. Select menu with the class change. And let's set its lead position to 20. Viewport width. Alright, so that's it regarding Navbar. Let's take care of the sections. Once the number is displayed, then this section, so partial hidden. So let's take care of that. I'm going to select section with the class change. And I'm going to set its left position to 20 viewport width. Besides that, I'm going to change the value of the rotate function. Let's make it 15 degrees. Okay, that's it about this section element. Let's move on and take care of the first section. I think we need to add some space between the heading and the image. Right now. Section one has the cluster center. So they justify content property is set to center and I'm going to change it and Megan space evenly. Okay. Let's move on and take care of this section heading. I want to decrease its font size slightly. So let's select this element and set font size to seven. Run. Alright, that's it about the first section. Let's move on and take care of the second one. I'm going to align the cards on multiple lines. And for that, we have to set the flex wrap property to wrap. So let's select cards, wrapper and assigned to flex wrap with the value wrap. So as you can see that the cards are wrapped and placed on different lines, but had to take care of the height of this section. I'm going to set it to auto and also increase the padding at the bottom. I'm going to set padding to five rem at the top than zero on the right side. Tan ran at the bottom and zero on the left side. Alright, the next thing that we need to do is to create some space between the cards. And also I'm going to decrease their width. So let's select the card And set its width to four to run. And also I'm going to set margin to three round. Alright, that's it about the second section. Let's move on and customize this third one. I'm going to increase the width of the video. Let's go ahead and select it. So I'm going to set width two, so to present. And also I'm going to change the margin. Let's make it to RAM on all four sides. And also I'm going to increase the padding on the left and right sides of this section. Let's select Section three and set padding to five rem. And then three ramp on the left and right sides. With a video gallery. We are done under the breakpoint. Let's move on and customize the image gallery. The first thing that I'm going to do is to increase the space between the shelves. So let's select Gallery and set margin to 12 rem at the top and bottom and zero on the left and right sides. See it right now the layout is messed up because the height of this section is no longer enough. So we need to make it R0. Let's select section four and set height to auto. Alright, the next thing that I want to do is to increase the size of the shelf. So let's select it and set its width to 90%. Also, I'm going to increase the size of the image. So let's select Gallery IMG and set its width to 20%. The images became larger, but they are placed too close to each other. In order to fix that, I'm going to change the positions of the second and third images. So let's select Gallery in which two. Let's set its left position to 25%. As for the third image, I'm going to make its left position 75%. Alright, now they look good and where the image gallery we are done. Let's move on and take care of the last section, which is going to be the contact section. The first thing that we need to do is to change the height of the section. So let's go ahead and select Section five and make its height R0. Next, let's take care of the form elements. Select Contact Form. I'm going to change its size at set with 255 ran. As for the height I'm going to make for to run. And also change the padding. Let's make it to ramp. Finally, we need to create some space at the top of the paragraph. So let's select it with the class copyright and set margin top to five round. Alright, so I think we are done on the breakpoint because of these sections. Look good. So let's go ahead and move on to the next breakpoint, which is going to be thousand pixels. I'm going to create new CSS media query. Let's specify max-width, make it thousand pixels. The first thing that I'm going to do on the break point is to get rid of padding on the right side. So let's select body and set padding right to zero. Alright, Next let's customize enough or because it doesn't look quite good. Actually, I'm going to grab the code from the previous breakpoint. And let's change 20 viewport width into 25. Viewport width. Also am going to increase the value of the rotate function. Let's make it 20 degrees and get rid of this padding from here. Alright, so the number looks good. Let's move on and take care of the first section. I'm going to increase the width of the image. So let's select Section one, IMG and set its width to 90%. I think the first section looks good and we don't need to change anything else. The same we can say about the second section. As for the video gallery, Let's go ahead and customize it. I'm going to place the videos vertically in a column. So let's go ahead and select videos wrapper And then change the flex direction, make it call. The videos are placed in a column, but now the height of this section is not enough. So I'm going to make it all row. Let's select Section three and set its height to our row. Then increase the width of the videos. Let's make it 70%. And also I'm going to change the margin. Let's make it three ran at the top and bottom and zero on the left and right sides. Alright, so the video gallery looks nice. If we check other sections, then you will find that they look good as well. So it's time to move on to the next breakpoint, which is going to be 750 pixels. So let's create new CSS media query where the max-width 750 pixels. So again, we need to customize the navbar. Let's go ahead and grab the code from the previous breakpoint. I'm going to change 25 viewport width in. Third to viewport width. As for the rotate function, Let's make its value 25 degrees. Okay? So then, now bar looks good. Next I'm going to take care of the headings. Let's select section heading. Set font size to 5.5 g. Alright, so the first three sections look good as well. The image gallery, we need to make some changes. I think we need to make the shelves thinner. So let's select Gallery shelf. Let's make its height 1.5 RAM as poly width. I'm going to set it to 95%. Then I'm going to take care of the second part of the shelves, which is before pseudo element. So let's select Gallery shelf, followed by the before pseudo element. Let's make its height five RAM. As for the top position, I'm going to set it to minus five. Ran. The shelves look good, but now we need to take care of the images. And let's select gallery image. I'm going to define its width as 25%. As for the bottom position, Let's make it fall wrap. Lastly, we need to change the positions of the images. So let's select Gallery in which two. I'm going to make its left position 22 present. As for the third image, Let's make its lead position 78%. Actually, we are almost done with this section. And before we move on, I think when it's decreased the size of the space at the bottom of this section. So let's select section four. And defined padding with a value is six RAM 01 run, and then again zero. Alright, that's it. Regarding this breakpoint, Let's go ahead and create the next one, which is going to be 600 pixels. So let's create new CSS media query and specify max width as 600 pixels. First of all, I'm going to decrease the font size of the HTML element because it will decrease the sizes of all the elements. So let's set font size to 55.5%. Next, let's decrease the font size of all section headings. So let's select section heading and make its font size 4.5 Ram. Next, I'm going to take care of the first section. Let's select Section one image and set its width 200 per cent. Then move on to the video gallery. I want to increase the width of the video. So let's set width to 100%. As for the margin, I'm going to make it to Ram at the top and bottom and zero on the left and right sides. Alright, let's sit regarding the video gallery. Next, I'm going to customize the image gallery. So let's select Gallery and set margin to nine RAM and zero. That's it about the image gallery. Let's move on and customize the formed elements. Select it. As far as I'm going to change the width, let's make it four to RAM. And also I'm going to set border to one ran solid. And the white color with the opacity 0.8. Alright, so all these sections are customized and now we have to take care of the navbar. I'm going to increase again in size. So let's grab the code from the previous breakpoint. Actually, I'm going to change the width and the positions for the Napa and the Menu icon. Let's make it four to viewport width. As for this section elements, we don't want to rotate them anymore. So let's set let position to zero. As for the rotate function, Let's make its value zero. Alright, so that's it about this breakpoint. Let's move on and create the last one, which is going to be 400 pixels. Let's create new CSS media query and specify the max-width. Make it 400 pixels. On that breakpoint, I'm going to decrease the font size of the HTML element. Let's make it 40 per cent. And finally, let's decrease the width of the copyright text. Let's make it a 2%. Alright, so finally, we are done. The project is responsive to different screen sizes, and actually we have finished working on it 65. Project 7 - Project Preview: Alright, so it's time to move on and start to build the next project, which is going to be one of the biggest one. As usual, before we dive deeper into our project and start to build it at first, let's go ahead and describe. So if I reload the page, then we will get here this painter is displaying for a couple of seconds. After that, the project is loaded. The first thing that you see here is a landing page with an animated banner and the Menu icon. Once the project is displayed, the banner moves from the bottom with a nice and smooth transition. Besides that, we have here an animated full-screen background. The scale of the image is decreasing with a transition. Alright, so as I said, we have here the Menu icon which is placed at the top right corner. If I click it, then the sidebar will display from the right side. Also the Menu icon will transform into an X. The navigation is going to be a simple one, but we have here a nice and cool effect. If I hover over the navigation items, then they will change their color from the left to right. Besides that, we have here a couple of social media icons at the bottom of decidable with some horror effects. If I hover over the x closing button, then the tooltip will display with a text close. And if I click the X, the sidebar will close. Okay, let's see about the lending and the sidebar. Let's move on to the next section, which is going to be about us. We have here the heading with an underline followed by some texts and icons. In the center of this section we have a small image of the house. This section is going to be built based on the CSS layout module called CSS grid. Next comes the code section. We have here three cards with a nice and cool hover effect. It is going to be created with one of the JavaScript plugins called tilde dot js. So you'll be able to learn about how to use these plug-in. After the card section, we will build the contact section. As you can see we have here the background image on the left side of this box. As for the right side, there are a couple of elements. I made the headings, several inputs and the Submit button, each of the input fields as its label. And if I focus the input and the label will move up with some transition. This effect is really popular and commonly used today. So you'll be able to learn how to create it. Right after the contact section, we will build this simple footer where we have the copyright text and some social media icons. So the one last thing that I want to mention here is this fixed yellow button with the up arrow icon. If I click it, then the page will scroll up smoothly to the top right. So the project is going to be responsive to all different screen sizes. If I inspect the page, then switch to the responsive mode and check the project on different screen sizes. Then you will find that it is responsive and looks good. As usual. I want to remind you one thing. The project is built based on the desktop first approach, and we built it on the larger screen size. I'm in the screen size with 1920s vehicles of width and ten AD big source of height. So if you're using a relatively smaller screen size, then the project might not look good during the lectures, but that's not a problem. Eventually, we will make it responsive. In the meantime, you can use the responsive mode and set the width to 1920 pixels and the height to pixels and work like so 66. Project 7 - Create and Customize Landing Page: Alright, so I think we're ready to go. Let's get started. I have created a new folder on the desktop called architect website, in which I have another folder for the images. Let's go ahead and open the folder in VS code. I'm going to create three different files for HTML, CSS and JavaScript. Let's call them index of HTML, then style.css and script.js. Next, I'm going to insert the basic HTML document in the index.html file. Let's use m it. We have to place here an exclamation mark and then hit Enter or tab. So here we go. Alright, wants to basic HTML document is ready. It's time to run the project to the browser. In order to do that, I'm going to use one of the VS code packages called Live Server. This package and also to run the project to the browser life and make changes or updates without reloading the page each time. So I recommend installing and use this package. Okay, so the project is up and running. We have to set up a couple of more things. First of all, let's link these three files. I'm going to open link tag. Then in the h reference attributes, I'm going to specify the path of the CSS file. As for the JavaScript, let's open a script tag right above the closing body tag, and in the source attribute to specify the path of the script file. Besides that, Let's change the title. I'm going to insert you architect website. Alright, so all three files are connected. And next, I'm going to bring in a couple of links. Throughout the project. I'm going to use some Font, Awesome icons, and also a couple of Google Fonts. Let's first take care of the font awesome link. I'm going to search for Font Awesome, CDN, js. Let's go to this link. Select CSS, and grab the link. I'm going to open a link tag here and paste the link as the value of the h reference attribute. Right? After that, I'm going to search for Google fonts. So this is the Google Fonts website. Overall, I'm going to use three different fonts. Let's search for Lu dA2 and select some of these different styles. Next we need Josephine slab. I'm going to select a couple of styles here as well. And finally, search for movie. Then I'm going to grab the link and paste it in the head element. Alright, so I think we're good to go. I'm going to build the project section by section. At first, we will prepare the HTML markups and then write some CSS. Let's take a look at the finished project. So the first part of our project that is going to be built is a header. It has the banner with a heading paragraph, and button. Once we reload the page. And the spinner finishes loading than the banner will appear with a nice animation. Also, we have here a full-screen image that has some animation effect as well. Besides that, I'm going to create a menu icon. Technically, it's not a part of the header. It has a fixed position. But anyway, I'm going to create it. Alright, enough to talk, let's get started. I'm going to open a div tag, which is going to be the container. Next, let's open HTML5 header tag. With a class header. The header will consist of two main parts. The first one is going to be the image. As for the second part, it should be the banner. I'm going to open div tag with the class IMG wrapper. It's going to be the wrapper of the image. And then inside that div element, Let's open the image tag and the source attributes. I'm going to specify the path of the image. We need bg dot JPG from the images folder. Okay, Next we will have a banner. So it's open div tag with the class banner. It will consist of three different elements. The first one is going to be H1 heading elements with the text, architecture and interior design. Next we will have paragraph With some dummy text and also button with a tax discover now. Okay, so here we have the header with its elements. Next, I'm going to create the markup for the Menu icon. So let's open div tag with a class hamburger menu. So the lines of the icon will be represented with div elements. Let's open div tag with the class line, which is going to be the common class name. But besides that, we need here line one for some individualist styling. Then duplicate this line of code twice and change the class names. We need line two and line three. Alright, so that's it about the HTML markup for the header. Now it's time to start to write some CSS. First of all, I'm going to interview some reset and common styles. Let's get rid of the default margin and padding for all the elements. In order to select every element, we need to use asterisk and then set margin and padding both of them to zero. Besides that, I'm going to get rid of default outline from the elements. We need outline none. Also, let's set box-sizing, border-box. Next, I'm going to get rid of default styles. For the list. I mean, we need list-style none. And also I'm going to get rid of default styles for the link elements. Let's pass your text decoration. None. Alright, so as you can see, all the common and reset styles are applied throughout this project, I'm going to use RAM as the measurement unit. Right now, one RAM is equal to 16 pixels because by default the font size of the HTML element equals 16 pixels. I want to convert one RAM into ten pixels because I think it will be more convenient and easy to calculate. So to do that, we have to decrease the font size of the HTML element. Let's make it 62.5 per cent. Now, one RAM is equal to ten pixels. You can see the sizes of the elements have decreased. Let's go ahead and customize the header. Let's select it. First of all, I'm going to define its width and height. That set with 200 per cent as probably height. I'm going to make it 100 viewport height. It means that we set the height of the header 200% of the viewport. Next, I'm going to take care of the image. Let's select its wrapper and set width and height, both of them 200 per cent. And besides that, I'm going to define background color to make the image look good. Let's use your RGBA value with black color and with opacity 0.8. Finally, I'm going to customize the image itself. So let's select it. Then, set width and height, both of them 200 per cent. Also, we need here object feet cover to maintain the quality of the image. And finally, I'm going to decrease the opacity. Let's make it 0.5. So as you can see, the image looks good. We no longer have here the scroll bars, and now it's time to customize that banner. First of all, I'm going to change the position of the banner. Let's select it and set position to absolute. In order to define the position of the banner according to the header, which is its parent element. We have to set the position of the header to a relative. Then I'm going to make the top position of the banner 30% S for position. Let's make it 15 per cent. So the banner is positioned and now I'm going to customize its elements. Let's start with the heading. Let's select it. First of all, I'm going to define this font-family. Let's use a font called bellow dA2, the font group serif. Then I'm going to increase the font size. Let's make it eight RAM. Also. I'm going to make the font a little bit lighter using font-weight 300. And then change the color, make it white. So the heading looks good. I'm going to decrease its width in order to break it on two different lines. Let's make its width 50 per cent Besides that, we have to decrease the line height because there is two big space between the lines. So let's make line height nine ran. Okay? Now it looks much better. Let's add here a couple of more styles. I'm going to create some space between letters using letter spacing point to RAM. And also create a little shadow effect using text shadow with the values 0.3, 0.5 RAM, and the RGBA with black color and with opacity 0.4. Alright, that's it about the heading element. Let's move on to the paragraph. Let's select it. I'm going to set font family to Josephine slab serif. That increased font size, make it foreign and change the color. Make it white. Alright, Next, I'm going to decrease the width of the paragraph as well. Let's make it 70%. And also create some space between the letters using lateral spacing with the value 0.1 ran. After that, let's create some space at the bottom of the paragraph and also add to it some shadow. So we need margin bottom with a value of three rem. And also text shadow. Value is 0.3, 0.5 ramp, and RGBA with black color and with opacity 0.4. That's it about the paragraph. Let's move on to the bottom. Let's select it. And first of all, I'm going to define its width and height. Let's set with 225 RAM. As for the height, I'm going to make it seven run. And also change background color. I'm going to use here color, see 29525. Okay, let's move on and add some other stars to the bottom. I'm going to get rid of the default border. Let's use border none. Also change the font family. In this case, I'm going to use font called Molly. Then increase bone size, make it to Ram. Also transform text into uppercase and change color. Make it white. Alright, so step-by-step, the balloon is getting much nicer. I'm going to add to it some shadow effects. Let's first use text shadow with a values 0.2 ram, point for RAM. And the RGBA with a black color and with the opacity point to, Let's duplicate this line of code, change text shadow into box shadow. Also, instead of 0.2, we need 0.3, then 0.5, and the opacity 0.4. And finally, let's make the type of the cursor pointer. Okay, so that's it about the Batson is customized and I think it's pretty nice. Next I'm going to style the Menu icon. And after that, we will take care of the animation. So let's go ahead and select hamburger menu and define its width and height. I'm going to set both of them 23 RAM. And also use hear some temporary background. Let's make it red. So we have to take care of the position of the icon. It's going to be placed at the top right corner of the page. So I'm going to set position of the icon to fixed. And then define top and right properties. I'm going to set both of them to five run. The icon is positioned. As you can see, it's not quite visible. Let's fix that with the z-index property. And also I'm going to make the lines visible. So let's use here Z index with some higher value, let's say 200. Then select line. As you know, it is the common costly for all the lines. So first of all, let's define width and height. I'm going to set with 200 per cent. As for the height, let's make it point to run. Also change. Background color is here, white And then use box shadow with the values 0.1 RAM than point to RAM. And the RGBA with three zeros and opacity 0.2. Alright, so now the lines are visible, but they are placed on top of each other. We need some space between them. And I'm going to create it using Flexbox. So let's make the hamburger menu flex container. Then we need to change flex direction. Let's make it column. In order to create even space between the lines, Let's use justify contents with the values spaced evenly. Then change the type of the cursor pointer. And also I'm going to get rid of the red background color. Alright, so with the Menu icon, we're done. It is customized and it looks good. Now as I said, I'm going to create some animations. I'm going to start with the full-screen image animation. It's going to be kind of simple one. I will increase the scale of the image and then decrease it during the animation. So I'm going to create CSS keyframes as the name of the animation. Let's use scale. So overall we will have two steps, starting point and the ending point. We will increase the scale of the image to 1.3 and we will decrease it to one during the animation. So on zero per cent, we need to transform with the scale function. I'm going to insert here 1.3. And all the hundred per cent. We need, again transform, scale the value one. So the animation is ready. We just need to apply it to the image. For that, we have to use a couple of animation properties. I mean animation name and the animation duration. So as the name of the animation, we need to use a scale. As for the animation duration. Let's make it 25 s. We used here two different properties, but actually we can use here just the animation property. And avoid writing a couple of different properties. We have to specify here the name of the animation, followed by the duration, 25 s. So as you can see, the animation is working. The scale of the image is decreasing. But we have here a tiny problem. Wants the scale of the image is increased. We see here these scroll bars. And in order to fix that, we had to use overflow hidden and we have to assign it to the image wrapper. Now is considered, the problem is fixed. Alright, so the first animation works fine. Let's move on to the second one. I'm going to animate the banner. It should move from the bottom, wants to page is loaded. So I'm going to create another CSS keyframes. Let's call it moved banner. Like the previous animation, we will have two steps on a starting point. I'm going to move down the elements and also rotate them a little bit. Then during the animation they will appear from the bottom and rotate back. First of all, let's hide all three banner elements by default. Let's use opacity zero. Actually, the rotation effect is going to be a 3D. So we need to create a 3D environment. And for that, we have to use one of these CSS properties called Perspective. I'm going to assign it to the header. Let's make it hundred dram, and then add some styles to the keyframes. So on zero per cent, we need to transform. With Translate Y function. It will move the elements according to the y-axis. Let's insert here for 2M. And also we need rotate y. It will rotate elements according to the y-axis as well as past year -20 degrees. On hundred per cent. We need to set both functions to zero. So we need to transform, translate Y zero and rotate y zero as well. And besides that, we have to make the elements visible using opacity one. Okay, so the keyframes are ready. Now we need to define the animation properties for each banner elements. They should have the same name and duration, but a different delay time. So let's assign to all three elements. Animation property. Within a move banner. Duration is going to be 1 s. And after that, I'm going to define different delay times for the heading we need 0.5 s. Then for the paragraph, I'm going to use 0.7 s. As for the button, let's make the delay time 0.9 s. Alright? So as you can see, the elements are hidden by default. If I reload the page than they will appear from the bottom. Once the animation is finished and the elements disappear again. Also during the animation we see the scroll bar. So we need to fix those issues. Once the animation is finished, the banner elements should keep these tiles from the second step of the keyframes. I mean translate and rotate functions with zero values and opacity one. In order to achieve that, we can add to those values one additional value called forwards. It belongs to the animation film mode property. And also to get rid of this scroll bar, we need overflow hidden. Alright, so now everything works perfectly. And with a header, we're done 67. Project 7 - Create and Make Sidebar Work: Let's move on and start to work on the next part of the projects. I'm going to create the sidebar and also make the hamburger menu work. Let's take a look at the finished project. So once I click the menu icon, then the sidebar we'll display, it will move from right to left. We have here a couple of menu items. If I hover over them, then they will change their color nicely. Also, we have here several social media icons down at the bottom of the sidebar. If I hover over the x closing button, then a little tool tip will appear with the text close. And when I click the X, the sidebar, we'll close. That said what we're going to create in this part. First of all, let's create the HTML markup. I'm going to open section tag right after the header. Let's assign to it class sidebar. The sidebar will consist of two different parts. We will have the navigation items and some social media icons. So let's open UL element with the class menu. Then we need LI element with a class name menu item, followed by the link elements, which should have class menu link. And as the first menu item, I'm going to insert here home. So overall we will have five different menu items. So let's duplicate LI element four times and change the content. The second one is going to be about us. Then we will have team pricing and contexts. So as you can see here, we have the links. Next, let's add a couple of social media icons to the sidebar. I'm going to open div element with a class, social media. Then I'm going to pass your link elements, which will include Font, Awesome icon. The first one is going to be Facebook. So we need here class FAB, a, Facebook, F. Let's duplicate link element twice. And to change the class names, we need here, FAB, FAA, Instagram. And the third one is going to be f a b, f a tweeter. Alright, so with the HTML markup, we're done. Let's go ahead and start to customize the sidebar. I'm going to select it and define its width and height. Let's make its width for two RAM. As for the height, it's going to be hundred viewport height. Also, I'm going to define the position which is going to be fixed. And then we need to top and right properties. Both of them equal to zero. Alright? So the sidebar is placed in the right way. And in order to see it better, Let's change the background color. Let's use here white color. Okay, let's move on and start to customize the menu items. I'm going to select the menu itself and position it somewhere in the center of the sidebar. So let's define its position, make it absolute. Then set top property to 40 per cent. Next we need left with a value of 50 per cent. And also in order to center the element, Let's use Transform, Translate, and pass year -50 per cent twice. The menu is positioned. Next, I'm going to customize the items. Let's go ahead and select the LI elements, which has class menu item and assigned to text align center. After that, I'm going to select the links. First of all, let's define font-family. In this case, I'm going to use font called value dA2. Serif. Then increase the font size, make it for RAM. And also change the color. Make it dark gray using 555. Okay, That's it about the menu items right now, let's move on and take care of the social media icons I'm going to select div element, which is the wrapper of the icons. First of all, let's define position, make it absolute. As you know, social media icons should be placed at the bottom of the sidebar. So I'm going to define bottom property with a value of three rem and also make the width hundred percent. Okay, Next, I'm going to place the eye constantly center for that. Let's use flexbox. We need display flex and justify content center. Alright, let's move on and customize the icons. I'm going to select elements. First of all, let's increase font size, make it to point to RAM. And create margin. Three ran. After that, let's define the width and height. I'm going to set both of them to 4.5 RAM. Also change the background color. Make it dark gray using 777. And then change the color. Make the icons white. So I'm going to place the icons in the center of those boxes. And also we will make the boxes circles. In order to center the icons. I'm going to use Flexbox. Let's use display flex and then justify content center. And align items center. As for the making boxes circles as border-radius with the value 50%. Okay? So the icons look good. And the last thing that I want to do regarding them is to create a simple hover effect. I'm going to change the background color on hover. So let's go ahead and select elements with hover and change background color. I'm going to use color C2 9525. Besides that, we need transition values, background color, and 0.3 s. Alright, so with the social media icons, we are done. Let's go back to the menu items and create. The hover effect is going to be a different one. It won't be this simple hover that we used a minute ago. So once we hover over the items, they should change the color from left to right. Let me explain what we're going to do. We will create the before pseudo elements for each menu item with the exact same content, but with a different color. E.g. the home will have the before pseudo element with the text Home About Us will have about us and so on. They will be placed on the actual menu items, but they will have the width of zero pixels. Once we hover over the items than the width of the before pseudo element will increase to 100 per cent. And it will create the color changing effect. Alright, let's write the code and it will become more clear. Let's select it before pseudo elements. The first thing that we have to do is to define the content. As we said, each pseudo element will have the same contents. So we can either select the pseudo elements for all menu links separately using the nth child selector. Or we can use a little trick. I'm going to assign to all menu links the attribute called data content. Then I will specify the contents for each menu link separately. For the first one, we need WHO. Then about us? Than we need a team. Pricing and contact. After that, we just need to assign to the content property a function called attribute, which is expressed as a TTR. And we need to specify here the attribute name, which is data content. Alright? After that, I'm going to define the position. Let's make it absolute. We need position relative for the menu link because it is the parent elements. And we need to position before pseudo element according to the menu link. After that, let's define the top and left properties. We need to make both of them zero and change the color It, C2 9525. Alright, so what do we see here is the before pseudo elements. Now I'm going to make its width zero by default and increase it 200 per cent on hover. So right now the before pseudo elements are still visible. And also the second item is broken on two lines. In order to fix those issues, we need to use overflow hidden, which will hide it before pseudo elements. And in order to avoid wrapping text, we need whitespace with a value no rep. Alright, so now we're ready to go. Let's use the hover effect. I'm going to select menu link with hover, followed by the before pseudo elements. And we have to make with hundred percent. Also, I'm going to use transition with the values width 0.3 s. And besides that, I'm going to use one of the transition timing functions called ease in, out. So as you can see, the hover works perfectly and it creates a really nice and cool effect. Alright, so with the menu items we are done. Next, we have to make the hamburger menu work. I'm going to hide this sidebar by default and display once we click the menu icon, also we have to transform the lines into X and display the tool tip once we hover over the x. First of all, I'm going to manage to display in hiding the sidebar. And we will do that using a little bit of JavaScript. So we will create a new class and CSS called change, which will include some styles for the sidebar. We will add this class name to the container when we click the menu icon. So let's go to the script.js file and at first select the menu icon. I'm going to do that using query selector method. We have to specify here the class name, which is hamburger menu. Next we need to attach to the elements event listener using add event listener method, which will take two arguments. The first one is going to be the type of the event. Click. As for the second argument is going to be arrow function, which will be executed once we click the elements. After that, we need to select the container. Let's use again query selector method and pass your class name container. So again, we have to add the class to the container when we click the icon, and then we have to remove it on the next click. So we need to use a toggle method. At first, I'm going to use here class list property. This property returns all the classes that the element has. Next, we need to attach to it a method called toggle. And we have to specify here the class name. Change. Alright, so that's it about the JavaScript. Let's go back to CSS. I'm going to hide the sidebar by default. For that, Let's change its right position. Right now it equals to zero and we need here -40 ramps, because the width of the sidebar is equal to 40. Ran. After that, we need to select a class change, followed by the sidebar. We have to set the right position to zero. Lastly, let's use transition with the values right and 0.5 s. So if I click the icon than the sidebar will display with a smooth transition and it will close once we click again the Eigen. Alright, so the sidebar is moving, but the Menu icon doesn't change. As you know, we had to transform it into x. But before that I'm going to make the menu icon move on click. I mean, it should move in the same direction as the sidebar does. For that again, we need to use a new class change, followed by the hamburger menu. And I'm going to change its right position. Let's make it 33 ramp. Also use transition. We need here, right? And the duration 0.7 s, it's going to be slightly higher than the duration of the transition of the sidebar. It will create a nice effect So let's consider the icon is moving with some nice transition. Alright, Finally, let's go ahead and transform icon into x. We need to transform the first and third lines. As for the second line, we have to hide it at first. Let's change the background color because the sidebar has a white background and the icon is not quite visible. I'm going to select the line once again, because eventually we will add to it the class change. So let's change its background color. I'm going to use here RGBA value with a black color and with the opacity 0.8. Then I'm going to select the lines with the individual class names. Let's select the first line. So once we click the icon, the first-line should rotate and also move slightly according to both directions. I'm in x and y-axis. So we need to transform with the rotate function. I'm going to rotate lines with 45 degrees. As for the translate function, I'm going to pass here 0.3 RAM and then 0.8 ramp. As we said, the second line is going to be hidden. So let's select it and assign to it opacity zero and visibility hidden. Okay, That's it about the second line. Next we have line three. I'm going to copy this code from here. Let's change the class name. We need line three. And also we need -45 degrees and -0.8 RAM. Okay? So as you can see, we have here the x. And in order to make it work, we need to add to all three lines the class change. Alright, so the hamburger menu works perfectly. And actually we decide where we are almost done. The only thing that I want to create is the tooltip, which should display once we hover over the x. First of all, I'm going to add a span element in the hamburger menu. Let's insert your clothes. As you see right now it has messed up the lines a little bit. We need to style it. So let's go ahead and select spinal bones. First of all, let's define its position, make it absolute. And then set left property to five ran. The span element is positioned. Let's go ahead and define its width and height. I'm going to set its width to ten RAM. As for the height, let's make it for RAM and also change the background color. I'm going to use here color E to be 646. Okay, Next I'm going to place the text in the center and customize it. Let's use flexbox. We need display flex and then justify contents center. Also align items center. Let's change the color of the text and also take care of the font. I'm going to make color white. As far as the font family, I'm going to use bellow dA2 serif. Then change the font size, make it 1.6 RAM. And also create some space between the letters using lattice spacing with value 0.1 ran. Alright, so the tooltip is almost ready. We need to add to it a little arrow on the left side. And I'm going to create it using a before pseudo elements. So let's select span element with the before pseudo elements. Let's make the contents empty. And defined position. Make it absolutely. So right now the pseudo element is not visible, but we will fix that. I'm going to create its shape with the help of the borders. So we need to define border on all four sides. Let's start with the left side. We need border left with the values one ran solid and transparent color. Next, I'm going to use border right? Values one RAM, solid, and the caller e to be 646. Next, I'm going to use border bottom. Let's actually grab those values from here and paste them. Then duplicate this line of code and change bottom to top. So now the element is visible, but we need to define its position. Let's make its top position 50 per cent. Then I'm going to define left position. Let's make it minus two RAM and also use Transform. Translate y with the value -50%. Alright, so that's it. The tooltip is ready. I'm going to hide it by default. And once we hover over the icon, it should be displayed. So we need here opacity zero, visibility hidden. Then I'm going to select the icon with the hover, followed by this span element. Let's make opacity one and visibility visible. And also I'm going to use transition with the values all and 0.2 s. Alright, so once we hover over the icon, then a tooltip will display. But actually we have here a tiny problem. If I hover over the icon while the sidebar is hidden, then the tooltip will display any way. We don't need that, we need to display it once the icon is transformed into an x. And in order to achieve that, we need to use again class change. Alright, so now everything works perfectly with this side, but we're done 68. Project 7 - Create and Style About Us Section using CSS Grid: It's time to move on to the next section, which is going to be the About Us section. Let's take a look at the finished project and seemless again what we're going to build. So this is the About Us section. It consists of a header which includes the heading, the underlying. Then down below we have a couple of paragraphs with headings and some Font Awesome icons. In the center of this section we can see the image of the house. This section is going to be a kind of simple, but at the same time, the interesting one, because we're going to create the layout using CSS grid. Alright, let's go ahead and start to create the HTML markup. I'm going to open this section tag right after the sidebar with the class name about us. Next I'm going to insert here the header. Actually we will have the same header in other section as well. So I'm going to use here are some common class names, Let's say section header. So as we said, the header will consist of a heading and the other line. So I'm going to institute H1 heading element with the class section heading with the content about Us. And down below open div tag with the class underlying. Alright, next we have to take care of the services. Overall, we will have six of them. Each service will consist of a heading, Font, Awesome icon, and the paragraph. First of all, I'm going to open a div tag, which is going to be the wrapper of the services. Then open a div tag for the service itself. So we will have two main parts in each service. The first one is going to be the service header, which will include the Font Awesome icon and the heading. Then inside it open I elements with the class names, FAS, a pen, nib. Next I'm going to open h3 heading element with the content interior. And also we need paragraph with the class service texts and with some dummy text. Alright, As we said, overall, we will have six surfaces. So I'm going to duplicate this code five times and change the class names of the I elements and also the headings. So the second one is going to be FAS, a paint roller as probably heading. Let's make it exterior. Next we will have FAS, a pencil out and they heading design. Then the next one is going to be FASFA paint, brush decoration. Next we will have FASFA ruler combined. And the heading is going to be planning. As for the last service, let's use class FAR a building and the heading execution. Alright, so here we have the services. The only thing that have to do regarding the HTML markup is to add the image. So I'm going to open div tag, which is going to be the wrapper of the image. Let's assign to the class about us image wrapper that open the image tag itself. In the source attribute. Let's specify the path of the image. We need House dot PNG from the images folder. Okay, so that's it about the HTML markup. Everything is ready to start to write the CSS. As I said, the layout of most of this section will be creative using CSS grid. So I'm going to switch the project to the Mozilla Firefox for awhile. Because nowadays, Mozilla Firefox has the best developer tools for the CSS grid module. It will make our working process more convenient and flexible. If you're not familiar with the CSS grid module, then you can check out our CSS quick tutorial on YouTube. You can find the link in the description. Alright, let's go ahead and start to write the CSS. First of all, I'm going to select this section elements. Let's define its width. Make it 100 per cent Also change background color. I'm going to use a light gray color, F5, F5, F5. And also create some space at the bottom using padding bottom with the value 15 ramp. Okay, so now I'm going to customize the header. Let's select section header. At first, we have to center the elements. And for that I'm going to use flexbox. So let's make section header Flex container. Then we need to change the direction. Let's make it column. And in order to center flex items, we need to align items center. Besides that, I'm going to create some space inside of the header using padding. Let's make padding on top seven RAM than zero on the right side, tan Rome at the bottom and zero on the left side. Alright, so the header is centered and now I'm going to customize the heading and then the underline. Let's go ahead and start with the heading. Let's select it. And first of all, define font-family. In this case, I'm going to use font called movie serif. Then increased font size, make it five rem. Also, I'm going to make font lighter using font-weight 300. Then change the color. I'm going to use color for B, for B, for B. And create space at the bottom using margin, bottom six round. Alright, so the heading looks nice. Let's move on and take care of the underlying. Let's select the elements. Define its width and height. I'm going to set width to 12 RAM. As for the height, let's make it 0.3 ran. And also, in order to make the underlying feasible, we have to define background color. Let's use here C2 9525. Alright, so with the header we are done. Let's move on and take care of these services. As I said, I'm going to align them with CSS grid. So let's go ahead and select the wrapper with the class services. First of all, let's define the width and height, make both of them hundred per cent, and then make the services a grid container using display grid. So right now, nothing is changed here because we haven't defined rows and columns yet. So overall we will have 16 columns and six rows. So we have to define grid template columns. Let's use the repeat function and specify here the number of the column 16 and then the size of the column, one fractional unit. Next we have grid template rows. So we will have six rolls. Use again repeat function, where the argument six, as for the size, I'm going to use six RAM. Finally, I'm going to create space between the rows using grid row gap with value for R1. Alright? So as you can see, the elements have changed their positions. It happened automatically and now we have to define their positions manually and build the layout. Before we do that, I'm going to inspect the page and display the grid layout. On the right-hand side of the developer tools, we have a layout section where we can find a div element with the class service. So if I check here, the little box, then the grid layout will display. You can find here the columns and the rows with proper line numbers. So Mozilla, Firefox, they'll also to display the grid layout like so. Alright, I'm going to decrease the size of the image for a while because I think it's too big right now. So let's go ahead and select Image and set its width to 50 RAM. After that, let's define the positions for the services separately. In order to select them separately, I'm going to use the nth child selector. So let's start with the first service. Let's select it with nth child selector. And as the number of the service, let's specify one. So now we have to define grid column line numbers and grid row line numbers. Let's start with grid column. I'm going to place Forest Service between 4.7 lines. So let's use here for slash seven. As for the grid row, the service is going to be placed between the first and third rows. Let's move on to the second service. I'm going to duplicate this code, change the number of the service and also the number of liquid column and row. So in case of second service, we need grid column line numbers 3.6. As far as the grid row, it's going to be 3.5. Actually, I'm going to define quickly the line numbers for the rest of the services because you all are this. So the way that I'm going to use to align them. So for the third service, we need grid column for seven and grid row five minus one. Next counts for service. We need grid column, line numbers 11.14. Asphalt the grid row. We need 1.3. For the fifth service. I'm going to define grid column as 12, 15, S4, the grid row we need three and 5.4, the last item. For the sixth service, we need grid column line numbers 11.14. As for the grid row, we need five minus one. Alright? So all six services are aligned, but that's not what we want because the image has broken the layout. Let's go ahead and define its position as well. I'm going to define position for wrapper. Let's use grid column and set it to 7.11. As for the grid row, I'm going to set it to 2.6. So now we have a much better situation, but we need to add a couple of more styles to the image wrapper and the image itself in order to make the layout perfect. So I'm going to set the width of the image wrapper 200 per cent. As for the image, Let's make its width hundred per cent as well. Also, we need objects feed cover in order to maintain the quality of the image. And besides that, I'm going to decrease opacity slightly. Let's make it 0.8. Alright, so now the image is placed perfectly and we're done with it. Let's take care of the services. I want them to take up 100% in their grid cells. So let's select service and make with 100 per cent. And also creates some space at the bottom. Using margin bottom to run. After that, Let's customize the individual elements in the service. Let's start with the service header, where we have the Font, Awesome icon and the heading. So let's select this element. I'm going to make it flex container using display flex. Also, let's align items in the center and create some space at the bottom using margin bottom one ramp. Actually, something's wrong here because the there should be placed at the top of the paragraph. Let's check the HTML markup. So as you can see, the paragraph is placed inside the header and that's the mistake. It should be outside of the header. So let's quickly fix that for all of the services. Right? After that, I'm going to style the Font Awesome icon. So let's go ahead and select this element. First of all, let's increase the font size, make it for RAM. Then change color. I'm going to use for B three times. And also create some space on the right side of the icon using margin right to run. Alright, so the icons look good and next comes the heading. So let's go ahead and select these elements. First of all, I'm going to define font-family. Let's use here by Lou dA2. Serif. Then change the font size, make it 2.6 RAM. And also define the line height with the same value, 2.6 RAM. Besides that, I'm going to make the font lighter using font weight 400. And creates a space at the bottom using margin bottom to run. Alright, so the heading style as well. And finally, we have to take care of the paragraphs, select service texts. At first, define font-family. And this case I'm going to use Josephine slab serif. Then define font size, make it 1.6 RAM. And also I'm going to use text align property with a value justify. Alright, so the paragraphs look good. And actually we have finished working on the About Us section. Now it's time to move on and start to work on the next section, which is going to be the team section 69. Project 7 - Create and Customize Cards with Tilt: First of all, I'm going to remind you what we're going to build. So let's take a look at the finished project. So here we have the team section. It consists of the header and three cards. If I hover over the cards than some information with a button will appear. And also is can see we have here a nice and cool hover effect. The current moves according to the cursor's direction. This effect will be created using one of the JavaScript plugins called JS. Alright, so let's see what we are going to build. As usual, let's start with the HTML markup. I'm going to open a section tag right under the About Us section. Let's assign to the class team. So overall we will have two parts in this section. The first one is going to be the header. Actually, I'm going to grab the code from the previous section. Let's paste it here and just change the heading we need here, our team. The second part of this section is going to be the cards wrapper, which will include all three cards. So it's open div tag with a class cards wrapper. Then we need another div, which will be the card itself. So each card will consist of two different parts. The first one is going to be the image. Let's open a div tag, which will be the wrapper of the image I'm going to assign to it class card image wrapper. Then open in which target itself. Let's specify the parts of the image. We need image called Person one dot JPEG from the images folder. And also I'm going to assign to the alt attribute, the value, let's say CEO. The second part of the card is going to be the card info where we have some information about the person. So I'm going to pass here H2 heading elements, which will include the full name of the person. Then we will have another heading, I mean, h3 heading elements, which will specify the position of the person. Let's insert your CEO. Then we will have little paragraph with some dummy text. And finally, I'm going to insert your button with the text, read more. Alright, so here we have the first card, which right now it looks quite ugly because we have here just pure HTML. So overall we will have three cards. So let's duplicate the first card twice and then make some changes. I'm going to change the name of the image is going to be person to JPG. Also change the alt attribute we need here designer. The full name of the person is going to be n Brown. And the position designer. Next, we need to change the name of the image for the third card, it's going to be person three dot JPG. Also the alt attribute is going to be architect. Then I'm going to change the full name, is going to be married TO. And finally, change the position, right? Architect. The HTML markup is created and everything is ready to start to write the CSS. As first, I'm going to customize the entire section and then we'll move on and use the tilde J as plugin. So let's go ahead and select this section elements. I'm going to make it flex container using display flex. Also change the direction we need here column. And then in order to center flex items horizontally and vertically, Let's use justify content center and align items center. Finally, I'm going to create some space inside of this section using padding. Let's make padding at the top. Zero, then five rem on the right side, 20 ramp at the bottom, and five rem on the left side. Right. Next I'm going to take care of the cards wrapper. So let's go ahead and select this element. Make it flex container. Next, I'm going to create some space between the cards using justify content space evenly. And lastly, let's create some space at the top of the cards using margin top with the value eight Ran. Okay, so as you can see, the cards are placed horizontally in a row. Let's go ahead and customize them. I'm going to solo card. Let's define its width and height. I'm going to set with 237 RAM As for the height, let's make it 45 rem. So right now as you can see, each of the cards has a different width and height because we have the images to bigger. So we need to define their sizes. Let's select Image wrapper and define width and height. I'm going to set both of them 200 per cent. Then select image itself and define width and height. Let's make both of them hundred per cent, and also use object feet cover. As you can see, we don't have here the space between the cards because we haven't defined the width for the Keras wrapper. So let's assign to it a width and set it to 100%. Alright, so now we have a much better results. All the images have the same size. Let's go ahead and use a couple of more styles. I'm going to add shadow using box shadow with the values 01 ran for RAM. And then RGBA value with the black color and with opacity point. For. Next, I'm going to add some stars to the image wrapper and the image itself. So for the wrapper, I'm going to define background color. Let's make it 262626. And also we need border-radius to make the corners rounded. Let's make it 0.5 ramp. Next, I'm going to add some stars to the image. I'm going to decrease the opacity slightly. Let's make it 0.8. And also we need to use border-radius with the value 0.5 rem. And besides that, we need border-radius for the cart as well in order to create perfect for the radius for the card. So let's make it 0.5 ramp as well. Alright, so now we have to take care of the card info. As you already know, it's going to be placed down below and it should be hidden. And then once we hover over the card, it should display. Right now I'm going to place it on the card. And once we customize it, then we will take care of the hover effect. So let's go ahead and select card info. And may its position absolute. Next we need position relative for the card because I'm going to position card info according to the card, which is the parent element. Then define bottom property for the car info and make it to Ram. And also create some space inside of the elements using padding, value to ramp. Alright, let's go ahead and customize the individual elements in the card info. I'm going to start with a heading. So let's go ahead and select it. Define its font family. I'm going to use font called bellow, the A2 serif. Then change font size, make it two points by Ram. Also, we need to use your line-height with the same value 2.5 ran. Make the font lighter using font weight 300, and also change the color. Make it e. Alright, so the first heading looks good. I want to add to it a little shadow. Actually, I want the shadow for the rest of the elements as well. So I'm going to assign it to the card info itself. So let's define texts shadow with the values 0.2, 0.5 RAM, and the RGBA value with black color and with opacity 0.4. Alright, let's move on and customize the second heading. Let's select it. Defined font-family. I'm going to use here moly serif. Then change font size, make it to Ram. Also make the font lighter using font weight 500, change the color of the text. I'm going to use here called or A5 to A12 eight. And finally, let's create some space at the bottom of the elements using margin bottom with value one run. Okay, so that's it regarding the second heading, Let's move on to the paragraph. Let's select it And define font-family. Let's use here bellow dA2 serif. Next, I'm going to change the font size. Let's make it one point for RAM. Also, I'm going to define line-height. This case, let's make it 1.6 RAM. Change the font weight. Use here 300. Then also, I'm going to change the color of the text. Let's make it e. E. After that, I'm going to decrease the width of the paragraph slightly. Let's make it 80 per cent. And also create some space at the bottom using margin, bottom to ram. Alright, so the paragraph looks good. And the last element that we need to customize here is the button. So let's select it. Define its width and height. I'm going to set width to ten RAM. As for the height, let's make it three RAM. And also change background color. Let's make it c29, 525. Okay, let's add a couple of more stars to the button. I'm going to get reductive volt border. Let's use border none. Then change font-family. Let's use bellow the A2 serif. Next I'm going to define font size. Let's make it one point for RAM. And also define line-height. Make it 1.5 rem. As far as the color. Let's make it e. Alright, so finally I'm going to make the buttons slightly rounded and create a little shadow effect. Let's use border-radius with value 0.3 ramp. And also use box-shadow with values 0.1 rem, 0.8 RAM, and the RGBA value with flat color and with the opacity point for the button is customized and actually we're ready to create a hover effect. At first, let's change the position of the car info and also make it hidden. We need here Watson property to be equal to zero. And also we need opacity zero and visibility hidden. Then I'm going to select a card with however, followed by the card info. Once we hover over the card, we have to move up the card info and make it visible. So we need bought some property with the value to RAM than opacity to zero and visibility visible. And besides that, Let's use transition with the values all and 0.3 s. Alright, so as you can see, the hover effect works fine. Actually, I want to add here one more thing. Once we hover over the card, I want to make it slightly darker. So let's select card with however. Then it should be followed by the image. Let's decrease the opacity, make it 0.5. And also use transition Values, opacity and 0.3 s. Alright, so as you can see, everything works perfectly and actually we are ready to use the plugin called tilde J S. First of all, I'm going to visit its website, search for tilde dot js. So here is the website of tildes JS plug-in. You can find here different information. I'm in the different usages of the plugin with different options. Also, we have here the instructions how to use this plug-in. I'm going to click the link download. We will navigate to the GitHub repository where we can find different files and folders. We need to go to the source folder. You can find here the file. Let's open it. So this is the entire code of this plug-in. I'm going to copy it. Let's click the Edit button here, select the entire code and copy it. Then go to the VS code and create a new file called tilde dot js and paste here the code. After that, we need to link this file to the HTML document. So let's open script tag. And in the source attribute specify the path of the file. Besides that, we have to bring in the jQuery as well. So let's go ahead and search for jQuery CDN. Go to the first link. Actually you can choose here different jQuery versions. I'm going to click the uncompressed version and grab the link. Let's paste it here. Alright, so that's it regarding the setup of tilt js. Let's go back to the website. So as I said, here, we have some different effects with the instructions. You can use a parallax effect, glare, keep voting, and so on. In our case, I'm going to use the basic one. So if we wish to use different options, you can find the instructions here. The only thing that we have to do is to assign to all the cards the attribute called data tilde. So let's go ahead and use the multi cursor and insert for all the cards attribute called data tilt. Alright, so if I hover over the cards, then the effect will work fine. I think it's pretty nice and cool. Okay, so finally we're done with the team section and we can move on and start to work on the next section. 70. Project 7 - Create and Style Contact Section: Let's take a look at the finished version of the project. So the next section is going to be the contact section. It has a dark background and the contact form itself is placed in the center of this action. It consists of two parts. On the left side we have an image as the background. As part the right side you can see here the heading, a couple of input fields and the submit button. Each input field has the label which moves up nicely once we focus on the fields. So that's what we're going to build before we start to create the HTML markup, I'm going to fix one little issue. If I click the menu icon and display the sidebar, you will notice that it ends up behind the cards. So to fix that issue, I'm going to use the z-index property with some higher value, let's say 100. Okay, so now the problem is fixed and we can go ahead and start to write the HTML markup for the contact section. Let's open section elements with the class contact. Then I'm going to open div tag, which is going to be the wrapper of the contact form. So as we said, the contact form, we will have two sides, left and right. So let's open div tag, that is going to be the left side. Let's assign to the class contact left. Next we need the right-side open div tag with the class context, right? So the right side will consist of two main parts. The first one is going to be the heading. As for the second one, it should be deformed. So let's open H1 heading elements with the class contact heading. And as the content right here, content. After that, let's open the formed elements. The formed will include three different input groups and the submit button, that's open div tag with the class input-group. The first input group who will have the input element for the full name and the label. So let's open input tag with a type text and with class field. Next we need to label. Let's assign to it class input, label, and also institute the text full name. Okay, Let's duplicate this code. Then change the type from taxed into email. And also instead of full name, Let's insert your email. Alright, the third input group is going to be different because instead of the input element, we will have text area. Let's open div tag with a class input-group. Then insert. We need texts area where the class name field. Then after that, I'm going to create label. Let's assign to it class message, and also institute the content message. Okay, finally, I'm going to create the submit button. Let's do that using input element with type submit. Also we need here class submit, btn and as the value that's inside you submit. Alright, so that's it regarding the HTML markup of the contact section. Now we have to start to write some CSS and customize these elements. Let's go ahead and select this section elements. First of all, define width and height. I'm going to set with 200 per cent. As for the height, let's make it 100% of the viewport. Use here 100 vh and then change background color. I'm going to use here color to seven, to seven, to seven. Alright, next I'm going to place the content in the center. And for that, Let's use flexbox. First of all, I'm going to make the section element flex container using display flex. And then in order to center content vertically and also horizontally use justify-content center and align items center. Alright, so the content is centered and with this section we are done. Let's move on to the contact wrapper. First, let's define width and height. I'm going to make its width 60 per cent S for the height. Let's make it 75 ramp. Also, I'm going to place the left and right parts side-by-side using display flex. And then let's use some temporary background color in order to make the context proper visible. Let's use white color. And finally, I'm going to create a little shadow effect. Let's use box shadow with the values 03 RAM Sudden run and the RGBA value, the black color and with opacity 0.5. Alright, so that's the way how the contact rapper looks right now. Let's go ahead and start to customize the left side. Select Contact. Laughed. At first, let's define its width. I'm going to make it 35%. Then I'm going to set the image as the background. But first of all, let's use linear gradient. Then I'm going to pass you RGBA value. Let's insert here 153 times and the opacity 0.6. Then I'm going to use another RGBA value. Insert here 2023 times and the opacity 0.9. After that, let's specify the URL of the image. We need. Contact PG dot JPG from the images folder. Also, let's place here center and no repeat. And finally, we need to define background size. Cover. Alright, so that's it about the left side. Let's move on and take care of the right side. Select contract, right? It should take up the rest of the width. So let's make with 65 per cent change background color. I'm going to use your color E. And also define padding. I'm going to make padding at the top three rounds. And then tan RAM on the rest of the sites. Also, let's get rid of the temporary white background from the contact rapper. Alright, so now I'm going to customize the individual elements on the right side. Let's go ahead and start with the heading. First. Let's define this font family. I'm going to use here bellow dA2 serif than increased font size, make it six RAM. Also make the font lighter. Using font weight 300. Change the color, make it to seven, to seven to seven. Then I'm going to create some space at the bottom using margin bottom five ran. And finally, let's place it in the center using text align center. So the heading is styled. It looks good and I'm going to move on to the form elements. So let's go ahead and select it. First of all, let's define its width, make it 100%. Let's make the form flex container using display flex. Then change the direction, make it column. And align items center using align items center. Alright, so that's said about the formed elements. Next I'm going to customize the input fields. I mean the inputs and the text area. They have the common class field. So let's go ahead and select it. Let's define width, make it 45 rem. Then make the background color transparent. Also gets rid of default border. And then define border bottom with values points. To run. I'm going to set the style of the border two dashed. Then define the color 636363. Okay, let's add a couple of more stars to the fields. I'm going to create some space at the top and bottom using margin. Let's make it three RAM and zero. Besides that, I'm going to use padding. Let's set padding to one rem at the top. On the right side, at the bottom. As far the left side, Let's make it zero. Next, I'm going to define font-family. In this case, let's use font called Molly serif. Then define font size, make it 1.6 RAM. And change the color. Use here for b three times. Alright, so the input fields look quite good. Now I'm going to define the height for the inputs and the text area separately. So at first let's select inputs and said hi to for RAM. Then select the text area. So in case of the text area, I'm going to define the max height and max-width. Because as you know, we can change the size of the field manually and it would break the layout. So we need to disable this option. Let's set max height to seven ramp As for the max width, let's make it 45 Brand. Alright, let's see about the inputs and text area. Next, we need to take care of the labels. They should be placed inside the input fields by default. Let's select label and defining position. I'm going to make it absolute. Then we need to position relative for the input group. Because it is the parent element. Then define left property as zero. As per the bottom position. We will define it separately for the inputs and the text area. So at first, let's define here font-family. Make it palatable dA2 serif than increased font size. Make it 1.8 ran. Change the color. I'm going to use here color for B, for B, for B. And then transform text into uppercase. As you know, labels should place inside the input elements. And we won't be able to focus on the inputs. Therefore, I'm going to use here pointer events, none. Alright, let's select the labels of the inputs and the text area separately and define the bottom position. I'm going to start with the input label. Let's make bottom position. We ran. As for the text area. I mean the label of the text area, which has class message. Let's make bottom position six. Alright, so everything is ready to create a focus effects. I'm going to do two different things. When I focus on the input fields, I want to transform the dashed border into a solid one and also multi-label up and make it slightly smaller. So I'm going to select the field with the focus pseudo-class and define border button style. Make it solid. So once I focus on the input fields, then the border will change and it will transform into solve it. Okay, next let's move on to the label. I'm going to select field where the focus. Now we have to select the label. And in this case we need to use one of these CSS combinators called general sibling selector, that is expressed by the tilde sign. So I'm going to move to label using Transform Translate function. So we need to translate Y. Let's Institute value minus three run. Also am going to decrease the font size of the label. Let's make it one point to run. And finally, use transition with the values 0 and 0.3 s. So if I click again and focus on the input fields, then the labels will move nicely. Alright, so we're almost done with the contact section. The last thing that we have to do is to style the submit button. So let's go ahead and select these elements. First of all, define the width and height. I'm going to set width to 45 RAM. As for the height. Let's make it five rem. Then change background color. Let's use your color. See 2955. Then change the color of the text, make it white. Gets rid of default border using port or none. And create some space at the top using margin top to run. The button looks much better, but we have to add to it some more styles. Let's define font family. I'm going to use here font called Moly serif. Then change font size, make it to Ram. Also make the font lighter using font-weight 300. Transform text into uppercase. After that, I'm going to create some space between the letters using the letter spacing with the value point to round. Then make the cursor pointer Finally, I'm going to create some shadow effects for the text and for the button itself. So let's use text shadow with the values 0.1 rem, 0.3 rem, and the RGBA value with a black color and with the opacity 0.5. Then I'm going to duplicate this line of code, change text and to box and also make the opacity 0.3. Alright, so that's it. The contact section is ready and actually we can move on to the next part of our project, which is the footer. The footer will be a simple one. We have here just the copyright text and a couple of social media icons. Once we build a filter, then we will create that fixed scrolling button, which will allow us to scroll up to the top of the page. Alright, let's go ahead and start to create the HTML markup. And I'm going to open footer tag with the class footer. Next I'm going to open the div tag, which will wrap the content of the photo. So let's assign this class footer content. Inside the div element, we will have two parts. The first one is going to be the paragraph with some copyright text. So let's open p element with a class copyright. And then Insert, use some text. I mean copyright followed by the copyright sign, which should be expressed by the HTML5 entity. We need to write here ampersand, copy, semicolon, then 2020 code and create. All rights reserved. As for the second part, it's going to be the list of the social media icons. Let's open div tag with the class social list. And pass here couple of link elements with the Font, Awesome icons. The first one is going to be Facebook. So let's use your class names. Fab, FA dash, Facebook, dash F. Let's duplicate this line of code twice and change the class names. For the second one we need a BFA, Instagram. As for the third one, it's going to be Twitter. Alright, so the HTML markup is ready for the footer. Let's go ahead and customize it quickly. Let's select footer and define its width and height. I'm going to set with 200 per cent. As for the height, let's make it 15 RAM. Then change background color. I'm going to use here color 17181. Next I'm going to place the content of the filter in the center. And for that, Let's use flexbox. We need display flex. Then justify content center and align items center. Alright, let's move on and customize the footer content. Let's select these elements and define width. I'm going to make it 60%. Then make the footer content flex container using display flex. And then create space between the flex items. I mean the paragraph and the social media icons using justify content, space between the elements are aligned in the right way. Let's go ahead and style them. I'm going to start with a paragraph that's selected and first of all, define the font-family. I'm going to use here, bellow dA2 serif. Then define font size, make it 1.6 ran for the color. I'm going to make it A7, A7, A7. So as you can see, the paragraph is styled. Let's move on to the social media icons. I'm going to select the link element that's defined margin. I'm going to set it to zero at the top and the bottom. As for the left and right sides, Let's make it to run. Then select ions, increase the font size, make it to run. And change the color. Here. Color A7 three times, right? So with the footer we are done. It is customized and now we have to take care of these crawling button. At first, let's create the button in the index.html file. Actually the button will be represented as link. So let's assign to it class scroll, BTN Then insert here I elements with the classes FAS, arrow up. Alright, let's go ahead and style the button. Select it. It should have fixed position. Then defined rights and bottom properties. I'm going to make both of them five rem. Then set width and height. I'm going to set both of them to 4.5 rem. And also define background color. Use your color E2, B64 six. Alright, so here we have the button and now we need to style the Font Awesome icon. It should be placed in the center of the box. Let's use flexbox. We need here justify content center, and also align items center. That increased font size, make it to Ram. Change the color, make it white. Also, I'm going to create a little shadow effect using box shadow with the values 0.11, 0.6 RAM, and the RGBA with a black color and with the opacity point to. And finally, use border radius value 0.3 ran. Right? So the button is ready, we just need to make it work. For that, I'm going to use a couple of lines of JavaScript. So once we click the button, but we'll assign to the HTML elements property called scroll behavior. And we will set it to smooth. Then after a second, we will remove it. Because if we don't do that, then the smooth scroll will work. If we click any of the links on the page. Let's go ahead and first of all, select the scroll button with the query selector method. Then attach to it event listener. I'm going to pass your click event and the arrow function. So next we need to select the HTML elements. Let's use again query selector method. Then use style and the property called scroll behavior. As we said, we have to set it to smooth. After that in order to remove the property from the HTML elements. After 1 s, I'm going to use method called setTimeout, which will take one argument is going to be the callback function. And it's going to be executed after 1 s. Once we click the button. Let's grab this line of code from here. Paste it. And instead of smooth, Let's use onset. And also we need to use second argument, thousand, which is thousand milliseconds. So if I click the button, then we will navigate to the top of the page smoothly. Alright, so that's it. We have built all the sections of our projects, and now it's time to make it responsive to different screen sizes. 71. Project 7 - Make Project Responsive and Create Loading Spinner: Let's go ahead and inspect the page. Then switch to the responsive mode. Actually, I have already prepared different breakpoints. Where are we to make some changes? So we won't waste time on that. The first breakpoint on which we need to make some changes is going to be 1,500 pixels. So let's go ahead and create CSS media query and specify max-width as 1,500 pixels. On the breakpoint, I'm going to change slightly the position of the image in the About Us section. Let's go ahead and select the wrapper of the image and set its grid row line numbers as three, n minus one. Next, I'm going to decrease slightly the width of the card. So let's select it and make the width. For RAM. After that, I'm going to take care of the contact rapper. I'm going to increase its width and decrease the height. So let's select contact rapper. Set its width to eight per cent. As for the height, I'm going to make it 65 ramp. Alright, so the last thing that I'm going to do is to increase the width of the footer content. So let's go ahead and select this element and set its width to 8%. Okay, so that's it. We don't need any other changes on 1,500 pixels. Let's go ahead and work on the next break point, which is going to be 1,400 pixels. So I'm going to create a new CSS media query with a max-width 1,400 pixels. So the first thing that I'm going to do is to customize the banner elements. I made the heading paragraph and the Bateson. So let's go ahead and start with the heading. I'm going to change the font size. Let's make it six RAM. Then decrease the line-height. Make it seven. Run. Next I'm going to select banner paragraph. Let's decrease its font size, make it three ramp. And also select bottom. Let's decrease its width, make it 20 RAM. Then change height. I'm going to set it to five rem. As for the font size, let's make it 1.6 round. Alright, so the header looks good. Let's check the sidebar. As you can see, we need to decrease the font size of the menu items slightly. So let's go ahead and select menu link and make its font size three ramp. Right? After that, let's take care of the About Us section. I'm going to change slightly the layout of the services. So let's go ahead and grab the code from here, paste it and change the grid column line numbers. Actually, we need to get rid of grid row from every service. Then change the grid column line numbers. So for the Forest Service, we need 37. Then it's going to be 26. For the third item, we need 37. Then for the next one, it's going to be 11, 15, then 16. Again, 11, 15. Alright, so the About Us section looks good. And actually we don't need any other changes on this breakpoint. Let's move on to the next one, which is going to be 1,300 pixels. So let's go ahead and create a new CSS media query with a max-width 1,300 pixels. We have to take care of the team and conflict section on that breakpoint. All other sections look good. Let's start with the team section. Let's select it and Decreased the padding at the bottom. Let's make it five ramp. Then select cards wrapper. So on the breakpoint, I'm going to change the direction. Let's make it a column. Also, in order to place cards in the center, use align items center, and change margin at the top. Let's make it for Ran. Okay, so next we need to create some space between the cards. Let's select it and define margin bottom with value eight round. Okay, So after that, let's take care of the contact section. Let's select contact rapper. I'm going to increase its width. Let's make it 90 per cent. And also decrease the height. I'm going to set it to 55 rounds. After that, Let's select contact heading and change the space at the bottom. Let's set margin bottom to ramp. Next, I'm going to select field. I mean inputs and the text area and change margin. Let's make it two rem at the top and bottom and zero on the left and right sides. Alright? So as you can see, with 1,300 pixels, we are done. Let's move on to the next breakpoint, which is going to be thousand pixels. So let's go ahead and create a new media. Specify here the max-width as thousand pixels. So at first I'm going to customize the banner. Let's select heading element. Change the font size, make it five ramp. Then decrease line-height. Make it six. Ran. After that, I'm going to select paragraph. Let's decrease its font size, make it 2.5 ran. After that, we need button. I'm going to decrease its size. Let's make its width 18 ramp. Then set its height to four RAM. And also change the font size, make it 1.5 rounds. Alright, so the binary looks good. Let's move on to the About Us section. So under the breakpoint, we no longer need the grid layout. I'm going to use flexbox. I will place all the services and the image vertically in a column. So let's go ahead and select services and make it flex container. Then change the direction, make it a column. And also use align items center. Right? As you can see, we have to decrease the width of the services. So let's select service. Make its width for two RAM. And also define margin bottom as six ran. Next we have to take care of the image because right now it's two bigger. So at first, let's select the wrapper and set width to four to run. Next, we need to select the image itself and we need to set its width 200 per cent. Alright, so with the About Us section, we're done. It looks good. Also, we don't need to do anything with the team section. So let's move on and customize the contact section. Actually I'm going to hide the left side at all. So let's select conduct left and set its width to zero. As per the contract, right? We need to make its width 100%. Alright, let's take care of the inputs and the text area. I'm going to select field. Let's make the width 55 rem. Then I'm going to select text area because we need to define max width for the text area. Let's set it to 55 rem. And also change the width of the submit button. Let's make it 55 rem as well. Alright, so that's it about the contact section. Let's move on and customize the footer. I'm going to place the paragraph and the social media icons vertically in a column. Let's select footer content and change direction, make it column Next we need align items center. Also text-align center. And I'm going to set width to 50%. After that. Let's select paragraph because I want to change the places for the paragraph and the social media icons. I want to place icons at the top. So let's change the order of the paragraph, make it one. And also define margin top three run. Alright, so that's it about the footer and we have finished working on thousand pixels. Let's move on and create the next breakpoint. It's going to be 700 pixels. So let's create new media and specify the max-width. Make it 700 pixels. Actually, we don't have to do much on a breakpoint. We just need to customize several elements. So let's select heading of the banner. I'm going to change its size. Let's make it font size for RAM. And the line height five. Rem. Next select Paragraph and set its font size to, to run. Alright, Next, let's take care of the contact section. I'm going to select field. Let's make the width 35 RAM. Also select text area. Because again, we need to define its max width. Let's make it 35 RAM. And then change the width of the Submit button. I'm going to set it to five rem as well. Alright, so that's it regarding the breakpoints. And finally, we have to customize the project. On the last breakpoint, there is going to be 500 pixels. So let's create a new media and specify the max width as 500 pixels. At first, I'm going to decrease the font size of the HTML because it will reflect on all of the elements sizes. So let's make this font size 45%. Next, let's take care of the sidebar. I want to expand it to the entire page. So let's make its width hundred percent. Actually we have here a tiny issue because once the sidebar is closed, it is still visible. So we need to define its right position and make it minus hundred per cent. So now the problem is fixed. Next, I'm going to change the position of the menu icon because it's too far from the edge. So we need to select hamburger menu, but with the change class, Let's set right position to 38 round. Alright, so next, let's decrease the width of the services. Select service and set its width to throw to ram. The last thing that I'm going to do is to increase slightly the height of the footer. Let's make it 18. Run. Alright, so finally, we're done. We made the project responsive to all different screen sizes. If you check it, you will find that it looks good on all different screen sizes. Okay, So we're almost done with our project. The last thing that I'm going to do is to create a spinner which appears before loading the project. So let's go ahead and start to create the HTML markup. But at first, I'm going to hide the entire container. So let's go ahead and select container and assigned to it, display none. So the container is hidden. But actually we see here the scroll button. I suppose that I placed it outside of the container. So let's go ahead and inserted inside of it Okay, So we're ready to create the HTML markup for the spinner. I'm going to create it outside of the container. It's open developments, which is going to be the spinner container. Next we need div element with a class circles in which I'm going to place eight empty div elements. Right now we see here just a blank page because the developments are empty and they don't have any styles. Let's go ahead and start to write some CSS. I'm going to select these painter container. Let's make its position absolute. Then set top and lacked properties, both of them to zero. Also, I'm going to define width and height. Let's make with hundred per cent. As for the height, I'm going to make it 100% of the viewport. After that, I'm going to change the background color. Let's make it dark using 262626. And also I'm going to place the contents in the center. And for that, Let's use flexbox. We need here justify-content center and align items center. Alright, so what do we see here is just the dark background. Now we start to create the circles and then we'll make them work. The circles will be represented as the after pseudo elements of the developments. At first, Let's select our wrapper circles and define its width and height. Make them eight RAM. And also change the background color. I'm going to use here some temporary background. Let's make it white. So now I'm going to create the circles. Let's select div elements. Were they after pseudo elements? First of all, let's define the content. I'm going to make it empty. Then change the position, make it absolute. And also I'm going to assign to the circles position relative because I want to position after pseudo elements according to the circles. Next, I'm going to define width and height. Let's make both of them 0.7 ramp. Then in order to change the shape of the element and make it Circle US border radius with the value 50 per cent. And change the background color. Make it C2 955. Alright, so now you can see the circles. Actually they are placed on top of each other because they all have the position set to absolute. Let's go ahead and define their positions manually. I'm going to select the first pseudo elements using nth child selector. Let's set top to 6.3 RAM. That's probably left. I'm going to make it 6.3 Rama as well. Let's move on and position the second circle. I'm going to duplicate this code. We need here nth child to I'm going to make tough position 6.8 RAM. As for the left, it's going to be 5.6 round. Alright, let's go ahead and define quickly the positions for the rest of the circles. For the third elements, we need top position to be 7.1 RAM. As for the lab position, it's going to be 4.8 RAM. Then for the next elements, I'm going to set top to seven point to ram. As probably left. It's going to be for RAM. Then for the fifth item, the top position is going to be 7.1 RAM. As probably left position is going to be three point to run. Next comes sixth item. Let's make it stop position 6.8 RAM. As for the left, it's going to be 2.4. And then for the seventh elements, Let's make tough position 6.3 RAM. And the left, 1.7 run. For the last item. I'm going to set the position to 5.6 ramp and left position to 1.2 ramp. Right? So these are the starting positions for the circles. Actually, we no longer need that white background. So I'm going to get rid of it. Okay? So now we have to create the CSS keyframes. In the keyframes we need to define just one CSS rule. The circles should rotate by 360 degrees. So let's create keyframes I'm going to name it circles. So on zero per cent, on starting point, we need to transform, rotate to be zero. For the 100%. I'm going to make transform rotate 360 degrees. The keyframes are ready. Let's select the div elements and assigned to it the animation property in order to make those CSS styles work. So we need the name of the animation, which is circles, followed by the duration 1.2 s. Now as the animation timing function, I'm going to use cubic Bezier, which allows us to create a custom animation effects. Actually, you can visit the cubic Bezier website where you can define the different animation effects manually. And once you define the one, you can grab the values from here. Alright, in our case, I'm going to use cubic Bezier with the following values. That's easier to your 0.50, 0.5, and then one. And also I'm going to use here another value called infinity, which will allow us to run the animation infinity. So as you can see, the circles are moving, but of course it's not what we want. The next thing that I'm going to do is to define the origin of the transformation. When we use the transform property, then by default, the element is moving according to the center. So by default the origin of the transformation is set to center. You can define the origin like left or right. Or you can even define origins for the x-axis and y-axis separated. In order to get more information about the transform origin property, you can search for MTN transform origin and check out this page. So here we have a couple of examples that show how the transform origin property works. In our case, I'm going to use the third approach where we define the origin of the x-axis and y-axis separately. So I'm going to use transform origin with the following values. That's a severe fall RAM. And then again for RAN. Now, as you can see, we have a much better result, but not the perfect one. We need to change the alignment of the circle slightly. And for that I'm going to use margin. Let's set margin to minus four rem at the top than zero on the right side, zero at the bottom, and minus four rem on the left side. Okay? So now the circles are moving quite nicely. But again, that's not what we want. I'm going to add some effects to the animation using animation delay property. I will add to the developments different delay times separately. Those values are going to be negative. When we use the negative values with the animation delay property than the animation starts as if it had already been playing for some amount of time. E.g. if the animation should run during, let's say 5 s. And you define the animation delay property as -2 s than the animation will start right from the third. Second. It will omit the first 2 s. Alright, so let's select the div element separately and define the animation delay property for all of them. I'm going to start with the first div. Let's use f child selector and set animation delay property to -0.036 s. So if you take a closer look at the circles, you will notice that the first one is moving in a different way. Let's go ahead and define the animation delay for the rest of the circles as well. Let's copy this code, paste it here. So for the second development, I'm going to set animation delay to -0.072 s. Then for the third div, we need -0.108 s. Then for the next one, I'm going to set animation delay to minus one for 4 s. Therefore the fifth item. Let's set it to -0.18 s The next one is going to be -0.216 s. For the Simons item. Let's use -0.252 s. For the last one. I mean, for the eighth item, Let's set animation delay to -0.288 s. Okay, so now the spinner is working perfectly and it creates a really nice and cool effect. Alright, so we're almost done. The only thing that we have to do is to display the container back after a couple of seconds. So I'm going to use a similar technique that we used previously with the change class name. We will add a new class to be body elements using JavaScript. Let's open the script.js file. Once the page is loaded, the spinner will be moving for 4 s and then the container should display. So once the page is loaded, then after 4 s we have to add two body, a new class, let's say display. In CSS, we will manage to display the container using that new class. So we need the global window object and we have to attach to it onLoad event handler. It should be equal to an arrow function. This function will be executed once the page is loaded. In order to execute the function after some delay, we can use method called setTimeout. Let's pass here the callback function. Then select body elements using querySelector method. As we said, we need to add to it new class name. So we need to class list property, then add method. We have to specify here the class. Let's say display. The setTimeout method takes the second argument, which is the duration. In this case we need 4,000 milliseconds. Alright, so now we need to select a class display with this penal container and also the container. So let's start with this peanut container. We need to hide it. So therefore, we need here opacity zero and visibility hidden. Also, I'm going to use transition with the values all in one seconds. And besides that, in order to make the transition work, I'm going to use z-index property with the higher value, let's say 300. After that, we need to select again display class, followed by the container. Right now it has display property is set to none and we need to make display block. So now if I reload the page, then the spinner will be displayed for 4 s, and then the container will appear. In order to make those effects perfect, I'm going to create a little animation for the circles. I want to display and hide the circles with some fade effect. At first, let's hide the circles by default. Let's use here opacity zero and visibility hidden. Then I'm going to create new CSS keyframes. Let's call it display circles. So we will have here a couple of steps from zero per cent to 25%. I'm going to use opacity zero and visibility hidden. So the circles will be hidden during 1 s. Then from 25% to 90%, the circles will be displaying. So we need opacity one and visibility visible. And then from 9% to hundred percent, the circles will start to hide. So we need here opacity one and visibility visible. And then on 100 per cent, we need opacity to zero and visibility hidden. Alright, so the keyframes are ready. Let's assign to the circles the animation property. Let's specify the name display circles and the duration 4 s. So now it's can see we have here a much better effect. Alright, so finally we have finished working on the project. I hope it was interesting and useful. You enjoyed it and learned something new. Let's move on. 72. Project 8 - Project Preview: Alright, so it's time to build our next project, which is going to be the clone of one of the most popular and commonly used websites called Paypal, will create the user interface of the different pages. I'm in the main page, login and sign up pages. Of course it won't be the exact clone with the full functionality. As I said, we will build just a UI with HTML, CSS, and JavaScript. Paypal looks different in different countries. The user interface is frequently changing from time to time. So do not worry if this is not the exact clone of the current UI. Alright, so before we jump right into writing the code, at first, let's describe what the project looks like. So as I said, we'll build three different pages, main login and sign up. We'll start with the main page. It will consist of a couple of different sections. The first section is going to be the banner with navigation. We have here several navigation items. If I hover over them, then the drop-down menu will display. It will switch once we hover over another navigation item. Also, we will have here two different buttons for login and sign up. If I click them, then we will navigate to the proper page. So the banner will be followed by the second section. It will include three different parts with Font, Awesome icons, some text elements and buttons. Then we will have this blue section with some different paragraphs. Next, we will build this little section here with an image and three different steps. Down below, we will have a button to sign up, followed by the footer. Alright, so let's see about the main page. Let's have a look at the login page. It will be quite similar to the original login page. We will have here two input fields with buttons. That's probably sign-up page. It will consist of two parts. On the left side, we will have several images of the customers. As for the right side, it will include two different options. Whether we want to create a personal or business account. Alright, so that's it about the project. As usual, we'll make it responsive to different screen sizes. If I inspect the page and switch to the responsive mode, you will see that it's responsive. One thing to note here, on smaller screen sizes, we will no longer have the drop-downs. They will transform to the menu like this. Okay, So that's it. We are ready to start to build the project. So let's move on. 73. Project 8 - Create HTML Markup for Landing and Define Common Styles: I've created a new folder on the desktop called Wine House, in which I have another folder for the images. Let's go ahead and open this folder in VS code. I'm going to create three different files. Index.html, style.css and scripts dot js. That open index.html file and generate the basic HTML document. I'm going to use m it. Let's put here the exclamation mark and press Enter or tab. Next, I'm going to link those three files. So let's open link tag and specify here the path of the CSS file. Next I'm going to open script tag down below, above the closing body tag. And in source attribute, let's specify the path of the script.js file. Okay, besides that, I'm going to use one of the Google fonts throughout this project. So let's go ahead and grab the link. Let's go to the Google Fonts website and search for font called cormorant Garamond. Let's select here couple of different font weights and then grab the link. I'm going to paste it in the head element. Next, I want to change the logo in the title bar. We need to open link tag as the value of the REL attribute. We need here icon. Then I'm going to specify the type. He's going to be imaged slash PNG. And finally, we have to specify the path of the image and the H reference attributes. We have here, images folder, and then we have to select a logo dot PNG. Finally, change the title. We need Wine House. Let's go ahead and run the project to the browser. For that, I'm going to use one of the VS code package is called a live server. It allows us to run the project life to the browser and make changes without refreshing the page each time. So you can install and use this extension. So the project is live to the browser. Also you can see here the logo in the title bar. Lastly, let's organize our working environments a little bit, placed the editor and the browser, like so, and get started. Alright, so we will create and customize each of the pages separately. And then after that, we'll program the scroll effect and also some other different things. Let's go ahead and start to create the HTML markup open div tag, which is going to be the container. Next we will have another div elements. It's going to be the wrapper. So overall we will have five different pages, I mean, five different sections. So let's go ahead and create this section elements for all of them. I'm going to assign to it class section one. Then let's duplicate it four times and change the class names. We need class names from two through five. Alright, so I'm going to start with the first section. I mean the homepage. It includes the heading with the underline and the full-screen background. You see here the navigation arrows and the progress bar. They are fixed and they are displaying on all of the pages. We will take care of them a bit later. Okay, let's go ahead and open the deep elements inside the first section. This element will have two different classes. The first one is going to be the common class section wrapper. For the second one is going to be the individual class. I'm going to call it section one rapid. Actually we need this section wrapper for the rest of the sections as well. So let's copy this element and paste it for all of them. Also, we need to change the class names. We need two numbers from two through five. Okay, Let's go back to the first section. We need to insert a div tag which will wrap the heading. Let's assign to it a class name, section one, heading wrapper. And pass here H1 heading elements. I'm going to assign to it class section one heading. And also, let's place here the following text. The best wines around the world. So that's it about the first section. Now, I'm going to start to write some CSS. First of all, I'm going to create some common styles. Let's select every element using an asterisk and put here some common and reset styles. I'm going to get rid of margin and padding from every element. Let's set both of them to zero. Also, I'm going to make box-sizing, border-box. Next, I'm going to get rid of some default styles. I mean, let's set outline to non. Also, I'm going to set the text decoration to learn. Then gets rid off default styles from the list elements. Let's make list-style-type none. And finally, I'm going to set font family to call Moran caramel. Sorry. So throughout this project we're going to use RAM as the measurement unit. Right now, 1 g is equal to 16 pixels because the font size of the HTML element is equal to 16 pixels. By default, I want to convert 1 g into ten pixels. And for that we have to decrease the font size of the HTML element, and we have to make it 62.5%. The size of the heading has decreased. After that, let's take care of the wrapper. I'm going to set its width and height, both of them 200% of the viewport. So let's assign to the width property hundred viewport width. As for the height, I'm going to make it hundred viewport height. Next, let's select a section element itself and set width and height, both of them 200 per cent. Then I'm going to make its position absolute. And besides that, we need to make the position of the wrapper relative because I want to position sections according to their parent element, which is rapper. After that, Let's make the lag position of the section zero. After that, I'm going to select section wrapper. Let's define its width and height. We need to inherit both of them from the section element. So let's set width and height both of them to inherit. So right now the first section ended up behind the rest of the sections because of the position absolute. As I said, I'm going to customize it first, the first section. So in order to place it at the top of the other sections, Let's use the Z index property. Select the first section and set the index to 50. After that, I'm going to set the image as the full-screen background. Let's select Section one wrapper. Then I'm going to use here linear gradient. Let's put here black color. I mean RGBA with three zeros and with the opacity 0.5. Next, we need again RGBA, black color, but with different opacity. Let's make it 0.4. Next, we need to specify the URL of the image, the path of the image. We have folder called images, and we have to select Section one, PG dot JPG. Next, we need Center and also no-repeat. Then finally, let's set the size of the background, make it covered. Alright, so as you can see, we have here a full-screen background image for the first section. Now let's go ahead and take care of the heading out, select its wrapper div. First of all, I'm going to take you off the position of the wrapper. I'm going to place the heading down close to the bottom of the page. So let's make its position absolute. Then define top property and make it 70%. As for the left property, I'm going to make it 50 per cent. And also we need to transform with the translate function. We have to pass you -50 per cent for both directions. I mean, for the x and y axis. So the heading is placed in the right way, but right now it's not quite visible. So let's go ahead and fix that. I'm going to select heading itself. Let's make its font size. Ten RAM. Also change the font weight, make it 300 And change the color. I'm going to use here, white. Okay, next I'm going to transform text into capitalizing. And also create some space between the letters using letter spacing. With the value 0.1 ran. After that, let's add a border at the bottom of the heading. So use border bottom with values points to ram solid. And as the color, I'm going to use D5 with four zeros. Alright, so the heading looks nice. Lastly, I want to align it to the right side, and also I want to disable the user selection. So we need to text align with the value, right? And then user select none. Alright, let's see about the first section. It looks nice and we can move on to the second one. First of all, let's go ahead and create the HTML markup. So the second section will include two different images and the button. Let's go ahead and open a div tag with the class sale. So we will have an image and a button in that development that's open IMG element. The source attributes. I'm going to specify the part of the image. We have to select bag dot PNG from the images folder. Also, I'm going to assign to the alt attribute sail back. And also we need to class attribute with a value sail back. Next, let's insert here a button with a class name, sale, btn. And as the tax, I'm going to pass your order. Now. Besides that, I'm going to insert here another image, but it's going to be placed outside of the div. Let's specify here the path of the image. We need wine bottle dot PNG. Also, let's assign to the alt attribute, the value wine bottle. And besides that, I'm going to add a class attribute with a value wine bottle. Okay, so that's it about the markup of the second section. Right now, the second section ended up behind the first one. That's why we don't see here some of the elements. I'm going to fix that issue using again, the index property. I'm going to change here the class name. Let's use Section two. Right now I wanted to use this way, but eventually we'll define different values of the index property for all of these sections. Alright, so now we need to set the background for the second section. Let's go ahead and grab this code from here. And then make some changes. We need Section two wrapper. Then change the opacities. Let's make them 0.8 and 0.9. And also change the name of the image. We need Section two, PG. Okay? So that's the way how the second section looks right now as we have here, the scroll bars. And I want to get rid of them. For that we have to assign to do wrapper overflow hidden. After that, let's take care of the layout of those elements. I'm going to use Flexbox. Let's use here display flex. Then we need a align items center to center the elements vertically. And also I'm going to use justify contents with the value space evenly. Alright, let's go ahead and start to style each of the elements. As far as I'm going to select div element with the class sale. Let's use again flux books. I want to make it flex container. Then we need to change the direction of the flux. Let's make it column. And after that, for vertical and horizontal centering, let's use align items center and justify content center. Alright, after that, let's go ahead and customize the first image. Let's decrease slightly the opacity, make it 0.9. And also I'm going to change the width of the image. Let's make it 45 rem than selected button. It has class sale, btn. First of all, let's define the width and height. I'm going to set width to 20 RAM. As for the height, let's make it five ramp. Next, I'm going to take care of the text Let's increase the font size. Make it to Ram. Also change the font weight. Make it lighter. Then transform text into uppercase and create some space between the letters. Let's make it 0.1 rep. Okay, after that, I'm going to set the background color to transparent. Also, change the color, make it white. Then create some space at the top of the button using margin top with the value for RAM. And finally, Let's create border with the values 0.1, ramp solid, and use white color. Alright, so the Buxton is customized. Lastly, I want to create a little hover effect. I'm going to change the background color on hover. Selected button with a hover. Change the background color. Use here again this red color. And then in order to make the effect a little bit smoother, use transition with a value background color and with it duration 0.2 s. Alright, so the button is styled and the last element that I want to customize is the second image. So let's go ahead and select it. I'm going to change opacity. I mean, I want to decrease it to 0.6 and also change the width. Make it a two ramp. Alright, so with this second section we are done. It is styled and we have to move on and take care of the third section. It's going to be, again, kinda simple one. We will have the full screen background image. Also, we will have other images in the center of the page and these texts right here. So first of all, let's go ahead and create again the HTML markup. We will have three different elements here. The first one is going to be the heading open H1 tag with the class section three heading. And pass here the text, the best quality. Next we will have image. Specify the path of the image in the source attribute. We need to select frame dot PNG. Also add here the value of the alt attribute right here, let's say grapes frame. And then add a class attribute with a value frame dash IMG. Let's duplicate this line of code. Change the name of the image we need here, grapes dot PNG. Also as the value of the alt attribute. I'm going to leave here just grapes. Event changed the class. We need here, grapes and G. Okay? So right now, this section is not visible and the reason is the same. It has ended up behind the second section. So let's fix that again using z-index property. I'm going to change here the class name. We need Section three. Now the elements are visible. Let's go ahead and customize this section. First of all, let's set the image as the full-screen background. Let's select Section three wrapper. Actually we need the similar code for the section of three rapper as well. So let's grab this code from here. Paste it down for the third section wrapper and make some changes. Let's change the opacities. We need here. 0.3, 0.9, then change the name of the image. We need three. And finally, we need here justify contents with the value center instead of the space evenly. Alright, that's it about the wrapper. Let's go ahead and customize each of the elements separately. I'm going to start with the images. Let's select the first image, which has class frame IMG. Let's set the width to 100 ramp. Also. I'm going to make its position absolute. And finally, decrease the opacity, make it 0.5. Okay, Next, I'm going to select this second image, grapes IMG. Actually we need similar styles for the second image as well. So let's go ahead and grab this code from here and just change the values. I'm going to set width to four to run. As for the opacity, Let's make it 0.7. Finally, I'm going to take care of the heading elements. So let's go ahead and select these elements. First of all, let's increase the font size, make it to 20 RAM. Then change the color. I'm going to use here, light gray color, I mean CCC, and also transform text into uppercase. Next we need to rotate the heading. So let's use Transform with the rotate function. I'm going to rotate image with 20 degrees. Also, use your text align center. So the heading looks nice. I want to add to it a little shadow effect, and also I'm going to disable the user selection. So let's go ahead and use text shadow with the values 0.5 RAM than 1.5 RAM. And as a color, I'm going to use 000, which is the black column. And finally, use your users select none 74. Project 8 - Customize and Make Landing Page Work: Let's open developments, which is going to be container. Actually it will include the entire content of the project. So we're going to create the markup of the header and then we will add to it some CSS. So we will build our project section by section. Let's open header elements and assigned to the class header. The header will consist of three different parts. The first one is going to be the text, which was placed on the left side. So let's open a div element with a class header text. The text will be represented by heading in paragraph. So we need to open the H1 heading element with class heading and with text around the world. Next, I'm going to open p elements with the class name, header paragraph. Then let's institute some texts. Traveling. It leaves you speechless. Then turns you into a story teller. Alright? Next I'm going to insert here an image. I'm in the image of the air balloon. Let's specify here the path of the image. We have the folder images, and then we need to select a air balloon dot PNG. Next, I'm going to insert here the text header image, I mean as the value of the alt attribute. And finally, let's assign to the image element class attribute, the value header image. So here we have the air balloon image, and finally, we have to create a logo. As you remember, we will use an animated text as the logo. So let's open a development with the class logo. Next I'm going to institute the H1 heading elements. So each letter and the heading will be represented by this panel element. Because we need to create animations with a different delay time for each letter. So let's open span element and insert here the first letter T. Then duplicate it six times and change the letters. For the second one we need h, then E, then R, 0, a, and D. The road. Alright, so that's it about the market for the header. Now, it's time to customize this section. Before that, I want to take care of the container. So let's go ahead and select it. I'm going to change the background color. So as you know, we created a couple of variables for colors. And in order to use them, we have to use here the var function, which actually stands for the variable as an argument. We have to pass here the name of the variable, in this case, secondary color. As the background color is changed for the container. Next, I'm going to create some space around it using margin. Let's make it 3.5 rem. Besides that, let's create some shadow effect. Let's use box shadow with the following values. We need zero, then one RAM, three RAM. And as the color, Let's use again var function, the color. Great. Alright, So right now, That's it about the container. Next, we need to start to work on the header. First of all, let's define width and height. I'm going to set width as 100% asphalt the height. I'm going to make some calculation. Let's take a look at the finished project. As I see at the top of the header and at the bottom of it, we have the same amount of space. Each of them equal to 3.5 RAM, because the size of the margin equals to 3.5 rem. Now, in order to create the same space at the end of the header, I'm going to use the following calculation. We need to use calc function, which stands for calculate. Then we need to subtract 200 viewport height seven RAM. Actually 100 viewport height is equal to 100% of the viewport. And the seven RAM is the sum of the space at the top and at the bottom So as you can see, now, we have the same space around the header. Okay? Next, let's define the background for the header. I'm going to set the image as the background. First of all, let's use linear gradient. I'm going to use two similar colors, but with different opacities. So the color is going to be 1811455 and the opacity 0.5. Next we need the same color. But with opacity 0.3. After that, I'm going to specify the path of the image using the URL function. So we have folder called images, and we need to select header dash BG dot JPG. Next minute center and no repeat. And finally, let's define the size of the background. I'm going to make it color. Alright, so as you can see, the image is set as the background and it already looks good. The next thing regarding the header is to align its child elements that I'm going to use flexbox. Actually, I will not assign flux properties to it manually. As you know, we have all already created cluster center, and I will just assign this class name to be header in the HTML. So all three parts of the header are centered inside of it. Let's go ahead and customize the header text. So we need some common styles for the heading and the paragraph as well. And for that, we can add some styles to their parent elements. So I want to center the text inside of the box. Let's insert your text, align center. Then transform text into uppercase and create some space between letters. Let's set letter spacing to 0.1 wrap. And now we can customize heading in paragraph separately. Let's start with the heading. I'm going to increase its font size. Let's make it a tram. And then change color. I'm going to use your white column. Okay, That's it about the heading. Next, let's take care of the paragraph. Let's go ahead and select these elements. Increase the font size, make it three RAM. Then change the font weight. I'm going to make it 500. And finally change the color. In this case, I'm going to use secondary column, right? So the paragraph is styled as well. But I think it is stretched too much. So I'm going to define the maximum width for the paragraph. Let's use max-width property and make it seven to ramp. Finally, in order to center the text, Let's use margin R0. So no, I think it looks much better actually with Heather texts, we're almost done. The only thing that I want to do is to add some shadow effect both of the elements. So let's add text shadow to the parent element with the values 0.3, 0.5 RAM. And as the color, Let's use gray color. Alright, so finally, we are done with the header text, and now we have to move on and start to work on the logo. It should be placed at the top right corner of the header. For that, we need to use the position. Let's select the logo and make its position absolute. Next, I'm going to make the position of the header relative because we need to define the position of the logo according to its parent element. And after that, Let's define top and the right positions. I'm going to make both of them for rent. So the logo is placed at the top right corner, and now we have to customize it. As you know, each letter is wrapped by this span element. Let's go ahead and select it. Let's increase the font size, make it to RAM. Then change font-weight. I'm going to make them bolder. So let's assign to 900, then change color. In this case, I'm going to use primary color. Then transform text into uppercase And finally, change the background color. Make it white. Now we need to define the width and height of each letter. Let's make both of them 3.5 brand. As you can see, width and height are not applied to letters. The reason is that this span element is an inline element. Therefore, we cannot define the width and height for it. In order to fix that, I'm going to make it a block level element for now, because eventually we will use flexbox. So let's use your display block. Now the width and height are applied to the letters. And also they are placed vertically in a column because it's the default behavior of the block level elements. Alright, now in order to place them side-by-side horizontally, Let's use flexbox. Select H1 heading element is the parent element for this pans assigned to it display flex. Ok. Now we need some space between the letters and also make them rounded. Use margin with the value 0.5 rem. And then border-radius 50 per cent. Besides that, I'm going to get rid of display block from here because right now these span elements are flex items and we no longer need this property. Alright? The last thing that we need here is to place letters in the center of those circles. For that, Let's use again cluster center and assign it to all the span elements. Right? So the logo is customized. And now it's time to create the animation. For that, we will use CSS keyframes. We need add sign keyframes, which should be followed by the name of the animation. Actually, you can name the animation whatever you want. Inside the keyframes. We can define some CSS rules with some steps. And then we can apply those rules to the elements using the animation property. So we will have five different steps. They will be represented by the percentage values. I'm going to start with a zero per cent and go through 100 per cent. 0-10% will letters should not move. So therefore, we need here the following. We have to indicate here at 0%. Then inside of the curly braces, I'm going to use Transform with Translate Y function, which should have the value zero. Because we don't need to move the letters. Next step is going to be ten per cent. And actually, we need here the same transform translate Y zero. After that from 10% to 15%, I'm going to move the lectures up. So next step is going to be 50 per cent. And we need here transform, translate y with the value -100%. Then from 15% to 20%, we need to drop letters down back to their positions. So on 20 per cent, we need again transform translate Y zero. And finally, from 20 per cent to 100%, letters should stay on their positions. So we need again transform, translate Y zero. Alright, so these are the rules which we should apply to the letters, but with a different delay time. We need a different delay time to move them in order. We have to select each span elements separately. And for that, I'm going to use the nth child pseudo-class. So let's like logo H1 and then span, followed by the nth child selector. And we have to specify here the first span element. Now we need to assign to the element different animation properties. The first one is going to be animation name. Then it should be followed by the duration of the animation. For that, we have to use the property called animation duration. Let's set it to 5 s. Next, we need the delay time for the first letter. I'm going to use 0.1 s. In order to define the delay time, we have to use animation delay. Let's assign to it 0.1 s. Finally, we need to specify the value of the animation iteration count property. In our case, we need to run the animation infinitely. So we need here infinite. Alright, so we have defined the animation for the first letter. For that we have used here a couple of animation properties. Basically in practice, we can use a shortened way. We just need one CSS property called animation, instead of using several animation properties. So we can use it here. Animation and the following values. The first one is going to be the name Then we need duration 5 s, followed by the delay point 1 s. And finally, we need infinite. We can simply get rid of all those properties from here. Let's go ahead and duplicate this code six times. Because we have seven letters. Then change the number of delighters and also change the delay time. For the second one, we need 0.2 s. Next we need 0.3 s. Then for the fourth letter, when 0.4 s, 0.5 s. Next one is going to be 0.6 s. And then finally, we need 0.7 s. Alright? So as you can see, the animation is working and we have here nice cool effects. Actually, we are done with the logo and now we have to move on and take care of the image. I mean the air balloon. Let's go ahead and select an image. First of all, let's decrease its size. Make its width 35%. Let's take a look once again at the finished version of the project. So as you can see, air balloon is moving through the headers background in which to achieve that, we need to create a 3D environment. And for that in CSS, we have a property called perspective, which we need to assign to the header. In general, the perspective property defines how far the object is away from the user. The lower value will create a more intensive 3D effect. So in our case, we need a little bit higher value. So let's assign to it 100 grand, right? Like the logo, we have to use CSS keyframes here as well. I'm going to name the animation as image float. So overall, we will have five different steps. We will move the balloon through the image using the transform with translate z function. It allows us to move the object in 3D space. So from 0% to 40 per cent, we need the following properties and values. We need here Transform, Translate Z with value for to run. In this case, we use a positive value and it actually moves the object close to the user. In order to show it, I'm going to assign it to the image directly. So that's the way how Translate Z function works. If we make the value negative, let's say -400 rounds, then the image will be placed deep inside the header. At a glance, you may think that the size of the image is decreased, but in fact, the image is far away from the user. Alright, let's get rid of this line of code home here. So besides the transform property, I'm going to use opacity during the animation will change the opacity slightly on zero per cent. Let's make it one. Actually, you can omit this property at all here, because by default, opacity for every element is set to one. But I use it any way to make the working process clearer. Alright, that's it, about the 0%. The next step is going to be 40 per cent, 0-40%we need to move air balloon deep inside the image. Therefore, we need here Transform, Translate Z value -500 g. And besides that, we need to move the pattern a little bit to the right side. So I'm going to use translate x function. The value 150 ran. We need this because the baton moves to the center of the image by default. Lastly, let's use opacity. I'm going to decrease it's slightly, Let's make it 0.8. Alright, the next step is going to be 70%. Let's duplicate this step here. I'm going to change the values. We need 70%. From 40% to 70%. We need to move the balloon even deeper inside the image. So I'm going to pass here -1,500 ramp. As for the x direction, we need to change the direction of the balloon explicitly at the same time. So I'm going to increase the value of the Translate X function. Let's make it 800 ramp. And finally decrease the opacity, make it 0.6. Okay, The next step is going to be 80 per cent. So once again, let's duplicate this code from 70% to 80%. We need to move the balloon back and in closer to the user. So let's change the values. Let's insert here -50 RAM. Then we need 100 ramp and the opacity 0.8. And finally on 100%, we need to make the value of Translate Z property function equal to the starting point. So when you transform translate Z with a value for t, run the opacity one. Alright, so with the keyframes, we are done. And now we need to apply those rules to the image using the animation property. Let's assign to it the name image fold. Right now, I'm going to define the duration as 5 s. In order to see quickly the entire animation process. Also, we need here to make the animation infinite. So as you can see, the balloon is moving in the right way. The only problem that we have here is those scroll bars. And actually we can fix that simply by using overflow hidden, which should be assigned to the container. Alright, so everything works fine. Let's just increase the duration of the animation. I'm going to make it 1/52. Alright, so that's it about the header. Everything works perfectly and now we have to move on and start to work on the next section. 75. Project 8 - Create and Style Most Popular Tours Section: Actually step-by-step, the code becomes larger because the project itself is big. Therefore, before we start to build the next section, I think it will be better if we add some comments in our HTML and CSS files. We have here a header. Let's insert header. Then of header. The next section is going to be about popular tours. So let's add here popular tours. And then end of popular tools. For the CSS. At the beginning we have some common styles. So I'm going to put here common styles. And then at the end, right? And of common styles. Then we have the header, then n of header. And finally I'm going to add here popular tours and of popular tools. Alright, let's take a look once again at the finished project. So we're going to build the second section called the popular tours. It consists of heading and three different cards. Each card has two sides, front and back. On the front side we have a button image, image background with heading. And down below we have some conditions about H2. If we collect the price button, then the backside will display with the price and the button for booking. If I click the back button here than the front side will display back. Alright, so that's sick what we're going to do. Let's go ahead and start to create the HTML markup. I'm going to open section element with class, popular tourist. Next, I'm going to insert here H1 heading with the class name, popular tourist heading. And with the text the most popular. Towards. Next we need development, which is going to be the wrapper of the cards. So let's assign to it a class name cards wrapper. After that, I'm going to create the card itself. So let's go ahead and open a div tag with the class card. So we will create one card and then we will duplicate it twice. As we said, each card consists of two different parts, the front side and backside. So let's insert another development with the class name front side. So in that div element, we will have an image heading, list and the button. So let's insert you IMG element, the source attribute. Let's specify the part of the file. We have images folder. And then I'm going to select forest dot JPEG. And the alt attribute. I'm going to put forest. And also I'm going to add here class attribute with a value card image. Next we need the H1 heading elements with a class name name. Let's insert here the name of the Tor, which is going to be the wild forest. So the conditions of the torque will be represented by the list. Let's open UL element with the class name card list. So overall we will have five different list items. Let's open LI element with a class name card, list item. And insert here the first condition, seven days Then I'm going to duplicate it four times. And also we need to change the content. The second item is going to be up to 20 people. Next, we will have for tour guides. Also slip in private tense. And finally, I'm going to put here difficulty. Medium. The last element in the front side is going to be the button. So let's open button tag with a class name, navigation button. I use your navigation because we will navigate between the front and back sides with the help of this button. Let's insert here. Price. Besides that, I'm going to use HTML5 entities. I want to display the greater-than signs. So for that, we need to insert here and present GT, which stands for greater than. Than. We need semicolon. Once again, the same characters. Alright, so that's it about the front side. Let's go ahead and create the backside. It's going to be smaller because we will have just three different elements. Let's go ahead and open div tag with a class name back side. Then let's go ahead and copy this button from here. So instead of the price, we have to put here back, but we need to write it after the HTML5 entities. And also instead of the greater-than signs, we need less than signs. So instead of GT, we need U, L, T. Okay, next comes the heading. So let's open h3 heading tag with the class name toward price. I'm going to put here $399. And finally, we need another button for booking. So it's open button tag with the class card button. And then insert here, booking. Alright, so that's it about the first card. Overall, we will have three of them. Let's go ahead and duplicate the entire card twice. And then change a couple of things. We need to select here. River dot JPG. Also change alt attribute. We need here River. Then as the heading, I'm going to put here along the river. Next, I'm going to change the conditions we need here. Nine days tore up to 30 people, seven tour guides. The next condition is going to be the same. So I'm going to leave it as it is, as per the difficulty. Let's make it hard. And also change the price. Let's make it $499. Okay. Let's go ahead and change those things for the third card as well. We need here, C dot JPG. Also change the value of the alt attribute. I'm going to put here, see, the heading is going to be the island beach. Then change the conditions. We need here five days torr. Next one will be up to 40 people, ate, tour guides, then slip in hotel. Then I'm going to make the difficulty easy. And finally change the price, make it $599 Alright, sell the HTML markup is ready. Right now, Cards look ugly because we have here just the pure HTML. Let's go ahead and start to write some CSS. First of all, I'm going to create some space on top and bottom. So let's select section element, which has the class popular tours and assigned to it padding. I'm going to make padding on top, fibrin, then zero on the right side. Tan ran at the bottom. And finally zero on the left side. Next I'm going to take care of the heading of this section. Let's select this element. So first of all, let's increase the font size, make it eight RAM. Then I'm going to put the heading in the center using text align center. Next, I'm going to create some space at the bottom of the heading using margin, bottom. Let's set it to eight. Ran. Change the color. Let's use your color primary. And finally, I'm going to create some shadow effect using text shadow with the following values. We need here, zero, then 0.1 RAM, point to RAM, and the primary column. Okay, So as you can see, the heading is styled and it looks good. Next, I'm going to take care of the cards. First of all, let's align them side-by-side horizontally. For that, I'm going to select card wrapper assigned to it, display flex. Then in order to create even space between the cards, let's use justify content space evenly. So the cards are placed side-by-side, but right now we don't have this space between them. The reason is the width of the images. So let's go ahead and take care of them. First of all, select the card itself and define its width. I'm going to set it to 35 ran. Then select an image with the class card image and define its width, make it 100%. So in this case, the image will inherit the width from the parent element. Now, as you can see, images are smaller and we have this space between the cards. Alright, now let's go ahead and start to work on the front side. I'm going to select it. At first. Let's place the tax and the center using text-align center. Then change the background color. I'm going to use here white-collar. After that, I'm going to make the front side a little bit rounded using border-radius point rerun. Alright? So right now we see a border-radius only at the bottom because of the image. So we need to make the top corners of the image rounded as well. So let's assign to image border-radius. When you want to make the individual corners of the elements around it, then you can assign several values to the border-radius property. The first one belongs to the top left corner. Let's make it 0.3. Rem. Next comes the top right corner. I'm going to set it to the same value, 0.3 RAM. Then we have the bottom-right corner. Let's make it zero. And finally, we need to specify the bottom left corner. Let's make it zero as well. Alright, now we have border-radius on all four corners of the car. Let's go ahead and customize the heading element. First of all, I'm going to increase the font size. Let's make it 2.5 around. Change the font weight, set it to 700, and also transform text into uppercase. After that, I'm going to change the position of the heading. I want to place it at the bottom right corner of the image. So let's make its position absolute. Then in order to position it according to its parent element, which is the front side, we need to assign to the parent position relative And after that, let's define the top and the right properties. I'm going to set it up to 30%. As for the right position, Let's make it 1.5. Run the cell, the heading is positioned. Next, I'm going to change its color. Let's make it white. And also add to it some shadow effect. Use text shadow with the values 001 run and the black column. Alright, so that's it about the heading. Let's go ahead and move on to the list. Let's select list elements using card list. I'm going to define its width. I mean, I want to decrease its width. So let's make it 80% than in order to center the list, we need to use margin auto. And finally, let's create some space inside of the list. I'm going to set padding on top to run. Then zero on the right side. Three rem at the bottom, and zero on the left side. Alright, now it's time to customize the list items and so let's go ahead and select them. First of all, let's define the font size. Make it 1.6 RAM, than change the font weight, set it to 500, and change the color. In this case, I'm going to use light gray column. Okay, So the items look better, but we need to add to them some more styles. Let's create some space at the top and the bottom of the item using margin with the values to RAM and zero. Then I'm going to create a border at the bottom. So let's use property called border bottom with the values 0.1 ran solid and the primary column. So as you can see, each list item has a border at the bottom, but they are too close to each other. So we need to add some space. And let's create the space using padding. At the bottom with the value 1.5 ramp. Alright, so everything is styled except the price button. Right now we're not going to style it because both buttons, I'm only priced button and the back button have the same class. And I think it would be better if we start at first the backside and then take care of the buttons. So let's go ahead and select backside. First of all, I'm going to take care of the position. Let's make it absolute. Then in order to positioning according to the card, let's assign to the card position relative. Then define the top position. Let's make it zero and change the background color. Let's set it to the primary color. Alright, so that's the way how the backside looks right now. I'm going to expand it to the entire card. For that, Let's set width and height 200%. Alright, next, let's make it rounded and also add to it some shadow effect. I'm going to use border radius with the value 0.3 ramp. And then box shadow with the values zero to Ram. For RAM. And the color 777. Okay, now we have to align the elements inside the backside and then we have to customize them. I'm going to place the elements in the center for that. Let's use flexbox and just add the class name center to the backside. In HTML. The elements are placed in the center. They're placed side-by-side and actually we don't need it. We have to change the flex direction and make it a column. Right? Next, let's go ahead and customize the price and the button for booking. Select Total price. Let's increase its font size. Make it five rem. Change the font weight. I'm going to set it to 300 Then make the color white and also creates some space at the bottom using margin bottom three ramp. Alright, so the price looks nice. Let's go ahead and move on to the button. Let's select it. I'm going to change the color. Let's make it primary. Then change the background color. I'm going to make it white. Get rid off the default border using border none. And then change the font size, make it 2.5 round. Alright, let's go ahead and add some more styles. I'm going to create some space inside of the button using padding. Let's set it to one rem on top and bottom and two rems on the right and left sides. Also, I'm going to increase the space between the letters using lateral spacing points to run. Then make the button around using border-radius. Let's set it to five rem. And finally, change the type of the coarser, make it pointer. Alright, So the price and bottom are customized, and now it's time to style the navigation buttons. I'm in the back button and the price button, which is placed on the front side. So let's select the navigation button. First of all, I'm going to place it at the top-left corner of the card. So let's set its position to absolute. Then define the top and right properties. I'm going to set both of them 2.5 ramp. Okay, so the button is positioned. Now let's go ahead and customize it. I'm going to set padding to 0.5 RAM, then change background color. And this case I'm going to use RGBA value. I mean the white color with the opacity 0.8. Then change the color. I'm going to use your light gray color. Then make the button rounded using border-radius 0.3 RAM. And get rid of the default border using border none. Okay, Finally, let's customize the text. Define the font size, make it 1.5 RAM. Then set font weight to 600. Also, transform text into uppercase. Then create some space between letters using letter spacing. Point to RAM. And finally, make cursor pointer. Okay, So both sides, I'm in the front and back are styled. Everything is prepared to make the card work. First of all, we need to display the front side back. For that, Let's use the index property. Let's set it to ten. After that, we need to create a 3D environment because as you know, the front side and backside should move in 3D space. So in order to create the 3D environment, we have to use a property called prospective. Let's set it to 150 ramp. Then we need to move the backside where the translate Z function. So let's use Transform. Translate Z with a value of minus five ran. And besides that, we need to move it a little bit to the right side. For that, Let's use Translate X function with the value three ramp. Alright, so both sides are placed in the right way. Next, I'm going to decrease the opacity for both sides, but with different values. I'm going to make the opacity of the front side 0.9. As for the backside, Let's assign to it opacity 0.5. Alright, so now we're ready to create the click event and make the hard work that we're going to use JavaScript. So once we click the button than the backside should display, and also the opacities and shadows should change. So let's go to script.js file. First of all, we need to select both buttons. Both of them have the same class name, navigation button. And in order to select them, I'm going to use a query selector all method. Inside the parenthesis, we have to specify the class name, which is navigation button This method returns a node list, which is an array-like object. We need to transform it into an array. Then we have to look through the buttons and attach to both of them onclick event handler. In order to transform node list into an array, we need to use ES6 array from method than to look through the items and to attach to them onclick event handler. Let's use one of the array helper methods called for-each. Actually, this method helps us to execute the function for each array item separately. We have to pass a callback function, which should take one argument. And it's going to be the current item of the array. And now we need to attach to the item onclick event handler. So we need item dot onclick. We have to assign to it an arrow function. Alright, so let me explain what we're going to do. Actually, we are going to create a new class and CSS, which then will be assigned to the card from JavaScript. This class will help us to define new CSS styles, which that should be applied to the front and back sides onclick. So now we need to assign to the card deck fast change. It will be the name of the new class. In order to select the card, I'm going to use DOM Navigation. In this case, item refers to the navigation button. Then we have to move one level up using the parent element property. Then we need to move again one level up. And finally, we will reach to the card. Now we have to use a property called class list, which stores all the classes the element has. Then we have to use the toggle method cell. They toggle method adds the class name to the element if it doesn't exist and removes it from the element if it exists. Finally, let's insert here the class name. Change. Alright, so that's it about the JavaScript. Let's go back to CSS file and select the class name change. It should be followed by the front side. But we need to use here one of these CSS combinators called Child selector, which is expressed by the greater than sign. Actually, the child selector selects all elements that are the children of a specified element. So once we click the button, then the car will get a new class change and this entire selection will be valid. Now we have to define the styles that we want to assign to the front side onclick, both sides will exchange their positions, shadows, opacities, and the z-index property for the front side, we need here Transform, Translate Z function value minus five RAM. Also we need to translate X value three RAM. Next comes box shadow, where the values zero to ram, foreign and the color 777. Next I'm going to set opacity to 0.5. As for the Z index, it should be equal to zero. Alright, next we need the same for the back side. I'm going to copy this code from here and paste it down below. With the backside. We need backside instead of the front side. Let's change the values here. We need zero. And Stan again zero. As for the box shadow, it should have 0.5 rem to RAM. And the color AAA. Next I'm going to set opacity to 0.9. As far as Z index. I'm going to get rid of it. Alright? If I click the button, standard card will work fine. The only thing that we have to do is to make the effect smoother. For that, we have to use transition. Let's insert here opacity with a duration 0.4 s. Next, we need to transform with the same duration. And also box-shadow 0.4 s. Actually we could use here all instead of those properties. But then in all we would include the index as well and it would break the effect. Okay, let's copy this line of code and paste it for the backside as well. Alright, so now everything works perfectly. We have nice cool transition effects. Actually, we're done with this section and it's time to move on and start to build the next one. 76. Project 8 - Create and Customize Testimonials Section: The next section is going to be the stories, the stories from the customers. Let's take a look at the finished project. So we have two customers with their stories and the video background. So 12, this part, you will be able to learn how to set the video as the background. Alright, as usual, let's go ahead and start to create HTML markup. Actually, first, we will build this torus, and then after that we'll take care of the video background. Let's insert new comments, stories. Then of stories. And open section element Class stories. Next we need a div elements which will wrap both stories. So let's assign to it a class stories wrapper. So overall we will have two stories. Let's open developments which will be used to create and manipulate the background of the story. So assign to it a class story, be G. And then put here this tower itself. I'm going to open another div tag with a class story. So each story will consist of an image heading, the paragraph. Let's insert here IMG elements. In the source attribute. I'm going to specify the path of the image inside of the images folder. I'm going to select story, IMG one dot JPEG. Then as the value of the alt attribute, I'm going to put here customer image. And finally, I'm going to add here class attribute would devalue story image. So the image should be followed by the text of the story. As we said, it's going to be the heading and the paragraph. They will be wrapped by the development. So let's created with a class story texts that insert your H1 heading tag with the class name story heading. I'm going to put here some texts. Let's say These were the best days of this year. Next I'm going to create a paragraph with the class story paragraph. And I'm going to put here some dummy text. Alright, so this is the first story. We need two of them, so let's duplicate it once and then make some changes. I'm going to change the name of the image is going to be storing img2 dot JPG. Also. Change the heading here, right? I enjoyed these. Great. Alright, So right now, That's it about the HTML markup. Let's go ahead and start to write some CSS. I'm going to insert new comments, stories. And stories. Then select this section elements and create some space at the top and bottom using padding. We need here tan ran and then zero on the left and right sides. After that, Let's select the wrapper of the stories. So I'm going to place stories in the center of this action. And they should be placed vertically. For that, Let's use Flexbox. I mean display flex. In general, display flex aligns elements side-by-side horizontally. Therefore, we have to change the direction and we need to make it column. So we need flex direction column. Then in order to center the elements horizontally, we need align items center. Next, let's select background of the story. It has className, story PG. So eventually the background of the story will be similar to white color. But right now, before we take care of the video background, let's make the background color of the stories light gray in order to make it visible. Before we move on and add some more styles to the background, Let's take care of the images because right now they are two bigger. So I'm going to select the image. First of all, let's define the width and height. Let's make both of them 20 ran. Also, I'm going to make them rounded using border-radius with the value 50 per cent. And besides that, we have to use object. We'd cover Okay, Let's go back to the background. I'm going to create some space inside of it. For that, I'm going to use padding. Let's set it to five rem. Then we need some space around the background. For that. Let's use margin and set it to five RAM as well. Right? After that, let's increase the width of the background, make it 70% of this section. And then create some shadow effect using box shadow with the values zero to run five rem. And as the color, I'm going to use RGBA value. Let's place here 5013 times and then the opacity, 0.4. Alright, so step-by-step, the story looks better. Let's take a look once again at the finished project. As you can see, the shape of the background is different. It is skewed. And we're going to achieve that using transform with skew x function. Actually it allows us to scale the element according to the x axis. So we need to transform. Then skew x function. And inside the parenthesis, I'm going to insert 20 degrees. So as you can see, the background is skewed, but we have here a little problem. The content of the story is skewed as well. In order to fix that, we can skew the story itself back by the same degree. So we're going to select story. And I'm going to pass here Transform Skew x. And as the value, I'm going to pass -20 degrees. Alright, so now the problem is fixed. Next, I'm going to place the image and the text side-by-side. For that, Let's use display flex. After that, Let's customize heading and a paragraph. But besides that, I think we need to add some space between the image and the text. So let's use margin-right. Five. Let's go ahead and select heading elements. It has class name is Tori heading. First of all, let's take care of the font size. I'm going to make it to point fibrin, then transform it into uppercase. Also, change the color. In this case, I'm going to use gray color. Lastly, let's create some space at the bottom using margin bottom with the value one ramp. That's it about the heading. Let's go ahead and select paragraph, the className story paragraph. Let's increase its font size, make it 1.8 rem. Then change the color. You see your light gray column. Alright, so the heading and paragraph look good. I want to add here two more things. Let's indent the paragraph a little bit and also create some space between the letters, I mean, between the letters of heading and the paragraph as well. So I'm going to select their parent element, which is div with a class story text. Let's use here letter spacing 0.1. Run that in order to indent the paragraph, I'm going to select its first letter. For that, we need to use pseudo element called first letter. So at first let's select Paragraph and then add here pseudo elements. First letter. We need to create some space on the left side. So use margin left with the value one round. Alright? So that's it about the stories. Everything is ready to start to work on the video background. First of all, let's go to the index.html file and adhere HTML markup for the video. I'm going to open div tag with a class video container. Then we have to use a video tag, which actually is new in HTML5. I'm going to assign to it className video. Also, we need to add here a couple of Attributes. The first one is going to be autoplay. This attribute allows us to play the video automatically. The next one is going to be muted. It will play the video without a sound. And finally, we need a loop which will play the video without stopping. After that, we need to specify the source of the video using a source tag is actually the self-closing tag. Then we need here source attributes in which we have to specify the path of the video. It's placed in the Images folder. Besides the source attribute, we need to use a type attribute as well, in which we should specify the type of the video. I'm going to set it to video slash MP4. Alright, so as you can see, the video is playing and now we need to take care of its position. Let's go ahead and select the container and set its position to absolute. We need to position it according to the parent element, which is this section. So let's add to it position relative. So as the video is all over the place as the background, Let's define the top and lacked properties. I'm going to set both of them to zero. Also, we have to define width and height. Set both of them 200 per cent. And besides that, let's decrease the opacity, make it 0.4. Alright, the last thing is to add a couple of styles, the video itself, in order to maintain the quality of the video. I mean, to avoid stretching it or things like that, we have to use the following styles. Let's select PG video and assigned to it width and height. Both of them set to 100 per cent. And besides that, we need here object's speed with value cover. All right, Finally, let's change the background color for these stories. I'm going to get rid of the current background. Then I'm going to set background color to RGBA. Let's pause here 2383 times. And the opacity 0.85. Alright? As you can see, everything looks really nice. And actually we have finished working on this section. If you want to find some free videos, you can go ahead and visit the website called cover with two rs.co, where we can find lots of different free videos. Alright, that's it about these stories. Let's go ahead and move on to the next section. 77. Project 8 - Create and Customize Contacts Section with Animated Background: First of all, let's take a look at the finished project. So after these tourists section, we're going to build the contact section. In the center of this section, we have a couple of input fields with a submit button. At the top of the form, we have a heading contact us. And besides that, a section has a full-screen background with some animation effects. As you can see that the color is changing and it creates something like the day and night effect. Alright, so that's it, what we're going to build. Let's go ahead and insert new comments in HTML file contacts, and then end of contract. Then I'm going to open section element with a class name contact. So inside this section element, we will have two different parts. The first one is going to be a heading. As for the second one, it should be the formed elements. Let's go ahead and open H1 heading tag, which will have class name, contact heading. And then insert you, contact us. Next, we need form elements with the class contact form. So inside that form, we will have three different groups of inputs and a submit button. So let's go ahead and open div tag with class input group. The first group who will have label and the input. Let's insert your full name with the asterisks. Then I'm going to open the input tag with type text. Then I'm going to add here class attribute with a value conflict input. And also we need placeholder with a text. Enter your name. Alright, so the second group is going to be slightly different. It will consist of two different input groups. I'm going to open div tag with a class input groups. Notice that I'm using q group in the plural. So now we need to create here two different input groups. Let's grab this code from here and paste it twice. I'm going to change labels, types, and also placeholder attributes. We need your email. Then they type e-mail. And also I'm going to change the value of the placeholder attribute. We need to enter your e-mail. As for the second input group, it's going to be for the phone. Let's change here. The value of the placeholder making answer phone number. Alright, so now it's time to create the third input group. It will consist of a label and text area. And once you open div tag with the class input-group, then insert your label with the text message. So the label is going to be followed by the text area. I'm going to add to it class attribute with a value form text area. And also we need placeholder. Your message here. Alright, so the last thing that we want to do is to create the submit button. I'm going to do that using an input element. We need to type submit, then the value submit. And also I'm going to add here class attribute for btn. Alright, so the HTML markup is ready. All the elements are created and now we have to move on and start to write some CSS. I'm going to insert new comments for contact. And of contract. Let's select section element and create some space on top and bottom using padding. I'm going to make padding 15 RAM on top than zero on the right side, 20 RAM on the bottom, and zero on the left side. Also, I'm going to place the content in the center using text-align center. Okay, next I'm going to set the image as the background. Let's specify the part of the image in the URL function. I'm going to select a witch called Contact Us G dot PNG. Then we need center and no-repeat. Besides that, I'm going to define the size of the background. Let's make it cover. Okay, So right now, That's it about the section element. Let's go ahead and customize the heading. Let's select it. First of all, let's increase the font size. Make it seven RAM. Then I'm going to make the text a little bit bolder using font weight with a value of 700, transform text into uppercase. And also create some space between the letters using letter spacing, 0.5 rem. Next, I'm going to change the color. Let's use your white color. Next, I'm going to add some shadow to the text using text shadow with the following values, 01 RAM to RAM and the black color. And finally, create some space at the bottom using margin, bottom, a tram. Okay, so the heading is customized. Right now it's not quite feasible, but once we add an animation to the background, it will look much better. Next, we have to take care of the form element. So let's go ahead and select it. And first of all, let's define its width and height. I'm going to set its width to seven to run. As for the height, let's make it 50 RAM, then change the background color. In this case, I'm going to use white color. But with the RGBA value, we need to place here to 5053 times. And also I'm going to add here the opacity 0.95. Okay, let's consider the form is placed on the left side and we need to center it. For that. I'm going to use margin. All right, next, I'm going to center the content inside of the form. For that I'm going to assign to the form element class center. The content is centered, but input groups are placed side-by-side. And in order to fix that, Let's change the direction of the flux and make it cool. Okay? After that, I'm going to make the form slightly rounded. For that, I'm going to use border-radius with value 0.5 rem. And also let's add some shadow using box shadow with values 01, RAM, three rem, and the black column. Okay, That's it about the form. For now, let's go ahead and select the input group. First of all, let's set its width 200 per cent. Then I'm going to use flexbox. We need to make input-group flex container using display flex. And also we need to change the direction. Let's make it column. Okay? So right now the first input and the text area are stretched and they take up the entire width of the form. As for the second and third input elements, they are the parts of the input groups element. So let's select input groups and make its width 100%. Alright, so now all the inputs and the text area or stretched, we need some space inside of the form. And that's created space using padding with the value five rounds. Okay? So now we have a better result, but actually it's not what we want. We need to place the e-mail and the phone you put side-by-side. And for that, I'm going to use again display flex. Now we need some space between the input fields for that, Let's add first, decrease their width. So I'm going to select output groups, followed by the input group. Let's go ahead and set with 248.5 per cent. Then after that, I'm going to assign to the input groups, justify content space between. Alright, so the inputs are aligned and next we'll have to customize them. First of all, create some space between the input groups. Let's assign to the input-group margin with values one rem on top and bottom and zero on the right and left sides. Okay, let's go ahead and customize the inputs and also the text area. I'm going to select both of them. At first. Let's select inputs. Then duplicate this line of code and change input into text area. First of all, I'm going to create some space inside of the fields. Let's use for that padding. Actually, we need a little bit more space at the top because we're going to place the labels there. So we need here the values in the following way. The first one is going to be three ramp and the rest of the values are going to be one run. Okay, next, let's change the background color. Let's use your secondary color. Also. Define the border. Let's add here 0.1 rem solid, and again the secondary color. Alright, so the fields look much better. What do we need to add to them some more styles? Let's decrease the font size. Make it one point for RAM. Also change the color. Let's use here light gray color. Next, I'm going to create some space between the letters. Let's make it 0.1 RAM. And finally, let's make the input and the text area around it using border-radius 0.5. Alright, so we are almost done with the input fields. I'm going to customize them on focus. I mean, once we focus on the fields, then I want to display the border. So we have to select a gain input and the text area, but with a focus pseudo-class. Let's add here border points, one run solid. And the collar C. C. C. Also lets you see your little transition in order to make the effect smoother. Right border and the duration 0.3 s. Alright, so that's it regarding the input fields and the text area. Now we have to take care of the labels. I'm going to customize and place them inside the fields. So let's select them as first, let's define the font size, make it one point to RAM. Also, change the font weight. Make it 600. Then I'm going to transform text into uppercase. Then use letter spacing, 0.1 room. And lastly, change the color. Make it great. Alright, So the labels look nice, and now I have to place them inside of the fields that we need to make their position absolute. Then we need to position relative for the input group because we need to position the label according to the parent element. Next, let's set top and left properties. Both of them to one round. Alright, that's it about the labels. They look nice and actually there is left on the one element to customize, which is a submit button. So let's go ahead and select these elements. First of all, I'm going to define its width. Let's set it to 100%. Then create some space inside of the element using padding with a value of one RAM. Next, I'm going to define the font size as 1.6 RAM. Also create some space between the letters that we need some space at the top using margin, top, one ramp. And then change the background color, make it light gray. Alright, so that's the way how they submit button looks right now. We need to add to it some more styles. Let's change the color of the text. I'm going to make it white. Also, we need to make the button rounded using border-radius 0.5 RAM. Then get rid of the default border using border none. And finally, change the type of the course are made pointer. Alright, so the last thing regarding the button is to create a hover effect. I'm going to change the background color slightly on hover. So let's select Form btn with hover. And to change the background color, make it gray. Also, let's use here transition. We need background color and the duration 0.4 s. Okay, so now we're almost done before we move on and create the animation on the background. I want to mention here about one little issue. As you know, by default, you can increase the size of the text area. And if I do that than the layout of the form element will be messed up. So in order to avoid that, I'm going to set max height and max width for the text area. Let's go ahead and select it. Let's set max height to 15. Run. As for the max width, let's make it 100%. Alright, so now everything works perfectly with styling. We are done, and now we have to create an animation. Actually, the animation is going to be a simple one. Overall, we will have five different steps and we will change the background color on each step. So let's go ahead and create keyframes. I'm going to name the animation as contact PG. So on 0%, I'm going to make background color 3D, 3D, 3D. Then on 25%, I'm going to make it c e, d h e. For. Next, we will have 50 per cent. As for the value, it's going to be 181. At three. Next comes 75 per cent. I'm going to make the background color ff78, 42. And the last step, I mean, on 100%, I'm going to make the background color again. 3d, 3D, 3D. Okay, so that's it about the keyframes. They are ready. Let's assign the animation property to this section elements. At first we need to specify the name of the animation, which is contact BG. Next, let's define the duration. Right now. I'm going to set it to 10 s, but we will change it later. And also, we need to run the animation infinitely. So we have to write here infinity. Alright, so as you can see, the animation works fine. It runs a little bit faster. So let's change the duration. Make it 35 s. Alright, let's see about the contact section. We have finished working on it, and now we have to move on and take care of the filter 78. Project 8 - Create and Style Footer: First of all, let's insert new comments in HTML. Footer and of footer. And then open HTML5 footer, semantic element with class name footer. The footer will consist of two different parts. The first one is going to be a list of a couple of navigation items. As for the second part, it should be paragraph for some copyright texts. If we hover over the items than they will rotate and we will get some 3D effect using shadow. At a glance, it seems that the items are moving up. Let's go ahead and create a list. It should be represented by div element and a couple of links. Let's open div tag and assigned to class footer list. Then insert here link element with class footer link and with a text. So overall we will have five different items. Let's duplicate it four times and change the content. The second item is going to be towards. Then we will have about us offer and content. Okay, That's it about the first part. Let's go ahead and create a paragraph. Let's assign to p element class footer paragraph, and put here some contents. Copyright. Then for the copyright sign, I'm going to use HTML5 entity. We need ampersand, copy, semicolon, then code and create. All rights reserved. Alright, that's it about the markup. Let's go ahead and add to it some CSS. First of all, I'm going to insert new comments. Footer, Footer. Then select the footer element. And first of all, let's change the background color. I'm going to use gray color. And also I want to create some space inside of the filter using padding. Let's set it to four, run on top than zero on the right side to Ram at the bottom and zero on the left side. Alright, next I'm going to place the least in the center. And for that, let's go ahead and select footer list. I'm going to make it flex container using display flex. And then in order to place the items in the center, Let's use justify-content center. Alright, so the list items are placed in the center and now we can customize them. Let's go ahead and select the link. At first. Let's increase the font size, make it to ramp. Then change the color. Make it white. And also, I want to create some space on the right and left sides of the items using margin with a value of 0.2 ramp. After that, we're going to create some space inside of the wings using padding. But before that, in order to make this space visible, let's change the background color of the links for awhile. Let's make it red. And then create some space. Use padding. Let's set the space on top and bottom 2.3 RAM. And then three rem on the right and left sides. And also increase the space between the letters using letter spacing. 0.3 ramp. Alright, that's it about the links. Let's change the background color. Make it great. Okay, before we move on to the paragraph, I'm going to add a hover effect to the links. I'm going to rotate them and also add to the box shadow on hover. So let's go ahead and select footer link with the hover. Then I'm going to use Transform, Rotate function. Let's rotate links by minus ten degrees. And also adhere box shadow with the values zero to run three rem and the black color. And finally, let's use transition. We need here all the duration 0.2 s. Okay? So if we hover over the links, then we will get a nice and cool effect. Alright, that's it about the links. Let's go ahead and take care of the paragraph. Let's select it. First. I'm going to align the text in the center. Then to find the font size, make it 1.5 ran. Change the color. In this case, I'm going to use secondary color. Then let's create some space between the letters. Make it point to ramp. And finally, I'm going to create some space at the top using margin top five or n. Okay, so where the footer we are done. It was kinda simple one, but I think it looks nice. Actually, step-by-step, we're moving to the end of this project, but we still have some work to do. Next, we have to start to work on navigation 79. Project 8 - Create and Make Navigation Work: First of all, let's take a look at the finished project. As you can see at the top left corner of the webpage, we have a fixed menu icon. If I click it, then the output will display. Links are coming from top to bottom with nice transition effects. They change opacity on hover. And also now four has its full screen background or presented by the image. Besides that, we have x closing button at the top right corner of the nanopore. And if I click it, then we'll get back to the main page. Okay, So that's it, what we're going to build. I'm going to insert this part right above the header. So let's insert new comments. Now part of Napa. Then open a div elements and assigned to it couple of classes. The first one is going to be open for icon. As for the second one, it should be. Now for icon. The menu icons will consist of three lines. There will be represented by the developments. So let's open it with class line, then duplicate this line twice. Next, we need to open another div elements, which would be the wrapper. So assigned to each cluster. Now for wrapper, next we need nav element with the class. Now for inside the nav element, we will have two different parts. The first one is going to be x closing button as well. The second one, it should be the navigation list. So let's go ahead and open div elements. And assigned to it crosses close. Now per icon and now per acre. Than institute two lines, open development and assigned to it two classes. The first one is going to be the common class line. As for the second one which should be vine one. Then duplicate this line of code and change the class name we need here, line two. Alright, let's go ahead and insert you the second part, I mean the list of the navigation items. Let's open developments and assigned to the class nav list. And then pass you a couple of link elements. Let's assign to it a class name, nav link. And insert here the first navigation item home. Let's duplicate link element four times and change the items. The second one is going to be towards. Then we will have about us and contact. Alright, so that's it about the HTML markup. I'm going to start to write some CSS. Let's go ahead and insert new comments right after the common styles we need here, navbar. Then end of navbar. Then select the not-for icon. Actually this class name belongs to both buttons. Let's define the width and height. I'm going to set both of them to 5.5 ramp. And also change the background color. Make it white. Right now both buttons are visible right now it's hard to distinguish them. So it could be better if we hide the second button as well as the list. Because right now we're going to work on the first part. So let's select nap or wrapper and assigned to it, display none. Alright, let's go ahead and position the icon. I'm going to select it with its individual class, which is open now for icon. Let's go ahead and set its position to fix. Then define top and left properties. I'm going to set both of them to 6.5 run. Okay, As I see right now, the icon is not visible because it has ended up behind the header. And in order to fix that, Let's use z-index property and set it to 200. Alright, now the problem is fixed. Next, I'm going to make the Icon rounded. Actually, we need both buttons to be rounded. So let's assign to the NAACP or icon border-radius, 50 per cent. And also change the cursor, make it point. Okay, next, I'm going to take care of the lines. First of all, let's go ahead and display them. I'm going to select lines using the common class. Now for Icon wine. Let's define its height, make it point to run, then set width to 3.5 rem. And also change the background color, light gray. So right now the items are placed on top of each other. We need some space between them and also we have to place them in the center of the eye. For that, I'm going to use our predefined class Center. We need this class for both of the icons Also we need to change the flex direction and make it a column. Because display flex aligns the flex items horizontally in a row by default. Finally, we need space between the lines for that. Let's select again online, but now with open, now for Icon class and create space using margin with the values point 3.0. Alright, so the first nap or icon is customized and now we have to move on and start to work on the navigation. So right now it is hidden. So let's get rid of display none. The wrapper will take up the entire viewport. I made 100% of the width and height of the viewport. So let's set with 200 viewport width. As for the height, let's make it 100 viewport height. And also change the background color. I'm going to use here RGBA value with white color. Let's place here 253 times. And also the opacity points out. Alright, so right now, that's the way how nap or wrapper looks like. We need to define which position it should have positioned fixed. And also I'm going to set left and bots and properties both of them to zero. So right now, now for wrapper ended up behind the header. And now let's use again the index property to fix that problem. Let's set the index to 300. Okay, let's move on and start to work on the napa itself. I mean the nav element. Let's select it and define width and height. I'm going to set both of them 200 per cent, and also change the background color. Let's use your royal blue. So now the now port takes up the entire width and height of the viewport. We need to add some space around it, like it's in case of the header. Remember the amount of space on each side equals to 3.5 ramp. So therefore, let's define padding and assign to it the first value, 3.5 rem. The space is created. But as you can see, we have a little issue on the right side. Here we have a scroll bar. Now for rapper has positioned, set a fixed, and it doesn't take into account the scroll bar. We need to increase the amount of space on the right side. The size of the scroll bar equals to 20 pixels. So we need to make the padding on the right side, 5.5 rem. Then we need 3.5 rounds twice. The problem is fixed. Let's go ahead and take care of the closing. Now for icon, it's going to be placed at the top right corner of the Napa. So let's select it and make its position absolute. In order to place the icon according to its parent element, Let's assign to Napa position relative. Then define the top and right properties. I'm going to set top property to 2.5 RAM. As for the right position, let's make it three round. Okay, So the icon is positioned. Let's place those lines in the right way and display the x. First of all, let's select them with common costs name close now for Icon line and make the position absolute. Now we need to rotate each of the lines by 40 degrees, but with opposite directions. Let's go ahead and select the first line. With cross line one. We need to use Transform, Rotate function. Let's put here four degrees. Then I'm going to duplicate this entire code, changed the class we need here, line two. And instead of 40 degrees -40 degrees. Alright, so the snapper icon is customized and it's time to move on and change the background for now pour. We no longer need that blue background. So let's get rid of it and insert here. Linear gradient with RGBA values. I'm going to use black color twice, but with different opacities. And the first case, the opacity is going to be 0.5. As Paul, the second RGBA value. We need the opacity 0.3. Next I'm going to specify the URL. I'm going to select image called Napa, PNG or JPEG. It's class in images folder. Then we need center and no-repeat And also define the size of the background. Let's make it cover. Alright, so the image is set as the background and now it's time to take care of the navigation list. Right now, links are not quite visible. So first of all, let's select them using class naphthalene. Increase the font size, make it three ramp. Then change the font weight. I'm going to make links folder. Let's set font-weight to 700. Change the color, make it white, and transform text into uppercase. Okay, so now we can see the links. And the next thing that I want to do is to define the background color for each navigation item. We can do it from CSS. I mean, we are able to select each of the items with nth child pseudo-class and assigned to each of them different background color. But I'm not going to do that from CSS. Let's use JavaScript. First of all, I'm going to create an array of colors. Let's put here five different colors. The first one is going to be 6495 ED. Then the next one is going to be seven, f, f, f, D4. Then I'm going to use F fa078. Then next we need f08, 080. And the last color is going to be a f e, e, e, e. Alright? That we need to select all the links. Then we need to look through them and assign the background color to each of the items. So let's go ahead and select them using the query selector all method. Let's specify here the class name naphthalene. So in this case, the query selector all method returns an array-like objects, which is called no lists. I'm going to transform node list into an array. And then we will loop through the array using the foreach method. In order to transform node list into an array, we need to use array from method. Then after that, we can use the forEach method. For each allows us to loop through an array and execute a function. For each array item, we need to pass a callback function, which will take one parameter and it's going to be the current item. Then we need to define background color. For that, I'm going to use style and CSS text properties. We need item dot style dot css text. So now we need to pass here some CSS code. For that. I'm going to use ES6 template strings. We need to open backticks. Then insert here background color. So now we need to use the values from colors array separately. On each iteration, we need to define the index number of the colors. And for that, I'm going to create a new variable called I. Noticed that I used here let declaration. This variable is going to be something like counter. By default it should be equal to zero. Now, down below, we have to use $1 sign with curly braces. Now we have to pass your colors array. And in square brackets, we need to indicate the index number. So we need to pass here i, followed by the increment operator, which is expressed with double plus signs. On the first iteration, the index number is going to be zero and the first column will be used. Then on the second iteration, the counter will become one, and the second column will be used and so on. So as you can see, each navigation item has its own background color. Next, I'm going to expand links all the way to the bottom of the nanopore. So let's go ahead and select novelist. Make its height 100 per cent. And also besides that, I'm going to make it flex container using display flex. So now the items are stretched from top to bottom and they take up 100% of the height. Next, we need to take care of the width. Those items should take out the entire width as well. So let's define the width and make it 100%. Alright, so right now, everything is going fine. I want to place those items in the center of those columns. For that, let's assign to each of the link element class center Okay, After that, let's decrease the opacity, make it 0.8. C. The opacity has affected on the button as well. So let's define Z index property for the button and make it 300. Alright, next I'm going to create a hover effect. I want to change the color of the items and also increase the opacity on hover. So let's go ahead and select not link with hover. Make its opacity one. And also change the color, make it primary. Besides that, I'm going to use transition where the values all and 0.3 s. Okay? So the hover effect works fine. And now I'm going to make the icons work. So by default, I'm going to place now for wrapper down below and make it hidden. For that, Let's change the value of the bottom for an upper, upper and make it -100 per cent. And also make opacity zero. So the navbar wrapper is hidden. Next, I want to place the navigation items up because once we click the menu icon, they should move from top to bottom. For that, let's assign to the nothing position relative. And then define top position. Make it -100%. Right? Now we have to use JavaScript. Actually, we will create class change in CSS, which will be added to the container from JavaScript. So let's create a variable in which I'm going to store the container. Let's call this variable container and then select these elements using query selector method. Now we have to select the menu icon and we need to attach to it click event. Let's select the element again using querySelector method. I'm going to specify the class name, open enough bar icon. And then that's attached to it. Event listener. We need here click event and the arrow function. So once we click the menu icon, we have to add to the container class change. Therefore, we have to insert your container dot class list. As you know, class list stores all the classes that the element has. It should be followed by the add method, which adds class to the class list. And the parenthesis I specify class name change. Okay, That's it about the first item. Let's move on to the second item. I mean the x closing button. Once we click it, we need to remove the class change from the container. So let's go ahead and duplicate this code. Then change the class name we need here, close. Now per icon. And also instead of add method, use, removed. Alright, sit about JavaScript. Let's go back to CSS. Now we have to create the class change. Then we need to select Napa wrapper. In order to display the rapper back, we need to set its bottom position to zero. And we need to increase the opacity. We have to make one. Then again, we need to change the class. But for the nav link, now, as you know, links are placed above and we need to make the top position zero. So let's select Change, followed by a noun link and make the top position zero. So if I click the menu icon, then the inoperable display, and if we click the X, it should hide. So actually we are almost done. We need to customize effects slightly. Also, we need to display the navigation items in order with some delays. Let's assign to Napa rapid transition. With the following values. We need bottom 0.5 s. Then opacity, 0.2 s. We need the same transition down here, but with some delay. So let's grab this line of code, paste it here, and at here, delay 0.25 s. Now, if I click the icon, the number will display with some smooth transition. But actually that's not what we want. We need to display the navigation items in the order. So we need to transitions for each of the items but with different delay time. Let's go ahead and select again change. Followed by now link with the pseudo-class F child. Specify here the first item, one, and insert your transition with the following values. We need top property with duration 1 s and the delay time 0.4 s. Then opacity 0.3 s. The color 0.3 s as well. Let's duplicate this code four times and change the numbers of the items and the delay time. For the second item we need 0.6 s. Then for the third item, lets you see your 0.8 s. For the fourth item, we need 1 s. As for the last item I made the fifth item, we need delay 1.2 s. Alright, so let's can see items of displaying in order. And actually we are almost done. The only thing that have to do is to make the items hidden while they are placed up. For that, I'm going to use overflow hidden, but according to the y-direction. Alright, so now everything works perfectly. And actually we're done with our project. All these sections are built and customized. And finally, we have to make the project responsive to different screen sizes. 80. Project 8 - Make Project Responsive: Alright, first of all, let's inspect the page and turn on the responsive mode. As you know, we have built this project on the resolution. And now I'm going to find a different break points on which we will need to make some changes. Throughout this part, we will use CSS media queries. So let's go ahead and find the first breakpoint. I think we need to make some changes once we make the width of the window lower than 1,200 pixels. On the breakpoints, I'm going to place cards, particularly in a column. Let's check the null part. It looks fine. The only thing that we see here is a little space on the right side. We see that space because in the responsive mode, the scroll bar is not visible. And that's the reason of that issue. So you can just ignore it because on smaller devices it will look good. Let's create a CSS media query. I'm going to specify the max-width as 1,200 pixels. Then select cards wrapper. Change the flex direction. I'm going to make it column. And also we need a align items center in order to place the cards in the center. Alright, so the cards are placed vertically, and now we have to add some space between them. So let's select the card itself and add huge margin. Three rem on top and bottom, and zero on the left and right sides. Alright, Finally, I'm going to increase the width of the backgrounds of these stories. So select story BG and make its width 85%. Okay, So on that breakpoint, we are done. Everything else looks fine. Let's move on and find the next one. I think the next one should be thousand pixels, because on that breakpoint, some of the elements need to customize. So let's use against CSS media and specify the max-width As thousand pixels. Let's check them now for I think it would be better if we place navigation items vertically in a column. For that, we need to change the flex direction. So let's select the list and change the flex direction column. So right now they are placed vertically, but have here an empty space. Those items should take up the space. And in order to achieve that, Let's use one of the flexbox properties called flex grow. Let's select nav link and set flex grow to one. This property allows the flex items to take up the available space inside the container. Okay, let's move on and take care of the header. I'm going to place heading and paragraph in the center of the page. So let's select the header text and define its position, make it absolute. Then we need to set top and left properties, both of them to 50 per cent. In order to send to the element perfectly. We have to use Transform with Translate function. And we have to pass here -50% for both directions. I mean x-axis and y-axis. The heading and progress are placed in the center. But as you can see, they ended up behind the air balloon. In order to fix that, Let's set the index to ten. Okay, Next I'm going to decrease the font size of the heading and paragraph. So let's select heading. Change the font size, make it six Ram. Next, I'm going to select header paragraph. Let's make its font size 2.5 run. Alright, we had our texts, we're done. Let's move on to the next section. We need to decrease here the size of the heading. So let's select it and make its font size. Six round. Okay, that's it about this section. Next comes the story section. I think from this breakpoint, we no longer need to skew the background. So I'm going to give them the shape of the rectangle. Let's go ahead and select story BAG. Then use Transform Skew x and make it zero. Next we need the story itself. Let's grab this line of code and paste it. You. Alright? Besides that, I'm going to place the content vertically. For that we need to change the flex direction. So let's make it column and also align items in the center. Alright, so the last thing regarding the storage is to create some space under the images. Let's go ahead and select the image. And assigned to it margin bottom with a value of three ramp. Okay, that's it about these stories section. Finally, I'm going to take care of the filter. I'm going to decrease the space inside of the links and also am going to decrease the space between them. So let's go ahead and select the link than defined padding as 0.3 RAM on top and bottom and two RAM on the right and left sides. And also we need to use margin with 0.1 rem. Alright, so I think we are done At breakpoint. Everything looks nice. Let's go ahead and find the next one. So it should be 800 pixels. So let's go ahead and create new media with max-width 800 pixels. On that breakpoint, I'm going to hide the paragraph at all. Let's go ahead and select it and assigned to it, display none. Next, let's decrease the size of the heading of the card section. So let's select popular tools heading, and make its font size five run. Alright, So actually everything seems to be fine except for the contact section and the footer. I'm going to decrease the width of the form elements. So let's go ahead and select it and set its width to 90%. As for the footer, I'm going to place the links vertically in a column. So let's go ahead and select footer list. Change the flex direction column. Also, we need to align the items in the center. Lastly, let's add some space between the links. Select footer link, and add to it margin. One rem on top and bottom and zero on the right and left sides. Alright, so actually, that's it about this breakpoint. Let's go ahead and find the next one. So the next one is going to be, I think, 650 pixels. So let's create new media query and specify the max width as 650 pixels. On the break, breakpoint, I'm going to extend this sections to the entire page. So let's select the container and gets rid of the margin. Make it zero Then I'm going to take care of the Navbar. Let's start with icons. Select, open up our icon and change top and left positions. I'm going to set both of them to 2.5 ran. Before we move on to the next icon, I want to get rid of the space around the napa. So let's select now for wrapper and set padding to zero. Then select the second icon, which has closed snapper icon, and change the right position. Make it 4M. Alright, that's it about the navbar. Let's go ahead and select header. I'm going to set its height 200 vh. Alright, so we're done with header. Let's move on to the contact section. I'm going to decrease the size of the heading. So let's go ahead and select contact heading and make its font size six round. Also, I'm going to add some styles to the contact form. Let's change the amount of the padding. Make it to ramp. As for the height, let's make it four to ramp. Alright, so that's it, about 650 pixels. And finally, we need to customize the project on the last breakpoints, which I think is going to be 500 pixels. So let's go ahead and create new media with the max-width 500 pixels. So the easiest way to make the elements look nice on that breakpoint. I thought of to decrease the font size of the HTML elements. As you know, right now, it equals to 62.5%. And I'm going to decrease H2 45%. This code will have effect on the size of every element because throughout this project, we were using RAM as the measurement unit. Okay, so I think everything looks pretty nice. And finally, we are done. We have finished building this project. So congratulations, I hope you enjoyed it. Learned lots of cool and interesting stuff. If you liked this project, please thumbs up, comment below, share the video, subscribe to our channel and click the bell to get notified on coming projects. Okay. See you next time. 81. Project 9 - Project Preview: Alright, so it's time to build our next project, which is going to be the clone of one of the most popular and commonly used websites called Paypal, will create the user interface of the different pages. I'm in the main page, login and sign up pages. Of course it won't be the exact clone with the full functionality. As I said, we will build just a UI with HTML, CSS, and JavaScript. Paypal looks different in different countries. The user interface is frequently changing from time to time. So do not worry if this is not the exact clone of the current UI. Alright, so before we jump right into writing the code, at first, let's describe what the project looks like. So as I said, we'll build three different pages, main login and sign up. We'll start with the main page. It will consist of a couple of different sections. The first section is going to be the banner with navigation. We have here several navigation items. If I hover over them, then the drop-down menu will display. It will switch once we hover over another navigation item. Also, we will have here two different buttons for login and sign up. If I click them, then we will navigate to the proper page. So the banner will be followed by the second section. It will include three different parts with Font, Awesome icons, some text elements and buttons. Then we will have this blue section with some different paragraphs. Next, we will build this little section here with an image and three different steps. Down below, we will have a button to sign up, followed by the footer. Alright, so let's see about the main page. Let's have a look at the login page. It will be quite similar to the original login page. We will have here two input fields with buttons. That's probably sign-up page. It will consist of two parts. On the left side, we will have several images of the customers. As for the right side, it will include two different options. Whether we want to create a personal or business account. Alright, so that's it about the project. As usual, we'll make it responsive to different screen sizes. If I inspect the page and switch to the responsive mode, you will see that it's responsive. One thing to note here, on smaller screen sizes, we will no longer have the drop-downs. They will transform to the menu like this. Okay, So that's it. We are ready to start to build the project. So let's move on. 82. Project 9 - Create and Customize First, Second, and Third Sections: Hello and welcome to our new YouTube video. In this tutorial, we're going to be building the website called Wine House. The project is going to be created based on HTML, CSS, and JavaScript. You will learn about how to create nice and cool effects. So I hope the project is going to be interesting and helpful. As we said throughout this tutorial, we're going to use HTML, CSS, and JavaScript. So I expect that to all already know some basic stuff of those three technologies. Alright, let's go ahead and first of all, describe the project. It consists of five different pages and they are aligned in a different way. Mostly you may meet the websites where you can scroll up and down the different sections of the webpage. But in our case, you can scroll the page is horizontally. I mean, once you scroll, you will navigate to the different pages with some nice and cool transition effects. Also, you can see that we don't have here the scroll bar. Besides that, you can see here the controllers, I mean, those little arrows. If you click them, then you will navigate to the different pages. Also down below, we have a progress bar, which shows us on which page we currently are. Also, we have here a fixed navigation. And the navigation items have some nice hover effects. Okay, So the project is going to be responsive to different screen sizes. If I inspect the page, then switch the responsive mode and check the project on different break points. You will see that it's responsive. On smaller screen sizes. We no longer have the fixed navigation. It is transformed into the hamburger menu. Alright, so actually this is all about our project. Let's go ahead and get started. I've created a new folder on the desktop called Wine House, in which I have another folder for the images. Let's go ahead and open this folder in VS code. I'm going to create three different files. Index.html, style.css and scripts dot js. That open index.html file and generate the basic HTML document. I'm going to use Emmet. Let's put here the exclamation mark and press Enter or tab. Next, I'm going to link those three files. So let's open link tag and specify here the path of the CSS file. Next I'm going to open script tag down below, above the closing body tag. And in source attribute, let's specify the path of the script.js file. Okay, besides that, I'm going to use one of the Google fonts throughout this project. So let's go ahead and grab the link. Let's go to the Google Fonts website and search for font called cormorant Garamond. Let's select here couple of different font weights and then grab the link. I'm going to paste it in the head element. Okay, next I want to change the logo and the title bar. We need to open link tag as the value of the attribute we need here icon. Then I'm going to specify the type. He's going to be imaged slash PNG. And finally, we have to specify the path of the image and the H reference attributes. We have here, images folder, and then we have to select a logo dot PNG. Finally, change the title. We need Wine House. Let's go ahead and run the project or the browser. For that. I'm going to use one of the VS code package is called a live server. It allows us to run the project life to the browser and make changes without refreshing the page each time. So you can install and use this extension. So the project is live to the browser. Also you can see here the logo in the title bar. Lastly, let's organize our working environments a little bit placed the editor and the browser, like so, and get started. Alright, so we will create and customize each of the pages separately. And then after that, we'll program the scroll effect and also some other different things. Let's go ahead and start to create the HTML markup open div tag, which is going to be the container. Next we will have another div elements. It's going to be the wrapper So overall we will have five different pages, I mean five different sections. So let's go ahead and create this section elements for all of them. I'm going to assign to it class section one. Then let's duplicate it four times and change the class names. We need class names from two through five. Alright, so I'm going to start with the first section. I made the homepage. It includes the heading with the underline and the full-screen background. You see here the navigation arrows and the progress bar. They are fixed and they are displaying on all of the pages. We will take care of them a bit later. Okay, let's go ahead and open the div elements inside the first section. These elements will have two different classes. The first one is going to be the common class section wrapper. For the second one is going to be the individual class. I'm going to call it section one rapid. Actually we need this section wrapper for the rest of the sections as well. So let's copy these elements and paste it for all of them. Also, we need to change the class names. We need two numbers from two through five. Okay, Let's go back to the first section. We need to insert a div tag which will wrap the heading. Let's assign to it a class name, section one, heading wrapper. And pass here H1 heading elements. I'm going to assign to it class section one heading. And also, let's place here the following texts. The best wines around the world. So that's it about the first section. Now, I'm going to start to write some CSS. First of all, I'm going to create some common styles. Let's select every element using an asterisk and put here some common and reset styles. I'm going to get rid of margin and padding from every element. Let's set both of them to zero. Also, I'm going to make box-sizing, border-box. Next I'm going to get rid of some default styles. I mean, let's say outline to none. Also, I'm going to set the text decoration to none. Then gets rid off default styles from the list elements. Let's make list style type none. And finally, I'm going to set font family to call moron Garamond. Sorry. So throughout this project we're going to use RAM as the measurement unit. Right now, 1 g is equal to 16 pixels because the font size of the HTML element is equal to 16 pixels. By default, I want to convert one remedy to ten pixels. And for that we have to decrease the font size of the HTML element, and we have to make it 62.5%. The size of the heading has decreased. After that, let's take care of the wrapper. I'm going to set its width and height, both of them 200% of the viewport. Let's assign to the width property hundred viewport width. As for the height, I'm going to make it hundred viewport height. Okay, next, let's select this section element itself and set width and height, both of them 200 per cent. Then I'm going to make its position absolute. And besides that, we need to make the position of the wrapper relative because I want to position sections according to their parent element, which is rapper. After that, Let's make the lag position of the section zero. After that, I'm going to select section wrapper. Let's define its width and height. We need to inherit both of them from the section element. So let's set width and height both of them to inherit. So right now the first section ended up behind the rest of the sections because of the position absolute. As I said, I'm going to customize it for the first section. So in order to place it at the top of the other sections, Let's use the Z index property. Select the first section and set the index to 50. After that, I'm going to set the image as the full-screen background. So let's select Section one wrapper Then I'm going to use here linear gradient. Let's put here black color. I mean RGBA with three zeros and with the opacity 0.5. Next, we need again RGBA, black color, but with different opacity. Let's make it 0.4. Next, we need to specify the URL of the image, the part of the image. We have folder called images, and we have to select Section one, PG dot JPG. Next, we need Center and also no-repeat. And finally, let's set the size of the background, make it covered. Alright, so as you can see, we have here a full-screen background image for the first section. Now let's go ahead and take care of the heading out, select its wrapper div. First of all, I'm going to take you off the position of the wrapper. I'm going to place the heading down close to the bottom of the page. So let's make its position absolute. Then define top property and make it 70%. As for the left property, I'm going to make it 50%. And also we need to transform with the translate function. We have to pass here -50 per cent for both directions. I mean, for the x and y axis. So the heading is placed in the right way, but right now it's not quite visible. So let's go ahead and fix that. I'm going to select heading itself. Let's make its font size. Ten RAM. Also change the font weight, make it 300. And change the color. I'm going to use here. White. Next I'm going to transform the text into capitalizing. And also create some space between the letters using ledger spacing with a value 0.1 ran. After that, let's add a border at the bottom of the heading. So use border bottom with the values point to ram. Solid. And as the color, I'm going to use D5 with four zeros. Alright, so the heading looks nice. Lastly, I want to align it to the right side, and also I want to disable the user selection. So we need to use text align with the value, right? And then user select none. Alright, let's see about the first section. It looks nice and we can move on to the second one. First of all, let's go ahead and create the HTML markup. So the second section will include two different images and the button. Let's go ahead and open a div tag with the class sale. So we will have an image and a button in their development that's open IMG element. And the source attributes. I'm going to specify the path of the image. We have to select bag dot PNG from the images folder. I'm going to assign to the alt attribute sail back. And also we need your class attribute with a value sail back. Next, let's institute a button with a class name, sale, btn. And as the tax, I'm going to pass your order. Now. Besides that, I'm going to insert here another image, but it's going to be placed outside of the div. Let's specify here the path of the image. We need wine bottle dot PNG. Also, let's assign to the alt attribute, the value of wine bottle. And besides that, I'm going to add a class attribute with a value wine bottle. Okay, so that's it about the markup of the second section. Right now, the second section ended up behind the first one. That's why we don't see here some of the elements. I'm going to fix that issue using again, the index property. I'm going to change here the class name. Let's use Section two. Right now. I wanted to use this way, but eventually we'll define different values of the index property for all of these sections. Alright, so now we need to set the background for the second section. Let's go ahead and grab this code from here. And then make some changes. We need Section two wrapper. Then change the opacities. Let's make them 0.8 and 0.9 And also change the name of the image. We need section to be G. Okay? So that's the way how the second section looks right now, as I see we have here the scroll bars, and I want to get rid of them. For that, we have to assign to the wrapper overflow hidden. After that, let's take care of the layout of those elements. I'm going to use Flexbox. Let's use here display flex. Then we need a align items center to center the elements vertically. And also I'm going to use justify contents with the value space evenly. Alright, let's go ahead and start to style each of the elements. At first, I'm going to select div element with the class sale. Let's use again flux books. I want to make it flex container. Then we need to change the direction of the flux. Let's make it column. And after that, for vertical and horizontal centering, let's use align items center and justify content center. Alright, after that, let's go ahead and customize the first image. Where it's decreased slightly the opacity make it 0.9. And also I'm going to change the width of the image. Let's make it 45 rather than select the button. It has class sale, btn. First of all, let's define the width and height. I'm going to set width to 20 RAM. As for the height, let's make it five rem. Next, I'm going to take care of the text. Let's increase the font size. Make it to Ram. Also change the font weight. Make it lighter. Then transform text into uppercase and create some space between the letters. Let's make it 0.1 rep. Okay, after that, I'm going to set the background color to transparent. Also, change the color, make it white. Then create some space at the top of the button using margin top with a value for RAM. And finally, Let's create border with values 0.1 RAM, solid, and use white color. Alright, so the button is customized. Lastly, I want to create a little hover effect. I'm going to change the background color on hover. Selected button with a hover. Change the background color. Use here again this red color. And then in order to make the effect a little bit smoother, use transition with a value background color and with it duration 0.2 second. Alright, so the button is styled and the last element that I want to customize is the second image. So let's go ahead and select it. I'm going to change opacity. I mean, I want to decrease it to 0.6 and also change the width. Make it a two ramp. Alright, so with the second section we are done. It is styled and we have to move on and take care of the third section. It's going to be, again, kinda simple one. We will have the full screen background image. Also, we will have other images in the center of the page and these texts right here. So first of all, let's go ahead and create again the HTML markup. We will have three different elements here. The first one is going to be the heading open H1 tag with a class section three heading. And pass here the text, the best quality. Next we will have image. Specify the path of the image in the source attribute. We need to select frame dot PNG. Also add here the value of the alt attribute right here, let's say grapes frame. And then add a class attribute with a value frame dash IMG. Let's duplicate this line of code. Change the name of the image we need here, grapes dot PNG. Also as the value of the alt attribute. I'm going to leave here just grapes. Event changed the class. We need here grapes Dash and G. Okay, so right now this section is not visible and the reason is the same. It has ended up behind the second section. So let's fix that again using z-index property. I'm going to change here the class name. We need Section three. So now the elements are visible. Let's go ahead and customize this section. First of all, let's set the image as the full-screen background. Let's select Section three wrapper. Actually we need the similar code for the section three rapper as well. So let's grab this code from here. Paste it down for the third section wrapper and make some changes. Let's change the opacities. We need here. 0.3, 0.9, then change the name of the image. We need three. And finally, we need here justify contents with the value center instead of the space evenly. Alright, that's it about the wrapper. Let's go ahead and customize each of the elements separately. I'm going to start with the images. Let's select the first image, which has class frame IMG. Let's set the width to 100 ramp. Also. I'm going to make its position absolute. And finally, decrease the opacity, make it 0.5. Okay, Next, I'm going to select this second image, grapes IMG. Actually we need similar styles for the second image as well. So let's go ahead and grab this code from here and just change the values. I'm going to set with 240 RAM. As for the opacity, Let's make it 0.7. Finally, I'm going to take care of the heading elements. So let's go ahead and select these elements. First of all, let's increase the font size, make it 20 RAM. Then change the color. I'm going to use here, light gray color, I mean CCC, and also transform text into uppercase. Next we need to rotate the heading. So let's use Transform with the rotate function. I'm going to rotate image with 20 degrees. Can also use your text align center. The heading looks nice. I want to add to it a little shadow effect, and also I'm going to disable the user selection. So let's go ahead and use text shadow with the values 0.5 RAM than 1.5 RAM. And as a color, I'm going to use 000, which is the black column. And finally, let's use here, user select none 83. Project 9 - Create and Customize Fourth and Fifth Sections: Alright, that's it about the third section. Now we have to move on and start to work on section for this part consists of just heading and the image. And also we have a full-screen background image. Actually it is the same image with some blur effect. Alright, so this section is going to be simple one. Let's go ahead and start to create the HTML markup. Let's open div elements with the class section four, b, g. We will use that div element to create a blur effect for the background image. Next, we need the heading. Let's open H1 tag with the class section for heading with the text newly released wines. And finally, I want to insert here an image. Let's specify the part of the image. We need to select a section for bg dot JPG from images folder, then assigned to the alt attribute, the value new wines. And also I'm going to add here class new wines. Img. Alright, so with the mockup we're done. But as usual, we need to display new section on the page because it has ended up behind the third section. So let's go ahead and use again z-index property. I'm going to change the class name from section to section. For this section is visible. Let's go ahead and start to customize it. The first thing that I'm going to do is to decrease the width of the image to make our working process more convenient. Let's go ahead and select new wines, IMG, and set its width to seven to run. Alright, after that, let's place the elements in the center of the page. And for that we have to use flexbox. So I'm going to select section for wrapper. Let's make it flex container. Then I'm going to change the direction. Let's make it column. Next. In order to center the elements horizontally and vertically, we need to use justify-content center and align items center. So the elements are placed in the center of the page. And now I'm going to take care of the background. As you remember, we created an empty div element for the background. Let's go ahead and select elements. First of all, I'm going to define its width and height. Let's make both of them hundred per cent, and also make the position absolute. Next, I'm going to define the background. I'm in a full-screen image. In the previous sections, we assigned the background to this section rappers. But in this case, we're going to use a blur effect. And if we do that for the section wrapper than all the including elements will be blurred. So that's why we use an additional element. Let's go ahead and define the background. I'm going to use linear gradient. With RGBA values. I mean the black color, but the opacity, 0.8 and the first color, and then 0.7 and the second one. Next, let's specify the part of the image. I'm going to select image called section for PNG or JPEG. Then we need center and no-repeat. Also. Let's set the size of the background to cover. So here we have the background image, but as you can see, the rest of the elements are hidden because they ended up behind the background. In order to fix that, let's go ahead and use z-index property. I'm going to set it to the negative value, let's say minus one. Alright? So finally, we need to blur the background. For that. I'm going to use one of these CSS properties called filter. Then we have to assign to it a function called bluer. And then as the value, Let's institute points by ramp. Alright? So as you can see, the background has a blur effect. But we have here a tiny problem. If you look at the edges of this action, then you will see that they are not blurred. So I'm going to increase slightly the width and height of this section. Right now. They are equal to 100 per cent and I'm going to make them 110%. Alright, so let's see about the background. Let's go ahead and move on to the heading. Let's select these elements. First of all, I'm going to increase the font size. Let's make it ten RAM Then make the tax slightly lighter using font-weight 300. Also, let's align the text in the center using text-align center. Then I'm going to create space at the bottom of the heading using margin bottom with the value seven RAM. Also change the color. You see here the red color. I'm in D5 with four zeros. And finally, I'm going to disable the user selection. Let's use user select with the value none. So the heading looks good. And before we finish this section, I'm going to customize the image slightly. Let's create a border around the image assigned to it, 0.1 round, solid and the white color. Then also, I'm going to create some space inside of the box using padding. Let's make it one rem on all four sides. And also I'm going to decrease the opacity of the image slightly. Let's make it 0.7. Alright, so that's it about the fourth section. It is styled. And now we'll have to move on to the last section, which is going to be the photo. So it consists of an image. Also, we have some contact information and there is a copyright text down below at the bottom of the page. So let's go ahead and start to create an HTML markup. I'm going to create the list with the class food or released. I'm going to pass you a couple of LI elements. The first item is going to be contact. Then we will have New York than some address, let's say 1049 Stanley Avenue. Next, I'm going to put here open daily. That's for the last item. Let's insert you by appointment only. Right after the list. I'm going to insert here an image. Let's select the image from the images folder. It's going to be the image with the name Footer, dash IMG dot PNG. And also I'm going to add a class attribute with value footer, IMG. Next we need to create another list. Actually, I'm going to copy the first list from here, paste it down, and change the items. Let's pass here, connect than the phone number. I'm going to put here some dummy phone number, let's say 516,448.2, 763. Also, I'm going to put here mobile number, let's say 63,174,284.2 zeros. Next comes the email. Let's put here example at whitehouse.com. Finally, let's insert here, join our mailing list. Alright, Finally, let's create the paragraph for the copyright text, open p elements with the class copyright. Then place your copyright, followed by the HTML5 entity, which is going to be the copyright sign. We need ampersand copy, semicolon. Then let's write your code and create. And all rights reserved. Right now this section is not visible. So let's go ahead and use again the index property. Change the class name 4-5. So that's the way how our new section looks. Let's go ahead and customize it. First of all, I'm going to set the full-screen background image. So let's select wrapper, then define background. Actually, I'm going to copy this code from here. Let's change the RGBA values. I mean the values of the opacity we need here, 0.7 and then 0.5. Also change the name of the image. We need to use Section five, BG. Alright, next I'm going to place all the elements in the center of the page. So let's use flexbox. I'm going to make the wrapper flex container. Then in order to center elements perfectly horizontally and vertically, Let's use a line item center and justify content center. Alright, let's go ahead and customize the least. I mean the list items. So let's select LI elements. First of all, I'm going to increase the font size. Let's make it to run. Then change the font weight. Let's use here 700. Next I'm going to create some space between the letters with the value 0.1 RAM. Change the color, make them lighter using color d, d, d. And finally create this space at the top and bottom of the items using margin with the values one RAM and zero cell, the list items are customized. I want to change the style of the first list items slightly. And in order to select them, I'm going to use one of the CSS pseudo class is called first-child. So let's select it first, the LI elements attached to it, first child pseudo-class. So I'm going to make the text uppercase and also change the color. Use here, white. That's it about the list. Let's go ahead and customize the image. Select it. First of all, let's define the width, make it 60 RAM. Then I'm going to create space on the left and right sides of the image using margin whose values 0.20 RAM. And finally has decreased slightly the opacity make it 0.9. Alright, let's see about the image. And the last element that we need to style is going to be the paragraph. So let's select it. First of all, make its position absolute, and also place it at the bottom of the page using bought some property we devalue to Ram. Besides that, I'm going to increase the font size, make it to Ram. Also change the font weight. I'm going to set it to 600. Then next we have text align center. Also change the color of the text, make it light using E. And finally, create some space between the letters using letter spacing with the value point to wrap. All right, So this section five is ready and let's move on to the next part of our project. 84. Project 9 - Create and Style Navbar and Make Progress Bars: Next, we're going to do is to create a navigation. Also the progress bar and the arrows on the left and the right side of the page. All these elements will have a fixed position and they will be displayed on all five pages. Let's go ahead and start to create the HTML markup. I'm going to place those elements at the beginning in the container. So let's open div elements with a class navbar. Navbar we will have a logo and the list of the navigation items. So let's insert a link element with the class logo link that I'm going to insert here and image. Let's select logo dot PNG from the images folder. Also, I'm going to assign to the alt attribute logo. And finally, let's add a class attribute with a value logo. After that, I'm going to open the nav tag with the class name now at least. So overall we will have five different navigation items. Let's open link tag with the class nav link. The first navigation item is going to be home. Then let's duplicate this item four times and then change the content. The second one is going to be vineyards. Than, grapes than wine. And for the last item, I want to insert content. Alright, so here we have a logo and the navigation items. Before we create the rest of the elements, let's add first style the navigation. I'm going to select the div element with the class nav bar. As we said, It's going to be fixed. So right now the navbar is no longer visible because it has ended up behind the filter. I'm going to fix that issue by using the z-index property. Now for it's feasible, Let's go ahead and add to it some more styles. I'm going to make its width hundred percent. Actually, I think it would be better if we decrease the size of the image. It's quite bigger. Now, let's define height and make it six ramp. Now it looks much better and I'm going to place the navbar slightly down. I'm going to do that using top property. Let's set it to one rep. And besides that, I'm going to use here Flexbox. Let's make the navbar flex container using display flex. Also, I'm going to create space between the logo and the list using justify content space evenly. And finally, let's use align items center in order to center the items vertically. Alright, that's it, about enough bar. Let's go ahead and customize the novelist. Let's select this element. I'm going to make it a flex container using display flex. And then we need justify-content center. Okay, let's go ahead and style the navigation items. I'm going to select the link element, which has className nav link. First of all, let's make the font size 1.5 RAM, and also change the color, make it white. After that, let's increase the width. Let's make it 15 RAM. Also create some space on the left and right sides using margin. I'm going to set it to zero as it top and bottom. As for the left and right sides, Let's make margin. We ramp. Also, I'm going to make the text uppercase. Alright, so the items look nice. And next I'm going to add the borders to them. So let's use border with the values point 1 g, solid, and you call them white. As you see, we have to place the items in the center. For that, I'm going to use text align center. Also create a little space inside the box using padding. I'm going to make it a point to ram at the top and the bottom. As for the left and right sides, Let's make it zero. And finally, create some space between the letters using letter spacing with the value 0.1 rep. Alright, so the navigation items are styled. And next I'm going to create a hover effect. Let's take a look at the finished version of the project. So once we hover over the items than this little red box will move from left to right Actually it's going to be the before pseudo element. So let's go ahead and select nav link with the before pseudo elements. First of all, I'm going to make its content empty, then make its position absolute. Also, I'm going to assign to the link element positioning relative because we need to position element according to its parent, which in this case is link. After that, Let's make the element visible. I'm going to define the width and height. Let's set width to 150 per cent. As for the height, I'm going to make it five rem. And also change the background color. I'm going to use here. Red color. I mean, D5 with four zeros. So that's the way how did before see the element looks right now, let's change its left position. I'm going to make it -20 per cent. And also we need to rotate it and move it slightly, horizontally, I mean, according to the x-axis. So I'm going to use Transform with the rotate and translate x functions. I'm going to pass here -40 degrees as the value of the voltage function. As probably translate x function. I'm going to move the elements with minus 4M. Okay? So the elements are rotated, but that's not the perfect position. Right now. They are transformed from the center. I'm in, the origin of the transformation is centered. And I'm going to change it and make it left bottom. So we had to use one of these CSS properties called transform origin. And we have to assign to it left bottom. And finally, let's decrease the opacity. I'm going to make it 0.8. Alright? So that's it about before pseudo element right now. Next, I'm going to create the hover effect. I want to move it from left to right. So let's go ahead and select the link element with hover and also with the before pseudo elements. Let's define the left position and make it 110 per cent. Besides that, in order to make the effects model, let's use transition with the value is left end 0.3 s. So once we hover over the item stand before pseudo element will move from left to right. The last thing that have to do is to hide the outer part of the elements. And actually I'm going to do that using overflow hidden. Alright, so now everything works perfectly. And actually with the navbar, we are done. Let's move on and take care of the arrows. First of all, I'm going to create the HTML markup. Let's open button tag with the class page btn. It's going to be the common class for both buttons. And also I'm going to use here another class left btn for some individuals tiling. Next I'm going to insert your image. Let's select arrow dot PNG from the images folder. Then I'm going to duplicate the button. Let's change the class name we need here, right? Btn. Let's pull the image I'm going to use here, the same image. We will just rotate both images for the proper directions. Okay, so here we have the arrows. Let's go ahead and customize them. I'm going to select both buttons with the Como class page, BTN. Let's make the position of the button fixed. And also, we need to use here Z index in order to make arrows feasible. So right now the buttons are placed at the top-left corner of the page. I'm going to place them in the center of the page. I mean, to center them vertically. For that, Let's use top position and make it 50 per cent. And also I'm going to use Transform with the translate y function. Let's insert here -50%. It will allow us to send to the element perfectly according to the vertical direction. Alright, after that, Let's get rid of default background and the border of the button. So let's make background color transparent. And also in order to get rid of default border, we have to use border none. Okay, That's it about the button. Let's move on and customize the images. Let's select them. First of all, let's define the width, make it for RAM. Also, I'm going to decrease the opacity, make it 0.4. And finally, let's make the cursor pointer Okay, so the images are customized. Now we have to place them on the left and right sides. So let's first select a left arrow. I'm going to define its left position. Let's make it for RAM. Then after that, I'm going to select the image itself. I mean the left image. We need to rotate the image by 90 degrees. So we need to transform, rotate. And let's pass here -90 degrees. So as you can see, the left arrow is placed in the right way. Let's go ahead and do the same for the right arrow as well. Actually, I'm going to duplicate this code here and then change the class names we need, right? Also we need here right instead of the left position. And finally, change the value of the rotate function. We need 90 degrees instead of -90 degrees. Alright, so with the arrows we're almost done. The only thing that I'm going to do is to create a little hover effect. Actually, I want to increase the opacity on hover. Let's go ahead and select Image with hover. Then assigned to its opacity with the value one. And also, I'm going to use transition with opacity 0.2 s. Alright, so with the arrows we are done. Next, we have to move on and create a progress bar. At first, as usual, create an HTML markup. Let's open development with the class progress wrapper. Next I'm going to open another div tag, which will include the page numbers. Let's assign to it a class progress. And then inside it, let's insert H2 heading element. By default, I'm going to pass here one slash five. Alright? After that, I'm going to create the circles. Let's open div tag, which is going to be the wrapper. It's assigned to each class circle wrapper. And then let's eat. And here an empty div element with class is circle and circle one. Then duplicate this line of code four times and change classes. We need numbers 2-5. Okay, So the markup of the progress bar is ready, and now we have to customize it. I'm going to start with the wrapper. Let's select progress wrapper and first of all, make its position fixed. So the progress bar is not visible because like the previous elements, it has ended up behind the footer. Let's fix that again by using the Z index property. Let's make it 100. Okay, so now it's visible. Let's define this position. I'm going to place it down below at the bottom left corner of the page. So we need here bottom property with the value two rem. And also left property with the value three round. Alright, after that, Let's customize the heading. Let's select it. First of all, I'm going to change the font size. Let's make it 2.5 RAM. Also, I'm going to make heading little bit lighter using font weight with a value of 300. And then change the color, make it white. Alright, so the heading is styled. Let's go ahead and move on to the circles. Let's select them using common class circle. First of all, let's define the width and height. I'm going to make both of them one RAM. And then I'm going to assign to them border with the values 0.1 RAM solid and the white color. Okay, So now the elements are visible, but they don't have the shape of the circle. In order to make them the circles, let's use border-radius with value 50 per cent. Alright? Now we have circles. Right now, they are placed vertically in a column. We need to align them horizontally. And for that, Let's use flexbox. I'm going to select circle wrapper and then assign to it display flex. Next, let's create some space between the circles. I'm going to use margin. Let's make it zero at the top and bottom. And then 0.3 ramp on left and right sides. After that, I'm going to create some space at the top and bottom of the heading elements. And also I want to place it in the center. So let's go ahead and select It's wrapper div with the class progress. Then assign to it margin, set it to one rem at the top and bottom, and then use zero for the left and right sides. And also, I'm going to use text align with the values center. Alright, so right now with a progress bar, we are done. We'll make it work using JavaScript later on. 85. Project 9 - Create Horizontal Scroll Effect with JavaScript: Okay, So with styling, we are done all five pages or a customized, and now it's time to use JavaScript and make our project dynam. Right now, the filter is displayed on the page and the rest of the sections are placed behind it. I'm going to place the pages in order from the first page, throw the last one. And I'm going to do that using the z-index property. Let's change the class name. We need Section one instead of this section five. Then copy this code and paste it for the rest of the sections. For the second section, I'm going to make the z-index property 40. Then for the third section, it's going to be so t. Next we have the fourth section. We need here 20. And lastly, for the Section five, Let's make the index equal to ten. So everything is in order and we can start to write JavaScript. Before then, I'm going to remind you what we're going to do and how are finished project works. So these sections are placed on top of each other in order. We see here the first section by default. And once we scroll down, then we will navigate to the next section. We will go through the filter. And then if we scroll again down, we'll get on the first page. Besides scrolling, we can navigate to the different sections by those controls as well. Alright, so all those things will be programmed with JavaScript. And the first thing that I'm going to do is to attach an event listener to the global window object and use one of the events called the Wheel. This event will be fired once we move the will of the mouse. So let's attach to the window. At event listener. It should take two arguments. The first one is going to be the event. As we said, we need to use wheel. As for the second argument, it's going to be the callback function. I'm going to pass your event object. And then let's run it to the console. Once we scroll the page, then we will get the wheel event in the console. If I dropped down it, you will find here a couple of different properties. And actually we're interested in the property called delta y. Right now, it equals hundred. It means that we scroll the page down. And if I scroll up and check the value of delta y property, that it should be equal to -100. So we will use this property to manage to navigate between the different pages when we scroll the page up or down. Alright, so if the value of delta y property is positive, then we have to navigate to the next page. And if it is negative, then we have to go to the previous page. I mean, scrolling to the right side or the left side. We have to check if delta y is greater than zero. Next, I'm going to create a new variable which is going to be the counter. It will help us to define which section is currently displaying. By default, I'm going to set it to zero. So if this condition is true, then we need to increase the counter by one. For that, I'm going to use increment operator, which is expressed by double plus signs. If the condition is false, then we have to decrease the counter by one. So we have to use else statements. We have to pass your counter with double minus sign. And finally, let's run the counter to the console. So once we scroll down, then the counter will increase by one. And if I scroll up, then it will decrease by one. Alright, so based on that logic, we can navigate to the different sections. And for that we have to select section elements. I'm going to use the query selector method as the value of the class name. I'm going to pass here the following. Let's use backticks. Then I'm going to pass your section. As you remember, each section has a className with the proper number. Section one, section two, and so on. And as the number of this section, we have to use a counter Okay, so once this section is selected, then we have to change its style. I mean, we have to move this section to the left side by hundred viewport width. So we need to style dot left and we have to set it to -100 viewport width. Okay, so if I scroll down, then we will navigate to the different pages. Once we reach the footer and scroll again, then we'll get the white background. Actually it is the container. And the next scroll we will get an error because we don't have a section within number six. Besides that, I see here the part of the section four, as you know, the width of its blurred background is equal to 110 per cent. So in order to hide this part, here, we have to use overflow hidden, and we have to assign it to this section. And also in order to make this color effects model, let's use transition with the values left and 1.5 s. So now we have a much nicer scroll effect. Alright, so right now we can scroll down the page, but we cannot scroll up. In order to achieve that, I'm going to use some logic. If the value of delta y property is 100, then we have to scroll down. And if it equals to -100, then we have to scroll up. So instead of just minus hundred viewport width, Let's open backticks. Then use dollar sign with the code braces. So we have to check if the delta y is positive or negative. We need the same condition here. I'm in the condition that we used in the if statement. And actually it would be better if we store this condition in the variable and then use this variable. So let's create a constant delta y. And assigned to it E dot delta y is greater than zero. That use this variable in the if statement. And also pass it down here. So if this is true, then we have to move this section to the left side by -100 viewport width. And if it is false, then we need zero. So if I scroll down and then try to scroll up, it will work. But with a little issue. As you see, we cannot navigate to the previous page. When we scroll up, the previous page is omitted. It happens because when we scroll down, the counter is increased by one. And once we scroll up, then it is decreased. We need to maintain its last value. So with just one counter, we cannot achieve that. So I'm going to create another counter. Well, let's go ahead and change the name of this counter, make it counter one. Then duplicate this line of code. I'm going to call this variable counter to. And then let's set it to one. After that, let's use this counter and the FL statement as well. Okay, let's run through the console counter one, encounter two. And instead of just the counter, we have to check the same condition. I mean, if it delta y is positive or negative. So if it is true, then we should use counter one. And if it is false, which means that we scrolled up, then we need to use counter to. So now if I scroll down or up, everything will work fine until we reach to the footer and scroll up again. As well as we reached the first page and scroll up. Alright, so now we're going to fix those issues with two different if statements. Once we reach the filter and scroll down, we have to display the first page. And also all the other sections should be aligned on top of each other, like it's in the default case. First of all, let's go ahead and select all these sections. I'm going to store them in a variable, let's call it sections. In order to select all these sections, I'm going to use query selector all method. Let's pass here the tag name section. So if counter one equals five, then it means that the footer is displaying and we no longer need to scroll this page. We have to look through these sections and make their left position zero. Besides that, we have to reset both counters. I mean, we have to set both of them to their default values. So let's go ahead and create if statement as the condition. We need to counter one triple equals five Next we have to look through these sections. As you know, when we use query selector all method, then it returns node list and we have to transform it into an array. For that, Let's use array from method. In order to look through these sections array, I'm going to use one of the array helper methods called for each. Then we have to pass a callback function, which will take one parameter and it's going to be the current item in the array. I'm in the current section. As we said, we have to make a left position zero for all the sections. So therefore we have to use your section dot style dot left, and we have to make it zero. Also, we have to reset both counters. I mean, we have to set counter one to zero and counter to one. And finally, I'm going to use a return statement which will allow us to terminate the execution of any other code in this function. Alright, so if I scroll down and reach to the footer, you will see that the counter one equals four. And on the next scroll, the condition in the if statement will be true. We will navigate to the first page and all the rest of the pages will be aligned as is in the default case. Okay, so the first problem is fixed. Next, we have to take care of the second issue. I mean, when the first page is displaying and we scroll up, then we'd get an error saying cannot read property style of null. Okay, So now we have to check the case when the counter one equals minus one. In that case, we have to move all these sections to the left side by -100 viewport width, We have to display the photo. So let's create another if statement. So we have to check if counter one equals minus one. If it is true, we have to look through these sections list. Then we have to give all the sections except this section five, a left position with the value -100 viewport width. So at first, I'm going to transform sections into an array using array dot from method. Let's pass your sections. Then use forEach method. We have to pass your callback function with the argument section, which is going to be the current item, I mean current section. So as we said, we have to make the last position -100 viewport width for all these sections except the second five. Let's go ahead and use here another if statement where we have to check if the first-class name of the current item in the array equals section five, we need section dot class list. And we have to specify here the index number zero refers to the first class name. Then we need triple equals section five. So if this condition is true, then we have to terminate executing of this function by using the return statement. In all the other cases, we have to make the left position of this action -100 viewport width. So we need to section dot style dot left equal to -100 viewport width. And besides that, we have to set counter one to four, N countered two to five because in that case, footer will be displaying on the page. So if we test, then you will see that everything works fine. 86. Project 9 - Make Progress Bar Work with JavaScript: Alright, so once we managed to scroll the pages next, I'm going to move on and start to work on the progress bar, which is placed at the bottom left corner. And right now it doesn't do anything. So the progress bar, it should show which page is currently displaying and also the proper circle should be highlighted. Let's go ahead and create a function. I'm going to call it a progress counter. So we need to do two things. We have to make this heading dynamic and also we have to take care of this circles. First I'm going to work on the heading. Let's go ahead and select these elements. I'm going to store it to the variable called progress. Let's select elements using querySelector method. Pass your class progress followed by the H2 tag name. So we need to change the content of the heading as the right side of it. I'm going to use counter to because it is starting with one and goes through five. As for the second part is going to be the length of these sections list. So in order to change the content of the element, I'm going to use one of the properties called text content. We need here, progress. Dot text content than open here. Backticks, followed by the dollar sign and the colored braces. As we said, we're going to use counter to then slash. And let's pass here sections dot length. So we need to call this function inside of here. Instead progress counter. And also we have to call it inside of the if statements. So as you can see, the first part of our progress bar works perfectly. Alright, let's see about the heading. Let's move on to the circles. First of all, I'm going to select them. Let's create variable circles and then select all the circles using querySelector all method. I'm going to pass here className circle. So we're going to look through these circles and assigned to them a transparent background color. Then once we scroll, the proper circle will get a different background. In this case, we will use, again count to two. First of all, it's transformed circles into the array using array from method. Let's pass here circles then use for each array helper. We have two paths here, callback function with the current item of the array, I mean circle. And then as the block of code, we need to change the background color and make it transparent. So we need circle dot, style, dot, background color transparent. Okay, next we need to change the background color for the proper circle. So let's go ahead and select circle. We need document dot query, selector. Then open here backticks. Because we need to define the number of the circle. We need dollar sign, curly braces. And again, counter to. After that, let's go ahead and change the background color. We need style dot background color. Let's make it light gray using the D. Alright, so if I scroll than the background color will be changed for the circles. But actually we have here a tiny issue. If I reload the page, then the first circle won't have any background. So we have to define it manually. Let's go to style.css file and select the first circle and make it's background color. Besides that, I'm going to use transition with background color and with the duration 0.3 s. Alright, so now everything works fine. And with the progress bar, we are done. Next, I'm going to move on and take care of the controls. First of all, let's go ahead and select both buttons and attached to them, event listeners with a click event. I'm going to start with the left button. Let's use again querySelector method with a class name left btn and attached to it Add event, listener with click event and the callback function. I'm going to duplicate this code and change left into the right. Alright, so once we click the left button, we have to decrease both counters by one. And in case of the right button, we need to increase them by one. So we need here counter one, minus, minus and then counter to with again double minus signs. In case of the right button, we need both counters with plus plus signs. In order to navigate to the different pages, we have to change the lead position for these actions. So in case of the left button, we will define section numbers by using counter to. As for the right button we will need counter one. So let's write document dot query selector. Then open back ticks and insecure section as the number of this section. Let's use counter to. Next, we have to define left position and we have to make it zero. Let's grab this code, paste it down here, change counter to into counter one. And also make left position -100 viewport width. Alright, so if I click the arrows, then we will navigate to different sections. And once we reach to the footer and click again, we will face to the same issues which we had in case of wheel event. The same will happen if we click to the left arrow when they first page is displaying. So to fix those issues, we have to use again IF statements. And in order to avoid using them twice, I'm going to create a function and we will call this function several times. So let's create a function within a page controller. Then I'm going to grab both if statements from here and paste them inside of the page controller function. Also, we need to call progress counter function. So now we can call this function inside a will events. And we can get rid of both if statements. So as you can see, everything works still fine. Actually, if we scroll down, I mean, if we use the wheel of mouth and reach to the footer, then on next scroll, we will get an error saying cannot read property style of null. It happens because on the last call, if statement was executed inside the page controller function, it made the counter zero. We don't have section with this number and therefore we got an error. So when it happens, I mean, when one of the if statements is executed, then we don't want to run this code. Alright, so to fix that, we need to return a Boolean value from the page controller function. For that, Let's create a new variable outside of the function. I'm going to call it Bu. And that's assigned to it through. Then we have to set this variable to true inside the function. In this case, on each execution of the function, Boolean is updated to true. But if the if statement is executed, then we have to set Boolean to false. We have to do that in both if statements. And finally, we need to return the Boolean itself. So as we already said, we have to run this code, wants the Boolean is true. So we need here pool followed by the logical and operator. So now if we scroll, then you will see that everything works fine and we no longer have any errors. Alright, let's go back to the controls. We have to call page controller function on every click. But we need here a conditional statement. If the page controller function returns true, then we need to run this code here. And if it returns false, then just this function will be executed, which is completely enough. So we need here page controller, followed by the logical and operator Okay, let's check if everything works fine. So we can see that controls work perfectly. Alright, so with controls were done an x. I'm going to take care of the third section. If you take a look at the finished project, you will find that we have here nice hover effect. We're going to create this effect using CSS and JavaScript. So let's go to the style.css file and assign to the section three background color black. Then I'm going to select graves image with hover. And I'm going to make its opacity one. And also, we need to increase the size of the image using Transform Scale. And let's insert here too. Besides that, we need to transition with a value is all and 1.5 s. Okay, let's check how it works. So if I hover over the image, then it will become bigger and the opacity will increase. Okay, so now we have to take care of the background and we have to do that using JavaScript. I'm going to use mouse over and mouse out events. So let's go ahead and select grapes image. Use again query selector method. Let's pass you graves IMG. Then attach to an event listener. So once we mouse over the image, then we have to decrease the opacity of section wrapper. And when we mouse out, we need to increase it back to one. So let's pass your mouse over event than we need arrow function. And as the block of code, I'm going to select Section three wrapper using querySelector method. And then we have to make opacity 0.5. So we need to style the opacity equal to 0.5. Let's duplicate this code and change the events we need here, miles out. And also we need to change the opacity. Let's make it one. Finally, I'm going to use transition for this section three wrapper, which values opacity and 1.5 s. Alright, so as you can see, everything works fine. We have here a nice hover effect. Actually this section is getting darker because we assigned to this section elements a black background color 87. Project 9 - Make Project Responsive: Alright, so most of our project is done. And next, I want to make our project responsive to different screen sizes. Actually, it won't be the last part of this tutorial because we're going to add a couple of more things to the project. Let's go ahead and switch to the responsive mode. The project is built for larger screen size. I'm in the screen with 1920 pixels the width, and 1080 pixels of height. So the first breakpoint on which I want to make some changes is going to be 1,600 pixels. I have already checked those breakpoints, so I won't waste time on that in the video. On the break point, I want to Customize to Sections. It should be the Footer and the second section. So let's go ahead and create a CSS media query. Then specify max width as 1,600 pixels. So first, I'm going to Customize the second section. Let's select Image sailed back and change its width, Make it 35 ramp. Then select the second image, which has the class name wine bottle, and Define its width as 65 brand. That syllable. The second section, Let's move on to the Footer. I'm going to decrease the width of the image and also the size of margin on the left and right sides. So let's select Footer IMG set with 245 RAM. As for the margin, let's make it 0.12 RAM on the left and right sides. Alright, so the Footer looks good and we're done with a breakpoint. The next one is going to be 1,300 pixels. On that breakpoint, we will take care of those two sections again. So I'm going to duplicate this code and just change the values. Let's make max-width 1,300 pixels as the width of sail back Image. Insert here to RAM. Then make the width of wine bottle Image 60 RAM. As for the footer image, Let's make its width 35 RAM. As for the margin, let's make it ten ran on the left and right sides. Okay, so that's it, about 1,300 pixels. Both Sections look good. Let's move on to the next break point. We're just going to be 1,200 pixels. So let's go ahead and create new media query with them, max-width, 1,200 pixels. So the first thing that I want to do is to decrease the space between the navigation items. Let's go ahead and select nav link and set margin to 0.1, 0.5 GB RAM on the left and right sides. Then let's take care of the heading of the first section. So first of all, I'm going to select this wrapper which has class name Section one, heading rubber. That's Make with 80 per cent. And then after that, select the heading itself. Change its font size, make it a terrane. Okay, So that's it about the first section. Let's move on to the second one. I'm going to decrease the sizes of those three elements. I mean the images and the bottom. So let's start with sailed back. Let's make its width. 25 RAM that I'm going to select sale BTN. I'm going to change its width. Let's make it 15 ran. Then change height, set it to forum. And also I'm going to change the font size. Let's make it 1.7 ramp. And lastly, I'm going to select wine bottle. Let's make its width. 50 Ran. Okay, that's it. About the second section. It looks nice. And the only page that we're going to Customize on the breakpoint is going to be Footer. Let's go ahead and select Footer Image. Change its width, Make it 25 RAM As for the margin, I'm going to make it 0.7 run. Alright, so with 1,200 pixels, we're done. This Sections look and work fine. So we have to move on to the next breakpoint, which is going to be thousand pixels. So let's go ahead and create new media and specify max-width as thousand pixels. On the breakpoint, we have to do a couple of things. First I'm going to customize all these sections except the first one. And then we will take care of the Navigation. I'm going to transform the Navbar into the Hamburger menu. Let's start with this section too. I'm going to select Section Two Rubber. Right now the images are placed horizontally in a row and I want to change the direction from row into column. So we need to flex direction. And we have to set it to call them. Also, I'm going to change the order of the sale that's assigned to it. One. That's it. About the second section. Let's move on to the next one. As you can see, we need to decrease the size of the elements because they are two bigger. I'm going to start with Section three heading. Let's change its font size, make it 12 run. Also, I'm going to select frame image. Let's change its width and make it seven to run. As far the grapes Image. I'm going to set its width to 25 ran. Alright, so with this section three, we're done. Let's move on to the next section. I'm going to decrease the size of the heading as well as the size of the image. So let's select Section four heading and make its font size eight round. As for the new wines image, Let's make its width 60 Ran. Okay, let's move on to the Footer. Right now the elements are placed horizontally in a row. And I want to change the direction and place them in a column. And also I want to change an order of the elements. I want to place the image underneath of those lists. So let's go ahead and select Section five wrapper and Make It's flex direction column. Also select Footer IMG. Let's set its width to 20 RAM. And also change the order. I'm going to set it to one end. Lastly, I'm going to select Footer least. Let's define its width as 20 RAM. And also I'm going to use margin. Let's set it to two REM at the top and the bottom, and then R0 on the left and right sides. Alright, so the Footer is Customize and actually it's time to create a Hamburger menu. First of all, let's take a look at the finished projects. I'm going to inspect the page and switch to the responsive mode. So after thousand pixels, the navigation items are no longer visible. And we have here a Menu icon. If I click it, then those lines will be transformed into an X and decide where we will be displayed from the right side within navigation items. So let's see what we're going to do. First of all, let's go to the index.html file and create the HTML markup. So the Menu icon will be represented as the link in which we will have three departments as the lines of the icon. So let's open a element with the class Menu. Then I'm going to insert development inside of the link. It should have two different classes. The first one is going to be Menu line for the common styling. As for the second one is going to be Menu line one. It will be used for individual styling. So overall we will have three different lines. Let's duplicate this line of code twice and change the class names. We need here, Menu line two and Menu line three. Okay, so at first we have to hide the icon by default because we don't want to display it until the screen size will be less than thousand pixels. So let's select Menu and assigned to display none. Alright, Before we start to Style the Menu icon, Let's take care of the navigation itself. I'm going to build the Sidebar. So let's go ahead and select nav list and make its position absolute Also Define the top and right properties. I'm going to set top to fibrin. As for the right, it's going to be zero. Also change the direction. I'm going to place the items in a column. So we need to flex direction column. So as I see, the navigation items are placed on the right side in a column. Next, I'm going to define the height of the list. I'm going to use here some calculation. As you know, we set top position to five RAM and I want to make the height of the list hundred viewport height minus five ran. In order to do that calculation, let's use calc function. We need here hundred viewport height minus five R&amp. Also change the background color. I'm going to make it dark gray using 333. Okay, so that's the way how the Sidebar looks right now. The navigation items ended up in the center, and I'm going to move them up for that, Let's use justify contents. Start. And besides that, I'm going to create some space inside of the list using padding value to run. Alright, that let's create some space between the items. And also I'm going to make the top left corner of the Sidebar slightly rounded. So let's use border-radius with values 0.5 g, followed by three zeros. Then select nav link and set margin to one ran. The nav list is Customize and now it's time to take care of the Menu icon. But before that, I want to place the logo at the top-left corner of the page. For that, Let's select Navbar and assigned to justify contents. Start. And also create some space using padding left with value to ramp. Alright, that's it about the logo. Let's move on and start to work on the Menu icon. So let's select it. First of all, I'm going to set it to display block, because as you know, right now in this hidden using display none. Next, I'm going to define its width and height. Let's set with two for RAM. As for the height, Let's make it 2.5 ramp. And finally, make the background color white. I'm using this color in order to make the Menu icon visible. As you see, the Menu icon ended up at the top-left corner of the page. So we have to define its position. Let's make it absolute. And then use top and right positions. I'm going to set top position to one RAM. As for the right position, Let's make it to ramp. Okay, so now the icon is placed in the right way. And next we have to display the lines. So let's go ahead and select Menu line. It is the common class name for all three lines. Let's set with 200 per cent. Then. I'm going to define height as 0.3 ramp and also define Background color. I'm going to make it red using D5 and four zeros. So as you can see, the lines are visible, but they are placed on top of each other. We need some space between them. So let's go ahead and use flexbox. I'm going to set display property to flex. Then we have to change the direction. Let's make it column. And in order to create some space between the lines, Let's use justify contents with the value space between. And also get rid of the white background. So we have here the Menu icon. Everything is customized and ready to make this Sidebar and the Hamburger Menu Work. So once we click those lines, the first and the third line should be transformed into X. As for the second line, it should move down underneath of the X. So first of all, let's select lines and customize them. And after that, we will make the Menu icon Work using JavaScript. I'm going to select the first-line using className Menu line one. So we need to rotate line and also move it slightly. So I'm going to use Transform with Rotate function. That's passed here 40 degrees. And also I'm going to use Translate function, which will allow us to move the elements according to the X and Y-axis. So I'm going to pass here 0.5 RAM, and then one ramp. Right after that, I'm going to select Menu line two In case of second line, we don't need to rotate function, we just need to use Translate function. So use transform translate with the values minus point to RAM. Then to R&amp S for the third line, Let's go ahead and copy this code from here and paste it down. I'm going to change class name. We need Menu lie three instead of one. Also we have to rotate third line by -40 degrees. While the translate function, we need Q minus one RAM instead of one ramp. Alright, so we have here X by default, but we don't need that. We had to transform the icon into X once we click it. So I'm going to define a new class in CSS which will be added to the Navbar with a toggle method. This new class, we'll define new styles which will be applied to the elements. Once we click on the icon and then they will be removed once we click again the icon. So let's go to the script.js file. And first of all, still lacked the Menu icon. I'm going to create variable, let's call it Menu. Then select the element using querySelector method. We need to pass your class name Menu. After that. Let's attached to it an event listener. We need to use add event listener method, which should take two arguments. The first one is going to be the click event. As for the second one, Let's pause here arrow function. Then inside the curly braces, we need to select Navbar. Let's use again query selector method. As we said, we have to add new class to the Navbar. For that I'm going to use one of the property is called class list, which includes all the classes of the elements, in this case Navbar. Next we need to toggle method. And finally we have to pass you className, which come to be changed. Okay, that's it about JavaScript. Now we need to add class change to the lines. Let's use multi cursor and insert here. For all three lines, class change. Then I'm going to hide the Sidebar by default, right now. Its right position is set to zero and we need -21 run. And finally, we need to display it once you click the icon. So we need to again change. Followed by novelist. We have to make right position zero. Okay? So if I click the icon, then it will be transformed into X. And also decide where we will be displayed from the right side. The only thing that we have to do is to make those effects smoother using transitions. For not least, we need transition with the values are right. And 0.5 s. As for the Menu line, we need transition with transform with the duration 0.5 s. So everything works fine. And with Navigation we're done. We have to move on to the next breakpoint, which is going to be 800 peaks. So let's Create New Media with max-width 800 pixels. First of all, I'm going to change the position of the Controls. Let's place them close to the edges of the page. Let's select lacked Button and set its left position to run. Then I'm going to select the right BTN and make its right position to run as well. Next, I'm going to decrease the size of the heading of the first page. So let's go ahead and select it using class Section one heading. Let's make its font size six round. Okay, that's it about the first section. Let's move on to the second section. I'm going to decrease the sizes of those images. So still lacked sail back And make its width 20 RAM. Also, I'm going to select wine bottle. Let's make its width for to run. Alright, so the Section two looks good. Let's move on to the next one. I'm going to change the size of the heading and its opacity. And also I'm going to decrease the size of the frame image. So let's go ahead and start with the heading. Let's select it. Change its font size, make it 11 RAM. And then set opacity 2.7. After that, Let's select frame Image and make its width 60 round. Alright. Next we have Section four in which we need to decrease the size of the image. So let's go ahead and select new wines image and make its width 45 ran the Section four and also the photos look good. And the only thing that I'm going to do on the breakpoint is to change the position of the Progress Bar. I want to place it at the top of the page. So let's go ahead and select Progress wrapper. Then set its top position to zero. Also, we need left 50 per cent. And in order to center the elements perfectly, Let's use Transform, Translate X, and insert you -50 per cent. Okay, So that's it with 800 pixels, we're done, and it's time to move on to the next breakpoint, which is going to be 600 pixels. So let's select New Media and set max-width to 600 pixels. Let's start with the first page. I'm going to decrease the size of the heading. So let's go ahead and select the heading and Make font size four round. Next, let's move on to the second section and again, Make those images and buttons smaller. Let's start with sail back. Set its width to 15. Run. Then I'm going to select wine bottle. Let's make its width. So to run and vastly. Take care of the Button, Let's select it. Make its width 12 RAM than Define height as three RAM. And also change the font size. Make it one point for ran. Next comes Section three. I'm going to decrease the size of the heading and also the frame image. Let's select heading and make its font size ten RAM. As for the frame Image, I'm going to make its width 35 ramp. Okay, so this Section three looks good. And next we have a Section four. I'm going to decrease the size of the heading and also I want to make the image smaller. So let's go ahead and select Section four heading. Make its font size six round. As for the new ones Image, I'm going to set its width to 35 g. Alright, so I think that's it about this breakpoint. And now we have to define the last breakpoints, which is going to be 500 pixels. So let's Create new media with a max width, 500 pixels. So first of all, I want to decrease the font size of the HTML elements. Right now, N equals 62.5 per cent, and I want to decrease it to 45%. So let's Make font size of the HTML 45%. Next, let's change slightly the position of the Controls. So lacked left Button. Make its left position. 0.5 RAM. As for the right button, I'm going to set its right position, 2.5 as well. Okay, after that, I'm going to change slightly the position of the sidebar. Let's select not least and make its top position. 6.5 g. Alright, Next, let's take care of this Section three. I'm going to start with Section three heading. Let's make its font size. Eight RAM Also like grapes Image, make its width 15 ran. And besides that, I'm going to change the width of the image on hover. Let's select grapes image with over and set with 225 ramp. Alright, so finally we made our project responsive to different screen sizes. I think it looks nice. So we can say that we are almost done with the projects. But before we finish this tutorial, I want to add one more nice effect to the project. Okay, let's go ahead and take a look at the finished projects. So if I scroll the page than the scale of these sections will be changed smoothly. By default, the size of this Sections are bigger and once we scroll or click the Controls, then the scale will decrease in overall, it will create a nice and cool effect. The only issue that we have with this effect is that browsers have a little trouble to perform this effect. So sometimes you may say that it doesn't work quite perfectly. So anyway, I'm going to create this effect and you can add it to the project or not. It's up to you. Okay? So the first thing that I have to do is to increase the scale of this Section rappers by default. So let's assign to them, transform with this scale function and make the scale 1.5. Also I'm going to use transition with the values all and 2 s. As remember, we assign transition to the wrapper of this Section three. And I'm going to get rid of it because it will overwrite the transition that we have just assigned to this section wrapper. So as you can see, the sizes of all the pages have increased. Actually, when we load the project, we need to scale to be one by default for the first page. And I'm going to do that from JavaScript. Let's select Section one rapper. I'm going to create new variable. Let's call it Section one wrapper and then select the elements using querySelector method. Let's pause here class Section one rapper. After that, Let's make its scale one. So we need Style dot transform equal to scale function with value one. Alright? So we need to change the scale of the pages, wants to be Scroll and once we click the Controls. But first of all, let's take care of the wheel event. Here we have a little conditional statements where we check if the bull is true or false. So if it is true, then we have to decrease the scale of the proper section. So we have to transform this conditional statement into an if statement. Let's pass year Bu as the condition. First, I'm going to write the code and then I will explain how it works. So we need to select this section wrapper. Let's use querySelector than open here backticks and pass your class name Section dash. Now we need to define the number of this section wrapper. And in order to do that, we have to use again the conditional where we check if Delta Y is true or false. If it is true, then we need counter one. And if it is false, then we need counter two followed by the wrapper. Okay, so once the proper section wrapper is selected, then we have to decrease the scale or leave it as it is. So we need here Style dot transform that again, opened backticks. Use scale function. And as the value, I'm going to pass again here the conditional statements where we check if Delta Y is true or false. If it is true, then as the value of the scale function, we have to pass 1.5. And if the Delta Y is false, then we need one. So when we scroll down the page than the number of this section wrapper will become counter one. Suppose that we are talking about the first page. So we will select the first page and it's scale will become 1.5. Because again, Delta Y is true. If we scroll up than delta Y will be false. The number of these Section wrapper will become counter to which on the other hand, will decrease by one. And we will select again the first page. And in this case, it's scalable with decreased because Delta Y is false Make sense? Alright, so the scale effect works partially. I mean, the coming pages are not increasing. And in order to fix that, I'm going to duplicate this code. So because of that, we need to manipulate the next page. We need to increase both counters by one. So let's add here plus one. And besides that, we have to change the places of those values. Okay, so now if we scroll down, then the next coming pages will change the scales as well. And let's same will happen if we scroll up. So everything works fine until we reach to the Footer and then scroll again. So as you see, the first page is displaying with a larger scale. It happens because boolean is false and if statements are working in the page controller function. We need to define the scales in the if statements as well. Right now we have to work on the wrappers of Section one and Section five. We have all of these selected Section one wrapper. Let's do the same for this Section five as well. I'm going to duplicate this line of code and just change one into five. So if the condition in the first if statement is true, I mean, if we navigate from the Footer to the first page, that we need to decrease the scale of the first section wrapper. And at the same time we need to increase the scale of the Footer. So we need Section one, rapper dot style dot transform, scale with the value one. Let's duplicate this line of code. Change Section one wrapper into Section five wrapper. And also as the value of the scale function we need 1.5. Alright, we need is similar in the second if statement, but with opposite scale values. Let's grab this code, paste it here, and change the values. We need 1.5 and down below one. Now, if we scroll up and down, everything will work fine. Alright? So we'll event, I mean, with scrolling, we are done. And finally we have to take care of the Controls. We need the same transition effects once we click the Latin white arrows. So if the Boolean is true, then we need to define the scales for this section wrappers. If it is false, then the page controller function will manage it automatically. We need if statements where we check if bull is true or false. If it is true than in case of the left button, we have to select this section wrapper with counter two. So let's use querySelector. Then open backticks and insert your section. As the number of this action. We need to pass your counter two, followed by the wrapper. We have to decrease its scale to one. So we need Style not transform equal to scale with value one. So this code refers to the coming Page As for the leaving one, Let's duplicate this code. In this case, we need counter two plus one and we have to increase the scale to 1.5. Okay, let's see the About the left Button. Let's copy the entire if statements and paste it for the right button as well. So we need to leave the first part as it is as part the second one instead of counter two plus one, we need just counter one. So if we check and click Controls, then it will work perfectly. Alright, so congratulations. Finally we have finished the project. Hopefully it was interesting and useful. Maybe it was a little bit challenging, but I hope you made it 88. Project 10 - Project Preview: Alright, so it's time to build our next project, which is going to be the clone of one of the most popular and commonly used websites called Paypal, will create the user interface of the different pages. I'm in the main page, login and sign up pages. Of course it won't be the exact clone with the full functionality. As I said, we will build just a UI with HTML, CSS, and JavaScript. Paypal looks different in different countries. The user interface is frequently changing from time to time. So do not worry if this is not the exact clone of the current UI. Alright, so before we jump right into writing the code, at first, let's describe what the project looks like. So as I said, we'll build three different pages, main login and sign up. We'll start with the main page. It will consist of a couple of different sections. The first section is going to be the banner with navigation. We have here several navigation items. If I hover over them, then the drop-down menu will display. It will switch once we hover over another navigation item. Also, we will have here two different buttons for login and sign up. If I click them, then we will navigate to the proper page. So the banner will be followed by the second section. It will include three different parts with Font, Awesome icons, some text elements and buttons. Then we will have this blue section with some different paragraphs. Next, we will build this little section here with an image and three different steps. Down below, we will have a button to sign up, followed by the footer. Alright, so let's see about the main page. Let's have a look at the login page. It will be quite similar to the original login page. We will have here two input fields with buttons. That's probably sign-up page. It will consist of two parts. On the left side, we will have several images of the customers. As for the right side, it will include two different options. Whether we want to create a personal or business account. Alright, so that's it about the project. As usual, we'll make it responsive to different screen sizes. If I inspect the page and switch to the responsive mode, you will see that it's responsive. One thing to note here, on smaller screen sizes, we will no longer have the drop-downs. They will transform to the menu like this. Okay, So that's it. We are ready to start to build the project. So let's move on. 89. Project 10 - Create and Style Landing Page - Part 1: Alright, so we're ready to start to build the projects. I've created a new folder on the desktop called papal clone, in which I have another folder for the images. Let's go ahead and open it in VS code and create our working files for HTML, CSS, and JavaScript. I'm going to call them index.html, style.css and script.js. Then open the index.html file and create the basic HTML document. For that, I'm going to use one of the VS Code built-in package is called image. We need to place your exclamation mark and then hit Tab or Enter. So here we go. We have here the basic HTML tags. The first thing that I'm going to do is to change the title. It's going to be sent money, pay online, or set up a merchant account. Next, we need to link the CSS and JavaScript files to HTML. So let's open a link tag and specify the part of the CSS file we need style.css. As for the JavaScript, I'm going to open the script tag right above the closing body tag. And then we need to specify the path of the JavaScript file in the source attribute. Alright, so all three files are linked. Next, I'm going to bring in another CDN link. Throughout the project. I'm going to use Font, Awesome icons. So let's go to the Google and search for Font Awesome CDN js. Then grab the first link. From here, open a link tag in the head elements and paste the link as the value of the h reference attributes. Okay, finally, I'm going to run the project to the browser using one of the views code package is called a live server and allows us to run the project to the browser life and make the changes and updates without refreshing the page. Each time. Let's place the actor and the browser. Like so. And get started. We're going to build the project section by section. In each section we will create the HTML markup. Then we will write some CSS. I'm going to start with the first section, which will include enough pore and the banner. First of all, let's open the div tag, which is going to be the container. It will wrap the entire contents. Next, I'm going to open another div tag which will include the content of the front page. But first, let's insert your comments for front-page. Then open div tag with a class front page. Next, I'm going to insert new comments, section one. And section one. Then open a section element with a class, section one. So as we said, the first section will consist of two main parts. We will have a navbar and a banner. So let's go ahead and start to create the napa. First of all, I'm going to open a div tag, which is going to be the wrapper of the navigation. I'm going to call it napa wrapper. Next, I'm going to open the HTML5 tag, which is called nef, with the class nav bar. So we will have a couple of different parts in the nav bar. We will have a logo, then a couple of list items with drop-down menus. And also we'll have two buttons. Let's go ahead and create a logo. I'm going to open div tag with the class. Now for a logo. Next, I'm going to pass your span tag, which will wrap the first letter of the papal. That's essentially the class P1 and insert here P. Besides that we need here another span elements with a class P2. And then again insect to your p.sit. So we will use those two span elements to customize the logo. As for the rest of the letters, Let's just interrupt here. Paper. Alright, let's see about the logo. Now, I'm going to create lists. We'll have the main list with three list items. And those list items will have their own drop-down menus. Let's open a list tag with the class nav list. Then we need the LI elements with a class name, nav list item. It should be followed by the link element, which will have className nav, list link. And as the contents, I'm going to insert your personal. So the first two list items, we will have an arrow on the right side. So I'm going to pass you the Font Awesome icon. Let's open I element with a class is FAS. Fa, Chevron down Let's duplicate the LI element twice and make some changes. The second item is going to be business. As for the third item is going to be partners and developers. And here we don't need an arrow because this item ONE have a drop-down menu. Alright, so right now I'm not going to insert your drop-down menus. We will take care of them a bit later. Next, we have to take care of the buttons. Let's open the div tag with the class nav bar buttons. Then insert here a button element with the class now for btn. And also we need here another class for individual styles, Login btn. As for the content, let's insert your login. Then let's duplicate the button, change the class name. We need sign-up btn, and also change the contents. Institute sign up. Right, so we didn't have poor, we're done. Let's move on into Iike of the banner. Want to open a div tag which is going to be the wrapper of the banner. So the banner will include three different elements. The first one is going to be the heading. Let's open H1 heading tag with the class banner heading with the content. We've got you covered. Then we need paragraph. Let's open P tag with the class banner paragraph and institute some dummy text. After that, I'm going to open button tag with the class blue btn. And with the content, learn more. I used here the class blue btn. It will be a kind of common class name because we will have a couple of similar blue buttons. Alright, so that's it regarding the HTML markup of this first section. Now we can start to write some CSS. Before we do that, I'm going to bring in one more link for the font. Throughout the project. I'm going to use one of the Google fonts. So let's go to the Google Fonts website and search for font called bellow. The A2. I'm going to select all different styles. Then grab the link and paste it in the head. Alright, so now we can write the CSS. First of all, I'm going to create a couple of common and reset styles. Let's insert your comments. Common styles of common styles. Then I'm going to select every element for that. We have to use an asterisk. So first of all, let's get rid off default, margin and padding. I'm going to set both of them to zero. Then I'm going to make box-sizing border-box. Also, in order to remove default underlying from the link elements, we need text decoration none. Next one is going to be list style type none. It will remove default bullets from the list items. After that, I'm going to get rid of default outline. Let's set it to none. And finally, as defined font-family, let's use here bellow dA2, coercive. Alright. So as you can see, all common and reset styles are applied to the elements throughout the project. I'm going to use the ramp as the measurement unit. By default, one room is equal to 16 pixels, because the font size of the HTML element equals 16 pixels. I want to convert 1 g into ten pixels because I think it would be more convenient and easy to use. So in order to do that, we have to decrease the font size of the HTML element and make it 62.5 per cent. So you can see all elements became smaller. Alright, so finally, we're ready to start to customize the first section. Let's go ahead and insert your comments for section one. Then select Section one and define its width and height. I'm going to set with 200 per cent as probably height. Let's make it 65% of the viewport. Next, I'm going to set the image as the background of the first section. As far as I'm going to use here, a linear gradient function, which will allow us to darken the background slightly. So the direction of the color transition is going to be from bottom to top. Let's use here two different RGBA values. And the first one, I'm going to insert 3083 times with the opacity 0.7 As for the second one is going to be the same color but with a different opacity. Let's make it 0.6. Next, I'm going to specify the URL of the image. We have folder called images, and we need to select PG dot JPG. Also, I'm going to define the position of the background image. Let's make it center. And then we need no-repeat. Finally, let's set the background size to cover. Alright, so let's consider the image is set as the background of this section element. Next, I'm going to take care of the Navbar. Let's select its rapper. I mean, Napa wrapper. I'm going to define its width. Let's make it 100%. Then I'm going to set height to eight RAM. Then we need border at the bottom. Let's assign truth values 0.1, run solid, and we call AAA. Alright, next, I'm going to select it now for itself. Define it within height. I'm going to set width to 120 RAM. As for the height, it's going to be 100%. After that, I'm going to align elements horizontal linear row. And for that, Let's use flexbox. We need display flex that we need to create some space between the flex items using justify content space between them. In order to align items in the center vertically, we need to align items center. Alright, sold enough bar items are placed horizontally. And now I'm going to place the navigation itself in the center. For that, Let's use again flexbox. We need display flex and then justify-content center. Alright, so the navigation is aligned and now I'm going to customize each element of the Navbar. Let's start with the logo. Select the wrapper. I'm going to define font size 3.5 RAM. Then I'm going to make the font. Italica. Also make it bolder. I'm going to set font way to 800 and then change the color, make it white. Alright, so the logo all already looks good, but we have to customize it a little bit more. As you know, we have wrapped the first letter with a span element. We did that because the first letter is going to be a different one. Let's select it with the class P1. I'm going to set font size to 4.5 RAM. And then create some space on the right side using margin right, one run. Okay, so it's considered the first letter became a little bit bigger than the other letters. Next, I'm going to customize the second span element. Let's select it with the class P2. I'm going to It's font size to 4.5 RAM. And then change the color, make it BBB. Alright, after that, I'm going to change the position of the second span element. I'm going to set its position to absolute. Then in order to align it according to its parent element, which is the logo, I'm going to assign to the logo position relative. And after that, let's define the top and left properties for the second span. I'm going to set top 2.4 RAM asphalt. The left position is going to be 0.5 ran. So the position of the second span element is fixed, but as you can see, it ended up above the first P. I'm going to fix that using z-index property. But at first, we have to define the position of the first span element. Otherwise the z-index property won't work. So let's go ahead and set its position to relative. And then use z-index property with some higher value than zero. Let's make it ten. Alright, so with the logo, we are done. Now it's time to take care of the navigation items 90. Project 10 - Create and Style Landing Page - Part 2: Alright, so let's move on and continuous tiling the first section, we have all already customized the logo and now it's time to take care of the navigation items. Let's select the navigation list. I'm going to place the navigation items horizontally in a row so we need to display flex is considered the navigation items are placed side-by-side horizontally. Next, I'm going to customize the LI elements. So let's select list item. I'm going to do fine height. Let's make it eight RAM, and then create some space inside of the list. We need padding to ramp. Okay, next, I'm going to center them vertically. For that, I'm going to use again flux books. Let's set display to flex and then align items center. Alright, after that, I'm going to style the links. So let's select not least link. First of all, I'm going to define width and height. Let's make both of them 100 per cent. That increase the font size, make it 1.7 rem. Also, I'm going to change font-weight. Let's set it to 400. Then make the text uppercase. And finally change the color, make it white. Actually, the arrows should be styled as well because they are the part of the link elements. Let's check the HTML code. So as you can see, they are placed outside of the links. That's not correct. So let's go ahead and fix that quickly. Okay, so now the links look much better. They're placed a little bit up inside of the list items in order to center them vertically, Let's use again the flexbox. We need to display flex and align items center. Alright, let's move on and customize those arrows. I'm going to make them a little bit smaller. And also we need some space on the left side. So let's select I element. I'm going to set its font size to 1.5 rem, and then create space on the left side using margin-left with value 0.5 ramp. Alright, so let's see about the links and arrows. They look nice. Before we move on and start the buttons, I'm going to create a hover effect. I want to display a white line at the end of the navigation items. And also I'm going to rotate those arrows. Let's start with the white lines. They will be created using the border bottom. So let's select a list item with hover assigned to it, border bottom with values point to ram, solid and the color white. And also use transition border bottom. And then use a little duration time, 0.1 s. Alright, so here we have nice hover effects. As I said, we're going to rotate the arrows on hover as well. So let's go ahead and select the list item with hover, followed by the I element. We need to transform and then Rotate function with z direction as the value. I'm going to pass here 180 degrees. And again use transition with values transform 0.3 s. So once we hover over the item stem, the arrows will rotate. Alright, so finally we can move on and customize the navbar buttons. We have two different buttons. They will have some common styles. So at first, Let's select them using the common class name navbar, btn. I'm going to define the width. Let's make it a tram. Then create some space inside of the buttons using padding. Let's set it to 0.7 rem. Also we need margin. Let's set it to 0.3 RAM and then make the buttons rounded using border-radius with value. If we ramp. Alright, Let's move on and add some other styles to the buttons. Let's define border. I'm going to set it to point to one rem, solid and the white color. Then define font size. Let's make it one point for RAM. And also change the type of the coarser, make it point. Alright, so let's see about the common styles. Now we need some individual styles for both buttons. Let's select the first one using nth child selector. I'm going to set its background color to transparent As for the color, let's make it white. Then I'm going to duplicate this code. We need here. Nth child with number two. Then the background color is going to be white. As for the color of the text, I'm going to make it dark gray using color to 62626. Alright, so the buttons are customized and actually within our part, we're done. Let's move on and customized banner. Let's select it. First of all, I'm going to define its width. Let's make it 100%. After that. Let's take care of its position. I'm going to set its position to absolute. Then we need positioning relative for this section itself, because it's the parent element. After that, let's define the top position. I'm going to set it to 25 per cent. And also plays the contents in the center using text align center. Alright, so the banner is positioned. Let's start to customize its elements. I'm going to start with a banner heading. Let's increase its font size. Make six RAM. Then set font weight to 300. Also change the color, make it white. And create some space at the bottom using margin, bottom three ramp. Alright, so the heading is customized. Let's move on to the paragraph. I'm going to select banner paragraph. Let's increase its font size, make it 1.8 RAM. And also change the color, make it white. After that, I'm going to decrease its width. Let's make it 50%. Actually, the paragraph should be placed in the center of the banner. So let's do that using margin. I'm going to set it to zero. Then we need 0 row on the left and right sides. It will place the element in the center. As for the bottom, it's going to be for n. That's it about the paragraph. Finally, we have to take care of the bottom. Let's select blue btn. I'm going to set its width to 35 run than the height is going to be five rem. Also change the background color. Make it 036, B0, B1. And change the color, make it white. Let's go ahead and add some more style to the bottom. I'm going to make it round using a border-radius. We ran. Then get rid of default border, set it to none. And finally, take care of the fonts. I'm going to increase the font size. Let's make it 1.6 RAM, and also make it slightly bolder using font-weight 600. Alright, so the Buxton installed, and actually we are done with the banner. Now it's time to move on and add the drop-down menus to the navigation 91. Project 10 - Create and Make Dropdown Menus Work: Alright, so we're almost done with the first section. The only thing that I'm going to do is to create a drop-down menu. Once I hover over the first two navigation items, then the drop-down menu will appear and will be able to switch the menus. At first, we need to create the HTML markup. The first drop-down menu we'll go into the first LI element. Let's create here another list with the class nav drop-down. So each drop-down list will have four different list items. And each list item itself will have two different links. So let's open LI tag with the class nav dropdown item. Then I'm going to pass here link tag with the class nav, drop-down, link. One. We're going to institute how Paypal works. Then duplicate this code, change the class name, and also change the content. It's going to be, what can you do with a personal account? Alright, let's duplicate list item three times and change the content. We need here. Pay online. Then online, payment without borders. Then the next one is going to be send payments than we need to send payments abroad. As for the last two link elements, we need here a search for deals and then pay with PayPal and send money. Alright, so that's it regarding the first dropdown menu. I'm going to copy it. And then let's paste it into the second LI element in the main navigation. I'm going to change quickly the contents. So we need here all business solutions. Then we will have C or range of products. Next we have except online payments. Then get paid on your website, send invoices. The next one is going to be create an email online invoices. And finally, we need sell internationally. And Paypal supports your global growth. Okay, so here we have the drop-downs. They have messed up the layout of the nanopore, but we will take care of that. At first. I'm going to build a drop-down menus and then we'll make them work on hover. Before we do that, I'm going to hide the second drop-down menu for awhile. Let's assign to it a temporary firstname. Now, dropped down to then, select it in the CSS file and assigned to it. Display none. Alright, after that, I'm going to select enough drop-down. Let's define its width and height. I'm going to set width to 100%. As for the height, let's set it to 20 RAM and also change the background color. I'm going to use linear gradient. First of all, let's define the direction of the transition is going to be from left to right. And then I'm going to pass three colors. The first one is going to be 066399. Then we need to f, f, df. As for the third color, it's going to be the first one. So I'm going to copy it and paste it. You can see we have to take care of the position of the drop-down menu. So let's set its position to absolute. I'm going to position the menu according to the section element. This section element all already has positioned relative. We need here top Eight RAM for the left position is going to be zero. So the drop-down menu is positioned. But we have here a tiny issue. The banner is placed on top of the menu. Let's go ahead and fix that using the z-index property. Let's set it 200. Alright, so now the problem is fixed and we can start to customize the drop-down menu items. Let's select them. First of all, I'm going to set with 225 RAM and then create space using margin. I'm going to set margin to two rem at the top and bottom and Tanner M on the left and right sides. As you know, each item consists of two different links. They should be placed on top of each other. Let's do that using flexbox. I'm going to set display to flex. And then we need flex direction column. Alright, next, I'm going to customize the links. Let's start with the first link. We need to select nafta of downlink one. Let's set its font size to 1.6 RAM. As for the color, let's make it white. Then I'm going to duplicate this code. We need here link to. As for the font size, it's going to be 1.3 ramp. Alright, so the links look good, but as you can see, we have to take care of their alignment. They should be placed in the center on two lines. So I'm going to define padding. Let's make it zero at the top and bottom and zero to RAM on the left and right sides. And then again, I'm going to align elements using flexbox. We need display flex. And in order to place the flex items in the sensor, we need justify-content center. So now the items are placed in the center, but we need to place them on two lines. I mean, we have to break them for that. Let's use flex wrap with a value wrap. Alright, so the drop-down menu items are placed correctly. And now we can create a hover effect. By default, the drop-down menu should be hidden. Once we hover over the item, then it should display. And besides that, we have to change the background color of the navbar as well. We can create the overfed with CSS for the drop-down, but we cannot create it folding now for wrapper. Because if we select the list item with hover, then we still like its parent element or any of the grandparents. The hover will not work. So I decided to create horror effects using JavaScript. Right now the second dropdown menu has a display none. So let's go ahead and get rid of this code from here. And also I'm going to remove the temporary class name that we add it to the second dropdown. After that, I'm going to hide drop-down menus. For that. Let's use opacity zero and visibility hidden. Alright, so as you can see, the drop-down menus are hidden. Let's go to the JavaScript file and interview, comments, navigation. Then n of navigation. Then we need to select the first and second navigation items simultaneously. In order to achieve that, I'm going to assign to both elements. The common class names. Let's call it dropped down, hover. After that, Let's create a new variable. I'm going to call it dropdown items. And then select the first and second LI elements using querySelector all method. We have to specify here the class name, drop down hover. So now we have selected both navigation items. In general, the query selector all method returns an array-like object called a node list. So we have to loop through the list and attached to each navigation item and event listener with a mouse over event. In order to look through the list, I'm going to use one of the array helper methods called for h. So we need to attach for each method two dropdown items. This method takes one argument, which is a callback function. This function will be executed for each navigation item. The callback function itself will have one parameter, which will be the current item from the list during the loop, I'm going to call it dropdown item. So now we have to attach an event listener to a dropdown item We have to specify here the event. It's going to be mouse over. And also we need here arrow function. This function will be executed once we hover over the item. So we need two things. On hover. We have to display the drop-down menu, and also we have to change the background color of the Napa wrapper. Let's start with a drop-down menus. So we have two navigation items and two drop-down menus. We need to display the proper drop-down menu once we hover over the navigation item. So we have to access the drop-down menu from the dropdown item like so. We need dropdown item. Then we need to access the drop-down menu, which is the last child elements of the list item. So we have to use here the property called last element child. So once we have the access to the drop down menu, now we have to make it visible. For that, let's use one of the properties called CSS text. I'm going to pass your opacity one and visibility visible. So if I hover over the first navigation item, then the first drop-down menu will appear. And if I hover over the second navigation item, then the second dropdown menu will appear. After that, we hover effect will stop working because we just defined the mouse over event and not the mouse out. Before that, I'm going to change the background color of the Napa wrapper. Let's select it using query selector method. Specify here the class name Napa wrapper. Then we need property called Style, followed by the background. I'm going to use here linear gradient function. The direction is going to be to write. And then I'm going to pass here three colors. First one is going to be 066399. Then we need to f8f, the F, and then we need again 066399. So now if we hover than the background color of the novel, wrapper will change. Alright, so now we have to use mouse out event. Once we mouse out, we have to hide the drop-downs. And also we have to get rid of the background color of the novel wrapper. Actually, I'm going to duplicate this code, then change the event, is going to be mouse out. Than we need opacity zero. Visibility hidden. As for the background, it's going to be none. Alright, so now everything works perfectly and with the drop-down menus, we are done. Okay, so that syllable, the first section, let's move on and customize the next one. 92. Project 10 - Create and Customize Services Section: Alright, so with the first section, we're done, and now it's time to move on and take care of the next one. At first, let's have a look at the finished project. So we're going to build the Services section. It's going to be a simple one, will have the heading and three parts that will include Font Awesome icons, headings, paragraphs, and buttons. Okay, let's go ahead and create the HTML markup. I'm going to insert your new comments, section two. And section two. Then open a section tag with a class, section two. So as we said, this section will consist of two main parts. The first one is going to be the heading. Let's open H1 heading tag with the class section two heading. And as the contents, I'm going to insert your paypal is for everyone who pays or gets paid. Next, we need the services that's open, a div tag, which is going to be the wrapper. So overall we will have three different services. Let's open div tag with the class service. Each service will consist of a Font Awesome icon, heading, paragraph, and the button. Let's open I tag with a class is FAS, a user tie. Then we need heading. I'm going to open h3 heading tag with the class service heading with the content individuals. Then the next element is going to be paragraph. It's assigned to class, service paragraph. And insert here are some dummy text. Finally, we need a button with a class service, btn. And with the content, learn more. Okay, so that's it about the first service. I'm going to duplicate it twice and then make some changes. I'm going to change the class name of the Font Awesome icon. It's going to be FASFA briefcase as probably heading. I'm going to insert your businesses. Then the next Font, Awesome icon, is going to be FAR a handshake. As for the heading is going to be partners. Alright, so that's syllable, the HTML markup. Now we have to start to style this section. Let's insert new comments in the CSS file for section two. Then select the section element. Let's define its width, making 100%, and then create some space inside of this section, we need padding. Let's set it to ten rem at the top. Then zero on the right side than 15 RAM at the bottom and zero on the left side. Alright, next, I'm going to align the elements using Flexbox. I mean, I'm going to place the heading and services vertically in the column. Let's set display to flex. Then we need to change the direction. Let's make it column. And then place the items in the center using align items, center. Alright, so the elements are aligned. Next I'm going to customize the heading. Let's select it. First of all, let's increase the font size, make it five RAM. Then make the font lighter using font-weight to 100, then change the color, make it 333. And lastly, I'm going to create some space at the bottom using margin bottom we ran. So as you can see, the heading looks good. Let's move on and take care of the services. I'm going to place them horizontally in a row. Let's select services and set display to flex. Alright, after that, I'm going to select the service itself. First of all, let's define the width. I'm going to make 35 RAM than we need to align texts in the center. And also create some space on the left and right sides using margin. Let's set it to zero and fibrin. Alright, so that's it about the service. Now we have to start to customize its elements individually. Let's go ahead and start with the Font Awesome icons. Select them, increase the font size, make it six RAM. Then change the color. I'm going to use your color or two to nine F E7. And then create some space at the top and bottom using margin. Let's set it to two ramp and zero. Alright, so the Font Awesome icons look good. Let's move on and start the headings. Let's select service heading. Set its font size to three RAM. Then I'm going to set font weight to 300 and also create some space at the bottom using margin bottom one ramp. So the headings are customized. Let's move on to the paragraphs. So like service paragraph. Then set font size to 1.5 RAM. I'm going to make the font slightly bolder. Let's set it to 600 and also create space at the bottom. Let's set margin bottom to ramp. Okay, So the paragraph, It looks good. The only thing that I want to do, which will decrease the line height of the paragraph slightly. Let's set it to 1.2. Alright, so with a paragraph, we are done. Let's move on to the last element in the services, which is a button. First of all, let's define its width. I'm going to make it 20 RAM. Then make some space instead of the parts and using padding, Let's set it to 1.5 RAM. Also, I'm going to make the background color transparent. Then make the buttons around it using border-radius. Three ramp. Let's add a couple of more styles to the button. I'm going to change the border. The 2.1 run solid. And as the color, Let's use O365, B0, B1. Then we need to change the color. Let's use here again color R36, b0, b1. Also, I'm going to increase the font size. Let's make it 1.5 RAM than make the font bold. And also change the cursor method pointer. Alright, So the buttons look good. And actually with this section we're done. It looks nice. And now we have to take care of the next section. 93. Project 10 - Create and Style Features Section: Okay, so once we have finished working on the second section, now it's time to move on and start to build. The next section is going to be about something like features. And it will be kinda simple section will have a section heading and six different features with a nice blue background. So let's go ahead and start to create the HTML markup. Let's create new comments for Section three. Then open a section tag with a class, section three. So in this section we will have two different parts. The first one is going to be the heading. Let's open H1 heading tag with the class section three heading. The content is going to be the world prefers payable. As for the second part, it's going to be the features. So overall, we will have six different features. Let's open div tag with the class feature. Each feature will include the heading and the paragraph. Let's open h3 heading tag with the class feature heading. And with the content advanced protection. Then we need a paragraph with the class feature paragraph as the contents. I'm going to insert here some dummy text. Okay, so that's it about the first feature. Overall, we will have six of them. So let's go ahead and duplicate it five times and then show you the content of the heading elements. The second one is going to be fast payments. Then we will have global reach. The next one is going to be easy integration than simple and convenient. And the last one is going to be 24-seven service. Alright, so that's it. The HTML markup is ready, and now we have to style this section. Let's go ahead and create new comments in the CSS file. We need here section three and section three. And then select this section elements. First of all, I'm going to define its width. Let's make it 100 per cent. Then I'm going to create some space at the top and bottom inside of this section, let's use padding, set it to five rem and zero, and then define background. I'm going to use linear gradient with three different colors. But at first, I'm going to define the direction of the color transition. It's going to be from left to right, and then use RGBA value. The first one is going to be three, then 303129, and the opacity 0.9. This second color is going to be 967153. And the opacity of 0.8. As far as the third color, Let's do 4321 to four. And the opacity point night, and also change the color of the text. Make it white. Okay, after that, I'm going to align the elements using Flexbox. The content is going to be placed in the center horizontally. Let's set display to flex. Then in order to place the heading and the contents on top of each other, Let's use flex direction column. And then to place the content in the center, Let's use align items center. Alright, so the elements are aligned. Let's go ahead and customize this section heading. First of all, I'm going to define the font size. Let's make it five RAM. Then make the font lighter, set font-weight to 300. And finally creates some space at the bottom using margin bottom five rem. Alright, let's move on and customize the features. Let's select a wrapper div elements and define width 70%. And then I'm going to place the features side-by-side horizontally. For that, we need to use display flex. Okay, so now we have to place the features on two different lines. But before that, I'm going to define a width of each feature. I want each feature to take up one-third of the width of the wrapper. So let's select feature, then, define width. So now I'm going to use calc function because we need to divide 100% by three. In this case, each feature will take up one-third of the width of the wrapper. And after that, Let's use flex wrap. To wrap. It will allow us to place the futures on two different lines. Okay, so now we have to solve the feature itself. Let's airline texts in the center. Then I'm going to create some space on the left and right sides inside of the feature using padding. Let's set it to 0.5 RAM. And finally creates some space at the bottom using margin bottom five rent. Okay, so now we have a much better results. Next we have to style the heading and the paragraph. Let's future heading. First of all, I'm going to define a width. Let's set it to max content. In this case, the element will take up the width that is required to display the content. Next, we need font size. Let's make it three RAM. Also set font weight to 300. And then we need to define margin. Let's set it to zero at the top. Then in order to center the elements, we need to set margin to auto on the left and right sides. As for the bottom, it's going to be one rent. Okay, Finally, let's take care of the paragraph. Select future paragraph. Find Font Size, make it 1.5 RAM that we need font-weight. Let's make it 500. And lastly, I'm going to decrease the line-height. Let's set it to 1.2. Alright, so finally, we're the third section. We're done. It looks nice. Let's move on and take care of the next section. 94. Project 10 - Create and Style Get Started Section: We have already created a couple of sections of the front page. It's time to move on and proceed with building the next section. We have to build a fourth section of the front-page, likely previous sections. This one is going to be a simple section as well. We will have a heading followed by the image and the list. Let's go ahead and start to create the HTML markup and going to institute new comments for Section four. Then open a section tag with the class section four. So we will have two main parts in this section elements. The first one is going to be the heading of this section. Let's open H1 tag with the class section for heading. The content is going to be get started with Paypal. Then we need a div tag which will wrap the image and the list. I'm going to assign to the class section for content. So now I'm going to insert an image, but at first let's create a div tag, which will be the wrapper of the image. I'm going to assign to the cluster section for IMG wrapper. And then insert here on image. I'm going to select MacBook dot PNG from the images folder. Alright, so after that, we need to create a list. Let's open UL tag with a class section for at least the least will include three different list items. Let's open LI tag with the class section for list item. So each list item will consist of two span elements. The first one is going to be the number. As for the second one, it should be the content of the item that's open span tag with the class number one. Then we need another span tag. Actually, inside of that span tag, we will have link. Let's insert here a business account. Let's duplicate the LI element twice and make some changes. So in the second and third list items we will have some dummy text. Alright? So the HTML markup is prepared, and now we have to start to customize this section. Let's insert new comments and the CSS file section for end of section four. Then select a section elements and define the width, make it 100%. Then I'm going to create space at the top and bottom of this action using padding. Let's set it to ten RAM zero. And then I'm going to align heading and the content using flexbox. We need display flex. Then we need to change the direction. Let's make it column. And also in order to place the content in the center, Let's use align items center. Alright, so the elements are aligned. Next, let's customize this section heading, selected, defined font size, make it five RAM. Then I'm going to change the font weight. Let's make it 400. Also change the color. I'm going to make it 44 and then creates a space at the bottom, use margin, bottom five ramp. Alright, let's move on and take care of this section content. I'm going to place the image and the least side-by-side. So let's select wrapper div and assigned to it display flex. The debts. Let's customize the image. Actually, right now it's too big. Let's select wrapper. I'm going to define the width. Let's make it 50 RAM. Then select the image itself. I'm going to set with 200 per cent. In this case, the image will take up the width of its parent element, which is the wrapper. And then I'm going to decrease slightly the opacity of the image. Let's set it to 0.8. Alright, so the image looks good. Let's go in and customize the list. Select UL elements. First of all, I'm going to define the width. Let's make it 55%. Then create some space at the top using margin top to run. Now we have to work on the list items. Let's select LI elements and define the font size. I'm going to make it 1.6 RAM. Then make the font slightly bolder. Let's set font way to 600. And after that, I'm going to place the numbers and the text elements side-by-side. Let's use display flex and also place the items in the center. And finally create some space at the bottom using margin bottom to run. Alright, so now I'm going to take care of the numbers. Let's select them. First of all, let's define width and height. I'm going to make both of them 3.5 RAM. Then we need to create the border with the value is 0.1 RAM solid. The color 555. Also, we need to make them around it. Let's use border-radius with a value of 50 per cent. And also create this space on the right side is emoji write 1.5 ramp. Okay? After that, we have to place the numbers in the center of the circles. For that, I'm going to use flexbox. We need display flex. And for centering, we have to use justify-content center and align items center. Alright, so we're almost done. The only thing that I'm going to do is to change the color of the link in the first list item and make it slightly bolder. Let's select link elements. I'm going to change the color. Let's make it o36, b0, b1. And also change the font weight. Make it bold. Alright, so that's it. The fourth section looks good. Let's move on. 95. Project 10 - Create and Style Footer: Alright, so step-by-step, we are moving forward. Now it's time to create the last section of the front page. It's going to be the fifth section. It will consist of two main parts. The first part will include a heading and I bought some. As for the second ball is going to be the footer of the page, it will include the lease and a copyright text. Let's go ahead and start to create the HTML markup. I'm going to insert new comments for Section five. Then open a section tag with a class section five. So as we said, we will have two main parts. The first one is going to be Section five. Top. Here we will have just two elements, heading and Bateson. Let's open H2 heading, tag with a class section five, top heading. As far as the content, let things if you sign up and get started. As for the button is going to be similar to the button that we have created in the first section. I'm in the blue button. So let's use class. Blue. Btn. Content gets started. So as you can see, it's already style. Alright, that's it about the first part. Let's go ahead and create the footer. I'm going to use HTML5 footer element with a class footer. The footer itself will consist of two parts. We'll have a filter top and footer bottom. So the top side will include two different lists. Let's open UL tag with a class footer list. Then I'm going to insert your LI tag, followed by the link tag with the content help conflict. So in both lists, we will have five list items. So let's duplicate the LI element four times and then make some changes. For second list item is going to be fees that we will have security features. And the last one is going to be shot. Okay? I'm going to duplicate the entire list elements and then make some changes again. The second list is going to be four languages. Let's insert your English. Then. The next one is going to be Spanish, French, Italian, S4. The last item is going to be the image. So instead of the text, Let's institute an IMG element. Let's select FLAC dot PNG from the images folder. It's going to be the Georgian National flag. Alright, that's it about the fruit or top. Now we need Footer Bottom, which will include just a single paragraph, will be class copyright. And with the following texts, we need copyright, followed by the HTML5 entity, which will be the copyright sign. And also let's insert you. All rights reserved. Okay, so finally the HTML markup is prepared and we're ready to customize this section. Let's go ahead and create new comments and CSS file. We need Section five. Of Section five. Then select the section elements and define it with making 100%. After that, I'm going to select the top part of this section elements. Let's define its width, make it 100%. And also I'm going to change the background color. Let's use your color. F3, F7, F8. Okay, After that, I'm going to place the elements in the center. And also I want to create some space at the top and bottom instead of the element. Let's use text-align center. As for this pace, I'm going to make it using padding. Let's set it to seven rem. And then zero. After that, I'm going to take care of the heading. Let's select it. First of all, let's increase the font size, make it 3.5 gram. Then make the font slightly lighter. Set font weight to 400. And also creates some space at the bottom using margin bottom with a value for R1. Okay, so that's it about the heading. As per the blue button. It is all over these tiles. We will have a couple of blue buttons in the project. So I'm going to grab the CSS code of the parson and put it in the common styles. Also, I want to add here one more style. Let's change the type of the coarser. Make it point to So with the first part, the top part, we are done. Let's move on and start to work on the footer. First of all, let's define its width and height. I'm going to set width to 100%. As for the height, let's make it 15 ran. Next, I'm going to align the elements using Flexbox. Let's use display flex. I'm going to place the elements vertically in a column, and also I want to align them in the center. So let's go ahead and change the direction. Make it column. Next, I'm going to create space between the flex items. Use justify contents, space between. Then in order to place the elements in the center, use align items center. And finally, create some space inside of the footer. Use padding. I'm going to set it to four runs at the top than zero on the right side, three RAM at the bottom and zero on the left side. Okay, so before we proceed, I want to change the size of the image. It's too big right now. Let's make its width 3.8 RAM. And also I'm going to decrease the opacity, make it 0.6. Alright, now, it's much better. Let's go ahead and take care of the footer top. Let's set its width to 70%. Next, I'm going to place both leads side-by-side. So let's set display to flex and also create space between the lists using justify content space between. Okay, after that, I'm going to create a border at the bottom of the foot or top. Let's ease border bottom values 0.1 RAM than this tile is going to be dotted. As for the color, Let's use 262626 and also create some space at the bottom using padding. Bottom one run. Alright, now we can customize the links. I want to place the list items horizontally in a row. Let's select a UL tag. I'm going to use Flexbox. Let's set display to flex and then place the items in the center using align items center. Next I'm going to style the list items of both lists. And use margin right? With the value 2.5. Run. After that, Let's select the links. First of all, let's change the font size, make it 1.5 RAM. Then make the phone bolder. Font weight to 600, and also change the color. Make it to 62626. Alright, so finally, we have to customize the copyright paragraph. Let's select it. Make its font size one point for RAM. Then set font weight to 600. And also create some space between the letters using letter spacing, 0.1 ramp. Alright, so with the fifth section we are done and actually we have finished working on the front page. Now it's down to take you have to login page. So let's move on. 96. Project 10 - Create and Style Login Page: Alright, so we have finished working on the front page of the project, and now it's time to take care of this second page, which is going to be the login page. Let's take a look at the finished project. So here we have the login page. We don't have that much content. We will create the logo followed by the input fields and two buttons. Before we start to build the HTML markup of the login page. First of all, I'm going to hide the front page at all. Let's select it and assigned to it, display none. Okay, now, down below, right after the front page and I'm going to insert new comments for login page. Then open a div tag with a class login page. It's going to be the wrapper. Next, I'm going to open another div tag which will wrap the content. Let's call it login page content. The content will consist of two main parts. We will have the logo and a form elements. Actually, the logo will be similar to the null for logo. We just need to change the colors of the letters. Besides that, we will create a similar logo on the sign-up page as well. So in order to avoid using the same code over and over again, I'm going to do the following. Let's assign to the navbar logo another class, I mean logo. It's going to be the common class name for all three logos that we will use throughout this project. That I'm going to grab the code, paste it down, and make some changes. We don't need the class name, navbar logo instead of it. Let's add here login page logo. Next, I'm going to wrap half part of the word paypal with a span element. And also wrap the second part with a span element as well. Actually, I'm doing that because both parts will have different colors. Besides that, I'm going to change the class name in the CSS file as well. Let's call it logo and also put this code in the common stocks. So as you can see, the logo already has the styles. Actually it's not visible right now because it does have the white color. Okay, let's move on and create the rest of the elements. The next one is going to be the formed with a class login page form. So inside the form element, we will have a couple of different elements. First of all, we need to input elements and it's the scientist class, form login input. Also we need placeholder attribute, email or mobile number. Let's duplicate the input elements and change the type is going to be password. And also get rid off the placeholder attribute. After that, I'm going to create the button for login. Let's open input tag with a class of form Login btn. The type is going to be Barton. As for the value is going to be log n. So the Buxton is created. Next we need a link elements that's assigned to its collapse form login link. And as the content, I'm going to insert you having trouble logging in. After that, I'm going to create a span element as the contents. Let's insert to you. Or finally let's create a second button for sign up. Actually I'm going to copy it. The first button, change the class name is going to be formed, sign up btn. As for the value, let's insert you, sign up. Alright, so that's it regarding the HTML markup. Now we have to style the login page. But first, let's insert new comments in the CSS file login page. Then and off login page. Besides that, I'm going to add comments for the front page. Actually, I forgot it at the beginning. Then select the rapid developments and define the width and height. I'm going to set width to 100%. That's what the height is going to be 100% of the viewport. Alright, Next let's select the contents and define its position. I'm going to set it to absolute value. We need to position relative for the parent element. After that, let's define the top and left properties. I'm going to set top property to 12%. As for the left property, it's going to be 50 per cent. Then I'm going to center the element perfectly. For that we need to transform than the function translate with x-direction and with value -50 per cent. After that, I'm going to align the logo and the form using Flexbox. Let's set display to flex. Then we need to place the elements vertically in a column so we need to change the direction, make it column, and also use align items center. Alright, next let's create the border around the contents. Let's set it to 0.1 rem solid, and as the color, Let's use CF, CF, CF. Finally, I'm going to create some space inside of the box. Let's do that using padding. Make it three RAM on all four sides. Right? That's syllable the contents. Now we have to customize the logo. First of all, let's create some space at the bottom, I'm going to select login page logo. Let's define margin bottom. Make it one point to run. Next, I'm going to change the colors of the letters. Let's start with a P letters. We need here login page, logo, followed by the class P1. Let's make the color oh, 64699. Then duplicate this code and change the class name we need here, P2, because it's going to be the second P letter. As for the color, Let's use here three to four f 0. Okay, so the p letters are colored. Let's move on and take care of the rest of the letters. As you remember, we have separated the word PayPal into two parts. Let's select the first part. I'm going to use class login page logo than we need span followed by the nth child selector. It's going to be the third element. Let's change the color, make it 064699. Then duplicate this code. Change the number we need here. Fourth child as well. The color is going to be three to four f. Alright, so with the logo, we are done. Let's move on and take care of the formed elements. Select it. First. I'm going to align the elements vertically in a column for that, Let's use flexbox. We need display flex, then flex direction column, and align items center. Okay, let's move on and start to style the input elements. As you know, we have two input fields and two buttons, which are created using the input tags. All four elements will have some common styles. So let's select them using a tag name. First of all, we need to login page form followed by the input. So at first let's define width and height. I'm going to set width to 37. Run. Let's put the height is going to be 4.5 gram. Then creates space around the inputs using margin. Make it one run. And also make the inputs rounded using border-radius. 0.5 ramp came after that. Let's select the first two input fields using className form login input. Let's create some space inside of the inputs on the left and right sides using padding, make it 0.1, 0.5 g. Then I'm going to change the border, make it 0.1, run solid, and the color 777. And lastly, increase the font size, make it 1.6 ran. Right? So that's it regarding the input fields, Let's move on and customize the login button. Let's select it. First. I'm going to define the background color. Lets you see your color. Oath we 6P1 Then change the color of the text and make it white. Also, we need border with the values 0.1 room solid. And as the color, Let's use again o36, B0, B1. Then I'm going to take care of the font. Let's increase the size, make it 1.8 Ran. Also make it bolder, set font weight to 600, and finally change the type of the coarser, make it pointer. Alright, so the Login button is customized. Next, I'm going to customize the link element. Let's select it, increase its font size, make it 1.6 RAM, then change the color. Let's use your color or two to nine FC7. And then create some space at the top and bottom using margin, I'm going to set it to 1.2 rem at the top than zero on the right side, one room at the bottom, and zero on the left side. Alright, so the link element looks good. And now we have to take care of these span elements. I'm in the word or which we have here. Actually, besides this word, we need to create two lines on the left and right sides as we have them in the finished project. So let's go ahead and select span elements. At first, I'm going to define its width. Let's make it to run. Then set font size to 1.8. Ran, change the color. You see your color 888, and then create some space at the top and bottom using margin that's assigned to it. One run and then zero. Okay, and so this span element is styled and now we have to create your lines. I'm going to create them using before and after pseudo elements. Let's start with the before pseudo elements. It's going to be placed on the left side of the span elements. First of all, let's define content, make it empty. Then I'm going to set width to 16 RAM. As for the height, it's going to be 0.1 RAM. And also change the background color, make it C, C, C. So right now the line is not visible. We have to define this position. Let's make it absolute. Then we need to position relative for the parent elements, which is the span. After that, let's define top position. It's going to be 50 per cent. Then we need, right, let's make it 3.5 RAM. Then in order to center the elements vertically, Let's use Transform. Translate Y with value -50 per cent. Alright, so that's sin regarding the first-line. We need the same on the right side. So let's duplicate this code. Change before and after. Then instead of right position, use left. Alright, so with the lines we are done, Let's move on and customize the last element of the login page, which is a parson. I made this sign up BTN. Let's change the background color. Let's use your color, D, B, E, D, C. Next I'm going to change the border. Let's assign two to 0.1 RAM, solid and the same color, DBE ATC. Then I'm going to increase the font size, make it 1.8 RAM. Then change the font weight. Make it bolder. Use 600. Lastly, change the type of the cursor, make it pointed. Alright, so that's it. We have finished working on the login page. Now, it's time to move on and take you of this sign-up page 97. Project 10 - Create and Style Sign Up Page: Alright, so we have created the login page, and now it's time to build the last page of our project, which is going to be the sign up page. Let's take a look at the finished project. So as you can see, the sign-up page consists of a couple of different parts. We have the top side, which includes the logo and the Login button. Then down below, we have two different parts of the contents. On the left side we have a couple of images of the customers. As for the right side, it consists of two options and a box. Okay. So that's all about the sign up page. Let's go ahead and start to create the HTML markup. Let's insert your new comments. After the login page. We need sign-up page and sign up page. Then open a div tag with the class sign up page. So as we already said, we will have two main parts, the top part and the content. So it's open div tag with the class sign-up page top. We need to institute the logo and the Login button. Like the previous page, I'm in the login page, we will need the same logo that we used on the front page. So let's grab it from the first section and paste it down here. I'm going to change the class name. We need to use sign-up page logo. Besides that, we need to create a button as the content. Let's Institute login. Alright, so let's see about the top side. Let's move on and create the rest of the content. I'm going to open div tag, which is going to be sign-up page content. The content will consist of two parts. We'll have the left side and right side. Let's open div tag with a class sign-up page content left. The left side will include three images and the heading, Let's open div tag, which will be the wrapper of the images. I'm going to assign to the class content left images. Then insert here IMG elements and select person one dot JPEG from the images folder. Then I'm going to duplicate an image element twice and change the names of the image. Alright, next we need the heading. Let's open H1 heading tag with a contents. See for yourself why millions of people laugh paper. Alright, so that's it about the left side. Now we need to create the right side. I'm going to open div tag with the class sign up page content. Right? So this part will include two heading elements and a form that's open. H3 heading tag with the content. Sign up for paypal. It is free. As for the second heading, it's going to be H4 heading tag where the content choose from two types of accounts. Okay, So next I'm going to create a form elements. Let's assign to it class sign-up page form. Inside the form elements, we will have to input groups and a button. So let's open div tag with the class input-group. The input group will consist of a radio button and some text elements like heading and paragraph. Let's open input tag, a type radio. Also we need to use attribute called name with devalue checkbox. And besides that, I'm going to use another attribute called checked. It means that the first radio button will be checked by default. Okay, next I'm going to open div tag with a class option. It will include heading and paragraph. That's open h3, heading tag with the content, personal account. Then I'm going to open a p tag with some dummy text. Let's go ahead and duplicate this code. Once. I'm going to get rid off checked attribute and also change the personal account into business account. Lastly, I'm going to create a button which is going to be similar to the blue buttons that we created on the front page. Let's open button tag with a class blue btn. And then as the content right here, continue. Okay, So before we start to style the sign-up page, I'm going to hide login page. Let's assign to it, display none for awhile Okay, So now we're ready to start to start the sign up page. Let's insert new comments in the CSS file. It's sign-up page. And off sign-up page. Then select the wrapper div elements. I'm going to set its width to 100%. As for the height, let's make it 100% of the viewport. Actually, I think would be better if we make those images smaller because right now they are too big. So let's select images and make their width 18 rent. Okay, so now it's much better. Let's go back to the rapid developments. Next, I'm going to change the background of the page. Let's take a look at the finished project. So as you can see, the top side has a different background. We will create this kind of background with a linear gradient function. So let's define background with the linear gradient. The direction of the transition is going to be from top to bottom. As for the colors, I'm going to use RGBA values. The first one is going to be 1123 times. And also at here opacity 0.9. As for the second RGBA value is going to be the white color, the opacity, 0.8. So I want the white color to start appearing after ten per cent of the transition. So we need to interview ten per cent. So as you can see, we have here a darker background color for the top side. Alright, Next, let's take care of the layout. For that. I'm going to use again Flexbox. Let's set display to flex. Then I'm going to align flex items vertically in the column, so we need to change the direction. Let's set it to column and also align items in the center. Alright, so now I'm going to take care of the top side of the page. Let's select the development. First of all, I'm going to define width and height. Let's set width to 120 RAM. As for the height, let's make it ten ramp. Besides that, I'm going to use again Flexbox. Let's set display to flex. Next, I'm going to create space between the flex items using justify content space between and also align items vertically in the center. And finally, let's create some space at the bottom using margin bottom five ramp. Alright, so the elements are aligned nicely. Actually the logo looks nice. We just need to change one thing. We have to change the color of the second P letter. So let's select sign-up page logo, followed by the P2 class. Let's set the color to E9. E9, E9. Alright, let's see, regarding the logo, Let's move on and customize the button. Let's select it. At first. Let's define this width, make it eight ramp. Then I'm going to create some space inside of the button using padding. Let's make it 0.7 rem on all four sides. Then I'm going to change the background color. Let's make it transparent. Create the border, make it 0.1 rem solid. And as the color, let's use white. And also I'm going to make the button rounded using border-radius with value three ramp. Okay, After that, let's take care of the text. Let's set font size to 1.3 RAM. Then I'm going to make the phone bolder. Let's set the font-weight to 600, change the color of the text to make it white. And lastly, I'm going to change the type of the coarser, make it point. Alright, so finally, with the top side, we are done. Let's move on and take care of the content. Select the developments. And at first let's define width, make it 120 ran. Next I'm going to align the elements using again Flexbox, set display to flex, and then create some space between the flex items using justify content. Space between, alright, so both sides, I mean left and right sides are placed side-by-side. And now we have to customize them. Let's start with the left side. Select the wrapper development. So the left side will take up 60% of the content. So let's set width to 60%. Then I'm going to create a border on the right side with value is 0.1 RAM solid As the color, Let's use B1, B1, B1. And besides that, I'm going to create some space inside of the elements. Let's set padding to three rem, at the top, on the right and at the bottom side. As for the left side, Let's make it zero. Okay, after that, I'm going to take care of the images. I'm going to select a wrapper of the images. Let's use again Flexbox. And then create some space at the bottom using margin bottom five ramp. Alright, next I'm going to customize the image itself. First of all, let's make them rounded using border-radius 50 per cent. Also create border. Let's insert you 1.5 gram solid. And as the color, Let's use C, C, C, and then create some space on the right side using margin-right five rem. Okay, So the images look good. Let's move on and start the heading elements. Let's select it. First. I'm going to increase the font size. Let's make it for RAM. Then make the font lighter, set font way to 300. Also. Change the color, make it 333. Lastly, I'm going to decrease the line height of the heading. Let's make it 1.1. Alright, so that's it about the left side. Let's move on and customize the right one. Let's select the development. Actually it will take up 40% of the width of the content. Then I'm going to define the padding. Let's set it to three rem at the top. Then zero on the right side. As for the bottom and left sides, Let's make them 3D ramp, then change the color, make it 555. Actually, I see here that the headings and input groups are placed side-by-side. They should be aligned vertically on top of each other. So we might have a mistake in the HTML file. Let's check it. As you see, the form is placed outside of the wrapper. So we need to fix that. Let's move it inside the rapper. Okay, next I'm going to start. The headings overall will have two different headings. Let's select the first one, which is the h3 heading elements. Let's set font size to 2.4 RAM. Then make the font weight 300. Then I'm going to duplicate this code. Let's change H3 and H4. Also as the font size, I'm going to use 1.6 RAM. As for the font weight, let's make it 500. Okay, So the headings are customized. We have here a tiny issue, actually not really the issue. The headings in the input groups are h3 tags and their size are changed as well. Let's fix that. I'm going to select option H three, then set font size to 1.7. Run. As for the font weight, I'm going to make it 600. Alright, so now the problem is fixed. Let's go ahead and select the input group. I'm going to place the elements side-by-side. So let's use display flex. Then. I'm going to create some space around the wrapper using margin with value 1.5 round. Next, let's customize the paragraphs. Select option P. I'm going to set font size to 1.5 g. Alright, so finally we have to take care of the radio buttons. Let's select them using type attribute. First of all, let's increase their size. I'm going to set width to 30%. As for the height, let's make it to run. So now they are bigger, but we have to adjust their position slightly. Let's do that using margin. I'm going to set the margin to 0.5 rem at the top than one rem on the right side. At the bottom, it's going to be zero. As for the left side, let's make it -1.5 ramp. Alright, so as you can see, finally, we are done. The sign up page is created and customized. And actually the entire project is built. Now we have to make it responsive to different screen sizes. Before we go, I want to do a couple of things. By default, we have to display the front page. And then once we click the login and sign up buttons, we have to navigate to the proper pages. Also, once we click the logos of people, we have to go to the front page. For that. I'm going to use a little bit of JavaScript. Before that, I'm going to assign to the login and sign up buttons, some common classes that will be used in the JavaScript to select the elements simultaneously. All three logos have the common class logo, so we don't need to touch them. Let's assign to the login and sign up buttons. In the Napa, the following classes. We need login for login button and sign up for the sign-up button. Next we have a button down below in the fifth section. Let's assign to it, sign up. So actually, that's it about the front page. On the login page, we have a sign-up button. As for the sign-up page, we have a button for login. Alright, so the HTML is ready. Before we use that to write the JavaScript, I'm going to hide both login and sign up pages. Actually the login page is already hidden. Let's assign to sign up page display none. As for the front page, Let's get rid of display none. Alright, so I think we are ready to start to write some JavaScript. I'm going to insert new comments, pages of pages. Next, I'm going to select all the logos. Use here, query, selector, all method, and then specify here the class name logo. Now we need to look through the list that was returned by the query selector all method. And we have to add such an event listener to each logo. Click events. Let's use one of the array helper methods called for-each. It will help us to loop through the list. So the forEach method takes one argument is the callback function, which will be executed for each list item. The callback function itself takes one argument and it's the current item, the list, during the loop. So now we have to attach an event listener to logo with click events and with an arrow function, which will be executed on the clique. So onclick we have to display the front page and height, the login and sign up pages. Let's select front-page using querySelector method. So we need then style property followed by the display. It should be equal to block. Let's duplicate this line of code twice. Second page is going to be login. We have to hide it. So display is going to be none. As for the third page, it's going to be Sign up. And again, we need display none. Okay, next we need the same for the login and sign up buttons. Let's duplicate this code twice and then make some changes. So we need here class login. So I'm going to change here the argument. Let's make it Login btn. So in case of login buttons, we need to hide front and sign up pages. Asphalt the login page. We need to make it visible. So we need here block. Okay? As for the sign of buttons, Let's change here the class name. Also. We need here sign-up btn. So in case of the sine of buttons, we have to hide frontpage and login page. As for the sign-up page, you need to make it flex because by default it has display flex. Alright, let's go ahead and test if everything works well. So as you can see, everything works fine. The last thing that I want to do is to make the cursor pointer once we hover over the logos. So let's assign to it coarser point. Alright, so finally we are done with the project. The only thing that we have to do it to make it responsive to different screen sizes. So let's move on. 98. Project 10 - Make Project Responsive - Part 1: Alright, so we have finished building our projects. I mean, all these sections and pages are created. The only thing that we have to do is to make the project responsive to different screen sizes. Right now the project is built for an extra large screen size. I'm in. This coincides with 1920 pixels of width and height. We use a desktop force approach. Let's inspect the page and switch to the responsive mode. So as you can see, the width and height are set to 90, 20 pixels and 1080 pixels. Now we have to find the break points on which we need to make some changes. Actually, I'm not going to start to find the breakpoints you because I have already prepared them, so I'm not going to waste time on that. The first breakpoint is going to be 1,500 pieces. Because as you can see, the drop-down menu is messed up. And also we have to customize the third section slightly. So let's go ahead and insert new comments and the CSS file for the Responsive Code. Then I'm going to create new CSS media query. We need to specify here the max-width. Let's set it to 1,500 pixels. So as I said, we have to take care of the drop-downs. So let's select the drop-down and decrease the padding on the left and right sides. Let's make it 25 ran. After that, I'm going to select the dropdown item. Let's define margin. I'm going to set it to two rem at the top and bottom and six rem on the left and right sides. Alright, so let's consider the drop-down menus. Look good. Let's move on to the third section. Let's select wrapper with the class features. I'm going to change its width. Let's make it 80%. And then select the feature itself. Let's change padding. I'm going to make it zero at the top and bottom, and then three rem, on the left and right sides. Alright, so the third section, it looks nice. And actually all other sections are good. Let's check the login and sign up pages. As you can see, they don't need to touch for now. Okay, so let's see about this breakpoint. Let's move on and take care of the next one. So the next breakpoint is going to be 1,400 pixels. Let's create a new CSS media query with a max-width, 1,400 pixels. So first of all, I'm going to decrease the font size of the HTML element. Let's set it to 55%. It will make the elements relatively smaller. So as you can see, we have much better results. But still we need to make some changes. I'm going to change the width of the Navbar. Let's make it hundred ran. After that, I think we need to increase the height of the first section a little bit. So let's select it and set the height to 70 viewport height. Next, I'm going to increase the width of the banner paragraph. Let's select it and set its width to 70%. So I think that's silly about the first section. Let's move on and customize the Services section. Let's select a rapid developments and defining sweep, make it 90%. So the Services section looks good. Next we have the feature section. Actually, it looks good, but I think would be better if we increase the width of the wrapper. So let's select features and set width to 90%. Okay, let's move on to the fourth section. I'm going to change the width of the content. Let's select section for content and set its width to 80%. Also, I'm going to decrease the size of the image. Let's select wrapper development. Define its width as 40 per cent. And also change the amount of space on the right side using margin right, with a value six ran. Alright, so that's it about the fourth section. And actually with the front page, we are done. Let's move on and check other pages. Will login page looks good. As for the sign up page, it needs some changes. I'm going to increase the size of the background color at the top. So let's select sign-up page. Then. In order to avoid writing the linear gradient function, I'm going to copy it from the top. Let's paste it down and change the percentage value we need here, 12%. Alright, so I think with this breakpoint, we are done. All three pages look good until the screen size becomes 1,200 pixels because the sign up page needs some changes. For the rest of the two pages. We don't need to touch them on 1,200 pixels. So let's go ahead and create a new CSS media query and specify max width as 1,200 pixels. On the breakpoint, I'm going to change the layout of the sign-up page. First of all, let's decrease the width of the top side. I'm going to make it 90 ran. Next. I'm going to change the alignment of the contents. Right now they are placed side-by-side, and I'm going to place them vertically on top of each other. So let's select sign up page content. First of all, let's define its width, make it night Ram. Then we need to change the direction of the flux layout. Let's make a column. And lastly, align items in the center. Alright, so as you can see, the layout is changed, but the content itself doesn't look good. So let's take care of that. I'm going to select the left part. We need sign-up page content left. Let's set its width to 100%. And also I'm going to get rid off border on the right side. Let's set blue-white to none. Okay, next, I'm going to place the elements in the center for that. Let's use Flexbox. When you display flex. Then we have to change the direction of the layout. Let's make it a column and then place the flex items in the center. We need align items center and also text align center. Alright, so now we have a much better results. Next, I'm going to create the border at the bottom. Let's use border bottom with the values 0.1 RAM solid. And as the color, Let's use B1, B1, B1. Okay, so that's it about the left side. Let's move on into EQ of the right side. Select sign-up page content, right? I'm going to define it with, let's make it 100% and also change the amount of padding. I'm going to make it three rem on all four sides. Right? After that, I'm going to take care of the radio buttons. I'm going to decrease like nuclear width and also change their positions. Let's select inputs with the type attribute. It's going to be a radio. Let's set with 210 per cent. Then change slightly margin. We need 0.5 rem at the top than zero on the right side, bottom is going to be zero as well. As for the left side. I'm going to make it minus three run. Alright, so finally I'm going to take care of the button. I want to increase its width 200 per cent. Actually, as you know, the button has a common class name, blue btn. So if we select this element using just the class name blue btn, we will affect all blue buttons. In order to select this particular button, we need, at first, its parent element, sign-up page content, right? Followed by the class blueback t n. Let's set with 200 per cent. And also change margin at the top and bottom. I'm going to set it to three run and then zero on the left and right sides. Alright, so everything looks good. And with this breakpoint, we are done. Let's move on and find the next one. The next breakpoint is going to be 1,100 pizzas. Because as you can see, the drop-down menus are messed up. Actually on the breakpoint, we have to fix that problem only because the rest of the sections pages look good. So let's go ahead and create new CSS media query. With them, max-width, 1,100 pixels. Then select the drop-down item and change the margin. I'm going to set it to two rem at the top and bottom and 3.4 rem on the left and right sides. Alright, so that's it. Let's go ahead and make the project responsive to the next breakpoint. 99. Project 10 - Make Project Responsive - Part 2: Alright, so we have made our project responsive on a couple of different break points. The last one was 1,100 pixels. Let's go ahead and continue. The next breakpoint in which we have to make some changes is going to be thousand pixels. This breakpoint is going to be a complex one because we have to make some important changes. On the breakpoint. We will modify the navigation menu. Right now the navigation items are placed at the top of the page. If we hover over them, then the drop-down menus will appear. After thousand pixels, we will no longer have such a menu, will place and hide it on the left side of the page. Also, we will create a menu icon. And once we click the menu icon will display the menu from the left side. Besides that, we will highly drop-down menus as well. And they will display once we click the proper navigation items. So that's what we're going to do on thousand pixels. Let's go ahead and create a new CSS media query and specify max-width as thousand pixels. So the first thing that I'm going to do is to decrease the font size of the HTML element. Right now, it is 55 per cent, and I'm going to decrease it to 50 per cent. So the elements became smaller and now we have a better result. Next, I'm going to hide the novel least for awhile because we have to create the menu icon and also we have to change the alignment at the top of the webpage. Let's assign two novelist display none. Okay, So the navigation items are hidden. We have here just the logo and buttons. Let's go ahead and create a menu icon in the HTML document. I'm going to open div tag with the class menu. Then we need another div with the class menu icon. It will include three lines. So let's open div tag with a class this line and line one. The first one is going to be a common class name. As for the second one, we will use it for individual styles. Let's duplicate this line of code twice and change the class names. Besides that, I'm going to open span tag you because we need reward menu. The menu icon is created and now we have to customize it as first, let's create some space on the left and right sides of the nail bar. Let's select it. Define its width, make it 100%, and then create space using padding. I'm going to set it to 0.5 rather than select the menu icon. Define its width and height. I'm going to set with 211 run. As for the height, it's going to be for RAM. Besides that, let's define background color. It's going to be a temporary background color. Let's use here e. After that, Let's make the Icon rounded using border-radius with value three RAM. Then change the border. You see your 0.1 RAM solid and the white color. Then also, I'm going to change the type of the course will make it pointed. Alright, so as you know, the Menu icon consists of two parts. We have the lines and we span element. They should be placed side-by-side. And also they should be aligned in the center vertically. For that as usual, I'm going to use Flexbox. Let's set display to flex. Then we need to align items center and justify content space evenly. So right now the first part is not visible, but once we display it, it will be placed on the left side. Let's go ahead and display the lines. Select them using common class name line. At first, define its width. I'm going to make it to RAM. Then the height is going to be 0.1 RAM. And also change the background color. Make it too. So here we have the lines, but right now they are placed on top of each other. We need to separate them. So let's go ahead and select menu icon and define its height. I'm going to make it 1.5 RAM. Then use again flexbox. We need display flex. Then we have to change the direction because the lines should be placed vertically in a column Finally, in order to create space between the lines we need justify content space between. Alright, so now the lines look good. Let's take care of this span element. We're going to increase the font size. Let's make it 1.8 Ran. Okay, Actually with the Menu icon, we are done. I just want to change those temporary colors. Let's get rid of the background color from the menu. Then change the colors for the line and the span element. We need to your background color to be white for the color of this panel, and then it's going to be white as well. Alright, so finally, the menu icon is ready, and now we have to start to work on the navigation. Let's take a look at the finished project. The first thing that I'm going to do is to make the navigation items look. So I mean, we will align the items, particularly in a column. We will change the background and also will move the menu icon to the right side. So first of all, let's move the icon using transform, translate x function. Let's insert 16 ramp. So the icon is moved. Next I'm going to display the navigation back, but without the drop-down menus. So let's get rid of display none from here. As for the drop-downs, I'm going to make them hidden using display none. So the navigation items are feasible, but without dropdowns. Right now, the layout of navbar is completely messed up, but we will take care of that in a minute. Now, it's time to move the navigation to the left side of the page. I'm going to set its position to fixed. Then define top and lack properties. I'm going to make both of them zero. Also define the width and height. Width is going to be 20 RAM. As for the height, I'm going to make it 100% of the viewport. That's, that. Let's take you up the background. I'm going to use linear gradient function. The direction of the color transition is going to be from top to bottom. And then I'm going to insert here three different colors. The first one is going to be 032181, that we will have 094399. That's for the third color. It's going to be 04207. See? The navigation is moved to the left side, but the navigation items are not placed correctly. Let's fix that. I'm going to change the direction of the flex layout. Let's make it a column. And also creates some space at the top using padding. Let's make it to run. Now we have a better result. As you can see, the banner covers the navigation a little bit. That speaks that using the Z index property, I'm going to make the index 200. Alright, so the problem is fixed. Let's take care of the navigation items. I'm going to select nav list item. Let's set its width to 100%. As for the height, I'm going to make it auto. Also create some space using padding. Let's assign to 0.1 run. And also I'm going to create space at the top and bottom using margin. Let's set it to point 4.0. Alright, so next, I'm going to decrease the font size of the link elements. Let's select nav list link and set its font size to one point. For Rent. Came after that, I'm going to decrease the size of the arrows, and also I'm going to rotate them. Let's select nav list item, followed by the I element. Let's define its font size, make it one point to ram. As for the rotation, I'm going to use Transform with the rotate function as the value I'm going to insert here -90 degrees. Alright, so the navigation looks good. Actually, if we hover over the items, then they will get the border at the bottom. And also the novel will change the background color. Those are the default effects which we defined for the extra large screen size. Right now I'm going to get rid of the border effect. As for the navbar, we will take care of that a bit later. So let's select nav, list item with the hover and set border at the bottom to know. Alright, that syllable, the main least. For now Next I'm going to take care of the drop-down menus. At first. Let's take a look at the finished project and display the drop-down menu. So as you can see, the drop-down menu looks a bit differently from the default one. We have here an additional item like the heading. And also the second drop-down links are no longer visible. So we have to make some changes to the HTML document. First of all, I want to add individual class names to the drop-down lists because we have to style them and also we need those classes for JavaScript as well. So the first item is going to be NEF drop-down personal. As for the second one, it's going to be enough drop-down business. After that, I'm going to customize the drop-downs. I think would be better if we hide one of the drop-downs, it will make our work in process more convenient. Right now we have here naff drop-down with display none. Let's change the class name and make it not dropped down. Let's say business. Right now, nothing is changed here because by default the drop-down menu so hidden. And they appear only on hover. I'm going to display and customize the first drop-down menu as we have it in the finished project. Actually, we need some similar styles that we have used for the nav list itself. So I'm going to add another class name. Now, drop-down personal. Then select it separately and assigned to it opacity one and visibility visible. So here we have the drop-down menu, but it doesn't look nice. We have to customize it. First of all, I'm going to decrease the padding. I'm in space on the left side. So let's set padding to one RAM. After that, I'm going to hide the second link elements. So let's select naff drop-down link to an assigned to display none. Okay, next, I'm going to move the contents up. For that. I'm just going to change the value of the justify content property. Let's set it to flex. Start. Alright, so now the drop-down menu is placed at the top of the navigation. As we said, we're going to add one item to the drop-down menus. They will be kinda headings for them. So let's add the LI tag to the list. I'm going to assign to the classes enough, dropdown, item, drop-down heading. Then insert your link tag, which will include Font Awesome icon with the class is FAS, FA, Chevron down, followed by the text personnel. Let's copy the LI elements and paste it for the second dropdown list as well. I'm going to change the contents. Let's make it business. Alright, let's go ahead and customize the newly edit list item. First of all, I'm going to select naff dropdown item. Let's set its width to 100%. And also define margin. I'm going to make margin one run on all four sides except the bottom one. The bottom is going to be zero. After that, I'm going to select link tag. So we need to hear drop-down heading a. Let's define font size, make it 1.6 RAM. Also transform text into uppercase. Change the color, make it white. So as you can see, the link element looks good. We have to take care of the icon. Let's select dropdown heading, I, defined font size, make it 1.5 gram. Also, we need to transform with the rotate function. The value is going to be 90 degrees. And then create some space on the right side using margin-right one ramp. Alright, so finally, let's decrease the font size of those link elements. Let's select enough to uptown link one and set font size to 1.4 round. Alright, so the drop-down menu is customized right now on the first dropdown style. But you can assume that both dropdowns are ready. We will just add the soul actress for the dropdown. And all these styles will be applied to the second list as well. Okay, so now we have to make the money work. For that. We will use JavaScript 100. Project 10 - Make Project Responsive - Part 3: Alright, so now it's time to make the navigation work. First of all, I'm going to hide the entire navigation. I mean the novelist with drop-downs. And also I'm going to apply the styles to the second dropdown menu as well. As you know, it's been hidden so far. So in order to hide the navigation, I'm going to change the left position. Let's set it to -20 RAM. Also, let's add here the class name for the second dropdown menu. I mean nafta uptown business. Then do the same down below. And also get rid of this code from here. Okay, so the navigation is hidden. We need to move the parts and back to its default position as well. So let's get rid of this line of code from here. Alright, so everything looks good. Now we can add a click event to the button and display the navigation. Let's have a look at the finished project once again. So besides displaying the navigation, we have to move the icon to the right side on quick, change its style and we have to make it fixed. If we scroll down the page, the menu icon should have a fixed position. At first, let's take care of the button. We need to attach to it an event listener with a click event. Then once we click it, we have to assign to it some styles. I mean, we have to transform the lines into x. Also, we are going to change the colors. And besides that, we have to move it to the right side. Let me explain how we're going to manage all of those things. We will define the mentioned CSS styles with the help of a new class. We will add this class to the nav bar. And then in CSS, we will use the combinations of the selectors so that the new styles will be applied to the elements. Let's go to the JavaScript file. I'm going to create new variables. Let's call the first variable menu icon and select it using query selector method. Let's specify here the class name menu. Then I'm going to duplicate this code, change the name of the variable. It's going to be nav bar. And also I'm going to change the class name we need here. Now for alright, after that, I'm going to assign to the Menu icon and event listener With click events and with an arrow function. So as we said, we have to add a new class to do now for unclick. Actually, we need to add a new class to the novel unclick, but then we have to remove it on the next, because when we click the icon first, we will display the navigation. But then on the next league we should hide it. So we have to use a toggle method. In general, the toggle method adds a class to the element if it doesn't have it, and remove it if the element does have it. So we need to select enough bar. Then we have to use one of the properties called class list, which includes all the classes that the island has. And then we need toggle method. We have to specify here the class name, call it change. Alright, so that's it about the JavaScript. Let's go back to the CSS file. Now, we can apply the new styles on click. The first thing that I'm going to do is to move the menu icon to the right side. So we need to select change followed by the menu. And in order to move the icon, I'm going to use again transform with Translate X function as the value. Let's insert here 16 ramp. So as you can see, the icon moves to the right side on the first clique. It goes back to its default place on the next click. Okay, so before I move on to the navigation, I want to finish working with the button. We have to assign to different styles and click. As we said, we have to make it fixed once the navigation will display. So we need here position fixed. Also, we need to define top and left properties. Top position is going to be to run as far the left. It's going to be six ran. Now, once we click the icon, it will become fixed. But we have here the issue. As you remember, the menu icon is a flex item. Once it becomes fixed, then it jumps out of the flex container and the logo, the second flex item takes its place. We have to fix that. We need to define the position for the logo manually. So let's select navbar logo. I'm going to define this position as absolute. Then we need top position. Let's make it for RAM. And then we have to Center it perfectly. So I'm going to set left position to 50 per cent. And also we need to transform, translate with the values -50 per cent. And again -50 per cent. Okay, So the logo looks good, but we have the same problem we've been now for Batson's. So let's go ahead and fix that. Let's select navbar buttons and assigned to them margin-left, a row. Alright, so now everything looks good. Let's go back to the menu icon and customize it. We need to transform lines into x. So we have to select each line with a class change. Let's go ahead and start with the first one. So like change, followed by the line one. So I'm going to rotate the first line. We need here transform, rotate with the value 45 degrees. Then let's duplicate this code. Change the class name we need here, line three. As for the value of the rotate function, we need -45 degrees. And besides that, we have to hide the second line. So let's select line two with change and assigned to it opacity zero and feasibility hidden. Okay? So right now, we don't have here the x. The reason is that by default the lines are transformed from the center because the origin of the transformation is centered by default, we have to change it and make left. So we need to transform origin the value of that. Alright, so now the problem is geeks. And we have here the x. Next we have to change the colors, the background colors of the lines. Let's make it 444. Also, we have to change the background color of the menu icon itself. Let's make it e, e. And lastly, let's change the color of the span elements. We need to select menu span with change. Let's set color to 555. Alright, so the last thing that I'm going to do is to a transition to the icon. So we need to transition transform with a duration 0.6 s. And besides that, I'm going to use a function called cubic Bezier. It allows us to create a custom transition. So in our case, I want to make the transition slower at the beginning and then fast at the end. In order to achieve that, I'm going to pass here the following values. We need 100. And again one. Actually, you can play around with different values, but I think this transition looks really good. Alright, so finally, with the Menu icon, we are done. Now we have to take care of the navigation. So we need to use again the class change, followed by the novelist. And in order to display the navigation, we have to set left position to zero. Besides that, Let's use again the transition with the same fact. In this case we need left 0.6 s and the same cubic Bezier function with the values 1001. Alright, so everything works fine. Now we have to display the drop-down menus. Once we click the links, I mean the personal and business. Before we do that, I want to take care of one thing. Right now, the hover effect, steelworks or the navigation items after thousand pixels, we no longer need the hover effect because we modify the entire navigation. So in order to cancel the hover effect, I'm going to do the following. We need to use an if else statement where we will define the screen size. If the screen size is less than 1,000 pixels, then we need to apply this code here. And if not, then we should execute this code, the whole fats. So let's create if statement in which we have to define the width of the screen size. So we need a window dot inner width. It should be less than thousand pixels. So if this condition is true, then we need to grab this code and insert it here. And if it is false, then we need an else statement where we should put this entire code So now the background color of the Napa no longer changes. But we have here a tiny issue. As you see the arrow is rotating. We don't need that as well. We have created that hover effect from CSS. So we can remove it in the CSS file and create the same effect in the JavaScript. As you know, we all already have a hover effect here in the else statement. So we just need to add the code for the arrows. But first, let's get rid of it from CSS. So I'm going to access the arrows from the list item we need here, dropdown item. Next, we have to access the link elements, which is the first child element of the list item. So when you hear the property called first element child, the arrow is represented with the Font Awesome icon, which is the child of the link element. So again, we need to u first element child. After that, we need style property, followed by the transform. As the value we need here, rotate 180 degrees. Let's copy this code and paste it down below. Once we mouse out, we have to make the value of the rotate function zero. Alright? So as you can see, we no longer have here the hover effect. Now we can move on and take you off the drop-down menus. Once we click the links, we had to display the proper drop-down menu. So instead of adding the event listeners to building separately, I'm going to use again the forEach method. But before that, we need to assign to both link elements the common class names. Let's call them, show dropdown. Then select them using query selector all method. Let's specify here the class name show drop-down. After that, we have to loop through the links and attached to them and event listener. So we need for each that's easier to you and arrow function with the parameter, let's call it link. And then attach to it event listener with the click event and with an arrow function. So now we have to display the drop-down menus. Actually, they are the siblings of the link elements. So we need to hear link followed by the property called next elements sibling. Than we have to define style property with left position. Let's set it to zero. So if I display the navigation and then click the link, the proper drop-down menu will display. All right, we are moving forward, but we have here a tiny issue. If we click the menu icon than the icon will be gone, but the drop-down menu won't close. We need to fix that. So we have to hide the drop-down menus. Wants the class change will be removed from the North Pole. So I'm going to use an if statement where we will define whether the navbar has the class change or not. So let's create an if statement with the following condition. First we need to place here logical NOT operator. Then we need navbar class list. And we have to use a method called contains. This method shows us if the element contains the specific class are not inside the parenthesis, we need to place change. So if this condition is true, means that the class change is removed from the navbar. And so we have to hide the drop-down menus. Let's select them using querySelector all method. Then specify here the class name nafta uptown. Now we need to use for each method. Let's insert here the parameter I'm going to call it dropped down. So in order to hide the drop-down menus, we need dropdown style, followed by the left property. And we have to set it to -20 run. So now everything works perfectly. The last thing that I'm going to do regarding the menu is to hide the drop-downs and once we click the drop-down headings, first of all, I'm going to assign common classes to the links. Let's call it dropped down heading link. We need this class for both link elements. Then go back to the JavaScript file and Select them using querySelector all method. We need to specify here the class name, drop-down, heading link that we have to loop through those links. So we need, for each method. Let's insert here a callback function with a parameter. I'm going to call it heading link. Then we have to attach to link elements, event listeners with click events. And also we need here an arrow function. So we need to hide drop-down menus. And we have to access those drop-down menus from the link elements. So we need to use heading link. Then we have to access to the parent elements. And for that, we have to use one of the property called parent elements. So right now we have access to the list item. And next we have to get access the least element itself. So again, we need parent element followed by these tile property. Then we need left. And the value is going to be -20 run. Okay, so if we click the navigation item and then click the drop-down heading link, the drop-down will hide. Actually, we have here some issue with the second dropdown because we have two headings. So we might have some mistake in the HTML file. Let's go ahead and check it out. So as you can see, for some reason, I have inserted here two headings. Maybe you don't have this issue in your own HTML file. So let's get rid of it from here. Alright, so as you can see, everything works perfectly. And actually what the menu, we are almost done. I said almost because if we increase the screen size back to extra large, we will have some issues. As you can see, we have the menu icon at the top left corner. And also if we hover over the navigation items, then we will see the two uptown heading which we added to the list. So we need to hide them by default. Let's select menu and assigned to it. Display none. Then we need drop-down heading. Again, we need display none. And then down below, I mean, in the Responsive Code, we need to select dropdown heading. We have to assign to display block in order to make the job done having spaces. Right? So finally, with ammonia, we are done. Let's continue and make the project responsive 101. Project 10 - Make Project Responsive - Part 4: Alright, let's move on and continue making our project responsive. Right now, we are working on the screen with a max-width of thousand peaks. We have modified the navigation and now I'm going to customize the other sections a little. The first section looks good. Let's move on to the next section. It looks good as well, but I think we can decrease the font size of the heading slightly. Let's select Section two heading and set font size to fall around. Alright, next I'm going to customize the features section. Select the rapid development with a cross features and set its width to 95%. Also, I'm going to select the feature itself. Let's change the padding, make it zero at the top and bottom and 1.5 rem on the left and right sides. Came that syllable, the feature section. It looks good. After that, I'm going to take care of the next section. I want to change the direction of the alignment of the contents. Right now the image and lists are placed side-by-side, and I want to place them on top of each other. So let's select section for content and change the direction, make each column, and also align items in the center. Next, I'm going to center the image perfectly. Let's select its wrapper. So in order to center the image, I'm going to use margin where the value auto. Okay, Let's customize the list. Let's select section for at least I'm going to set its width to 100%. And also I'm going to place the list items in the center for that. Let's use Flexbox. We need to set display to flex. Then we have to change the direction. Let's make it column. And lastly, we need to align items center. So that's it about the fourth section. Let's move on and take care of the footer. I'm going to align the elements vertically in a column. So let's go ahead and select filter top. Change direction, make it call them. And also align items in the center. Okay, let's create some space at the bottom of the list. Let's select footer list and set margin bottom to one RAM. Also, I'm going to select the copyright paragraph. Let's change the amount of space at the top and bottom. Let's set margin to 1.5 RAM and then zero. Alright, so that's it about the front page. Let's check the rest of the pages. So as you can see, everything looks good and we can move on and find the next break point. So the next breakpoint is going to be 800 pixels. Let's go ahead and create new CSS media query and specify max-width as 800 pixels. So first of all, I'm going to decrease the font size of the HTML elements. Let's set it to 45%. Next, I'm going to take care of the second section. Let's set padding at the top and bottom to ten RAM and then zero on the left and right sides. Also, I'm going to select Section two heading. Let's customize it a little bit. I'm going to set with 280 per cent. Also, we need to align text in the center. And besides that, I'm going to define the line height. Let's make it 1.2. Alright, next, I'm going to customize the services. So let's select wrapper div element with a class services and define width, make it 95%. Then I'm going to select the service itself. Let's define its width and make it through to RAM. And also change the amount of space on the left and right sides. Sit margin to zero and then to run. Alright, so now we have a much better result. Next, I want to decrease the font size of the Font. Awesome icons. Let's select service. I change the font size, make it for RAM. And also I'm going to customize the buttons. Select service btn, change the width and make it 15 RAM. And also set padding to one RAM on all four sides. Okay, so that's it about the second section. Next, I'm going to customize the feature section. I want to place the features on three lines. So let's select features and set its width to 100% Then I'm going to select the feature itself. Let's set its width to 50 per cent and also change the padding, make it zero. And for ran. Alright, so I think that's it about the front page. All other sections look good. Let's check the login page. It looks good as well. As for the sign-up page, we have to make some changes here. So let's go ahead and select topside. We need sign-up page top and set its width to 50. Rem. Next I'm going to take you off the contents. Select sign-up page content, set its width to 85%. And also define padding. It's zero at the top and bottom and three rem on the left and right sides. After that, I'm going to select the left part of the content. So we need to sign up page content left. Let's set its width 200 per cent. Also change the padding, make it to three RAM. Then I'm going to select the images. Let's define the width and make it 14 RAM. Also changed the margin. I'm going to set it to 0.1, 0.5 g, and also decrease the width of the border. I'm going to set it to 1 g solid. The color CCC came in. After that, I'm going to select the H1 heading elements. Let's change its font size, make it three ran. Alright, so the left part looks good. Let's move on to the right one. Select sign-up page content, right? So first of all, I'm going to align elements using Flexbox. Let's set display to flex, then change the flex direction column. Next I'm going to align items in the center. And finally, change the padding, make it three rounds. Okay, finally, I'm going to customize the radio buttons. Let's select them using the type attribute or radio. I'm going to change its width. Let's make it 20 per cent. Then. Change margin. I'm going to set it to 0.5 rem at the top than 1.5 rem on the right side. As far as the bottom and left sides, both of them will be zero. Alright, so let's say regarding this breakpoint, Let's move on and work on the next one. The next breakpoint is going to be 550 pixels. Let's create a new CSS media query with a max width 550 pixels. On the breakpoint, I'm going to hide the navbar logo at all. Let's select knob or logo and assigned to display none. Next, I'm going to take care of the banner elements. Let's select the panel heading, change its font size, 4.5 rhyme. Then select band or paragraph and defining the line-height, make it 1.2. That's it about the first section. Let's move on to the second one. I'm going to place the services vertically in the column. So let's select rapid development and change the flex direction column. And also I'm going to align the items in the center. Next, let's take here of the service itself. Let's set its width to 60%. And also, I'm going to define margin at the bottom. Let's make it four n. Alright, that's it. Regarding the second section, Let's move on to the third one. I'm going to change the font size of the heading element. So let's select Section three heading and set its font size two. For RAM. Also, I'm going to place the features vertically in a column. So let's select wrapper and scientific flex direction with the value column. And also we need to align items center. Okay, so let's select feature. Let's define this width, make it 80 per cent. Okay, let's move on to the next section. I mean the fourth section. I'm going to select the heading elements. Let's change the font size, make it fall around. Then I'm going to select the contents. Let's set width to 100%. Also change the padding, make it zero at the top and bottom and three ramp on the left and right sides As for the image, I'm going to hide it at all. So let's select wrapper and set display to none. Okay, lastly, I'm going to align the items to the left side. So let's select least assign to the align items with a value flex. Start with this section. We are done. Let's move on and customize the footer. Let's select footer top and defining sweet, make it 90%. Okay, so that's it about the front page. Let's check the rest of the pages. So the login page doesn't need the changes. As for the sign-up page, we have to customize it. Let's take you off the top side. I'm going to set its width to four to run. After that, Let's select the sign up page content and set its width to 100%. Alright, Next I'm going to hide the left part of the content at all. So let's select left and assigned to display none. Finally, let's increase the width of the wide part. I'm going to set it to handle present. Alright, so that's it about these breakpoints. And now have to customize the project on the last breakpoint, which is going to be 400 pixels. Let's create new CSS media query and specify max width as 400 pixels. So first of all, I'm going to decrease the font size of the HTML element. Let's make it 40 per cent. So everything looks good. But I'm going to customize the Menu icon and we displayed in alpha. Then the icon will cover the login button and actually doesn't look good. So I'm going to hide the Word menu from the icon. Let's select menu span and set it to display none. So I'm going to decrease the width of the menu I can solve. Let's select it and set its width to five brand. Now, can see we have a much better result. The only thing that I don't like here is the second list item in the fourth section. Because the number is a kind of shrunk. So I'm going to fix that. Let's select number and define its minimum width. Make it 3.5 g. Alright, so finally, the project is responsive to different screen sizes. Before we finished the project, I want to do one last thing. Actually, if we make the screen size bigger and then hover Over the navigation items, then the drop downs won't display. We need to refresh the page for that. So in order to avoid refreshing the page manually, I'm going to make an automatic once we resize the screen size. So for that, I'm going to attach event listener to the window object with the event re-size. Also, we need here the arrow function, which will be executed once we resize the window. So in order to reload the page, we need the following window, dot location, dot reload. So if we test, then you will see that everything works perfectly. Alright, so we have finished working on our tenth projects, Paypal clone. It was the clone of the UI of this website. Hope you liked the project and learn some new stuff. With finishing working on this project, our course is over as well. Hopefully, it was interesting and useful. We have built ten different modern and responsive websites from scratch. So I hope you got a huge practice and front-end web development and learn lots of different things in HTML, CSS, and JavaScript. Those are three core technologies of front end web development. So it's really important to learn and practice them today. Alright, so I would like to thank you for being with us. Wish you all the best. We are planning to release a new course soon, again with projects. So stay tuned. Good luck. Bye bye.